Skip to content

fix(install): defer Windows WSL provider selection until Node.js reads Docker config - #8209

Merged
jyaunches merged 16 commits into
mainfrom
fix/express-wsl-provider-selection
Aug 5, 2026
Merged

fix(install): defer Windows WSL provider selection until Node.js reads Docker config#8209
jyaunches merged 16 commits into
mainfrom
fix/express-wsl-provider-selection

Conversation

@laitingsheng

@laitingsheng laitingsheng commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Summary

Express setup chose the Windows WSL inference provider before the installer had installed Node.js, so a readable Docker configuration that it could not parse resolved as non-local and pinned install-ollama. Onboarding then detected the Windows-host Ollama, withheld that provider, and stopped before sandbox creation. Express selection now waits for the Node.js runtime and applies the same Docker Desktop check, and an installed Windows-host Ollama that the container runtime cannot reach no longer withholds the WSL-local install entry.

Related Issue

Fixes #8199

Changes

  • Add express_wsl_docker_context_needs_node in scripts/install.sh, true only when a readable Docker configuration decides the context and no Node.js can parse it yet.
  • Add select_express_wsl_ollama_provider, which selects Windows-host Ollama when the topology proves it, defers when only the missing runtime blocks the decision, and otherwise selects WSL-local Ollama.
  • Add resolve_pending_express_wsl_provider, called after install_nodejs and ensure_supported_runtime, which repeats the check with the exact configuration parse and reports the selected provider.
  • State the deferral in the express prompt instead of naming a provider the installer cannot determine yet.
  • Suppress the install-ollama menu entry only when the sandbox can reach the detected Windows-host Ollama, and pass that reachability from detectInferenceProviderHostState.
  • Record the deferred selection and the reachability rule in the Windows preparation page.
  • Isolate the upstream Shields deadline snapshot-reuse regression at its intended policy-composition seam so unrelated CI runs do not depend on full coordinator mocks.
  • Give the full failed-and-resumed Station onboarding coverage journey an environment-aware timeout after it exceeded Vitest's default budget in repeated CI runs.

The deferral keeps every existing fail-closed outcome: DOCKER_HOST, an overriding DOCKER_CONTEXT, a persisted non-default context, an unreadable configuration, and a malformed configuration all still select WSL-local Ollama. Its current consumer is the Windows WSL express path in main, and test/install-express-wsl-ollama.test.ts protects both the deferral and each fail-closed outcome.

windowsHostOllamaSupported is optional on OllamaInstallMenuInput because the value is read only when hasWindowsOllama is set. Its current consumer is detectInferenceProviderHostState, which always passes the resolved requirement, and src/lib/onboard/provider-host-state.test.ts protects that wiring.

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: maintainer nine-category security review refreshed for commit 6bca27be8; the current-main merge and removal of a redundant cache-sensitive assertion did not change production behavior. No blocking findings were identified across secrets, input validation, authorization, dependencies, logging, cryptography, configuration, or privilege boundaries.
  • 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: docs-updated
  • Evidence: docs/get-started/windows-preparation.mdx documents deferred Windows WSL provider selection and the WSL-local Ollama fallback. The independent documentation-writer review covered commit 6bca27be8, passed the docs build with 0 errors, and verified the OpenClaw, Hermes, and Deep Agents variants. The tunnel refactor preserves existing best-effort model unloading; the final test-only commit removes a redundant cache-sensitive assertion. The complete tunnel test file passed 38/38, git diff --check passed, and signed commit plus push hooks passed, including CLI type checking.
  • Agent: Codex Desktop

DGX Station Hardware Evidence

  • Tested on DGX Station
  • Tested commit:
  • Station profile/scenario:
  • Result:
  • Supporting evidence:

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 — command/result or justification: focused installer/provider/menu/tunnel suites passed 86/86; the Shields suite passed 34/34; the focused Station resume case passed 1/1 and its complete file passed 22/22; npm run typecheck:cli passed; npm run docs passed with route check OK; normal merge and prior-head pre-push hooks passed.
  • Applicable broad gate passed — npm test for broad runtime/test-harness changes; npm run check for repo-wide validation/coverage changes — command/result:
  • 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 0 errors and 2 warnings
  • Doc pages follow the style guide (doc changes only)
  • New doc pages include SPDX header and frontmatter (new pages only)

