Skip to content

fix(onboard): preserve Station Express choices on resume - #7053

Closed
senthilr-nv wants to merge 1 commit into
NVIDIA:feat/dgx-station-host-prereqsfrom
senthilr-nv:codex/7048-station-express-resume
Closed

fix(onboard): preserve Station Express choices on resume#7053
senthilr-nv wants to merge 1 commit into
NVIDIA:feat/dgx-station-host-prereqsfrom
senthilr-nv:codex/7048-station-express-resume

Conversation

@senthilr-nv

@senthilr-nv senthilr-nv commented Jul 16, 2026

Copy link
Copy Markdown
Collaborator

Summary

DGX Station Express now records its secret-free provider, model, sandbox, and interaction intent before managed vLLM setup can fail. Running nemoclaw onboard --resume restores those choices and retries the failed Express step instead of returning to the generic provider and model prompts.

This draft is stacked on feat/dgx-station-host-prereqs and depends on #6991. Do not merge it first; after #6991 merges, retarget this PR to main and refresh the exact diff.

Related Issue

Fixes #7048

Changes

  • Mark only the DGX Station Express installer path so DGX Spark and generic onboarding remain unchanged.
  • Persist a versioned, validated, secret-free Station Express resume intent in the existing owner-only onboarding session.
  • Restore the managed-vLLM model and Express defaults for failed or interrupted sessions, reject conflicting or malformed state, and clear the intent after successful completion or --fresh.
  • Cover initial capture, injected provider failure, failed-session resume, completed provider reuse, cleanup, malformed state, and the Station/Spark installer boundary.
  • Correct the command reference to include resumable failed onboarding sessions.

Type of Change

  • Code change (feature, bug fix, or refactor)
  • Code change with doc updates
  • Doc only (prose changes, no code sample modifications)
  • Doc only (includes code sample changes)

Quality Gates

  • Tests added or updated for changed behavior
  • Existing tests cover changed behavior — justification:
  • Tests not applicable — justification:
  • Docs updated for user-facing behavior changes
  • Docs not applicable — justification:
  • Sensitive paths changed (security, policy, credentials, preflight, onboarding, inference, runner, sandbox, or messaging)
  • Sensitive-path review completed or maintainer-approved waiver recorded — reviewer/approval link/justification: requested on this draft before it is marked ready
  • Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue:

Verification

  • PR description includes a Signed-off-by: line and every commit appears as Verified in GitHub
  • Normal pre-commit, commit-msg, and pre-push hooks passed, or npm run check:diff passed when hooks were skipped or unavailable
  • Targeted behavior tests pass for the current change set, or tests are marked not applicable above — 140 passed across the six focused onboarding/session files; 87 passed, 1 skipped across the two installer files; npm run typecheck:cli passed
  • Applicable broad gate passed — npx vitest run --project cli completed with 9,084 passed, 20 skipped, and four unrelated local failures (missing Python yaml, a temp-directory cleanup race, and two existing five-second timeouts)
  • Quality Gates section completed with required justifications or waivers
  • No secrets, API keys, or credentials committed
  • npm run docs builds without warnings (doc changes only) — passed with zero errors and two existing Fern warnings
  • Doc pages follow the style guide (doc changes only)
  • New doc pages include SPDX header and frontmatter (new pages only)

Signed-off-by: Senthil Ravichandran senthilr@nvidia.com

@senthilr-nv senthilr-nv added provider: vllm vLLM local or hosted provider behavior area: onboarding Onboarding FSM, provider setup, sandbox launch, or first-run flow platform: dgx-station Affects DGX Station hardware or workflows labels Jul 16, 2026
@senthilr-nv senthilr-nv self-assigned this Jul 16, 2026
@senthilr-nv senthilr-nv added provider: vllm vLLM local or hosted provider behavior area: onboarding Onboarding FSM, provider setup, sandbox launch, or first-run flow platform: dgx-station Affects DGX Station hardware or workflows labels Jul 16, 2026
@copy-pr-bot

copy-pr-bot Bot commented Jul 16, 2026

Copy link
Copy Markdown

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@coderabbitai

coderabbitai Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 50f60788-e94a-4aaf-8bfd-381a5d5f6fb9

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@github-actions

github-actions Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor — Informational

Advisor assessment: Informational / medium confidence
Next action: No advisor follow-up needed.
Findings: 0 blockers · 0 warnings · 0 suggestions
Status: No actionable findings remain in the canonical review ledger.

Model lanes

  • GPT-5.6 Terra (primary): Completed · medium confidence · 0 blockers · 0 warnings · 0 suggestions
  • Nemotron 3 Ultra (second opinion): Completed · high confidence · 0 blockers · 0 warnings · 0 suggestions
  • Model comparison: normalized findings match; normalized E2E selections differ; severity counts match.

Nemotron output stays in workflow artifacts and does not change the assessment above.

E2E guidance

Advisory only. E2E / PR Gate selects and runs jobs independently.

Recommended E2E: cloud-onboard, onboard-repair, onboard-resume

Workflow run details

This automated review informs maintainers. Warnings and suggestions do not require a response. A maintainer decides whether to merge.

@senthilr-nv
senthilr-nv force-pushed the codex/7048-station-express-resume branch from a241c68 to 84d2fc8 Compare July 16, 2026 21:45
Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>
@senthilr-nv
senthilr-nv force-pushed the codex/7048-station-express-resume branch from 84d2fc8 to af9f9fa Compare July 16, 2026 21:47
@ericksoa
ericksoa deleted the branch NVIDIA:feat/dgx-station-host-prereqs July 16, 2026 22:29
@ericksoa ericksoa closed this Jul 16, 2026
apurvvkumaria added a commit that referenced this pull request Jul 17, 2026
<!-- markdownlint-disable MD041 -->
## Summary

DGX Station Express now records its secret-free provider, model,
sandbox, and interaction intent before managed vLLM setup can fail.
Running `nemoclaw onboard --resume` restores those choices and retries
the failed Express step instead of returning to the generic provider and
model prompts.

This follow-up is refreshed onto current `main` after #6991 merged and
contains only the Station Express resume fix.

Supersedes #7053, which GitHub automatically closed when its stacked
base branch was removed after merge.

## Related Issue

Fixes #7048

## Changes

- Mark only the DGX Station Express installer path so DGX Spark and
generic onboarding remain unchanged.
- Persist a versioned, validated, secret-free Station Express resume
intent in the existing owner-only onboarding session.
- Restore the managed-vLLM model and Express defaults for failed or
interrupted sessions, reject conflicting or malformed state, and clear
the intent after successful completion or `--fresh`.
- Persist the exact validated vLLM served model selected during provider
setup, accept compatible registered identities, reject aliases for a
different model, and require the same identity on later resumes.
- Retire the owner/path-validated Station installer reboot receipt after
successful onboarding or explicit `onboard --fresh`, so a later
installer run cannot restore stale Express choices.
- Cover initial capture, injected provider failure, failed-session
resume, completed provider reuse, cleanup, post-success installer
re-entry, malformed state, and the Station/Spark installer boundary.
- Correct the command reference to include resumable failed onboarding
sessions.

## Type of Change

- [ ] Code change (feature, bug fix, or refactor)
- [x] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [x] Docs updated for user-facing behavior changes
- [ ] Docs not applicable — justification:
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [ ] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: Apurv approved prior
exact head `98d6f503`; exact-head rereview requested for `3dd789c5`
after the alias-validation and success/fresh receipt-lifecycle fixes
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Verification

- [x] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — current-head verification: 28 Station
wrapper/session tests, 68 general session tests, and all 59 Station
installer integration tests passed; the preceding provider/vLLM
selection coverage also passed; `npm run typecheck:cli`, normal commit
hooks, and push-time CLI typecheck passed
- [ ] Applicable broad gate passed — `npx vitest run --project cli`
completed with 9,084 passed, 20 skipped, and four unrelated local
failures (missing Python `yaml`, a temp-directory cleanup race, and two
existing five-second timeouts)
- [ ] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only) — passed
with zero errors and two existing Fern warnings
- [x] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* DGX Station Express onboarding now persists a validated, secret-free
resume intent through session setup, including optional served-model
support.
* “Fresh” onboarding now discards prior Station Express resume state and
skips restoring any prior express recipe.
* **Bug Fixes**
* Prevented Station Express environment flags from leaking into non–DGX
Station express flows.
* Improved Station Express resume guardrails: detects
conflicting/invalid persisted intents, preserves/resets provider/model
state safely, and avoids completing provider selection on failure.
* **Documentation**
* Updated `onboard --resume` guidance to cover resumable interrupted or
failed sessions (keeping existing restrictions).
* **Tests**
* Expanded Station Express/session-state and resume integration
coverage, including prompt/output assertions for `STATION_EXPRESS`.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Co-authored-by: Apurv Kumaria <akumaria@nvidia.com>
Co-authored-by: Aaron Erickson 🦞 <aerickson@nvidia.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: onboarding Onboarding FSM, provider setup, sandbox launch, or first-run flow platform: dgx-station Affects DGX Station hardware or workflows provider: vllm vLLM local or hosted provider behavior

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants