## Release range
- Previous release: `v0.0.121` at `673f815e04c1a4ad0548fac63b5f25cf22d47e47`
- Candidate: `48cefc6f53bc158fae59ee319718fc00345f660a`
- Candidate selection: current-main
- Commits: 62
- Risky files detected: 315
## QA context
### Risky areas
- Sandbox / policy / SSRF
- Workflow / enforcement
- Installer / bootstrap
- Credentials / inference
- Onboarding / host glue
### Suggested test focus
- Fresh install and upgrade paths
- Onboarding wizard and sandbox creation
- Policy enforcement, network egress, and SSRF protections
- CI checks, pre-commit hooks, and DCO declarations
- Credential storage and inference provider routing
## Canonical release entry
- Path: `docs/changelog/2026-09-10.mdx`
- Entry:
## v0.0.122
NemoClaw v0.0.122 improves host detection and local inference selection for Docker, DGX Station, and N1x WSL.
It also strengthens interrupted onboarding, Hermes Portable lifecycle recovery, configuration export, remote dashboard access, and uninstall failure reporting.
- Host readiness now runs Docker probes with the environment that later Docker commands use.
It respects the selected Docker context and configuration, rejects unsafe explicit endpoints, and can select the rootless Linux socket after an unreachable default authority.
DGX Station checks now separate GB300 hardware identity from the qualified software profile and apply the same classifier during host preparation and onboarding.
Related changes: [PR #10379](https://github.com/NVIDIA/NemoClaw/pull/10379) and [PR #10914](https://github.com/NVIDIA/NemoClaw/pull/10914).
For more information, refer to [System Readiness](/user-guide/openclaw/reference/system-readiness) and [Prepare a DGX Station](/user-guide/openclaw/get-started/additional-setup/dgx-station-preparation).
- A CUDA-qualified N1x WSL host now selects the managed Qwen llama.cpp profile instead of falling back to the smaller Ollama profile.
A resumed preset-driven managed vLLM installation verifies the recorded model and serving preset before it changes runtime state.
A mismatch stops onboarding and directs you to restart with `nemoclaw onboard --fresh`.
Related changes: [PR #11078](https://github.com/NVIDIA/NemoClaw/pull/11078) and [PR #11271](https://github.com/NVIDIA/NemoClaw/pull/11271).
For more information, refer to [Choose a Local Inference Server](/user-guide/openclaw/inference/local-inference/choose-local-inference-server), [Set Up llama.cpp](/user-guide/openclaw/inference/local-inference/set-up-llama-cpp), and [Set Up vLLM](/user-guide/openclaw/inference/local-inference/set-up-vllm).
- Interrupted onboarding now releases its process lock and abandons an uncommitted inference-route reservation before a later resume.
Final handoff keeps incomplete sandbox identity available for recovery and does not report success when replacement onboarding exits nonzero.
The global `nemoclaw doctor` command remains available without a sandbox name, including when a registered sandbox is named `doctor`.
Related changes: [PR #11140](https://github.com/NVIDIA/NemoClaw/pull/11140), [PR #11205](https://github.com/NVIDIA/NemoClaw/pull/11205), [PR #11218](https://github.com/NVIDIA/NemoClaw/pull/11218), and [PR #11296](https://github.com/NVIDIA/NemoClaw/pull/11296).
For more information, refer to [Recover and Rebuild Sandboxes](/user-guide/openclaw/manage-sandboxes/operate-sandboxes/recover-and-rebuild-sandboxes) and the [NemoClaw CLI Commands Reference](/user-guide/openclaw/reference/commands).
- Hermes Portable onboarding now records the selected OpenShell gateway for later recovery and uninstall operations.
Start and recovery repair the receipt-owned host forwards before reporting readiness, while stop retries an incomplete identity observation within its bounded settlement policy.
Upgrade recovery preserves the Portable lifecycle and forward identities instead of replacing them with ambient gateway state.
Related changes: [PR #11034](https://github.com/NVIDIA/NemoClaw/pull/11034), [PR #11266](https://github.com/NVIDIA/NemoClaw/pull/11266), and [PR #11312](https://github.com/NVIDIA/NemoClaw/pull/11312).
For more information, refer to [Recover and Rebuild Sandboxes](/user-guide/hermes/manage-sandboxes/operate-sandboxes/recover-and-rebuild-sandboxes) and the [NemoClaw CLI Commands Reference](/user-guide/hermes/reference/commands).
- `nemoclaw config export` now supports native NVIDIA hosted inference only when the gateway uses the built-in `nvidia-prod` profile, its default endpoint, and no provider configuration overrides.
Missing or inconsistent provider evidence stops the export without writing a configuration document.
Related changes: [PR #11065](https://github.com/NVIDIA/NemoClaw/pull/11065) and [PR #11318](https://github.com/NVIDIA/NemoClaw/pull/11318).
For more information, refer to the [NemoClaw CLI Commands Reference](/user-guide/openclaw/reference/commands).
- Neutral managed OpenClaw images no longer declare the uninstalled Tavily plugin.
This removes recurring `plugin not installed: tavily` warnings when Tavily Search was not selected, while explicitly selected Tavily configuration remains unchanged.
Related change: [PR #10331](https://github.com/NVIDIA/NemoClaw/pull/10331).
For more information, refer to [Troubleshooting](/user-guide/openclaw/reference/troubleshooting).
- Remote dashboard access now keeps an external `CHAT_UI_URL` separate from the host forward bind.
A reverse proxy or tunnel can reach the loopback forward while the URL configures the browser origin and Host-header validation.
Direct access on a non-WSL host requires `NEMOCLAW_DASHBOARD_BIND=0.0.0.0` before onboarding and for later `nemohermes <sandbox> connect` calls.
Protect the dashboard and API ingress before exposing either service.
Related change: [PR #10931](https://github.com/NVIDIA/NemoClaw/pull/10931).
For more information, refer to [Quickstart with Hermes](/user-guide/hermes/get-started/quickstart) and [Gateway Authentication Controls](/user-guide/hermes/security/security-controls/gateway-authentication-controls).
- The installer now refuses an implicit NemoClaw CLI downgrade and reports the installed and requested versions before it changes the installation.
Uninstall exits nonzero when it cannot remove the gateway registration, so automation does not treat partial cleanup as success.
Related changes: [PR #11209](https://github.com/NVIDIA/NemoClaw/pull/11209) and [PR #9860](https://github.com/NVIDIA/NemoClaw/pull/9860).
For more information, refer to [Update Sandboxes](/user-guide/openclaw/manage-sandboxes/operate-sandboxes/update-sandboxes) and [Uninstall NemoClaw](/user-guide/openclaw/manage-sandboxes/operate-sandboxes/uninstall-nemoclaw).
## Documentation coverage
- Target: `v0.0.122` at candidate `48cefc6f53bc158fae59ee319718fc00345f660a`.
- Latest included cumulative docs PR: [#11277](https://github.com/NVIDIA/NemoClaw/pull/11277), `docs: prepare v0.0.122 documentation`.
- Final PR commit and merge commit: `facd1811dabe8d224c9e66585d6adf33b36dbb49` and `48cefc6f53bc158fae59ee319718fc00345f660a`.
- Final automated refresh coverage commit: `e94c06f130e1904229c9214f9d1f914b98f6b1ba`.
- Later commits and merged PRs: candidate merge `48cefc6f53bc158fae59ee319718fc00345f660a`, [PR #11277](https://github.com/NVIDIA/NemoClaw/pull/11277); no other commit follows the automated refresh through the candidate.
- Changed paths: `docs/changelog/2026-09-08.mdx`, `docs/changelog/2026-09-10.mdx`, `docs/deployment/deploy-to-headless-server.mdx`, `docs/get-started/quickstart-hermes.mdx`, `docs/inference/choose-local-inference-server.mdx`, `docs/inference/set-up-vllm-on-two-dgx-sparks.mdx`, `docs/manage-sandboxes/add-channels-after-onboarding.mdx`, `docs/manage-sandboxes/manage-mcp-servers.mdx`, `docs/manage-sandboxes/recover-rebuild-sandboxes.mdx`, `docs/reference/commands.mdx`, `docs/reference/pi-support.mdx`, `docs/reference/system-readiness.mdx`, and `docs/reference/troubleshooting.mdx`.
- Allowed-path result: yes; every changed path is under `docs/**`.
- Review: `APPROVED` on exact PR head `facd1811dabe8d224c9e66585d6adf33b36dbb49` after an independent documentation review; local `npm run docs` and `npm run validate:pr` passed on that commit.
- Complete PR check state:
- `require-maintainer-edits`: `COMPLETED` / `CANCELLED` for the superseded draft transition; the later required instance completed successfully.
- `request`: `COMPLETED` / `SKIPPED`.
- `assign-linked-issue-author`: `COMPLETED` / `SUCCESS`.
- `label-release-target`: `COMPLETED` / `SUCCESS`.
- `changes`: `COMPLETED` / `SUCCESS`.
- `Analyze (go)`: `COMPLETED` / `SUCCESS`.
- `Docs / Validate and publish PR preview`: `COMPLETED` / `SUCCESS`.
- `Docs / Verify CLI and installer reference parity`: `COMPLETED` / `SUCCESS`.
- `codebase-growth-guardrails` (two runs): `COMPLETED` / `SUCCESS`.
- `commit-lint`: `COMPLETED` / `SUCCESS`.
- `require-maintainer-edits` (required instance): `COMPLETED` / `SUCCESS`.
- `dco-check`: `COMPLETED` / `SUCCESS`.
- `CodeQL (javascript-typescript)`: `COMPLETED` / `SUCCESS`.
- `package-openshell-sdk`: `COMPLETED` / `SUCCESS`.
- `check-hash`: `COMPLETED` / `SUCCESS`.
- `Analyze (javascript-typescript)`: `COMPLETED` / `SUCCESS`.
- `CodeQL (python)`: `COMPLETED` / `SUCCESS`.
- `Analyze (python)`: `COMPLETED` / `SUCCESS`.
- `docs-only-checks`: `COMPLETED` / `SUCCESS`.
- `ShellCheck SARIF`: `COMPLETED` / `SUCCESS`.
- `hugging-face-models`: `COMPLETED` / `SKIPPED`.
- `openshell-sdk-package`: `COMPLETED` / `SKIPPED`.
- `reviewed-npm-audit`: `COMPLETED` / `SKIPPED`.
- `static-checks`: `COMPLETED` / `SKIPPED`.
- `compile-artifacts`: `COMPLETED` / `SKIPPED`.
- `installer-integration`: `COMPLETED` / `SKIPPED`.
- `plugin-tests`: `COMPLETED` / `SKIPPED`.
- `build-typecheck`: `COMPLETED` / `SKIPPED`.
- `cli-test-shards`: `COMPLETED` / `SKIPPED`.
- `cli-tests`: `COMPLETED` / `SKIPPED`.
- `checks`: `COMPLETED` / `SUCCESS`.
- `CodeQL` summary: `COMPLETED` / `NEUTRAL`.
- `ShellCheck` summary: `COMPLETED` / `SUCCESS`.
- `CodeRabbit`: `SUCCESS`; review skipped because the PR author was the bot account.
- Open managed docs PRs: none.
- Query note: the prescribed unfiltered 1,000-PR GraphQL read returned HTTP 504 three times, and a reduced unfiltered 100-PR read returned HTTP 504 once. The authenticated managed-head search succeeded. Its newest result was PR #11277, whose merge commit is the planned candidate, so no newer managed docs merge can be included in that candidate.
- Maintainer decision: Proceed with the candidate as shown.
## Base and managed image evidence
- Base-image candidate: `48cefc6f53bc158fae59ee319718fc00345f660a`
- Evidence: successful `base-image-publication` on workflow run `34451414954`, attempt `1`.
- Workflow: https://github.com/NVIDIA/NemoClaw/actions/runs/34451414954
- Job: https://github.com/NVIDIA/NemoClaw/actions/runs/34451414954/job/102787788456
## General E2E decision
- Displayed mode: newest identifiable full manual `main` run.
- Workflow: [E2E full main (980b630e-4ca9-4bc1-8f1c-f8a50f677765)](https://github.com/NVIDIA/NemoClaw/actions/runs/34411668250), run `34411668250`, attempt 1.
- Created: `2026-09-09T22:19:55Z`.
- Started: `2026-09-09T22:19:55Z`.
- Last updated: `2026-09-09T23:57:20Z`.
- Inspected: `2026-09-10T08:07:35.557Z`; age at inspection: 9 hours, 47 minutes, 40 seconds.
- Tested commit: `801fb0c5bad751d4c06fdd51840bf5e755b5a48c`.
- Candidate match: no; the planned candidate is `48cefc6f53bc158fae59ee319718fc00345f660a`.
- Workflow result: `completed` / `failure`.
- Release qualification: `completed` / `failure`; started `2026-09-09T23:56:54Z`, completed `2026-09-09T23:57:01Z`; [job](https://github.com/NVIDIA/NemoClaw/actions/runs/34411668250/job/102690483223).
- Other non-successful jobs:
- `package-openshell-sdk`: `completed` / `skipped`; [job](https://github.com/NVIDIA/NemoClaw/actions/runs/34411668250/job/102667266646).
- `ubuntu-repo-cloud-langchain-deepagents-code: Repository install onboarding and hosted inference succeed [langchain-deepagents-code; Ubuntu managed-runtime host; NVIDIA hosted inference] [docker]`: `completed` / `failure`; [job](https://github.com/NVIDIA/NemoClaw/actions/runs/34411668250/job/102667872399).
- `OpenShell credential generation window (docker)`: `completed` / `failure`; [job](https://github.com/NVIDIA/NemoClaw/actions/runs/34411668250/job/102667872762).
- `openclaw-plugin-runtime-exdev`: `completed` / `failure`; [job](https://github.com/NVIDIA/NemoClaw/actions/runs/34411668250/job/102667873002).
- `Exact staging Brev Launchable identity`: `completed` / `skipped`; [job](https://github.com/NVIDIA/NemoClaw/actions/runs/34411668250/job/102667873683).
- `Compile protected llama.cpp DGX Spark plan`: `completed` / `skipped`; [job](https://github.com/NVIDIA/NemoClaw/actions/runs/34411668250/job/102667873707).
- `native-runtime-qualification-producer-plan`: `completed` / `skipped`; [job](https://github.com/NVIDIA/NemoClaw/actions/runs/34411668250/job/102667873811).
- `retired-selector-compatibility`: `completed` / `skipped`; [job](https://github.com/NVIDIA/NemoClaw/actions/runs/34411668250/job/102667873822).
- `jetson-nvmap-gpu`: `completed` / `skipped`; [job](https://github.com/NVIDIA/NemoClaw/actions/runs/34411668250/job/102667874341).
- `external-gateway-health`: `completed` / `skipped`; [job](https://github.com/NVIDIA/NemoClaw/actions/runs/34411668250/job/102667874631).
- `Exact staging Brev Launchable`: `completed` / `failure`; [job](https://github.com/NVIDIA/NemoClaw/actions/runs/34411668250/job/102667875417).
- `Onboarding: resumes interrupted setup from recorded progress (docker) / no provider credential`: `completed` / `failure`; [job](https://github.com/NVIDIA/NemoClaw/actions/runs/34411668250/job/102667875985).
- `Inference: configures a Kimi-compatible endpoint (docker) / no provider credential`: `completed` / `failure`; [job](https://github.com/NVIDIA/NemoClaw/actions/runs/34411668250/job/102667876034).
- `Network policy: enforces restricted allow and deny rules (docker) / NVIDIA inference API key`: `completed` / `failure`; [job](https://github.com/NVIDIA/NemoClaw/actions/runs/34411668250/job/102667876161).
- `Gateway: restores the guard chain after recreation (docker) / NVIDIA inference API key`: `completed` / `failure`; [job](https://github.com/NVIDIA/NemoClaw/actions/runs/34411668250/job/102667876315).
- `Build pinned native Podman toolchain / ${{ matrix.architecture }}`: `completed` / `skipped`; [job](https://github.com/NVIDIA/NemoClaw/actions/runs/34411668250/job/102667877183).
- `Protected llama.cpp on NVIDIA DGX Spark`: `completed` / `skipped`; [job](https://github.com/NVIDIA/NemoClaw/actions/runs/34411668250/job/102667879320).
- `matrix.jobName`: `completed` / `skipped`; [job](https://github.com/NVIDIA/NemoClaw/actions/runs/34411668250/job/102667883411).
- `Aggregate native runtime qualification evidence`: `completed` / `skipped`; [job](https://github.com/NVIDIA/NemoClaw/actions/runs/34411668250/job/102667889878).
- `Protected managed-image GPU and local inference`: `completed` / `failure`; [job](https://github.com/NVIDIA/NemoClaw/actions/runs/34411668250/job/102674522080).
- `Relevant E2E`: `completed` / `skipped`; [job](https://github.com/NVIDIA/NemoClaw/actions/runs/34411668250/job/102690484414).
- Requested reruns: none.
- Maintainer choice: Proceed with the status as shown.
Exceptions: Team decision to cut the tag without blocking on the reduced set of E2E failures, even though the newest full run failed and tested an older commit.