Skip to content

fix(FR-2787): deployment CRUD UI/UX improvements#7191

Open
agatha197 wants to merge 1 commit intomainfrom
04-30-fix_fr-2787_deployment_crud_ui_ux_improvements
Open

fix(FR-2787): deployment CRUD UI/UX improvements#7191
agatha197 wants to merge 1 commit intomainfrom
04-30-fix_fr-2787_deployment_crud_ui_ux_improvements

Conversation

@agatha197
Copy link
Copy Markdown
Contributor

@agatha197 agatha197 commented Apr 30, 2026

Resolves #7190 (FR-2787)

Summary

  • Fix responsive column layout in DeploymentRevisionDetailDrawerContentGrid.useBreakpoint() for dynamic columns (md+: 2, otherwise: 1)
  • Fix column layout in DeploymentCurrentRevisionModalContent — fixed column: 2 (800px modal width)
  • Add folder explorer link button in revision detail drawer and configuration section
  • Show vfolderId as fallback when vfolder.name is unavailable
  • Remove cancel button from deployment launcher
  • Update DeploymentStatusTag to use SemanticColor + useSemanticColorMap() (aligned with EndpointStatusTag pattern)
  • Replace modal.confirm with BAIDeleteConfirmModal in DeploymentAccessTokensTab
  • Set default replica sort to -createdAt (DESC) with defaultSortOrder: 'descend'

Pending (needs backend)

  • Item 6: Edit mode Step 4 preset value not shown — resourcePresetId not exposed on ModelRevision output type
  • Item 10: Failure reason / status detail — failureReason only exists on RevisionRefreshResult, not on ModelDeployment/ModelReplica

Copy link
Copy Markdown
Contributor Author


How to use the Graphite Merge Queue

Add either label to this PR to merge it via the merge queue:

  • flow:merge-queue - adds this PR to the back of the merge queue
  • flow:hotfix - for urgent changes, fast-track this PR to the front of 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.

@github-actions github-actions Bot added the size:L 100~500 LoC label Apr 30, 2026
@github-actions
Copy link
Copy Markdown
Contributor

Coverage report for ./react

St.
Category Percentage Covered / Total
🔴 Statements
8.11% (+0% 🔼)
1859/22911
🔴 Branches
7.34% (-0% 🔻)
1187/16162
🔴 Functions
4.83% (+0.02% 🔼)
297/6155
🔴 Lines
7.89% (+0% 🔼)
1750/22193

Test suite run success

865 tests passing in 40 suites.

Report generated by 🧪jest coverage report action from 0381e35

@agatha197 agatha197 marked this pull request as ready for review April 30, 2026 12:16
@yomybaby yomybaby requested a review from Copilot April 30, 2026 12:17
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR refines the Deployment CRUD experience in the React WebUI by improving information density/layout in revision/detail views, aligning status-tag visuals with the semantic color system used elsewhere, and standardizing destructive-action confirmation UX.

Changes:

  • Improves revision/detail presentation: adjusts Descriptions column behavior and adds folder explorer entry points for model folders (with ID fallback in some contexts).
  • Aligns status visuals: updates DeploymentStatusTag to use the semantic color mapping (matching the Endpoint status tag approach).
  • Standardizes destructive confirmations: replaces antd modal.confirm with BAIDeleteConfirmModal for access-token deletion; updates replica list default sort.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
react/src/pages/DeploymentLauncherPage.tsx Removes cancel/dirtiness guard wiring from launcher page layout.
react/src/components/DeploymentLauncherPageContent.tsx Removes Cancel button from launcher footer; adds backend-dependent TODO for preset prefill.
react/src/components/DeploymentStatusTag.tsx Switches tag coloring to semantic color mapping for consistent status styling.
react/src/components/DeploymentRevisionDetailDrawer.tsx Updates Descriptions columns and adds folder explorer link button; adds vfolderId fallback.
react/src/components/DeploymentConfigurationSection.tsx Forces Descriptions to 2 columns; adds folder explorer link buttons in revision info & modal.
react/src/components/DeploymentReplicasTab.tsx Sets default replica sort to -createdAt and shows default descending sort indicator.
react/src/components/DeploymentAccessTokensTab.tsx Replaces modal.confirm with BAIDeleteConfirmModal for token deletion flow.
data/schema.graphql Updates GraphQL schema snapshot, including changing startCommand type and several filter field types.
Comments suppressed due to low confidence (2)