Signed-off-by: Tinson Lai tinsonl@nvidia.com

Summary by CodeRabbit

  • New Features

    • Improved Windows and WSL Ollama setup to detect whether Windows-host Ollama is reachable.
    • Keeps WSL-local Ollama installation available when Windows-host Ollama cannot be accessed.
    • Selects the appropriate provider after required runtime and Docker details are available.
    • Ensures Ollama models are unloaded when stopping all services.
  • Documentation

    • Expanded Windows setup guidance for runtime detection and Ollama fallback behavior.
  • Bug Fixes

    • Improved handling of unavailable or unreachable Windows-host Ollama configurations.

…s Docker config

Express setup ran before the Node.js bootstrap, so a readable Docker configuration it could not
parse resolved as non-local and pinned install-ollama on hosts whose Docker Desktop topology
supports Windows-host Ollama. Selection now waits for the runtime and applies the same check.

Keep the WSL-local install entry on offer when the container runtime cannot reach an installed
Windows-host Ollama, so a requested install-ollama still has a provider to select.

Signed-off-by: Tinson Lai <tinsonl@nvidia.com>
@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Review 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: 2ab5dd74-1897-4865-a0b4-69d4e9f31045

📥 Commits

Reviewing files that changed from the base of the PR and between 31223a8 and 6bca27b.

📒 Files selected for processing (1)
  • src/lib/tunnel/services.test.ts
💤 Files with no reviewable changes (1)
  • src/lib/tunnel/services.test.ts

📝 Walkthrough

Walkthrough

The WSL installer defers Ollama provider selection until Node.js can resolve Docker configuration. Onboarding checks Windows-host Ollama reachability and retains WSL-local installation when the host service is inaccessible. Tests cover provider resolution, cleanup injection, policy handling, and integration timing.

Changes

WSL Ollama provider handling

Layer / File(s) Summary
Ollama menu reachability
src/lib/onboard/ollama-install-menu.ts, src/lib/onboard/ollama-install-menu.test.ts, src/lib/onboard/provider-host-state.ts, src/lib/onboard/provider-host-state.test.ts
The installation menu accepts windowsHostOllamaSupported. Provider state passes Windows-host reachability to menu resolution. WSL-local installation remains available when Windows-host Ollama is unusable.
Deferred Express provider selection
scripts/install.sh, test/install-express-wsl-ollama.test.ts, docs/get-started/windows-preparation.mdx
WSL Express selection waits for Node.js when Docker configuration cannot be parsed. The installer then selects Windows-host or WSL-local Ollama. Tests and documentation cover deferred, immediate, remote, and unreachable-host paths.

Test seam updates

Layer / File(s) Summary
Injectable Ollama cleanup
src/lib/tunnel/services.ts, src/lib/tunnel/services.test.ts
stopAll accepts an optional Ollama unload callback. Tests inject the callback and verify that unloading occurs before the final stopped-status message.
Focused integration test execution
src/lib/shields/index.test.ts, src/lib/state/onboard-session-station-express.test.ts
The Shields test directly validates unchanged policy snapshots without temporary storage. The Station Express resume test uses a 15-second timeout.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related PRs

Suggested labels: area: onboarding

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Out of Scope Changes check ⚠️ Warning The PR includes unrelated shield-policy, Station Express timeout, and tunnel cleanup changes not required by issue #8199. Move unrelated shield-policy, Station Express timeout, and tunnel cleanup changes into separate pull requests.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the primary fix: defer Windows WSL provider selection until Node.js can read Docker configuration.
Linked Issues check ✅ Passed The changes address issue #8199 by deferring provider selection, resolving Docker topology after Node.js installation, and preserving an available Ollama provider.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/express-wsl-provider-selection

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

@laitingsheng laitingsheng added NV QA Bugs found by the NVIDIA QA Team area: install Install, setup, prerequisites, or uninstall flow bug-fix PR fixes a bug or regression platform: wsl Affects Windows Subsystem for Linux labels Aug 4, 2026
@github-code-quality

