fix(installer): warn with skipped-setup detail on an unrecognized Jetson release - #7624
Conversation
…son release Signed-off-by: Tinson Lai <tinsonl@nvidia.com>
📝 WalkthroughWalkthroughJetson setup now emits detailed stderr warnings when host setup is skipped for unparsable or unrecognized releases. Tests cover these paths, recognized releases, non-Jetson silence, and Vitest watch-trigger integration. ChangesJetson host setup
Estimated code review effort: 3 (Moderate) | ~20 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
Code Coverage OverviewLanguages: TypeScript TypeScript / code-coverage/pluginThe overall coverage in commit 87cd97e in the TypeScript / code-coverage/cliThe overall coverage in commit 87cd97e in the Show a code coverage summary of the most impacted files.
Updated |
PR Review Advisor — No blocking findings reportedAdvisor assessment: No blocking advisor findings reported Model lanes
Nemotron output stays in workflow artifacts and does not change the assessment above. E2E guidanceAdvisory only. E2E / PR Gate selects and runs jobs independently. Recommended E2E: This automated review informs maintainers. Warnings and suggestions do not require a response. A maintainer decides whether to merge. |
Signed-off-by: Tinson Lai <tinsonl@nvidia.com>
Signed-off-by: Tinson Lai <tinsonl@nvidia.com>
Signed-off-by: Tinson Lai <tinsonl@nvidia.com>
Signed-off-by: Tinson Lai <tinsonl@nvidia.com>
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
scripts/setup-jetson.sh (1)
72-78: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winTreat a missing revision as a parse failure.
The code validates
releasebut notrevision. For a line such as# R36 (release)without a parseableREVISION,l4t_versionbecomes36., which matches36.*and incorrectly enables JetPack 6 host setup instead of emitting the skipped-setup warning. Validate both components before constructingl4t_version, and add a regression test intest/setup-jetson.test.ts.Suggested fix
release="$(printf '%s\n' "$release_line" | sed -n 's/^# R\([0-9][0-9]*\) (release).*/\1/p')" revision="$(printf '%s\n' "$release_line" | sed -n 's/^.*REVISION: \([0-9][0-9]*\)\..*$/\1/p')" - l4t_version="${release}.${revision}" - if [[ -z "$release" ]]; then + if [[ -z "$release" || -z "$revision" ]]; then warn "Jetson detected but the L4T release could not be parsed from /etc/nv_tegra_release." warn_host_setup_skipped return 0 fi + + l4t_version="${release}.${revision}"🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@scripts/setup-jetson.sh` around lines 72 - 78, Update the Jetson version parsing flow around release and revision extraction to treat either missing component as a parse failure before constructing l4t_version. Preserve the existing warn_host_setup_skipped behavior for invalid metadata, and add a regression case in the setup-jetson tests covering a release line without a parseable REVISION.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Outside diff comments:
In `@scripts/setup-jetson.sh`:
- Around line 72-78: Update the Jetson version parsing flow around release and
revision extraction to treat either missing component as a parse failure before
constructing l4t_version. Preserve the existing warn_host_setup_skipped behavior
for invalid metadata, and add a regression case in the setup-jetson tests
covering a release line without a parseable REVISION.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 1a269c7c-c168-425c-87d8-03e407b465aa
📒 Files selected for processing (2)
scripts/setup-jetson.shtest/setup-jetson.test.ts
🚧 Files skipped from review as they are similar to previous changes (1)
- test/setup-jetson.test.ts
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
apurvvkumaria
left a comment
There was a problem hiding this comment.
Exact-head maintainer review: required checks pass, Advisor recommends merge_as_is, CodeRabbit has no unresolved actionable findings, risky installer behavior has focused regression coverage, and DCO/GitHub verification are current. Approved at 87cd97e.
<!-- markdownlint-disable MD041 --> ## Summary Add the canonical dated changelog entry for NemoClaw v0.0.97 before the release plan captures `origin/main`. The entry groups the user-visible and maintainer-facing changes since v0.0.96 while preserving the Deferred dual-Station status, experimental runtime-identity boundary, and pending physical IGX validation. ## Changes - Add `docs/changelog/2026-07-28.mdx` with the parser-safe MDX SPDX comment and exact `## v0.0.97` heading. - Summarize the 43 merged PRs in the release range, omitting internal-only changes from the public entry and linking each grouped change to its most specific published documentation. - Keep the experimental Okta reference explicitly opt-in and outside normal onboarding, keep the two-Station path Deferred, and state that physical IGX Orin validation remains pending. ### Source summary - [#7440](#7440), [#7443](#7443), and [#7445](#7445) -> `docs/changelog/2026-07-28.mdx`: Document read-only host readiness reports and fail-closed platform qualification. - [#7030](#7030) -> `docs/changelog/2026-07-28.mdx`: Document the Deferred trusted two-Station vLLM evaluation. - [#7265](#7265) -> `docs/changelog/2026-07-28.mdx`: Document the bounded experimental direct-runner Okta runtime-identity reference. - [#7711](#7711) and [#7648](#7648) -> `docs/changelog/2026-07-28.mdx`: Document compatible-endpoint reasoning effort and retired NVIDIA Build model paths. - [#7746](#7746), [#7763](#7763), and [#7681](#7681) -> `docs/changelog/2026-07-28.mdx`: Document safe compatible-provider creation, replacement refusal, and narrow OpenShell bridge URL handling. - [#7641](#7641), [#7690](#7690), [#7631](#7631), and [#7710](#7710) -> `docs/changelog/2026-07-28.mdx`: Document paused-container recovery, recreation journaling, pre-mutation uninstall checks, and source-checkout OpenShell selection. - [#7624](#7624) and [#7762](#7762) -> `docs/changelog/2026-07-28.mdx`: Document Jetson release diagnostics and bounded render-device group propagation. - [#7639](#7639), [#7760](#7760), [#7721](#7721), and [#7761](#7761) -> `docs/changelog/2026-07-28.mdx`: Document Telegram, MCP media-type, Hermes image-mode, and locked-restart fixes. - [#7653](#7653) and [#7680](#7680) -> `docs/changelog/2026-07-28.mdx`: Document Deep Agents policy tasks and the bounded Claude Code OAuth path. - [#7679](#7679) -> `docs/changelog/2026-07-28.mdx`: Document the checksum-bound libssh2 and Python HTMLParser backports. - [#7655](#7655), [#7651](#7651), [#7664](#7664), [#7666](#7666), [#7670](#7670), [#7719](#7719), and [#7741](#7741) -> `docs/changelog/2026-07-28.mdx`: Document exact candidate E2E evidence, Launchable selection, diagnostic consolidation, and trusted WSL validation. ## 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: `test/changelog-docs.test.ts` validates the dated changelog contract, MDX header, heading uniqueness, and release-entry structure. - [ ] 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: The committed `docs/changelog/2026-07-28.mdx` blob exactly matches the reviewed file. Completeness, factual accuracy, link shape, parser-safe MDX header, one-sentence-per-line style, `.docs-skip` compliance, and bounded product claims passed. - Agent: Codex Desktop documentation writer subagent <!-- docs-review-head-sha: da6aa27 --> <!-- docs-review-agents-blob-sha: be20a09 --> ## DGX Station Hardware Evidence - [ ] Tested on DGX Station - Tested commit: Not applicable; this PR changes only the dated changelog. - 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 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 — `npx vitest run test/changelog-docs.test.ts` passed 6/6. - [ ] Applicable broad gate passed — `npm test` for broad runtime/test-harness changes; `npm run check` for repo-wide validation/coverage changes — not applicable to this doc-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) — completed with 0 errors and 2 pre-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) — native changelog entries use the required parser-safe MDX SPDX comment and intentionally have no frontmatter. --- Signed-off-by: Charan Jagwani <cjagwani@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added improved host readiness reporting and Jetson onboarding guidance. * Added controls for reasoning effort with compatible endpoints and enhanced managed MCP discovery. * Improved Deep Agents task publication and preset support. * **Bug Fixes** * Hardened provider switching, sandbox recovery, uninstall behavior, and Telegram connectivity. * Improved container image integrity checks, media-type handling, and checksum validation. * Enhanced vLLM evaluation behavior and release diagnostics. * **Documentation** * Added the NemoClaw v0.0.97 changelog. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Summary
On a Jetson whose L4T release the installer does not recognize,
scripts/setup-jetson.shprinted one line and continued, so the user had no signal that host setup was skipped. It now names the skipped host configuration, states that sandbox pods lose ClusterIP routing to CoreDNS withoutbr_netfilter, lists the recognized L4T releases, and says that installation continues in an untested configuration. Release lines the script cannot parse take the same path and carry the same detail.Related Issue
Fixes #7612
Changes
scripts/setup-jetson.sh: add warnings that name the skipped work, its consequence, the recognized releases, and that installation continues untested.scripts/setup-jetson.sh: keep every warning on stderr so the parsed version written to stdout is unchanged.scripts/setup-jetson.sh: bind production detection to the canonical root-owned/etc/nv_tegra_releasepath.test/setup-jetson.test.ts: use a child-processPATHstub forheadinstead of a production path override, and prove that an inheritedNEMOCLAW_TEST_NV_TEGRA_RELEASE_PATHcannot redirect release detection.test/helpers/vitest-watch-triggers.tsandtest/vitest-watch-triggers.test.ts: registerscripts/setup-jetson.shas an opaque input so watch mode andnpm run test:changedselect its behavior tests.Type of Change
Quality Gates
docs/reference/troubleshooting.mdxalready documents the recognized L4T releases, the host setup applied for each, and the skipped-setup continuation path.f0825aa085c1a1e05c871b4d1155e121cbf153f551561eb68e1a3c0e3137105d.Documentation Writer Review
no-docs-neededdocs/reference/troubleshooting.mdxalready documents the recognized L4T releases, the host setup applied for each, the ClusterIP/CoreDNS consequence, and continuation when release metadata is not recognized. An incompleteREVISIONnow follows that same documented fail-safe path.DGX Station Hardware Evidence
Verification
Signed-off-by:line and every commit appears asVerifiedin GitHubpre-commit,commit-msg, andpre-pushhooks passed, ornpm run check:diffpassed when hooks were skipped or unavailablenpx vitest run --project integration test/setup-jetson.test.ts test/vitest-watch-triggers.test.ts test/platform-vitest-main-workflow.test.ts(3 files, 19 tests passed);bash -n scripts/setup-jetson.shpassed.npm testfor broad runtime/test-harness changes;npm run checkfor repo-wide validation/coverage changes — command/result:npm run docsbuilds without warnings (doc changes only)Signed-off-by: Tinson Lai tinsonl@nvidia.com