react/src/components/DeploymentConfigurationSection.tsx:629

  • Same as above: in the current revision modal, the “ModelFolder” description shows '-' when the folder name is unavailable even though vfolderId is present. Add a vfolderId fallback (and optionally show the folder-explorer button for the ID case too).
    {
      key: 'model-folder',
      label: t('deployment.ModelFolder'),
      children: mountConfig?.vfolder?.name ? (
        <BAIFlex direction="column" align="start">
          <BAIFlex gap="xs" align="center">
            <Typography.Text>{mountConfig.vfolder.name}</Typography.Text>
            <Button
              type="link"
              size="small"
              icon={<FolderOpenOutlined />}
              style={{ padding: 0 }}
              onClick={() => {
                const localId = toLocalId(mountConfig.vfolder!.id);
                if (localId) openFolderExplorer(localId);
              }}
            />
          </BAIFlex>
          {mountConfig.mountDestination && (
            <Typography.Text type="secondary">
              {mountConfig.mountDestination}
            </Typography.Text>
          )}
        </BAIFlex>
      ) : (
        renderFallback()
      ),
    },

react/src/components/DeploymentConfigurationSection.tsx:396

  • The “ModelFolder” field falls back to a generic '-' when mountConfig.vfolder.name is missing, even though vfolderId is available in the query. To match the intended UX (and the drawer behavior), add a vfolderId fallback (and optionally keep showing mountDestination under it).
      key: 'model-folder',
      label: t('deployment.ModelFolder'),
      children: mountConfig?.vfolder?.name ? (
        <BAIFlex direction="column" align="start">
          <BAIFlex gap="xs" align="center">
            <Typography.Text>{mountConfig.vfolder.name}</Typography.Text>
            <Button
              type="link"
              size="small"
              icon={<FolderOpenOutlined />}
              style={{ padding: 0 }}
              onClick={() => {
                const localId = toLocalId(mountConfig.vfolder!.id);
                if (localId) openFolderExplorer(localId);
              }}
            />
          </BAIFlex>
          {mountConfig.mountDestination && (
            <Typography.Text type="secondary">
              {mountConfig.mountDestination}
            </Typography.Text>
          )}
        </BAIFlex>
      ) : (
        renderFallback()
      ),

Comment thread react/src/components/DeploymentConfigurationSection.tsx Outdated
Comment thread data/schema.graphql
Comment thread react/src/components/DeploymentConfigurationSection.tsx Outdated
Comment thread react/src/components/DeploymentRevisionDetailDrawer.tsx Outdated
Comment thread react/src/components/DeploymentConfigurationSection.tsx Outdated
@agatha197 agatha197 force-pushed the 04-30-fix_fr-2787_deployment_crud_ui_ux_improvements branch from 0381e35 to c194638 Compare April 30, 2026 13:55
- Fix responsive column layout in DeploymentRevisionDetailDrawerContent
  (Grid.useBreakpoint, md+ 2 cols, otherwise 1)
- Fix column layout in DeploymentCurrentRevisionModalContent (column: 2)
- Add folder explorer link in revision detail drawer and config section
- Show vfolderId as fallback when vfolder name is unavailable
- Remove cancel button from deployment launcher
- Update DeploymentStatusTag to use SemanticColor system (aligned with EndpointStatusTag)
- Replace modal.confirm with BAIDeleteConfirmModal in DeploymentAccessTokensTab
- Set default replica sort to -createdAt (DESC)
@agatha197 agatha197 force-pushed the 04-30-fix_fr-2787_deployment_crud_ui_ux_improvements branch from c194638 to f1fa2c0 Compare April 30, 2026 14:11
@github-actions
Copy link
Copy Markdown
Contributor

Coverage Report for react-coverage (./react)

Status Category Percentage Covered / Total
🔵 Lines 6.88% 1781 / 25874
🔵 Statements 5.78% 1976 / 34155
🔵 Functions 5.34% 296 / 5541
🔵 Branches 4.11% 1291 / 31388
File Coverage
File Stmts Branches Functions Lines Uncovered Lines
Changed Files
react/src/components/DeploymentAccessTokensTab.tsx 0% 0% 0% 0% 57-359
react/src/components/DeploymentConfigurationSection.tsx 0% 0% 0% 0% 61-421
react/src/components/DeploymentLauncherPageContent.tsx 0% 0% 0% 0% 88-663
react/src/components/DeploymentReplicasTab.tsx 0% 0% 0% 0% 39-367
react/src/components/DeploymentRevisionDetailDrawer.tsx 0% 0% 0% 0% 40-342
react/src/components/DeploymentStatusTag.tsx 0% 0% 0% 0% 23-74
react/src/pages/DeploymentLauncherPage.tsx 0% 0% 0% 0% 62-648
Generated in workflow #118 for commit f1fa2c0 by the Vitest Coverage Report Action

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L 100~500 LoC

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Deployment CRUD UI/UX improvements based on feedback review

2 participants