Skip to content

fix(installer): preserve Station resume receipt - #7955

Merged
senthilr-nv merged 4 commits into
mainfrom
codex/preserve-single-station-resume
Jul 31, 2026
Merged

fix(installer): preserve Station resume receipt#7955
senthilr-nv merged 4 commits into
mainfrom
codex/preserve-single-station-resume

Conversation

@senthilr-nv

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

Copy link
Copy Markdown
Collaborator

Summary

Preserve the owner-only Station Express resume receipt when automatic dual-Station discovery intentionally falls back to the single-Station Ultra recipe. Previously, that successful fallback deleted the receipt before onboarding completed, so a post-reboot install could finish vLLM and OpenClaw setup and then fail the receipt-generation assertion.

Changes

  • Keep the Station Express receipt through successful single-Station fallback so normal onboarding completion can validate and retire it.
  • Assert the receipt generation in the existing dual-Station installer handoff regression test.

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: This restores the documented Station Express receipt and single-Station fallback behavior without changing the interface or workflow.
  • 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: The narrow receipt-lifecycle change leaves validation, permissions, explicit cleanup, and failure cleanup unchanged; focused installer lifecycle tests and the repository checks pass.
  • Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue:

Documentation Writer Review

  • Documentation writer subagent reviewed the completed changes
  • Result: no-docs-needed
  • Evidence: Existing Station preparation and two-Station inference pages already document receipt-backed reboot resume and single-Station Ultra fallback when no peer qualifies. The fix restores that contract and adds no command, flag, configuration, default, output contract, procedure, or support claim.
  • Agent: Codex Desktop

DGX Station Hardware Evidence

  • Tested on DGX Station
  • Tested commit: v0.0.98 (33883e63f6495e0597d45910a3b9d6f7177c8ff2) reproducer; this fix commit has not been rerun on hardware.
  • Station profile/scenario: Clean generic Ubuntu 24.04 ARM64 DGX Station GB300; cold, true-default Station Express; no qualifying trusted pair; post-reboot continuation.
  • Result: Reproduced the missing-receipt failure after vLLM, OpenClaw, routing, and sandbox readiness.
  • Supporting evidence: Owner-only qualification evidence retained by the maintainer; the deterministic regression is included in this PR.

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 validate:pr passed after refreshing origin/main when hooks were skipped or unavailable
  • Targeted behavior tests pass for the current change set, or tests are marked not applicable above — npx vitest run --project installer-integration test/install-station-pair-preparation.test.ts (58 passed); expanded Station pair/host/resume suite (111 passed).
  • Applicable broad gate passed — npm test for broad runtime/test-harness changes; npm run check for repo-wide validation/coverage changes — command/result: Not applicable to the narrow installer-state fix; npm run checks:repository passed.
  • 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)
  • 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

Summary by CodeRabbit

  • Bug Fixes
    • Fixed single-Station setup so existing resume information is preserved when applying default configuration.
    • Improved installer handoff behavior while retaining the expected single-Station, peer, binding, and model settings.

Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>
@senthilr-nv senthilr-nv self-assigned this Jul 31, 2026
@coderabbitai

coderabbitai Bot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

The single-Station installer fallback now retains the Station Express resume receipt while applying the default Ultra configuration. The no-peer handoff test verifies that the receipt generation and single-Station state remain intact.

Changes

Station resume preservation

Layer / File(s) Summary
Preserve resume receipt in single-Station fallback
scripts/install.sh, test/install-station-pair-preparation.test.ts
The fallback stops clearing resume state, and the no-peer test verifies the preserved receipt generation with the existing single-Station defaults.

Estimated code review effort: 2 (Simple) | ~10 minutes

Suggested labels: area: install, bug-fix, platform: dgx-station

Suggested reviewers: cv

🚥 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.
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 identifies the main change: preserving the Station resume receipt during installer fallback handling.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/preserve-single-station-resume

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

@github-code-quality

github-code-quality Bot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall coverage in commit cf39c9a in the codex/preserve-singl... branch remains at 96%, unchanged from commit 57f73a5 in the main branch.

TypeScript / code-coverage/cli

The overall coverage in commit cf39c9a in the codex/preserve-singl... branch remains at 81%, unchanged from commit 57f73a5 in the main branch.

Show a code coverage summary of the most impacted files.
File main 57f73a5 codex/preserve-singl... cf39c9a +/-
src/lib/sandbox...rce-identity.ts 88% 88% 0%
src/lib/tunnel/services.ts 75% 75% 0%
src/lib/domain/.../connect-env.ts 89% 97% +8%

