Skip to content

Commit 3c3bcb9

Browse files
authored
docs: refresh release notes for v0.0.47 and v0.0.48 (#4007)
## Summary Refreshes NemoClaw release notes for v0.0.47 and v0.0.48, then regenerates the corresponding user-skill references so agent-facing docs match the source pages. Preview: https://nvidia-preview-docs-release-notes-47-48.docs.buildwithfern.com/nemoclaw/about/release-notes ## Changes - Adds explicit v0.0.47 and v0.0.48 sections to `docs/about/release-notes.mdx`. - Documents follow-up WSL Ollama, sandbox image, share mount, and troubleshooting updates from recent release changes. - Regenerates `nemoclaw-user-*` skill references from the Fern MDX source docs. ## Source Summary - #4003 -> `docs/about/release-notes.mdx`: Notes the messaging manifest registry work as part of v0.0.48 release coverage. - #3984 -> `docs/about/release-notes.mdx`: Captures Hermes messaging policy scoping in the v0.0.48 release notes. - #3963 -> `docs/about/release-notes.mdx`: Captures DGX Spark Hermes GPU recreation startup recovery in the v0.0.48 release notes. - #3961 -> `docs/about/release-notes.mdx`: Captures Discord loopback proxy routing in the v0.0.48 release notes. - #3940 -> `docs/about/release-notes.mdx`: Captures installer prompt clarification and express-install behavior in the v0.0.48 release notes. - #3946 -> `docs/about/release-notes.mdx`: Carries forward the Homebrew preinstall clarification in release coverage. - #3937 -> `docs/about/release-notes.mdx`: Carries forward the dashboard URL command and post-install next steps coverage. - #3921 -> `docs/about/release-notes.mdx`: Carries forward managed vLLM default behavior for DGX Spark and DGX Station. - #3931 -> `docs/about/release-notes.mdx`, `docs/reference/architecture.mdx`: Documents the sandbox `python` to `python3` compatibility symlink. - #1485 -> `docs/about/release-notes.mdx`, `docs/reference/architecture.mdx`: Documents the sandbox image Docker health check. - #3784 -> `docs/about/release-notes.mdx`: Captures VM-driver snapshot health-check reliability in release notes. - #3917 -> `docs/about/release-notes.mdx`: Captures package-based workspace template resolution in release notes. - #3170 -> `docs/about/release-notes.mdx`: Captures installer checksum compatibility from preferring `sha256sum`. - #3898 -> `docs/about/release-notes.mdx`: Adds v0.0.47 release coverage for messaging provider scenario validation. - #3897 -> `docs/about/release-notes.mdx`: Adds v0.0.47 release coverage for baseline onboarding scenario validation. - #3834 -> `docs/about/release-notes.mdx`: Adds v0.0.47 release coverage for PR review advisor automation. - #3838 -> `docs/about/release-notes.mdx`: Adds v0.0.47 release coverage for CLI display registry refactoring. ## Type of Change - [ ] Code change (feature, bug fix, or refactor) - [ ] Code change with doc updates - [ ] Doc only (prose changes, no code sample modifications) - [x] Doc only (includes code sample changes) ## Verification - [x] `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 - [ ] `make 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) `make docs` was attempted but could not complete because `npx fern-api` failed with `403 Forbidden` from `https://registry.npmjs.org/fern-api` in this environment. Pre-commit and pre-push hooks passed after refreshing the local CLI build output with `npm run build:cli`; no build artifacts were committed. --- Signed-off-by: Miyoung Choi <miyoungc@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Added WSL onboarding notes for Windows-host Ollama detection, restart guidance, and PowerShell checks. * Clarified express-install behavior (non-interactive, sudo prompts) and default sandbox policy selection. * Added Windows preparation guidance when installer tooling is missing (winget/App Installer or Docker Desktop). * Expanded sandbox docs with Docker health checks, Homebrew/python compatibility helpers, share-mount path validation, Discord troubleshooting, and new v0.0.48/v0.0.47 release notes. * **Chores** * Improved docs preview workflow error handling. <!-- review_stack_entry_start --> [![Review Change Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/NVIDIA/NemoClaw/pull/4007?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 -->
1 parent f7a5eff commit 3c3bcb9

14 files changed

Lines changed: 157 additions & 12 deletions

File tree

.agents/skills/nemoclaw-user-configure-inference/SKILL.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ When NemoClaw runs inside WSL, the provider menu can include Windows-host Ollama
6262

6363
The install and restart paths set `OLLAMA_HOST=0.0.0.0:11434` on the Windows side so Docker and WSL can reach the daemon through `host.docker.internal`.
6464
After an install or restart action, NemoClaw relaunches Ollama from the detected Windows tray app or verified `ollama.exe` path and waits until `host.docker.internal:11434` responds.
65+
If the HTTP endpoint is not reachable yet, NemoClaw also checks for the Windows `ollama.exe` process through PowerShell interop so it can offer a start or restart action instead of hiding the Windows-host path.
6566
If the daemon does not become reachable, onboarding prints PowerShell commands you can run to inspect the Windows-side process and port state.
6667
Use one Ollama instance on port `11434` at a time.
6768
If both WSL and Windows-host Ollama are running, pick the intended menu entry during onboarding so NemoClaw validates and pulls models against the right daemon.

.agents/skills/nemoclaw-user-get-started/SKILL.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@ $ curl -fsSL https://www.nvidia.com/nemoclaw.sh | bash
4949
```
5050

5151
On DGX Spark, DGX Station, and Windows WSL, an interactive installer offers express install after you accept the third-party software notice.
52-
Express install switches onboarding to non-interactive mode, allows `sudo` password prompts for required host changes, applies the suggested security policy, and selects the managed local inference path for that platform.
52+
Express install switches onboarding to non-interactive mode, allows `sudo` password prompts for required host changes, and selects the managed local inference path for that platform.
53+
Unless `NEMOCLAW_POLICY_TIER` is set, it applies sandbox policy in `suggested` mode with the `balanced` tier by default, using the base sandbox policy plus supported package, model, web-search, and local-inference presets.
5354
On WSL, express install selects the Windows-host Ollama setup path.
5455
Set `NEMOCLAW_NO_EXPRESS=1` to skip the express prompt, or set `NEMOCLAW_PROVIDER` before launching the installer when you want to choose a provider yourself.
5556

.agents/skills/nemoclaw-user-get-started/references/windows-preparation.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@ $ curl -fsSL https://www.nvidia.com/nemoclaw.sh | bash
4545

4646
If the bootstrap script reports that Docker is not reachable from Ubuntu, open Docker Desktop Settings and confirm that WSL integration is enabled for Ubuntu (Settings > Resources > WSL integration), then rerun the script.
4747

48+
If the bootstrap script reports that `winget.exe` is not available (common on Windows Server or stripped Windows installs), install **App Installer** from the Microsoft Store (which provides `winget`), or download and install Docker Desktop manually from [docker.com](https://www.docker.com/products/docker-desktop/).
49+
Rerun the bootstrap script after Docker Desktop is installed; the script skips the install step once it detects Docker Desktop is present.
50+
4851
The manual steps below describe the same Windows preparation pieces and are useful when you need to verify or repair WSL, Ubuntu, or Docker Desktop by hand.
4952

5053
## Enable WSL 2

.agents/skills/nemoclaw-user-overview/references/release-notes.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,34 @@
44

55
NVIDIA NemoClaw is available in early preview starting March 16, 2026. Use this page to track changes.
66

7+
## v0.0.48
8+
9+
NemoClaw v0.0.48 improves onboarding, sandbox builds, local inference, messaging, and day-two sandbox operations:
10+
11+
- Windows WSL onboarding detects Windows-host Ollama through both the HTTP endpoint and a Windows process probe, so the installer can offer start or restart actions even when the daemon is installed but not yet reachable from WSL.
12+
- Onboarding no longer prints a noisy `No active forward found` warning when it performs best-effort dashboard forward cleanup before rebuilding or recovering a sandbox.
13+
- `nemoclaw <name> share mount` verifies the requested remote path against the target sandbox name, so probes for non-default sandboxes no longer accidentally inspect the default sandbox.
14+
- The OpenClaw plugin tolerates an empty or malformed onboard `config.json` by falling back to default onboard status instead of failing during startup.
15+
- Hermes messaging policies are scoped to Hermes-supported channel behavior, keeping unsupported OpenClaw-specific messaging access out of Hermes sandboxes.
16+
- Onboard session snapshots persist machine-readable state for resume flows, which makes provider and policy decisions more durable across retries.
17+
- DGX Spark GPU sandbox recreation restores the startup path for Hermes by patching Docker GPU state and preserving the marker files the Hermes entrypoint needs.
18+
- Discord messaging routes REST and gateway traffic through the sandbox proxy path, including a loopback proxy for gateway traffic, so Discord channels work through the same policy-controlled egress model as other sandbox traffic.
19+
- Sandbox base images now include Homebrew and a `python` to `python3` compatibility symlink, reducing first-run setup for package and script workflows inside the sandbox.
20+
- The NemoClaw sandbox image includes a Docker health check so container runtimes can report whether the in-sandbox gateway is responding.
21+
- Sandbox startup resolves workspace template files from the installed package when source-relative files are not available, which helps package installs seed a fresh workspace consistently.
22+
- Installer checksum verification prefers `sha256sum` and falls back when needed, improving compatibility on Linux hosts where `shasum` is not installed.
23+
- VM-driver snapshot health checks now use gateway metadata instead of stale local assumptions, so snapshot operations fail less often after gateway state changes.
24+
25+
## v0.0.47
26+
27+
NemoClaw v0.0.47 focused on release hardening and validation coverage:
28+
29+
- The scenario E2E framework gained baseline onboarding coverage for CLI setup, OpenShell gateway creation, sandbox state, inference routing, and smoke tests.
30+
- Messaging provider scenarios now validate provider attachment, placeholder configuration, secret-leak prevention, bridge reachability, Discord gateway routing, Slack provider state, Telegram injection safety, and token-rotation isolation.
31+
- CLI command registration was refactored so public display defaults stay consistent across sandbox channel, host, log, policy, skill, and snapshot commands.
32+
- PR review advisor automation was added for maintainers, with deterministic GitHub context gathering and structured review comments.
33+
- The release refreshed v0.0.46 documentation, generated user skills, navigation, and version metadata.
34+
735
## v0.0.46
836

937
NemoClaw v0.0.46 improves Windows setup, messaging channels, Hermes sandboxes, inference routing, and command compatibility:

.agents/skills/nemoclaw-user-reference/references/architecture.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,8 @@ container image. Inside the sandbox:
218218
- Network egress is restricted by the baseline policy in `openclaw-sandbox.yaml`.
219219
- Filesystem access is confined to `/sandbox` and `/tmp` for read-write access, with system paths read-only.
220220
- The NemoClaw plugin injects sandbox and policy context into agent turns so the agent can report policy blocks accurately.
221+
- The image exposes a Docker health check that probes the in-sandbox gateway, so container runtimes can report whether the agent service is responding.
222+
- The image includes common runtime compatibility helpers such as Homebrew and a `python` to `python3` symlink for tools that still invoke `python`.
221223

222224
## Inference Routing
223225

.agents/skills/nemoclaw-user-reference/references/commands.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -867,7 +867,7 @@ Prerequisites:
867867

868868
- `sshfs` must be installed on the host (`sudo apt-get install sshfs` on Linux, `brew install macfuse && brew install sshfs` on macOS).
869869
- The sandbox must be running.
870-
- The remote sandbox path must exist. NemoClaw verifies it before invoking `sshfs` and prints a `connect`, then `ls <path>` check when the probe fails.
870+
- The remote sandbox path must exist. NemoClaw verifies it against the target sandbox before invoking `sshfs` and prints a `connect`, then `ls <path>` check when the probe fails.
871871
- Sandboxes created before the `openssh-sftp-server` base image update must be rebuilt with `nemoclaw <name> rebuild`.
872872
- The local mount path must be on a writable filesystem; FUSE creates the mount on the host side.
873873
If the default `~/.nemoclaw/mounts/<name>` lives on a read-only filesystem, pass an explicit writable path as the second positional argument.

.agents/skills/nemoclaw-user-reference/references/troubleshooting.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -800,6 +800,54 @@ In that case:
800800
- inspect gateway logs and blocked requests with `openshell term`
801801
- treat the failure as a native Discord gateway problem, not as a bridge startup problem
802802

803+
### Discord preset validation behind a proxy
804+
805+
The built-in Discord policy preset intentionally allows the Node binaries used by the messaging runtime and does not allow `curl`.
806+
As a result, `curl -s https://discord.com` failing, hanging, or printing no output is not proof that the Discord preset is broken.
807+
808+
Behind the OpenShell proxy, direct DNS-only checks can also be the wrong signal.
809+
For example, `dns.resolve("gateway.discord.gg")` can fail even when HTTPS requests routed through the proxy are healthy.
810+
811+
Use Node HTTPS as the manual REST probe:
812+
813+
```console
814+
$ node - <<'NODE'
815+
const https = require("node:https");
816+
817+
https
818+
.get("https://discord.com/api/v10/gateway", (res) => {
819+
console.log(`${res.statusCode} ${res.statusMessage || ""}`.trim());
820+
res.resume();
821+
})
822+
.on("error", (err) => {
823+
console.error(err.message);
824+
process.exitCode = 1;
825+
});
826+
NODE
827+
```
828+
829+
To check Discord CDN egress, use the same Node HTTPS path:
830+
831+
```console
832+
$ node - <<'NODE'
833+
const https = require("node:https");
834+
835+
https
836+
.get("https://cdn.discordapp.com/", (res) => {
837+
console.log(`${res.statusCode} ${res.statusMessage || ""}`.trim());
838+
res.resume();
839+
})
840+
.on("error", (err) => {
841+
console.error(err.message);
842+
process.exitCode = 1;
843+
});
844+
NODE
845+
```
846+
847+
Any HTTP status from these probes means the Node process reached the endpoint; the exact status can vary by unauthenticated path.
848+
If the Node REST probe works but the Discord channel is still unhealthy, investigate the native gateway path instead of widening the preset.
849+
Check the gateway logs and blocked-request output with `openshell term`, and look for `gateway.discord.gg` connection or WebSocket upgrade failures.
850+
803851
### Messaging bridge appears running but no messages arrive
804852

805853
Bot tokens for Telegram (`getUpdates`), Discord (gateway), and Slack (Socket Mode) only allow one active consumer per token. If two NemoClaw sandboxes are configured with the same bot token, each one kicks the other off its polling connection and neither delivers messages. `nemoclaw status` still reports the bridge as running because the gateway process itself is alive.
@@ -1131,6 +1179,20 @@ $ wsl -d Ubuntu
11311179
$ docker info
11321180
```
11331181

1182+
### Windows-host Ollama is installed but not shown during onboarding
1183+
1184+
When NemoClaw runs inside WSL, it checks both the Windows-host Ollama HTTP endpoint and the Windows `ollama.exe` process.
1185+
If Ollama is installed but the daemon is not reachable through `host.docker.internal:11434`, the wizard should still offer a start or restart action.
1186+
1187+
If the Windows-host option does not appear, confirm that PowerShell interop is enabled in WSL and that Windows can locate Ollama:
1188+
1189+
```console
1190+
$ powershell.exe -NoProfile -Command "Get-Process ollama -ErrorAction SilentlyContinue"
1191+
```
1192+
1193+
If the process is missing, start Ollama from Windows and rerun onboarding.
1194+
If the process exists but the endpoint is unreachable, use the restart action when the wizard offers it, or restart Ollama from Windows with `OLLAMA_HOST=0.0.0.0:11434`.
1195+
11341196
### Ollama inference fails or hangs in WSL
11351197

11361198
Ollama configures context length based on your hardware.

.github/workflows/docs-preview-pr.yaml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,15 @@ jobs:
6565
PREVIEW_ID: pr-${{ github.event.pull_request.number }}
6666
working-directory: ./fern
6767
run: |
68+
set +e
6869
OUTPUT=$(fern generate --docs --preview --id "$PREVIEW_ID" 2>&1)
70+
STATUS=$?
71+
set -e
6972
echo "$OUTPUT"
70-
URL=$(echo "$OUTPUT" | grep -oP 'Published docs to \K.*(?= \()')
73+
URL=$(echo "$OUTPUT" | sed -nE 's/.*Published docs to (https?:\/\/[^[:space:]]+).*/\1/p' | head -n1)
7174
if [ -z "$URL" ]; then
7275
echo "::error::Failed to generate preview URL. See fern output above."
73-
exit 1
76+
exit "$STATUS"
7477
fi
7578
echo "preview_url=$URL" >> "$GITHUB_OUTPUT"
7679

docs/about/release-notes.mdx

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,34 @@ content:
1111
---
1212
NVIDIA NemoClaw is available in early preview starting March 16, 2026. Use this page to track changes.
1313

14+
## v0.0.48
15+
16+
NemoClaw v0.0.48 improves onboarding, sandbox builds, local inference, messaging, and day-two sandbox operations:
17+
18+
- Windows WSL onboarding detects Windows-host Ollama through both the HTTP endpoint and a Windows process probe, so the installer can offer start or restart actions even when the daemon is installed but not yet reachable from WSL.
19+
- Onboarding no longer prints a noisy `No active forward found` warning when it performs best-effort dashboard forward cleanup before rebuilding or recovering a sandbox.
20+
- `nemoclaw <name> share mount` verifies the requested remote path against the target sandbox name, so probes for non-default sandboxes no longer accidentally inspect the default sandbox.
21+
- The OpenClaw plugin tolerates an empty or malformed onboard `config.json` by falling back to default onboard status instead of failing during startup.
22+
- Hermes messaging policies are scoped to Hermes-supported channel behavior, keeping unsupported OpenClaw-specific messaging access out of Hermes sandboxes.
23+
- Onboard session snapshots persist machine-readable state for resume flows, which makes provider and policy decisions more durable across retries.
24+
- DGX Spark GPU sandbox recreation restores the startup path for Hermes by patching Docker GPU state and preserving the marker files the Hermes entrypoint needs.
25+
- Discord messaging routes REST and gateway traffic through the sandbox proxy path, including a loopback proxy for gateway traffic, so Discord channels work through the same policy-controlled egress model as other sandbox traffic.
26+
- Sandbox base images now include Homebrew and a `python` to `python3` compatibility symlink, reducing first-run setup for package and script workflows inside the sandbox.
27+
- The NemoClaw sandbox image includes a Docker health check so container runtimes can report whether the in-sandbox gateway is responding.
28+
- Sandbox startup resolves workspace template files from the installed package when source-relative files are not available, which helps package installs seed a fresh workspace consistently.
29+
- Installer checksum verification prefers `sha256sum` and falls back when needed, improving compatibility on Linux hosts where `shasum` is not installed.
30+
- VM-driver snapshot health checks now use gateway metadata instead of stale local assumptions, so snapshot operations fail less often after gateway state changes.
31+
32+
## v0.0.47
33+
34+
NemoClaw v0.0.47 focused on release hardening and validation coverage:
35+
36+
- The scenario E2E framework gained baseline onboarding coverage for CLI setup, OpenShell gateway creation, sandbox state, inference routing, and smoke tests.
37+
- Messaging provider scenarios now validate provider attachment, placeholder configuration, secret-leak prevention, bridge reachability, Discord gateway routing, Slack provider state, Telegram injection safety, and token-rotation isolation.
38+
- CLI command registration was refactored so public display defaults stay consistent across sandbox channel, host, log, policy, skill, and snapshot commands.
39+
- PR review advisor automation was added for maintainers, with deterministic GitHub context gathering and structured review comments.
40+
- The release refreshed v0.0.46 documentation, generated user skills, navigation, and version metadata.
41+
1442
## v0.0.46
1543

1644
NemoClaw v0.0.46 improves Windows setup, messaging channels, Hermes sandboxes, inference routing, and command compatibility:

docs/inference/use-local-inference.mdx

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,15 +55,16 @@ On WSL, if you choose the Windows-host Ollama path, NemoClaw uses `host.docker.i
5555

5656
When NemoClaw runs inside WSL, the provider menu can include Windows-host Ollama actions:
5757

58-
- **Use Ollama on Windows host** when the Windows daemon is already reachable.
59-
- **Restart Ollama on Windows host** when the daemon is installed but only bound to Windows loopback.
60-
- **Start Ollama on Windows host** when Ollama is installed but not running.
61-
- **Install Ollama on Windows host** when Windows does not have Ollama installed.
58+
- Use Ollama on Windows host when the Windows daemon is already reachable.
59+
- Restart Ollama on Windows host when the daemon is installed but only bound to Windows loopback.
60+
- Start Ollama on Windows host when Ollama is installed but not running.
61+
- Install Ollama on Windows host when Windows does not have Ollama installed.
6262

6363
The install and restart paths set `OLLAMA_HOST=0.0.0.0:11434` on the Windows side so Docker and WSL can reach the daemon through `host.docker.internal`.
6464
After an install or restart action, NemoClaw relaunches Ollama from the detected Windows tray app or verified `ollama.exe` path and waits until `host.docker.internal:11434` responds.
65-
If the daemon does not become reachable, onboarding prints PowerShell commands you can run to inspect the Windows-side process and port state.
66-
Use one Ollama instance on port `11434` at a time.
65+
66+
If the HTTP endpoint is not reachable yet, NemoClaw also checks for the Windows `ollama.exe` process through PowerShell interop so it can offer a start or restart action instead of hiding the Windows-host path.
67+
If the daemon does not become reachable, onboarding prints PowerShell commands you can run to inspect the Windows-side process and port state. Use one Ollama instance on port `11434` at a time.
6768
If both WSL and Windows-host Ollama are running, pick the intended menu entry during onboarding so NemoClaw validates and pulls models against the right daemon.
6869

6970
<Warning>

0 commit comments

Comments
 (0)