github-code-quality Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall coverage in commit 6bca27b in the fix/express-wsl-prov... branch remains at 96%, unchanged from commit 962f1c3 in the main branch.

TypeScript / code-coverage/cli

The overall coverage in commit 6bca27b in the fix/express-wsl-prov... branch remains at 81%, unchanged from commit 962f1c3 in the main branch.

Show a code coverage summary of the most impacted files.
File main 962f1c3 fix/express-wsl-prov... 6bca27b +/-
src/lib/onboard...e-patch-flow.ts 76% 71% -5%
src/lib/policy/...ne-exclusion.ts 96% 92% -4%
src/lib/private-networks.ts 93% 90% -3%
src/lib/inferen...vider-models.ts 69% 68% -1%
src/lib/onboard...install-menu.ts 88% 88% 0%
src/lib/sandbox...rce-identity.ts 87% 87% 0%
src/lib/credentials/store.ts 55% 56% +1%
src/lib/inferen...er-discovery.ts 87% 88% +1%
src/lib/tunnel/services.ts 76% 80% +4%
src/lib/domain/.../connect-env.ts 89% 97% +8%

Updated August 05, 2026 05:24 UTC

@laitingsheng laitingsheng removed the NV QA Bugs found by the NVIDIA QA Team label Aug 4, 2026
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 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.

Inline comments:
In `@src/lib/onboard/provider-host-state.ts`:
- Line 223: Update the value assigned to windowsHostOllamaSupported in the
provider-host state construction to require both
windowsHostOllamaDockerRequirement.supported and windowsOllamaReachable, so it
represents usable Windows-host Ollama reachability rather than Docker topology
alone. Add a regression test covering Docker Desktop with an installed but
unreachable Windows-host daemon and verify install-ollama remains available.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: b6109db5-74c2-4f08-84a3-3fed27b56c6b

📥 Commits

Reviewing files that changed from the base of the PR and between 00c6111 and 1c36c73.

📒 Files selected for processing (7)
  • docs/get-started/windows-preparation.mdx
  • scripts/install.sh
  • src/lib/onboard/ollama-install-menu.test.ts
  • src/lib/onboard/ollama-install-menu.ts
  • src/lib/onboard/provider-host-state.test.ts
  • src/lib/onboard/provider-host-state.ts
  • test/install-express-wsl-ollama.test.ts

Comment thread src/lib/onboard/provider-host-state.ts Outdated
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor — Informational

Advisor assessment: Informational / low confidence
Next action: No advisor follow-up needed.
Findings: 0 blockers · 0 warnings · 0 suggestions
Status: Partial review preserved 0 canonical finding(s) and 3 terminology decision(s) before the advisor stopped.

Model lanes

  • GPT-5.6 Terra (primary): Failed after a partial review · low confidence · 0 blockers · 0 warnings · 0 suggestions
  • Nemotron 3 Ultra (second opinion): Completed · high confidence · 0 blockers · 0 warnings · 0 suggestions

Second-opinion terminology and E2E selections are advisory. They do not change the primary assessment or E2E / PR Gate.

3 semantic terminology decisions

Terminology decisions are advisory. They affect the assessment only when a separate finding identifies concrete semantic impact.

  • established — Windows-host Ollama at docs/get-started/windows-preparation.mdx:176: Keep `Windows-host Ollama`; repository documentation, installer comments, and tests use this term consistently.
  • established — WSL-local Ollama at scripts/install.sh:4207: Keep `WSL-local Ollama`; it consistently identifies the fallback provider path.
  • justified — effective Docker context at docs/get-started/windows-preparation.mdx:173: Keep `effective Docker context`; the modifier explains why the installer must account for both overrides and persisted configuration.

E2E guidance

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

Recommended E2E: cloud-onboard, managed-image-multiarch-startup, 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.

cv
cv previously requested changes Aug 4, 2026

@cv cv left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The current wiring does not implement the documented reachability rule. detectInferenceProviderHostState passes only windowsHostOllamaDockerRequirement.supported as windowsHostOllamaSupported, even though windowsOllamaReachable is computed immediately above. On Docker Desktop with an installed but unreachable Windows-host daemon, usableWindowsOllama remains true and suppresses the WSL-local install-ollama entry. Pass actual usability (topology support and daemon reachability) and add a regression test where Docker Desktop is supported but the host probe fails.

