fix(FR-2914): scope deployment add-revision model folder picker to current project#7465
fix(FR-2914): scope deployment add-revision model folder picker to current project#7465agatha197 wants to merge 1 commit into
Conversation
How to use the Graphite Merge QueueAdd either label to this PR to merge it via the merge queue:
You must have a Graphite account in order to use the merge queue. Sign up using this link. An organization admin has required the Graphite Merge Queue in this repository. Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue. This stack of pull requests is managed by Graphite. Learn more about stacking. |
Coverage Report for react-coverage (./react)
File Coverage
|
||||||||||||||||||||||||||||||||||||||||||||
6c9f7ff to
bdb1ea9
Compare
bdb1ea9 to
806865e
Compare
Coverage Report for backend-ai-ui-coverage (./packages/backend.ai-ui)
File Coverage
|
||||||||||||||||||||||||||||||||||||||
806865e to
44be402
Compare
There was a problem hiding this comment.
Pull request overview
This PR scopes the deployment add-revision model folder picker to the active project instead of the model-store project, aligning the flow with current-project deployment behavior.
Changes:
- Replaces
BAIProjectVfolderSelectwithBAIVFolderSelectin both preset and custom add-revision modes. - Removes unused deployment
metadata.projectIdquery field. - Allows
BAIVFolderSelectconsumers to overridelabelRender; removes an unusedAlertimport.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
react/src/components/DeploymentAddRevisionModal.tsx |
Updates model folder selection to use current project vfolders and removes dead query field. |
packages/backend.ai-ui/src/components/fragments/BAIVFolderSelect.tsx |
Adds support for caller-provided labelRender. |
react/src/components/VFolderNodes.tsx |
Removes unused Alert import. |
Comments suppressed due to low confidence (2)
react/src/components/DeploymentAddRevisionModal.tsx:1337
- If
currentProjectIdis null/undefined,BAIVFolderSelectreceives noscopeIdand falls back to an unscopedvfolder_nodesquery, which can list folders outside the active project. The previous picker was disabled until its project id existed; keep the same guard here (for example, disable or avoid rendering the select untilcurrentProjectIdis available) so the add-revision picker cannot briefly expose/select cross-project folders.
<BAIVFolderSelect
currentProjectId={currentProjectId ?? undefined}
excludeDeleted
filter='usage_mode == "model"'
react/src/components/DeploymentAddRevisionModal.tsx:1337
- This replacement drops the previous
status: READYconstraint. With onlyexcludeDeleted, folders in states such asPERFORMING,CLONING, orERRORare still returned byvfolder_nodes, so the user can select a model folder that is not ready to be mounted for the revision. Keep the ready-status filter (for example, includestatus == "READY"with the usage-mode filter) to preserve the old behavior and match the launcher’s ready-only model folder picker.
excludeDeleted
filter='usage_mode == "model"'
| <BAIVFolderSelect | ||
| currentProjectId={currentProjectId ?? undefined} | ||
| excludeDeleted | ||
| filter='usage_mode == "model"' | ||
| valuePropName="row_id" | ||
| style={{ width: '100%' }} | ||
| /> |
| <BAIVFolderSelect | ||
| currentProjectId={currentProjectId ?? undefined} | ||
| excludeDeleted | ||
| filter='usage_mode == "model"' |

Resolves #7464 (FR-2914)
Summary
DeploymentAddRevisionModal의 preset mode / advanced(custom) mode 양쪽 model folder picker 를BAIProjectVfolderSelect(MODEL_STORE project 강제) 에서BAIVFolderSelect(current project) 로 교체.currentProjectId={useCurrentProjectValue().id},filter='usage_mode == "model"',excludeDeleted,valuePropName="row_id"로 호출 —row_id를 쓰면 form value 가 기존 prefill (rev.modelMountConfig.vfolderId, dashed UUID) 와 submit (convertToUUID(values.modelFolderId)) 흐름과 그대로 호환됨.ServiceLauncherPageContent,ModelCardDeployModal) 와도 일관됨.deployment.metadata.projectId필드를 query 에서 제거.VFolderNodes.tsx의 미사용Alertimport 제거 —--max-warnings=0으로 동작하는 lint-staged 가 전체./src를 검사하기 때문에 이 cleanup 없이 어떤 commit 도 land 불가.Test plan