## Release range
- Previous release: `v0.0.115` at `324a886fd05b01f6756bae0371ea503c651fbd11`
- Candidate: `b12bede8bfa5bc7a8c083f54fc79a4f5663b81df`
- Candidate selection: current-main
- Commits: 41
- Risky files detected: 142
## 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-08-28.mdx`
- Entry:
## v0.0.116
NemoClaw v0.0.116 improves compatible endpoint validation, Portable Hermes inference recovery, sandbox lifecycle safety, managed images, Windows Subsystem for Linux (WSL) onboarding, managed local inference, and experimental Hermes channel credentials.
It also preserves recorded network-policy intent during sandbox reuse and rebuild.
- OpenClaw compatible endpoint onboarding now validates `inference.local` from inside the sandbox even when no messaging channel is selected, and an unreachable route stops onboarding before final deployment verification.
`inference set` can reuse a recorded loopback no-auth endpoint without replacing its provider, and reasoning-only responses receive one bounded larger-budget content attempt before failure.
Related changes: [PR #10458](https://github.com/NVIDIA/NemoClaw/pull/10458), [PR #10531](https://github.com/NVIDIA/NemoClaw/pull/10531), and [PR #10540](https://github.com/NVIDIA/NemoClaw/pull/10540).
- `nemohermes <name> recover` and `nemohermes <name> connect --probe-only` now recover only the published receipt-owned Portable Ollama runner.
They verify an already-running runner without restarting it, resume the recorded stopped runner once, and require a final in-sandbox route proof.
If a later check fails, recovery attempts to return the stopped runner and registry to their prior state and reports when either restoration cannot be proved.
Related change: [PR #10505](https://github.com/NVIDIA/NemoClaw/pull/10505).
- Uninstall now creates fresh snapshots for eligible registered non-Portable sandboxes before deletion unless `--destroy-user-data` is selected.
It honors `NEMOCLAW_OPENSHELL_GATEWAY_STATE_DIR`, preserves abandoned Portable configuration without treating it as lifecycle authority, and stops before cleanup when backup, lifecycle-lock, ownership, or registration checks fail.
Related changes: [PR #10231](https://github.com/NVIDIA/NemoClaw/pull/10231), [PR #10550](https://github.com/NVIDIA/NemoClaw/pull/10550), and [PR #10562](https://github.com/NVIDIA/NemoClaw/pull/10562).
- Sandbox creation and reuse now retain verified sandbox identity, policy, provider, credential, and lifecycle authority across retries and process restarts.
Same-name replacements and authority drift stop mutation, while managed-image registration tolerates a transient non-`Ready` report only when durable sandbox identity still matches.
Related changes: [PR #10510](https://github.com/NVIDIA/NemoClaw/pull/10510) and [PR #10512](https://github.com/NVIDIA/NemoClaw/pull/10512).
- Sandbox destruction can recover an expired Shields auto-restore timer only when its process is gone or its recorded start identity no longer matches.
Live or unverifiable timer ownership remains fail-closed, and destruction skips pre-delete hardening only after Docker proves the sandbox container is absent.
Related change: [PR #10225](https://github.com/NVIDIA/NemoClaw/pull/10225).
- Hermes Portable images now select the reviewed multi-platform base that matches their OpenSSL 3.5.7 package inventory, and OpenClaw images install checksum-pinned libevent 2.1.13 on AMD64 and ARM64.
Related changes: [PR #10532](https://github.com/NVIDIA/NemoClaw/pull/10532) and [PR #10526](https://github.com/NVIDIA/NemoClaw/pull/10526).
- On WSL, public managed image pulls, generated image builds, GPU probes, and local inference probe pulls use a temporary credential-free Docker configuration when the default Docker Desktop credential helper is unavailable.
Managed local inference now waits for disposable Podman probe identities to disappear after one removal command, and llama.cpp image-pull failures report a fixed layer, code, and exit status without exposing raw pull output.
Related changes: [PR #10470](https://github.com/NVIDIA/NemoClaw/pull/10470), [PR #10554](https://github.com/NVIDIA/NemoClaw/pull/10554), and [PR #10561](https://github.com/NVIDIA/NemoClaw/pull/10561).
- Re-onboarding or rebuilding an OpenClaw sandbox with a recorded Balanced or Open tier now keeps an already-applied `brave` preset when web search is disabled or switched to Tavily Search.
Restricted and unknown tiers, unsupported agents, and custom preset ownership retain their existing fail-closed reconciliation behavior.
Related change: [PR #10457](https://github.com/NVIDIA/NemoClaw/pull/10457).
- For the experimental Hermes WeChat and Microsoft Teams channels, managed startup now maps revision-scoped OpenShell credential placeholders to the environment names Hermes reads.
Only matching revision-scoped placeholders are copied.
Raw or identityless runtime values are ignored, while malformed or channel-unbound aliases stop startup; both channels remain experimental.
Related change: [PR #10563](https://github.com/NVIDIA/NemoClaw/pull/10563).
## Documentation coverage
- Latest included cumulative docs PR: [#10530](https://github.com/NVIDIA/NemoClaw/pull/10530), `docs: prepare v0.0.116 documentation`.
- Final PR commit and merge commit: `61863724a1714f00e8fb9e3eea4444c8e0a724a5` and `b12bede8bfa5bc7a8c083f54fc79a4f5663b81df`.
- Final automated refresh coverage commit: `cf72805feee92b2f76d9a5d0d1944eff35be843e`, selected from verified workflow commit `9e8fb9ff782ed93699a2be7fe46e9b47cf122689`.
- Later commits and merged PRs:
- `344b679539f6c5ee24f667a1f747b6d88df3ec05` — [PR #10420](https://github.com/NVIDIA/NemoClaw/pull/10420), `docs(skills): require direct pre-push validation`.
- `8c42560869ca7003b652217b769831b6b8b342d4` — [PR #10457](https://github.com/NVIDIA/NemoClaw/pull/10457), `fix(onboard): keep tier-default Brave egress on re-onboard reuse`.
- `ebb4c973501e5cc145f6f67e9cddd703ac17363c` — [PR #10593](https://github.com/NVIDIA/NemoClaw/pull/10593), `docs: catch up post-merge runtime guidance`.
- `b12bede8bfa5bc7a8c083f54fc79a4f5663b81df` — [PR #10530](https://github.com/NVIDIA/NemoClaw/pull/10530), `docs: prepare v0.0.116 documentation`.
- Changed paths: only `docs/changelog/2026-08-28.mdx`, `docs/inference/understand-provider-validation.mdx`, `docs/manage-sandboxes/recover-rebuild-sandboxes.mdx`, and `docs/reference/commands.mdx`; all are allowed documentation paths.
- Review and checks: `APPROVED`; the independent review found no findings for exact diff SHA-256 `c6f61a964d1b406a4516f30b5cc76b6cbb7fff7ebab8fb5b108bec4db6e0ec1d`; 31 checks succeeded, 10 path-inapplicable checks were skipped, and none failed or remained pending. `npm run docs` and `npm run validate:pr` passed locally.
- Open managed docs PRs: None.
- Maintainer decision: Proceed with the candidate as shown.
## Base and managed image evidence
- Base-image candidate: `b12bede8bfa5bc7a8c083f54fc79a4f5663b81df`
- Evidence: [E2E workflow run 33240224023, attempt 1](https://github.com/NVIDIA/NemoClaw/actions/runs/33240224023), bound to the candidate on `main` and triggered by its push, completed successfully. Its [base-image-publication job 99068177545](https://github.com/NVIDIA/NemoClaw/actions/runs/33240224023/job/99068177545) ran from `2026-08-29T07:10:43Z` through `2026-08-29T07:11:41Z` and concluded `success`.
## General E2E decision
- Inspection at `2026-08-29T07:12:53Z` found no identifiable full manual `main` run in the prescribed 100-run window. Run ID, tested SHA, attempt, workflow timestamps, workflow URL, `Release qualification` job URL, and candidate match were therefore unavailable. No legacy job scan was performed.
- Requested runs: None. The maintainer directed that E2E not be rerun.
- Maintainer choice: Proceed with the status as shown.
Exceptions: No recent identifiable full manual `main` run was found; the maintainer accepted the previously displayed failures as transient issues and directed no rerun.