Security review: no hardcoded secret, unsafe parser, authorization bypass, dependency, cryptography, header, or privilege regression was found in the current diff. The installer/onboarding correctness defect above blocks approval because it can leave the user without the fallback provider that this PR promises. The branch is also behind main; refresh it and obtain current required E2E evidence after the fix. Complete the documentation-writer review receipt for the changed Windows page on the final head.

cv
cv previously requested changes Aug 4, 2026

@cv cv left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed commit 9828f6c16. The only change after the prior review is the main merge, so the reachability defect remains: windowsHostOllamaSupported receives topology support without windowsOllamaReachable. An installed but unreachable Windows daemon can still suppress the WSL-local install entry. Pass actual usability and add the Docker Desktop/unreachable-daemon regression test requested in the prior review.

The shared aiohttp main-CI failure is tracked by #8213 and does not replace this code correction. After the fix, rerun required CI/E2E and the documentation-writer review for the resulting commit.

@apurvvkumaria apurvvkumaria self-assigned this Aug 4, 2026
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>

@jyaunches jyaunches left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed exact head f54c3a6. This is the right solution for #8199: it keeps the authoritative JSON parser, defers WSL provider selection only until Node.js is available, preserves fail-closed remote Docker handling, and requires Windows-host Ollama reachability before suppressing the WSL-local fallback. All actionable CodeRabbit and published PR Review Advisor feedback is addressed; the primary advisor reports merge_as_is with zero findings. Required CI and the selected cloud-onboard, onboard-repair, and onboard-resume E2E scenarios pass. Security review found no issues across the nine required categories.

@github-actions github-actions Bot added v0.0.103 and removed v0.0.102 labels Aug 4, 2026
@jyaunches
jyaunches enabled auto-merge (squash) August 5, 2026 00:49
@jyaunches
jyaunches dismissed stale reviews from cv and cv August 5, 2026 00:50

Dismissed as stale on current head f28b5a8: the requested Windows-host reachability wiring and unreachable-daemon regression were implemented in e31949e and remain present after the latest main merge. Superseded by later exact-head review.

jyaunches and others added 3 commits August 4, 2026 21:49
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@cv

cv commented Aug 5, 2026

Copy link
Copy Markdown
Collaborator

CI for #8278 has now timed out twice in the unchanged stopAll test. Commits f54c3a62238d7c058bf85737ec48d3515693e3a2 and ee3bd723715c4421271642a4cd368cc65ac13c4f contain the reviewed fix and apply cleanly to current main.

To preserve Julie Yaunches's authorship when those commits are transferred to a focused CI repair, repository policy requires Julie's own DCO declaration in this PR description. Julie, please add this line to the description yourself:

Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>

Maintainers cannot add or copy that declaration on a contributor's behalf. No code change is requested.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
src/lib/tunnel/services.test.ts (1)

454-456: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick win

Cover the default Ollama cleanup path.

stopAllForTest always injects unloadOllamaModels, so the changed tests exercise only the injected branch. Add or retain one test that calls stopAll without this option, mocks ../inference/ollama/proxy, and verifies that the fallback cleanup runs.

As per path instructions, tests must verify behavior through the public boundary and mock external dependencies instead of calling a real NVIDIA API.

🤖 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/tunnel/services.test.ts` around lines 454 - 456, Update the tests
around stopAllForTest and the public stopAll API to cover the default cleanup
path without injecting unloadOllamaModels. Mock ../inference/ollama/proxy, call
stopAll without the option, and verify the fallback Ollama cleanup executes
without contacting a real NVIDIA API; retain the injected-branch coverage
separately.

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/tunnel/services.test.ts`:
- Around line 454-456: Update the tests around stopAllForTest and the public
stopAll API to cover the default cleanup path without injecting
unloadOllamaModels. Mock ../inference/ollama/proxy, call stopAll without the
option, and verify the fallback Ollama cleanup executes without contacting a
real NVIDIA API; retain the injected-branch coverage separately.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 0c825694-aaa7-48c8-b4cb-f3134042d293

