fix(installer): preserve managed storage remediation - #8768
Conversation
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (2)
📝 WalkthroughWalkthroughThe installer host preflight now gates storage remediation by gateway-management state and sanitizes admission identifiers. Shared test helpers cover these cases. NVIDIA driver-version tests now cover uniform and invalid command output. ChangesStorage remediation admission
NVIDIA driver version validation
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant Installer as run_installer_host_preflight
participant Gateway as gateway-management module
participant Admission as readiness admission evaluator
participant Onboarding as onboard session
Installer->>Gateway: load gateway declaration
Gateway-->>Installer: return gateway mode
Installer->>Admission: evaluate storage remediation permission
Admission-->>Installer: return admission result and IDs
Installer->>Onboarding: run onboarding when admission passes
Possibly related PRs
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Comment |
PR Review Advisor — No blocking findings reportedAdvisor assessment: No blocking advisor findings reported Model lanes
Second-opinion terminology and E2E selections are advisory. Live E2E does not run automatically for pull requests. 3 semantic terminology decisionsTerminology decisions are advisory. They affect the assessment only when a separate finding identifies concrete semantic impact.
E2E guidanceAdvisory only. A maintainer can dispatch the default E2E suite against this exact revision. Recommended E2E: 2 optional E2E recommendations
This automated review informs maintainers. Warnings and suggestions do not require a response. A maintainer decides whether to merge. |
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
<!-- markdownlint-disable MD041 --> ## Summary This PR updates the August 10, 2026 v0.0.106 release entry with gateway readiness fixes that merged after PR #8756. PRs #8765, #8767, and #8768 remain outside this entry because they are open and do not carry the `v0.0.106` release label. ## Changes - Document acceptance of OpenShell v0.0.101 `Server:` endpoint output and target-bound process tags when trusted listener evidence matches the configured gateway. - Document preservation of selected-gateway stale state so onboarding can reconcile a registered gateway when a gateway-scoped OpenShell status check cannot connect. - Record evidence-backed exclusions for internal image, startup, qualification, proxy-environment, CI, and test-harness changes in PRs #8754, #8609, #8762, #8432, #8766, and #8581. - Exclude PRs #8765, #8767, and #8768 because their changes are absent from `main` and the PRs do not carry the `v0.0.106` release label. The release entry must be updated after any of those PRs merges for v0.0.106. ## 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 dated changelog SPDX placement, version headings, forbidden terms, and link form. - [ ] 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-08-10.mdx`; an independent Codex Desktop subagent reviewed the writing rules and documentation style, terminology, structure, voice, code-sample presentation, links, source and test accuracy, release meaning, product scope, and evidence-backed exclusions at commit `190bf882c`. - Agent: Codex Desktop <!-- docs-review-head-sha: 190bf88 --> <!-- docs-review-agents-blob-sha: c4923a3 --> ## DGX Station Hardware Evidence - [ ] Tested on DGX Station - Tested commit: Not applicable; `scripts/prepare-dgx-station-host.sh` is unchanged. - 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 tests. - [ ] 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 documentation-only release-entry update. - [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) — result: passed with 0 errors and 2 existing 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) — no page was added. --- Signed-off-by: Julie Yaunches <jyaunches@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Improved gateway readiness detection for OpenShell v0.0.101 endpoint output. * Process tags are now accepted only when they match trusted listener information for the configured gateway. * Preserved stale gateway status during connection failures to support accurate onboarding reconciliation. <!-- end of auto-generated comment: release notes by coderabbit.ai --> Co-authored-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
There was a problem hiding this comment.
🧹 Nitpick comments (1)
src/lib/inference/nim.ts (1)
708-708: 🗄️ Data Integrity & Integration | 🔵 Trivial | ⚡ Quick winAdd a two-component driver-version boundary test.
version-at-leastaccepts595.84and compares missing components as zero. Existing tests do not pass a two-component value through bothcreateHostReadinessReportandresolveManagedInferenceServing; add this public-boundary coverage.🤖 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 `@src/lib/inference/nim.ts` at line 708, Add public-boundary tests using a two-component driver version such as 595.84, passing it through both createHostReadinessReport and resolveManagedInferenceServing. Verify version-at-least accepts the value and compares its missing component as zero, while preserving existing behavior for other version formats.Source: Path instructions
🤖 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.
Nitpick comments:
In `@src/lib/inference/nim.ts`:
- Line 708: Add public-boundary tests using a two-component driver version such
as 595.84, passing it through both createHostReadinessReport and
resolveManagedInferenceServing. Verify version-at-least accepts the value and
compares its missing component as zero, while preserving existing behavior for
other version formats.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: d8bdbe40-ac67-4408-9f2c-f8fe6e55d21f
📒 Files selected for processing (4)
src/lib/inference/llama-cpp/managed-selection.test.tssrc/lib/inference/nim-driver-version.test.tssrc/lib/inference/nim.tssrc/lib/inference/serving/resolver.test.ts
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
<!-- markdownlint-disable MD041 --> ## Summary Completes the v0.0.106 changelog for four user-visible changes that merged before the tag but were omitted from the pre-tag entry. Keeps public security pages focused on operator guidance by relocating maintenance contracts to contributor guidance and the owning OpenClaw dependency review. Records PR #8753's portable inference descriptor as Experimental while leaving its existing workflow documentation unchanged. ## Changes - Add managed-container restart-transition recovery from PR #8765, Shields parent-owner preservation from PR #8767, and managed storage remediation plus NVIDIA driver parsing from PR #8768 to the canonical v0.0.106 entry. - Add the Experimental portable inference descriptor from PR #8753 to the v0.0.106 entry, including its short-lived credential boundary, manual standby behavior, and owning setup page. - Keep Process Controls focused on the operator-facing immutable-image boundary and move the blueprint image-pin maintenance contract to `CONTRIBUTING.md`. - Keep Gateway and Secret Controls focused on operator actions and move the OpenClaw audit-suppression tests and distinct removal conditions to the owning OpenClaw 2026.7.1 dependency review. ## 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 dated-changelog, published-route, and documentation-link tests cover the changed release entry and links. - [ ] 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) - [x] Sensitive-path review completed or maintainer-approved waiver recorded — reviewer/approval link/justification: an independent Codex Desktop documentation writer reviewed exact head `bbfed36ca`; the review verified the operator-facing security claims, the distinct `allowInsecureAuth` and device-auth suppression removal conditions against their generator branches, and the confirmed Experimental #8753 release claim. No runtime or policy behavior changes. - [ ] 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: `CONTRIBUTING.md`, `docs/changelog/2026-08-10.mdx`, `docs/security/gateway-authentication-controls.mdx`, `docs/security/openclaw-2026.7.1-dependency-review.md`, and `docs/security/process-controls.mdx`; the subagent reviewed `docs/CONTRIBUTING.md`, `WRITING.md`, terminology, structure, voice, code-sample presentation, canonical ownership, factual accuracy, and product scope. - Agent: Codex Desktop <!-- docs-review-head-sha: bbfed36 --> <!-- docs-review-agents-blob-sha: c4923a3 --> ## DGX Station Hardware Evidence - [ ] Tested on DGX Station - Tested commit: Not applicable; `scripts/prepare-dgx-station-host.sh` is unchanged. - 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 test/check-docs-published-routes.test.ts test/check-docs-links.test.ts` passed; `npm run docs` and `git diff --check` passed again after the review correction. - [ ] 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 this bounded documentation-only change. - [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) — result: passed with zero errors and the existing light-mode accent contrast warning. - [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) — no new pages. --- Signed-off-by: Miyoung Choi <miyoungc@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Documentation** - Documented requirements for keeping managed sandbox image digest pins synchronized and immutable. - Added guidance for validating custom images and using reviewed image sources during onboarding. - Expanded release notes with portable inference profiles, endpoint references, cleanup behavior, startup handling, and installer details. - Updated security documentation with current dependency-review information and authentication-control boundaries. - Clarified sandbox ownership, permissions, workload identity, and managed-container restart behavior. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Miyoung Choi <miyoungc@nvidia.com>
Summary
Installer host preflight adopted canonical readiness admission in #8738 but hardcoded storage remediation off. Managed Docker overlayfs/containerd hosts therefore exited before onboarding could build the documented
fuse-overlayfsreplacement image. This change derives the waiver from canonical gateway lifecycle authority, keeps external, invalid, and non-remediable states blocked, and reports bounded admission IDs when preflight fails.The first manual PR E2E run then exposed a separate parser mismatch after installer preflight: the generic GPU host reported valid NVIDIA driver
595.84, while the detector required exactly three numeric components. The bounded follow-up accepts two- or three-component NVIDIA versions without changing the minimum, resolver, schema, or supported surface.Changes
nemoclaw-managed; normal onboarding revalidates that authority before lifecycle effects.Type of Change
Quality Gates
580.65.06minimum. It adds no command, configuration, schema, minimum, or support claim.4d78d7355on baseacda7aa22passed all nine security categories with no findings. It verified canonical authority parsing and revalidation, managed-only lifecycle effects, fail-closed external/invalid/non-remediable states, sanitized admission IDs, and strict bounded driver parsing.Documentation Writer Review
no-docs-neededdocs/get-started/prerequisites.mdx,docs/reference/system-readiness.mdx, anddocs/deployment/gateway-lifecycle-authority.mdxalready document managed storage remediation and external lifecycle authority.docs/inference/set-up-llama-cpp.mdxalready requires NVIDIA driver version580.65.06or later; accepting valid two- or three-component versions restores that contract. The generic Linux preset remains explicit-only and experimental.DGX Station Hardware Evidence
Verification
Signed-off-by:line and every commit appears asVerifiedin GitHubpre-commit,commit-msg, andpre-pushhooks passed, ornpm run validate:prpassed after refreshingorigin/mainwhen hooks were skipped or unavailablenpm exec -- vitest run --project installer-integration test/install-preflight.test.ts --maxWorkers=4— exact reviewed patch passed 98/99; the unrelated five-second release-tag fixture timed out, then passed alone 1/1. The six changed readiness cases passed, and the byte-identical pre-merge candidate passed 99/99 under the same worker limit.npm exec -- vitest run --project cli src/lib/inference/nim-driver-version.test.ts src/lib/inference/llama-cpp/managed-selection.test.ts src/lib/inference/serving/resolver.test.ts— 49/49 passed.npm exec -- vitest run --project e2e-support test/e2e/support/base-image-publication.test.ts— 39/39 passed after merging upstream repairs fix(ci): complete main-only lifecycle evidence #8771 and test(ci): require lifecycle publisher paths #8772.npm run test:changed— passed; the clean checkout selected no CLI, plugin, or E2E-support source tests and the integrated growth contract passed 4/4.npm run validate:pr— passed all pre-commit, commit-message, and pre-push checks at exact head.npm exec -- vitest run --project integration test/install-preflight.test.tsreports no matching tests because project membership assigns this file toinstaller-integration; the owning lane is recorded above.llama-cpp-generic-gpupassed installer preflight and exposed the two-component driver parser mismatch fixed here. Exact-head E2E is pending.npm testfor broad runtime/test-harness changes;npm run checkfor repo-wide validation/coverage changes — command/result: not applicable to these bounded installer-admission and driver-parser changes; targeted installer and CLI suites plus required CI are the applicable evidence.npm run docsbuilds without warnings (doc changes only)Signed-off-by: Julie Yaunches jyaunches@nvidia.com
Summary by CodeRabbit