Updated July 31, 2026 16:49 UTC

@github-actions

github-actions Bot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor — No blocking findings reported

Advisor assessment: No blocking advisor findings reported
Next action: No advisor follow-up needed.
Findings: 0 blockers · 0 warnings · 0 suggestions

Model lanes

  • GPT-5.6 Terra (primary): Completed · high 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

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 added bug-fix PR fixes a bug or regression area: install Install, setup, prerequisites, or uninstall flow platform: dgx-station Affects DGX Station hardware or workflows security labels Jul 31, 2026
@senthilr-nv
senthilr-nv requested a review from prekshivyas July 31, 2026 16:29
@senthilr-nv
senthilr-nv requested a review from cv July 31, 2026 17:13
@senthilr-nv
senthilr-nv merged commit 106b505 into main Jul 31, 2026
52 checks passed
@senthilr-nv
senthilr-nv deleted the codex/preserve-single-station-resume branch July 31, 2026 17:34
@senthilr-nv senthilr-nv mentioned this pull request Aug 1, 2026
23 tasks
senthilr-nv added a commit that referenced this pull request Aug 1, 2026
<!-- markdownlint-disable MD041 -->
## Summary

Adds the canonical dated changelog entry for `v0.0.100` so the
maintainer release plan can verify the pre-tag documentation
prerequisite. The entry summarizes the user-facing changes merged since
`v0.0.99` and links to the relevant guides.

## Changes

- Add `docs/changelog/2026-07-31.mdx` with the exact `## v0.0.100`
heading.
- Cover restored OpenClaw pairing, transactional replacement, Deep
Agents Code, onboarding recovery, lifecycle cleanup, Hermes builds, host
provenance, documentation, and trusted E2E evidence.
- Distinguish active Docker and Kubernetes runtime-bundle enforcement
from the still-inactive managed shared-state transaction foundation.

## Source Coverage

The release entry maps the doc-impacting merged PRs in the
`v0.0.99..main` release range to `docs/changelog/2026-07-31.mdx`: #8021,
#8024, #7973, #8028, #7947, #7788, #7884, #8023, #7969, #8020, #7989,
#8000, #7907, #7942, #7567, #8013, #7955, #8017, #8014, #8015, #7629,
#7644, #7821, #7971, and #7991.

PR #7974 was reviewed after the final rebase and excluded because it
changes internal maintainer-skill attribution policy and tests only; it
does not change a user-facing product or documentation surface.

## Type of Change

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

## Quality Gates

- [ ] Tests added or updated for changed behavior
- [x] Existing tests cover changed behavior — justification: the
changelog contract test validates the dated entry, version heading, SPDX
form, and route constraints.
- [ ] Tests not applicable — justification:
- [x] 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:
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Documentation Writer Review

- [x] Documentation writer subagent reviewed the completed changes
- Result: `docs-updated`
- Evidence: `docs/changelog/2026-07-31.mdx`; exact-head review passed
for `6093f44f`; writing rules and documentation style reviewed; `npx
vitest run test/changelog-docs.test.ts` passed 6/6; `npm run docs`
passed with zero Fern errors and two generic Fern upgrade notices.
- Agent: Codex Desktop
<!-- docs-review-head-sha: 6093f44 -->
<!-- docs-review-agents-blob-sha: 3dd7c24 -->

## DGX Station Hardware Evidence

- [ ] Tested on DGX Station
- Tested commit: Not applicable; no DGX Station host script changed.
- Station profile/scenario: Not applicable.
- Result: Not applicable.
- Supporting evidence: Not applicable.

## 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 validate:pr` passed after refreshing `origin/main` when hooks
were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — command/result or justification: `npx
vitest run test/changelog-docs.test.ts` passed 6/6 at `6093f44f`.
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result: Not applicable to a dated
prose-only release entry.
- [x] 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) —
validation passed with zero errors; Fern emitted two generic upgrade
notices.
- [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)
— the changelog entry has the required parser-safe MDX SPDX header;
dated changelog entries intentionally do not use page frontmatter.

---

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


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

## Summary by CodeRabbit

* **Documentation**
  * Added release notes for v0.0.100.
* Documented improvements to restore pairing, sandbox replacement,
onboarding recovery, lifecycle cleanup, runtime handling, build support,
host readiness, and end-to-end validation.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: install Install, setup, prerequisites, or uninstall flow bug-fix PR fixes a bug or regression platform: dgx-station Affects DGX Station hardware or workflows security

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants