Skip to content

chore(studio): reorder deployment tab options (ASTD-578) - #1880

Merged
aray12 merged 1 commit into
mainfrom
deployments-tab-order/alray
Sep 9, 2026
Merged

chore(studio): reorder deployment tab options (ASTD-578)#1880
aray12 merged 1 commit into
mainfrom
deployments-tab-order/alray

Conversation

@aray12

@aray12 aray12 commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Summary

Puts the common sources first in the create-deployment side panel: the segmented control now reads HuggingFace | Workspace | NGC NIM Container, and the wizard opens on HuggingFace instead of NGC.

The reorder itself is inert — every consumer branches on the source value, never its index. What it forces is a decision about the default, which this PR settles deliberately.

image

Changes

  • Reorder the SegmentedControl items in CreateDeploymentSidePanel/index.tsx.
  • Move defaultWizardValues() from SOURCE_NGC to SOURCE_HF, and reorder the zod enum to match.
  • Update schema.test.ts to assert the new default, plus a new case pinning that the default source is one sourceSupportsEngineChoice() accepts.
  • Make the e2e deployment flow select the NGC segment explicitly instead of relying on preselection.

Why the default had to move

defaultWizardValues() hardcoded source: SOURCE_NGC, which only looked right because NGC happened to be leftmost. Left alone, the panel would have opened with the third segment selected.

Moving it to HuggingFace also settles an existing inconsistency: defaultWizardValues() sets engine: Engine.vllm, but the NGC source ignores the engine entirely and overrides it to nim when building its request. Defaulting to NGC therefore shipped two defaults that described different deployments. HuggingFace is one of the two sources that actually reads the engine picker.

Deep links

Unaffected. ?model= and ?fileset= force the Workspace source by value, so reordering cannot break them.

Base

Targets main directly and depends on nothing else. It was previously the bottom of a stacked series; verified independent by cherry-picking it onto the base alone (applies with no conflict, typecheck clean). Nothing in the related deployment PRs references CreateDeploymentSidePanel, SOURCE_HF, defaultWizardValues, or sourceSupportsEngineChoice — the stacking was an artifact of authoring order, not a code dependency.

Type of Change

  • Code change (feature, bug fix, or refactor)
  • Code change with documentation updates
  • Documentation only
  • Contributor tooling or automation
  • CI, build, or test infrastructure

Quality Gates

  • Tests added or updated for changed behavior
  • Existing tests cover changed behavior — justification:
  • Tests not applicable — justification:
  • Documentation updated for user-visible behavior
  • Documentation not applicable — justification: no user-facing docs describe the wizard's tab order or default source.

Two tests were silently pinning the old default and are updated rather than deleted:

  • schema.test.ts:66 asserted SOURCE_NGC.
  • e2e-tests/deployments.test.ts filled the NGC form without ever clicking a segment, so it depended on the preselection. It now selects NGC explicitly, meaning it covers the NGC path rather than whatever happens to be default.

Verification

  • Pull request title follows the repository's Conventional Commit format
  • Every commit includes an appropriate Signed-off-by: trailer
  • uv run pre-commit run -a passes, or any blocked checks are identified below
  • Targeted tests pass, or tests are marked not applicable above
  • No secrets, API keys, or credentials are included

Targeted validation:

  • pnpm --filter nemo-studio-ui test src/routes/DeploymentsListRoute — 4 files, 40 tests passed
  • pnpm --filter nemo-studio-ui typecheck — clean
  • pnpm --filter nemo-studio-ui lint:fix — clean
  • Full pnpm --filter nemo-studio-ui test — 338 files, 3320 tests passed (run on the tip of this stack)
  • uv run pre-commit run -a not run in full; the commit-scoped pre-commit hooks ran and passed on commit.

The e2e test is not executed here — E2E is currently disabled per AGENTS.md. The change to it is mechanical (an added explicit segment click).

Puts the common sources first in the create-deployment side panel. The
segmented control's items are reordered to HuggingFace, Workspace, NGC NIM
Container.

Every consumer branches on the source value rather than its index, so the
reorder is inert on its own. What it forces is a decision about the default:
`defaultWizardValues()` hardcoded `source: SOURCE_NGC`, which only looked
right because NGC happened to be leftmost. Left alone, the panel would open
with the third segment selected.

The default moves to HuggingFace, which also settles an existing
inconsistency. `defaultWizardValues()` sets `engine: Engine.vllm`, but the
NGC source ignores the engine entirely and overrides it to `nim` when
building its request. Defaulting to NGC therefore shipped two defaults that
described different deployments; HuggingFace is one of the two sources that
actually reads the engine picker.

Tests that were pinning the old default:

- schema.test.ts asserted SOURCE_NGC. It now asserts SOURCE_HF, plus a new
  case that the default source is one `sourceSupportsEngineChoice()` accepts,
  so the default engine can't drift out of reach again.
- The e2e deployment flow filled the NGC form without ever clicking a
  segment, silently depending on the preselection. It now selects NGC
  explicitly, so it covers the NGC path rather than whatever is default.

Deep links are unaffected: `?model=` and `?fileset=` force the Workspace
source by value.

Signed-off-by: Alex Ray <alray@nvidia.com>
@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor
Suite Lines Covered Line Rate Branch Rate
Unit Tests 39109/50081 78.1% 62.1%
Integration Tests 23786/47309 50.3% 23.0%

@aray12 aray12 changed the title deployments tab order/alray chore(studio): reorder deployment tab options Sep 9, 2026
@github-actions github-actions Bot added the chore label Sep 9, 2026
@aray12
aray12 marked this pull request as ready for review September 9, 2026 16:58
@aray12
aray12 requested review from a team as code owners September 9, 2026 16:58
@coderabbitai

coderabbitai Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: e54b1708-246b-4d56-bf2f-6444f5e3f217

📥 Commits

Reviewing files that changed from the base of the PR and between 80bf1d0 and 4fe1c2d.

📒 Files selected for processing (4)
  • web/packages/studio/e2e-tests/deployments.test.ts
  • web/packages/studio/src/routes/DeploymentsListRoute/CreateDeploymentSidePanel/index.tsx
  • web/packages/studio/src/routes/DeploymentsListRoute/CreateDeploymentSidePanel/schema.test.ts
  • web/packages/studio/src/routes/DeploymentsListRoute/CreateDeploymentSidePanel/schema.ts

Included review availability: Your plan provides up to 12 included reviews per hour; 11 remain after this review.


📝 Walkthrough

Walkthrough

The deployment wizard now defaults to Hugging Face and orders it first. Schema tests verify engine compatibility. The E2E test explicitly selects NGC when testing NGC deployment creation.

Changes

Deployment source selection

Layer / File(s) Summary
Update deployment source defaults
web/packages/studio/src/routes/DeploymentsListRoute/CreateDeploymentSidePanel/schema.ts, web/packages/studio/src/routes/DeploymentsListRoute/CreateDeploymentSidePanel/schema.test.ts
The schema orders Hugging Face first and uses it as the default source. Tests verify the default source and engine compatibility.
Update source selection flow
web/packages/studio/src/routes/DeploymentsListRoute/CreateDeploymentSidePanel/index.tsx, web/packages/studio/e2e-tests/deployments.test.ts
The selector displays Hugging Face first. The E2E test explicitly selects NGC NIM Container before filling the deployment form.

Suggested reviewers: a2bondar

Priority: ⬇️ Low

Merge Risk: ⚪ Minimal · up to 4fe1c

Create Deployment now opens with Hugging Face selected and lists sources as HuggingFace, Workspace, then NGC NIM Container. NGC creation remains explicitly selected where needed, with no current merge-blocking risk identified.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 4…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the primary change: reordering the deployment source tabs. It is concise and directly related to the changeset.
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch deployments-tab-order/alray

Comment @coderabbitai help to get the list of available commands.

@aray12
aray12 removed this pull request from stack #1883 September 9, 2026 19:18
@aray12
aray12 added this pull request to stack #1909 September 9, 2026 19:19
@aray12 aray12 changed the title chore(studio): reorder deployment tab options chore(studio): reorder deployment tab options (ASTD-578) Sep 9, 2026
@aray12
aray12 removed this pull request from stack #1909 September 9, 2026 20:11
@aray12
aray12 added this pull request to the merge queue Sep 9, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Sep 9, 2026
@aray12
aray12 added this pull request to the merge queue Sep 9, 2026
Merged via the queue into main with commit 7db35d8 Sep 9, 2026
72 of 74 checks passed
@aray12
aray12 deleted the deployments-tab-order/alray branch September 9, 2026 21:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants