Skip to content

v0.0.139

@rsliter rsliter tagged this 26 Oct 19:59
## Release range

- Previous release: `v0.0.138` at `7312e7f49e3e96125b8237968e2552a48e2cb1b6`
- Candidate: `a08ae7aa911ef5bd7a4b72d9020f575d75d0adb1`
- Candidate selection: current-main when planned. Main later advanced through [PR #13635](https://github.com/NVIDIA/NemoClaw/pull/13635) and [PR #13748](https://github.com/NVIDIA/NemoClaw/pull/13748) to `9347d8928be41deaa78febfe34dc357839251e6b`; the maintainer chose to keep the planned ancestor as the v0.0.139 cutoff. These later changes are outside this release.
- Commits: 24
- Risky files detected: 96

## QA context

### Risky areas

- Workflow / enforcement
- Credentials / inference
- Installer / bootstrap
- Sandbox / policy / SSRF
- 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-10-26.mdx`
- Entry:

## v0.0.139

NemoClaw v0.0.139 improves sandbox recovery and native inference checks, fixes WhatsApp removal, reports host GPUs and native backup contents, qualifies a 64 GB DGX Spark vLLM profile, and publishes compatible llama.cpp image signatures.

- Destroying a Hermes sandbox on rootless Podman now retries native-home cleanup as the image's pinned sandbox user when privileged cleanup cannot remove agent-owned files.
  If that cleanup fails, NemoClaw preserves the sandbox registry entry for a retry.
  Related change: [PR #13639](https://github.com/NVIDIA/NemoClaw/pull/13639).
- When a native inference provider is missing and only the sandbox registry records its ownership, onboarding and `nemoclaw inference set` name the affected sandbox.
  If the sandbox no longer exists, run `nemoclaw <name> destroy`, then onboard again.
  Related change: [PR #13626](https://github.com/NVIDIA/NemoClaw/pull/13626).
- `nemoclaw backup-all` now reports the directory and file counts in each successful native archive, followed by its retained path.
  Directory counts include the archive root, and file counts include symbolic links.
  Related change: [PR #13073](https://github.com/NVIDIA/NemoClaw/pull/13073).
- `nemoclaw host probe` now reports detected GPUs' indices, names, and memory in its text and JSON output, within the public evidence limit.
  JSON output holds at most 256 entries across GPU and other evidence, and reports `gpuInventory.collected`, `listed`, and `omitted` when it omits devices.
  Related change: [PR #13070](https://github.com/NVIDIA/NemoClaw/pull/13070).
- New llama.cpp image publications include Sigstore bundle signatures and a legacy image signature.
  The publication workflow verifies the legacy signature with Cosign 2 before it emits a receipt.
  Related change: [PR #13667](https://github.com/NVIDIA/NemoClaw/pull/13667).
- `nemoclaw <name> channels remove whatsapp` now succeeds without changes when the messaging plan and current policy show that WhatsApp is not configured.
  It does not clear session files or queue a rebuild.
  Related change: [PR #13221](https://github.com/NVIDIA/NemoClaw/pull/13221).
- Rebuilding a Hermes sandbox with native NVIDIA inference refreshes its managed credential references while preserving its model, provider, and Discord settings.
  `nemohermes <name> status` verifies that credential reference and directs you to rebuild when it is stale.
  Related change: [PR #13651](https://github.com/NVIDIA/NemoClaw/pull/13651).
- The Qwen vLLM profile for a 64 GB DGX Spark is now supported.
  Automatic selection accepts hosts with at least 60 GB of detected unified memory.
  Related change: [PR #12780](https://github.com/NVIDIA/NemoClaw/pull/12780).
- Operation telemetry uses the sandbox's recorded inference route to identify managed native model selections.
  This corrects the reported source for hosted native models whose route does not use `inference.local`.
  Related change: [PR #13589](https://github.com/NVIDIA/NemoClaw/pull/13589).
- For a verified native NVIDIA provider, `nemoclaw <name> status` reports `degraded` and exits `0` after a transient inference failure or confirmed timeout.
  The model response remains unverified. Run `nemoclaw <name> connect --probe-only` to require a successful response.
  Rebuild stops before sandbox deletion when a temporary upstream failure prevents credential verification.
  Related change: [PR #13642](https://github.com/NVIDIA/NemoClaw/pull/13642).
- An interrupted upgrade rebuild can resume when the failed replacement has no recorded identity and the recorded gateway and Docker daemon confirm it is absent.
  NemoClaw keeps the original registry entry, rebuild journal, and backup for the resumed rebuild.
  Related change: [PR #13680](https://github.com/NVIDIA/NemoClaw/pull/13680).
- On a reused gateway that lacks native provider composition, local inference onboarding now prints the complete administrator recovery command.
  `nemoclaw onboard --resume` reruns native local inference setup before it creates a sandbox when NemoClaw has no recorded native local provider for that sandbox.
  Related change: [PR #13650](https://github.com/NVIDIA/NemoClaw/pull/13650).
- For NemoClaw-managed gateways, default `nemoclaw uninstall` backs up eligible sandbox state, then removes owned OpenClaw state volumes even without `--destroy-user-data`.
  Externally supervised gateways retain their sandboxes and state volumes.
  If you use `--destroy-user-data`, back up any state you need separately before uninstall.
  Related change: [PR #13596](https://github.com/NVIDIA/NemoClaw/pull/13596).

## Documentation coverage

- Latest included cumulative docs PR: [#13673](https://github.com/NVIDIA/NemoClaw/pull/13673), merged 2026-10-26 17:54:25 UTC.
- Final PR commit and merge commit: `dc3e19bff134bcca605e879e32291aff69024fcd`; `a08ae7aa911ef5bd7a4b72d9020f575d75d0adb1`.
- Final automated refresh coverage commit: `14c9f5982b7678e6279c32899120657ab5a92bd6` (parent of final verified bot refresh commit `1ecd4da5f7b98f0eb634aee7c22e57083a060a96`).
- Later commits and merged PRs, oldest first: [#13717](https://github.com/NVIDIA/NemoClaw/pull/13717) `33819def84f7` (Hermes base pin); [#12845](https://github.com/NVIDIA/NemoClaw/pull/12845) `469591818fef` (docs automation); [#13642](https://github.com/NVIDIA/NemoClaw/pull/13642) `27aa21985427` (inference probe); [#13680](https://github.com/NVIDIA/NemoClaw/pull/13680) `bc5e649e3e7f` (rebuild recovery); [#13650](https://github.com/NVIDIA/NemoClaw/pull/13650) `dfe00e9ccaa8` (local inference resume); [#13596](https://github.com/NVIDIA/NemoClaw/pull/13596) `143678b745b0` (uninstall); [#13673](https://github.com/NVIDIA/NemoClaw/pull/13673) `a08ae7aa911e` (cumulative docs). The manual docs updates in #13673 cover the user-facing behavior in the later product merges.
- Changed paths: all four PR files are allowed documentation paths: `docs/changelog/2026-10-26.mdx`, `docs/manage-sandboxes/recover-rebuild-sandboxes.mdx`, `docs/reference/system-readiness.mdx`, and `docs/reference/troubleshooting.mdx`.
- Review and checks: exact-head approval at `dc3e19bff134bcca605e879e32291aff69024fcd`; trusted gate `allPass: true` with 34 current checks green, no conflicts or unresolved major/critical CodeRabbit findings, and all 17 commits GitHub Verified. All nine exact-head Advisor specialists cleared with no additional E2E recommendation; `npm run docs`, `npm run validate:pr`, and independent documentation writer review passed.
- Open managed docs PRs as of 2026-10-26 19:57 UTC: [#13765](https://github.com/NVIDIA/NemoClaw/pull/13765), a draft opened 2026-10-26 19:38:30 UTC for later main commit `9347d8928be41deaa78febfe34dc357839251e6b`. It changes only `docs/changelog/2026-10-26.mdx` and is outside this planned candidate.
- Maintainer decision: Proceed with the candidate as shown.

## Base and managed image evidence

- Base-image candidate: `a08ae7aa911ef5bd7a4b72d9020f575d75d0adb1`
- Candidate check: [base-image-publication](https://github.com/NVIDIA/NemoClaw/actions/runs/40377143448/job/121763964307) succeeded at 2026-10-26 18:26:13 UTC in [E2E workflow run 40377143448, attempt 1](https://github.com/NVIDIA/NemoClaw/actions/runs/40377143448). GitHub binds both job and run to the planned candidate SHA on `main`.
- Applicable publication: this PR-mode check selected the successful [base and managed-image publication run 40361745698](https://github.com/NVIDIA/NemoClaw/actions/runs/40361745698) at `143678b745b0f558c957559dee26f997588b2c5e`, including the [multi-platform managed-image promotion](https://github.com/NVIDIA/NemoClaw/actions/runs/40361745698/job/121726058589). The verifier deliberately selects the nearest successful publication from the candidate's applicable first-parent image history. The only changes from that published main commit to the release candidate are four documentation files, so no image input changed. The PR-mode check itself did not publish a new candidate image.

## General E2E decision

- Newest identifiable full manual main run at inspection 2026-10-26 19:57:17 UTC: [run 40357414742](https://github.com/NVIDIA/NemoClaw/actions/runs/40357414742), attempt 2, tested `27aa219854271a2bea893f64d4af17c3e1eeb0bc`, which differs from the candidate `a08ae7aa911ef5bd7a4b72d9020f575d75d0adb1`. Created 2026-10-26 16:15:51 UTC (age 3 hours 41 minutes 26 seconds); started 2026-10-26 17:33:51 UTC; last updated 2026-10-26 18:06:06 UTC; completed with failure. [Release qualification](https://github.com/NVIDIA/NemoClaw/actions/runs/40357414742/job/121753929011) ran 18:05:01–18:05:08 UTC and failed; [Exact staging Brev Launchable](https://github.com/NVIDIA/NemoClaw/actions/runs/40357414742/job/121737137138) ran 17:33:57–18:04:58 UTC and succeeded.
- Failed jobs in that run: [MCP bridge (deepagents, docker)](https://github.com/NVIDIA/NemoClaw/actions/runs/40357414742/job/121737140732); [OpenClaw native NVIDIA switch and responsiveness](https://github.com/NVIDIA/NemoClaw/actions/runs/40357414742/job/121737144841); [Pi managed runtime qualification](https://github.com/NVIDIA/NemoClaw/actions/runs/40357414742/job/121737144945); [GPU Ollama and configuration export](https://github.com/NVIDIA/NemoClaw/actions/runs/40357414742/job/121737145375); [Hermes resume and forwarding](https://github.com/NVIDIA/NemoClaw/actions/runs/40357414742/job/121737145440). `Relevant E2E` was skipped. The bounded job listing establishes status, not failure root cause.
- Bounded failure-log observations: MCP bridge did not produce the expected authentication-rewrite marker and its mock reported a progressive-discovery error; OpenClaw gateway inference timed out with exit 124; Pi recovery after sandbox and gateway restarts started zero tools where one was required; one of five GPU Ollama tests received a generic Hermes greeting instead of the expected answer; Hermes resume failed because OpenShell reported the recreated sandbox in error while waiting for readiness. These are observed assertions and diagnostics, not established root causes. The candidate adds rebuild, onboarding, uninstall, and documentation commits after the tested full-run SHA; none of these five failing targets has a successful full-run result bound to the candidate.
- Candidate push E2E: [run 40372993034](https://github.com/NVIDIA/NemoClaw/actions/runs/40372993034), attempt 1, tested `a08ae7aa911ef5bd7a4b72d9020f575d75d0adb1`, created and started 2026-10-26 17:54:30 UTC, cancelled at 18:36:19 UTC while pending with no jobs after a later main push displaced it. The maintainer chose to keep this candidate and authorized one rerun. [Attempt 2](https://github.com/NVIDIA/NemoClaw/actions/runs/40372993034/attempts/2) was submitted at 2026-10-26 18:50:20 UTC on the same exact candidate and cancelled at 19:31:11 UTC, still pending with no jobs. A newer main push created [run 40387457013](https://github.com/NVIDIA/NemoClaw/actions/runs/40387457013) at 19:31:08 UTC while another main E2E was running; the pending-slot replacement explains the cancellation. No further rerun has been authorized.
- Maintainer E2E choice: Proceed with the status as shown. The maintainer did not request another focused or full run.

Exceptions: The newest full main E2E tested older commit `27aa219854271a2bea893f64d4af17c3e1eeb0bc` and failed five jobs, while both exact-candidate push attempts were cancelled before jobs ran. The maintainer accepts this unresolved E2E status for `a08ae7aa911ef5bd7a4b72d9020f575d75d0adb1` because she considers some failures flaky and says the others are being addressed in the next release. This is an E2E exception, not a passing candidate full-suite result.
Assets 2
Loading