fix(windows): enable Docker WSL integration and avoid Ubuntu first-run races#4346
Conversation
…n races Signed-off-by: zyang-dev <267119621+zyang-dev@users.noreply.github.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 (1)
📝 WalkthroughWalkthroughEnables and configures Docker Desktop WSL integration from the Windows bootstrap script, rewrites WSL distro install/readiness orchestration, threads WSL-aware onboarding hints into error messages, updates tests to assert orchestration and hints, and adds CI workflow steps for WSL setup and ext4 workspace syncing. ChangesDocker Desktop WSL Integration and Windows Bootstrap Orchestration
Estimated code review effort🎯 4 (Complex) | ⏱️ ~75 minutes Possibly related issues
Possibly related PRs
Suggested labels
Suggested reviewers
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
E2E Advisor RecommendationRequired E2E: Dispatch hint: Full advisor summaryE2E Recommendation AdvisorBase: Required E2E
Optional E2E
New E2E recommendations
Dispatch hint
|
E2E Scenario Advisor RecommendationRequired scenario E2E: Dispatch required scenario E2E:
Full scenario advisor summaryE2E Scenario AdvisorBase: Required scenario E2E
Optional scenario E2E
Relevant changed files
|
PR Review AdvisorFindings: 0 needs attention, 12 worth checking, 1 nice ideas Review findings🛠️ Needs attention
🔎 Worth checking
🌱 Nice ideas
Since last review detailsCurrent findings:
This is an automated advisory review. A human maintainer must make the final merge decision. |
There was a problem hiding this comment.
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 `@test/bootstrap-windows.test.ts`:
- Around line 256-257: The test currently sets $settingsDir to a fixed Join-Path
$env:TEMP 'docker-settings-test' which can leave stale files and make
backupCount assertions flaky; change the setup to create a unique settings
directory (e.g., append a GUID or random suffix) and assign that path to
$settingsDir and $env:APPDATA so each test run uses an isolated directory;
ensure the test creates the directory before use and (optionally) removes it
during teardown to avoid accumulation.
🪄 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: da6d23c3-5fd3-4071-a64d-e84e96f5de0e
📒 Files selected for processing (8)
scripts/bootstrap-windows.ps1src/lib/onboard/bridge-dns-preflight.test.tssrc/lib/onboard/bridge-dns-preflight.tssrc/lib/onboard/gateway-sandbox-reachability.test.tssrc/lib/onboard/gateway-sandbox-reachability.tssrc/lib/onboard/preflight.test.tssrc/lib/onboard/preflight.tstest/bootstrap-windows.test.ts
Signed-off-by: zyang-dev <267119621+zyang-dev@users.noreply.github.com>
Signed-off-by: zyang-dev <267119621+zyang-dev@users.noreply.github.com>
Signed-off-by: zyang-dev <267119621+zyang-dev@users.noreply.github.com>
Signed-off-by: zyang-dev <267119621+zyang-dev@users.noreply.github.com>
…om/NVIDIA/NemoClaw into fix/windows-docker-wsl-integration
Selective E2E Results — ✅ All requested jobs passedRun: 26554736464
|
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Selective E2E Results — ✅ All requested jobs passedRun: 26555123831
|
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Selective E2E Results — ✅ All requested jobs passedRun: 26555280009
|
Selective E2E Results — ✅ All requested jobs passedRun: 26555411779
|
Resolves conflicts in: - .github/workflows/e2e-scenarios.yaml (WSL run step) - tools/e2e-scenarios/workflow-boundary.mts (boundary contract test) main brought PR #4346 ("fix(windows): enable Docker WSL integration and avoid Ubuntu first-run races"): the WSL run step is now a PowerShell wrapper that writes a bash script to RUNNER_TEMP, maps it into WSL via wslpath, and invokes `wsl -d $WSL_DISTRO -- env ... bash -l $wslTmp`. This handles Docker WSL integration plus a first-run race on freshly installed distros. This PR (#4380) removes --dry-run, --plan-only, and --validate-only from CI. Resolution: * e2e-scenarios.yaml: take main's PowerShell wrapper structure verbatim, but drop `--dry-run` from the inner `npx tsx ... run.ts` invocation. The typed runner is now the single execution path. * workflow-boundary.mts: assert BOTH the new constraints. The WSL step must NOT contain --dry-run / --plan-only / --validate-only (this PR's invariant) AND must contain $env:WSL_WORKDIR / WriteAllText / `bash -l $wslTmp` (main's robustness invariant). 294/294 scenario framework tests pass. shellcheck / shfmt / end-of-file / trailing-whitespace clean on touched files. Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
## Summary Refreshes the NemoClaw documentation for the v0.0.54 release and regenerates user skills from the Fern MDX source. Also keeps the Fern CLI pin current so local docs checks use the upgraded Fern version. ## Related Issue <!-- No single related issue. This is release-prep documentation catch-up. --> ## Changes - #4403 -> `docs/manage-sandboxes/messaging-channels.mdx`, `docs/reference/commands.mdx`, `docs/about/release-notes.mdx`: Document Telegram, Discord, and Slack post-rebuild bridge verification and summarize channel activation fixes. - #4222 -> `docs/about/release-notes.mdx`: Include Slack generated channel enablement in the v0.0.54 messaging summary. - #4346 -> `docs/get-started/windows-preparation.mdx`, `docs/about/release-notes.mdx`: Document safer Windows bootstrap behavior for Ubuntu first-run and Docker Desktop WSL integration. - #4416 -> `docs/inference/use-local-inference.mdx`, `docs/about/release-notes.mdx`: Document the Docker Desktop WSL requirement for Windows-host Ollama. - #4442 -> `docs/about/release-notes.mdx`: Summarize the optional NemoHermes native web dashboard and related environment variables. - #4426 -> `docs/about/release-notes.mdx`: Summarize copy-paste recovery hints for invalid sandbox names and missing NVIDIA API keys. - #4459 -> `docs/about/release-notes.mdx`: Summarize the Linuxbrew prefix fix for sandbox Homebrew usage. - #4450 -> `docs/about/release-notes.mdx`: Summarize `/nemoclaw` slash command startup activation. - #4468 -> `docs/about/release-notes.mdx`: Summarize scope-upgrade approval recovery. - #4325 -> `docs/about/release-notes.mdx`: Summarize the narrowed `web_fetch` host-gateway allowance. - #4474 -> `docs/about/release-notes.mdx`: Summarize Hermes Provider smoke-check behavior for OAuth versus Nous API key setup. - Refresh generated `.agents/skills/nemoclaw-user-*` references from `docs/` and update `fern/fern.config.json` to Fern `5.41.2`. ## 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) ## Verification <!-- Check each item you ran and confirmed. Leave unchecked items you skipped. Doc-only changes do not require npm test unless you ran it. --> - [ ] `npx prek run --all-files` passes - [ ] `npm test` passes - [ ] Tests added or updated for new or changed behavior - [x] No secrets, API keys, or credentials committed - [x] Docs updated for user-facing behavior changes - [ ] `npm run docs` builds without warnings (doc changes only) - [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) --- <!-- DCO sign-off required by CI. Run: git config user.name && git config user.email --> Signed-off-by: Miyoung Choi <miyoungc@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Optional NemoHermes native web dashboard (configurable port and TUI) * GPU memory cleanup now unloads Ollama models when switching providers or stopping services * **Bug Fixes** * Improved sandbox name validation with suggested slug recovery * Windows-host Ollama now requires Docker Desktop WSL integration and exits with remediation guidance when unsupported * **Documentation** * Clarified quickstart/onboard flow, installer TTY/non‑TTY guidance, Hermes Docker prerequisites, sandbox hardening, and channels add rebuild checks <!-- review_stack_entry_start --> [](https://app.coderabbit.ai/change-stack/NVIDIA/NemoClaw/pull/4539?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack) <!-- review_stack_entry_end --> <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Summary
Enables Docker Desktop WSL integration automatically in the Windows bootstrap flow. The bootstrap now waits for Ubuntu first-run account creation before touching Docker integration, avoiding WSL/OOBE races that can leave users in a root shell or break Docker’s distro proxy setup.
Changes
Ubuntu-24.04via settings.Type of Change
Verification
npx prek run --all-filespassesnpm testpassesnpm run docsbuilds without warnings (doc changes only)Signed-off-by: zyang-dev 267119621+zyang-dev@users.noreply.github.com
Summary by CodeRabbit
New Features
New UX Guidance
Tests
Chores