📥 Commits

Reviewing files that changed from the base of the PR and between 2b18817 and b99632e.

📒 Files selected for processing (11)
  • docs/get-started/windows-preparation.mdx
  • scripts/install.sh
  • src/lib/onboard/ollama-install-menu.test.ts
  • src/lib/onboard/ollama-install-menu.ts
  • src/lib/onboard/provider-host-state.test.ts
  • src/lib/onboard/provider-host-state.ts
  • src/lib/shields/index.test.ts
  • src/lib/state/onboard-session-station-express.test.ts
  • src/lib/tunnel/services.test.ts
  • src/lib/tunnel/services.ts
  • test/install-express-wsl-ollama.test.ts
🚧 Files skipped from review as they are similar to previous changes (7)
  • src/lib/onboard/provider-host-state.ts
  • test/install-express-wsl-ollama.test.ts
  • src/lib/onboard/ollama-install-menu.test.ts
  • src/lib/onboard/ollama-install-menu.ts
  • src/lib/onboard/provider-host-state.test.ts
  • docs/get-started/windows-preparation.mdx
  • scripts/install.sh

apurvvkumaria and others added 2 commits August 4, 2026 20:08
@copy-pr-bot

copy-pr-bot Bot commented Aug 5, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
@jyaunches
jyaunches merged commit 0385c04 into main Aug 5, 2026
72 of 73 checks passed
@jyaunches
jyaunches deleted the fix/express-wsl-provider-selection branch August 5, 2026 05:36
@cjagwani cjagwani mentioned this pull request Aug 5, 2026
23 tasks
cjagwani added a commit that referenced this pull request Aug 5, 2026
<!-- markdownlint-disable MD041 -->
## Summary

Add the canonical dated changelog entry for the planned NemoClaw
v0.0.103 release.
The new `docs/changelog/2026-08-05.mdx` entry uses the exact `##
v0.0.103` heading and summarizes supported user-visible changes merged
since v0.0.102.

## Changes

- Add the parser-safe MDX SPDX header, three-paragraph release summary,
and detailed grouped bullets to `docs/changelog/2026-08-05.mdx`.
- Link each release-note group to the most specific published OpenClaw,
Hermes, or Deep Agents documentation routes.
- Exclude dormant MXC and Podman foundations, internal managed-inference
adapters, test-only changes, and maintainer tooling from the supported
product narrative.

### Source summary

- [#8082](#8082) ->
`docs/changelog/2026-08-05.mdx`: Document the new one-command agent
launch flow.
- [#8314](#8314) ->
`docs/changelog/2026-08-05.mdx`: Document managed vLLM host capability
validation and restart handling.
- [#8248](#8248) ->
`docs/changelog/2026-08-05.mdx`: Record the DGX Spark Qwen profile MTP
default change.
- [#8223](#8223) ->
`docs/changelog/2026-08-05.mdx`: Record explicit model preservation
across provider switches.
- [#8209](#8209) ->
`docs/changelog/2026-08-05.mdx`: Document corrected Windows WSL provider
selection.
- [#8316](#8316) ->
`docs/changelog/2026-08-05.mdx`: Record clean managed-checkout reuse
after installation.
- [#8239](#8239) ->
`docs/changelog/2026-08-05.mdx`: Record the packaged-service teardown
fallback.
- [#8247](#8247) ->
`docs/changelog/2026-08-05.mdx`: Document uninstall behavior for an
already-removed sandbox.
- [#7998](#7998) ->
`docs/changelog/2026-08-05.mdx`: Record preserved container-start
diagnostics.
- [#8027](#8027) ->
`docs/changelog/2026-08-05.mdx`: Record journal-backed not-ready repair
authority.
- [#7812](#7812) ->
`docs/changelog/2026-08-05.mdx`: Document actionable rebuild preflight
diagnostics.
- [#8222](#8222) ->
`docs/changelog/2026-08-05.mdx`: Record redacted top-level CLI failures.
- [#8313](#8313) ->
`docs/changelog/2026-08-05.mdx`: Record structured MCP bridge
destruction failures.
- [#8211](#8211) ->
`docs/changelog/2026-08-05.mdx`: Document cleanup of incomplete snapshot
captures.
- [#8212](#8212) ->
`docs/changelog/2026-08-05.mdx`: Document best-effort post-restore
policy reconciliation.
- [#8245](#8245) ->
`docs/changelog/2026-08-05.mdx`: Clarify manifest-defined OpenClaw
workspace persistence.
- [#8254](#8254) ->
`docs/changelog/2026-08-05.mdx`: Include corrected snapshot restore
selection guidance.
- [#8238](#8238) ->
`docs/changelog/2026-08-05.mdx`: Document preservation of managed MCP
policy entries.
- [#7568](#7568) ->
`docs/changelog/2026-08-05.mdx`: Record mutable-default Shields rollback
preservation.
- [#8200](#8200) ->
`docs/changelog/2026-08-05.mdx`: Record truthful Shields state after a
rejected transition.
- [#7895](#7895) ->
`docs/changelog/2026-08-05.mdx`: Record descriptor-bound Shields lock
inspection.
- [#7892](#7892) ->
`docs/changelog/2026-08-05.mdx`: Document the canonical Hermes dashboard
profile and migration.
- [#7871](#7871) ->
`docs/changelog/2026-08-05.mdx`: Document fail-closed Hermes cron
restore.
- [#7894](#7894) ->
`docs/changelog/2026-08-05.mdx`: Record the reset Hermes health budget
after recovery.
- [#8228](#8228) ->
`docs/changelog/2026-08-05.mdx`: Document Hermes build-time corporate CA
trust.
- [#8206](#8206) ->
`docs/changelog/2026-08-05.mdx`: Document bounded Deep Agents Code
failure classification.
- [#8297](#8297) ->
`docs/changelog/2026-08-05.mdx`: Record reuse of the published Deep
Agents Code base image.
- [#8321](#8321) ->
`docs/changelog/2026-08-05.mdx`: Document aligned endpoint SSRF
protections and userinfo rejection.
- [#8299](#8299) ->
`docs/changelog/2026-08-05.mdx`: Document the fail-closed `setpriv`
transition in managed images.
- [#7603](#7603) ->
`docs/changelog/2026-08-05.mdx`: Record corrected confidentiality-root
traversal.
- [#8334](#8334) ->
`docs/changelog/2026-08-05.mdx`: Record removal of the unsupported logs
audit example.
- [#8256](#8256) ->
`docs/changelog/2026-08-05.mdx`: Record reordered network-policy
walkthrough prerequisites.
- [#7767](#7767) ->
`docs/changelog/2026-08-05.mdx`: Record platform runtime shape
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: `npx vitest
run test/changelog-docs.test.ts` passed all 6 tests.
- [ ] 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

- [ ] Documentation writer subagent reviewed the completed changes
- Result: `docs-updated`
- Evidence: `docs/changelog/2026-08-05.mdx` follows the release-prep and
documentation writing rules. The changelog contract tests passed 6/6,
and `npm run docs` completed with 0 errors and the repository's 2
existing Fern warnings.
- Agent: Codex Desktop
<!-- docs-review-head-sha: 66fcd80 -->
<!-- docs-review-agents-blob-sha: 3dd7c24 -->

## DGX Station Hardware Evidence

- [ ] Tested on DGX Station
- Tested commit: Not applicable.
- 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 — `npx vitest run
test/changelog-docs.test.ts`: 1 file and 6 tests 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 run for this doc-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) —
completed with 0 errors and 2 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)
— the native changelog uses the required parser-safe MDX SPDX comment
and does not use page frontmatter.

---
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>


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

## Summary by CodeRabbit

* **Documentation**
  * Added release notes for v0.0.103.
  * Documented the new `nemoclaw launch` command.
* Included updates covering onboarding, inference, installation,
recovery, snapshots, security, integrations, endpoint validation,
sandbox hardening, and related guidance.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
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: wsl Affects Windows Subsystem for Linux

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[WSL2][Install] Express setup selects install-ollama and aborts with provider unavailable

4 participants