Skip to content

v0.0.120

@cjagwani cjagwani tagged this 05 Sep 05:55
## Release range

- Previous release: `v0.0.119` at `f427b07d0e01b309983239dd97c989234b18c3c1`
- Candidate: `2444537f5a77c7b2789de4d59430e228328b8279`
- Candidate selection: current-main
- Commits: 74
- Risky files detected: 320

## QA context

### Risky areas

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

## v0.0.120

NemoClaw v0.0.120 adds secret-free verified configuration export and a global host and gateway doctor.
It updates the supported Hermes runtime to 0.20.6, retires Shields from NemoClaw core, and moves managed host forwarding to OpenShell service forwarding.
It also hardens sandbox recovery, onboarding, inference validation, MCP lifecycle operations, mTLS selection, and credential-bound messaging policy.

- `nemoclaw config export <sandbox> --output <path|->` now writes a canonical `nemoclaw.nvidia.com/v1` configuration document after cross-checking registry, lifecycle, gateway, workload, image, inference, policy, and credential-reference state.
  The command keeps secrets out of YAML and JSON output and fails closed on inconsistent evidence.
  On Linux, file output uses owner-only atomic publication; `--output -` writes YAML to standard output on another supported host or in a pipeline.
  Related change: [PR #11015](https://github.com/NVIDIA/NemoClaw/pull/11015).
  For more information, refer to the [NemoClaw CLI Commands Reference](/user-guide/openclaw/reference/commands).
- `nemoclaw doctor` now runs read-only host and gateway checks before onboarding or without selecting a sandbox.
  It supports human-readable and redacted JSON reports, leaves gateway and sandbox state unchanged, and returns a nonzero status when a required check fails.
  Related change: [PR #11012](https://github.com/NVIDIA/NemoClaw/pull/11012).
  For more information, refer to [System Readiness](/user-guide/openclaw/reference/system-readiness) and the [NemoClaw CLI Commands Reference](/user-guide/openclaw/reference/commands).
- The managed Hermes runtime is now 0.20.6 with retargeted compatibility patches, reviewed lazy Hindsight dependencies, workspace-aware session previews, scheduled-task recovery, and the maintained managed-image security boundaries.
  Gateway startup preserves the validated lazy-install target for both direct root-entrypoint and OpenShell-managed same-UID topologies.
  Legacy rebuilds with no image hint now require the release-pinned immutable Hermes base and stop before mutation if it cannot be resolved and validated.
  Related changes: [PR #10595](https://github.com/NVIDIA/NemoClaw/pull/10595), [PR #11071](https://github.com/NVIDIA/NemoClaw/pull/11071), and [PR #11024](https://github.com/NVIDIA/NemoClaw/pull/11024).
  For more information, refer to [Install Hermes Plugins](/user-guide/hermes/manage-sandboxes/install-hermes-plugins) and [Recover and Rebuild Sandboxes](/user-guide/hermes/manage-sandboxes/operate-sandboxes/recover-and-rebuild-sandboxes).
- Hermes Portable stopped-runtime recovery now reuses validated Podman and executable evidence inside each qualified lifecycle transaction, performs one bounded readiness wait inside the sandbox, and retries only transient final readiness-publication failures.
  Required host forwards settle together from a strict ownership snapshot with in-process TCP liveness checks, while full entry and final qualification, credential-bearing health, authority fences, and rollback remain enforced.
  Related changes: [PR #10927](https://github.com/NVIDIA/NemoClaw/pull/10927), [PR #10983](https://github.com/NVIDIA/NemoClaw/pull/10983), [PR #10988](https://github.com/NVIDIA/NemoClaw/pull/10988), [PR #10999](https://github.com/NVIDIA/NemoClaw/pull/10999), and [PR #11019](https://github.com/NVIDIA/NemoClaw/pull/11019).
  For more information, refer to [Recover and Rebuild Sandboxes](/user-guide/hermes/manage-sandboxes/operate-sandboxes/recover-and-rebuild-sandboxes).
- Shields has been retired from NemoClaw core, including its commands, plugin status, timers, policies, state-lock plans, and runtime-provider mutation contract.
  Upgrades preserve and report legacy Shields state instead of interpreting or deleting it, and affected installations must follow the printed fail-closed quarantine and rebuild guidance before ordinary mutation.
  Legacy OpenClaw migration also preserves the prepared rebuild context and exact candidate managed-image selection across replacement creation.
  Related changes: [PR #10722](https://github.com/NVIDIA/NemoClaw/pull/10722) and [PR #10996](https://github.com/NVIDIA/NemoClaw/pull/10996).
  For more information, refer to [Recover and Rebuild Sandboxes](/user-guide/openclaw/manage-sandboxes/operate-sandboxes/recover-and-rebuild-sandboxes) and [Security Best Practices](/user-guide/openclaw/security/best-practices).
- NemoClaw now uses detached `openshell forward service` processes for managed dashboard, messaging, and MCP host forwards instead of owning SSH forwarding processes and receipt state.
  The forward lifecycle follows sandbox and gateway availability, refuses an occupied host port, verifies reachability before success, and relaunches through normal recovery.
  MCP lifecycle work and typed policy reads also retain the sandbox's recorded gateway, workspace, TLS, and mTLS authority instead of inheriting ambient selectors.
  Related changes: [PR #10695](https://github.com/NVIDIA/NemoClaw/pull/10695), [PR #10814](https://github.com/NVIDIA/NemoClaw/pull/10814), [PR #10815](https://github.com/NVIDIA/NemoClaw/pull/10815), and [PR #10810](https://github.com/NVIDIA/NemoClaw/pull/10810).
  For more information, refer to [Understand Gateway Lifecycle Control](/user-guide/openclaw/manage-sandboxes/configure-sandboxes/understand-gateway-lifecycle-control) and [About Managed MCP Servers](/user-guide/openclaw/manage-sandboxes/mcp-servers/about-managed-mcp-servers).
- Onboarding can restore a validated managed snapshot into a replacement sandbox before it publishes the replacement registry entry, preserving the snapshot and leaving the replacement unregistered when restore or authority checks fail.
  Native Podman providers can own their Docker-less readiness checks, qualified N1x users who decline the Deferred Express preview continue into ordinary provider selection, and managed vLLM preserves the catalog's served model when a resume checkpoint records a short alias.
  Plain sandboxes without a Portable receipt also avoid the Hermes lifecycle-lock path when they use a non-default gateway port.
  Related changes: [PR #10690](https://github.com/NVIDIA/NemoClaw/pull/10690), [PR #10900](https://github.com/NVIDIA/NemoClaw/pull/10900), [PR #11046](https://github.com/NVIDIA/NemoClaw/pull/11046), [PR #10882](https://github.com/NVIDIA/NemoClaw/pull/10882), and [PR #10864](https://github.com/NVIDIA/NemoClaw/pull/10864).
  For more information, refer to the [NemoClaw Quickstart with OpenClaw](/user-guide/openclaw/get-started/quickstart), [Use vLLM](/user-guide/openclaw/inference/local-inference/set-up-vllm), and [Recover and Rebuild Sandboxes](/user-guide/openclaw/manage-sandboxes/operate-sandboxes/recover-and-rebuild-sandboxes).
- Inference status retries transient HTTP `429`, `502`, `503`, and `504` results up to three total attempts while preserving redacted JSON stdout and the final unhealthy result when every attempt fails.
  NVIDIA Nemotron 3 Super endpoint validation now sends its required sampling and chat-template parameters, and the default Model Router pool replaces the retired Nemotron Nano route with GPT-OSS 20B High.
  Related changes: [PR #10956](https://github.com/NVIDIA/NemoClaw/pull/10956), [PR #10910](https://github.com/NVIDIA/NemoClaw/pull/10910), and [PR #11070](https://github.com/NVIDIA/NemoClaw/pull/11070).
  For more information, refer to [Verify the Inference Route](/user-guide/openclaw/inference/validate-inference/verify-inference-route), [Set Up Model Router](/user-guide/openclaw/inference/hosted-inference/set-up-model-router), and the [NemoClaw CLI Commands Reference](/user-guide/openclaw/reference/commands).
- Deep Agents MCP status now rejects symbolic links, dangling symbolic links, FIFOs, and other unsafe managed projection entries instead of reporting an ordinary adapter mismatch.
  Snapshot restore can reconstruct the NemoClaw-owned projection through an atomic no-follow replacement while preserving directory targets for explicit operator recovery.
  Related changes: [PR #10911](https://github.com/NVIDIA/NemoClaw/pull/10911) and [PR #10909](https://github.com/NVIDIA/NemoClaw/pull/10909).
  For more information, refer to [Create and Restore Snapshots](/user-guide/deepagents/manage-sandboxes/state-and-backups/create-and-restore-snapshots) and [About Managed MCP Servers](/user-guide/deepagents/manage-sandboxes/mcp-servers/about-managed-mcp-servers).
- Messaging and web-search provider setup now verifies the exact checked-in OpenShell profile before registration or Ready reuse.
  An existing refreshing bridge keeps its working credential until replacement minting succeeds, and lookup, update, cleanup, and recovery failures remain distinct, redacted, and fail closed.
  Named gateway operations also reject an ambient OpenShell endpoint that could redirect provider preparation.
  Related changes: [PR #10884](https://github.com/NVIDIA/NemoClaw/pull/10884) and [PR #10895](https://github.com/NVIDIA/NemoClaw/pull/10895).
  For more information, refer to [Manage Messaging Channels](/user-guide/openclaw/manage-sandboxes/messaging-channels/manage-messaging-channels) and [Credential Storage](/user-guide/openclaw/security/credential-storage).
- Hermes Discord policy now authorizes only the Hermes and Python runtime binaries used for Discord traffic and removes the unused generic Node.js grant.
  Existing Hermes Discord sandboxes can reapply the maintained preset to remove the durable old grant without changing unrelated policy entries.
  Related change: [PR #10682](https://github.com/NVIDIA/NemoClaw/pull/10682).
  For more information, refer to [Apply Policy Presets](/user-guide/hermes/network-policy/configure-policies/apply-policy-presets).

## Documentation coverage

- Latest included cumulative docs PR: [#10832](https://github.com/NVIDIA/NemoClaw/pull/10832), `docs: prepare v0.0.119 documentation`.
- Final PR commit and merge commit: `16f5760bc5e0041faff710477c62018d3777d77e` and `e01658ed85745a46aa7892582cac307ad594ac01`.
- Final automated refresh coverage commit: `e76756027d7d561045cfbcf0c03d292ab05f6988`.
- Later commits and merged PRs: 91 first-parent commits from the coverage point through the candidate, each bound through the GitHub commit-pulls API:
- `2444537f5a77c7b2789de4d59430e228328b8279` — [PR #11102](https://github.com/NVIDIA/NemoClaw/pull/11102) — docs: document trusted Hermes rebuild aliases
- `920337546c9462b154282a218b3fe3c81e84ea19` — [PR #11101](https://github.com/NVIDIA/NemoClaw/pull/11101) — docs: clarify Hermes rebuild image override
- `9ee33dec650817ee58e0641b07ad29a8b3a99f00` — [PR #11100](https://github.com/NVIDIA/NemoClaw/pull/11100) — docs: prepare v0.0.120 release
- `685eab2f5ac0fbd18c07c44a39143abceac4ca03` — [PR #11013](https://github.com/NVIDIA/NemoClaw/pull/11013) — test(e2e): assert Ollama recovery outcomes
- `fa08360a2a873d3e3a797c67277fde6e93887513` — [PR #11070](https://github.com/NVIDIA/NemoClaw/pull/11070) — fix(inference): update Model Router pool
- `88f1ed8cb9cc1850bf6084c6200367f46e7e2f0c` — [PR #10910](https://github.com/NVIDIA/NemoClaw/pull/10910) — fix(onboard): use Nemotron endpoint probe parameters
- `5b74336486a8492ad87dd7eaba3d1bc06abbadf6` — [PR #11075](https://github.com/NVIDIA/NemoClaw/pull/11075) — fix(ci): guard reviewed audit cache inputs
- `48d157cd5aa74367be84b36037f8e98b9fe66d3a` — [PR #11046](https://github.com/NVIDIA/NemoClaw/pull/11046) — fix(onboard): restore N1x standard onboarding
- `c86af53cb1780e65013bada531836742baa7f891` — [PR #10996](https://github.com/NVIDIA/NemoClaw/pull/10996) — fix(sandbox): repair Shields removal regressions
- `94bb868ea0f3e98533b06196def74b7559a1d1d4` — [PR #11024](https://github.com/NVIDIA/NemoClaw/pull/11024) — fix(rebuild): prefer pinned Hermes base for legacy recovery
- `37cedc99007a776d4ea4591fcc74eb14bdcc0ef9` — [PR #11071](https://github.com/NVIDIA/NemoClaw/pull/11071) — fix(hermes): preserve sandbox lazy install target
- `4b254b9bef3e0ba745af4859fc65700742f5317e` — [PR #11069](https://github.com/NVIDIA/NemoClaw/pull/11069) — fix(ci): bind audit receipt to reviewed npm
- `3e2a429de996f5be55089cd1fedc1e43fc01ed8e` — [PR #10995](https://github.com/NVIDIA/NemoClaw/pull/10995) — refactor(cli): route streamed exec through adapter
- `d99d1dc579b26be7b240cf50d26b210b7a8d1b1d` — [PR #11012](https://github.com/NVIDIA/NemoClaw/pull/11012) — fix(cli): add global host and gateway doctor
- `58732cfd84267842e6d8caa08ee9c7eeb01bf41a` — [PR #10690](https://github.com/NVIDIA/NemoClaw/pull/10690) — fix(onboard): restore managed state before registration
- `3e4f701816073feb4a4c8827cc8fcad1eac926b2` — [PR #11003](https://github.com/NVIDIA/NemoClaw/pull/11003) — test(e2e): exercise model override startup path
- `87f6d02998d50eaaef8f9a3f0e61fbc0647ae14b` — [PR #11010](https://github.com/NVIDIA/NemoClaw/pull/11010) — fix(advisor): prefer existing regression coverage
- `07ba7416cfd087317d5974bb5a8d04edd84797f9` — [PR #10956](https://github.com/NVIDIA/NemoClaw/pull/10956) — fix(status): retry a transient inference request refusal
- `2fdb783533f58c7e316aedf7595a1808c9589bbc` — [PR #11006](https://github.com/NVIDIA/NemoClaw/pull/11006) — fix(e2e): restore main retry reporter under raw Node
- `b466348c03c6f657098fffd84890c5f62814ba65` — [PR #11005](https://github.com/NVIDIA/NemoClaw/pull/11005) — fix(e2e): recover main publication after cancelled rerun
- `f59e93ce0abd06c6ecf4d2930c183dfe90c5e495` — [PR #11066](https://github.com/NVIDIA/NemoClaw/pull/11066) — fix(ci): restore reviewed npm cache permissions
- `6df1b1fa1eb8fc5d09c1f04dc0a8c89275b45ea4` — [PR #10595](https://github.com/NVIDIA/NemoClaw/pull/10595) — chore(hermes): update runtime to 0.20.6
- `76987fc86056feec8e50df397adacaef49eaebac` — [PR #11055](https://github.com/NVIDIA/NemoClaw/pull/11055) — fix(ci): repair deterministic main failures
- `d6e85434ed50255188044652f6f8992c7e052d72` — [PR #11062](https://github.com/NVIDIA/NemoClaw/pull/11062) — fix(ci): fit jobs to npm audit budget
- `1c90d4fa04c6f388b2dd55b1922587cb9edc634e` — [PR #11059](https://github.com/NVIDIA/NemoClaw/pull/11059) — fix(ci): allow one long npm audit retry
- `969df32c1d6367cb7b3bd4ea958b6133743d8941` — [PR #11056](https://github.com/NVIDIA/NemoClaw/pull/11056) — fix(ci): allow slow npm audit responses
- `34d29c5ff6107c04b9b567a18763eb0a74c4cd6a` — [PR #11043](https://github.com/NVIDIA/NemoClaw/pull/11043) — ci(audit): use Yarn registry for npm audits
- `419d3b561c467ab933f27f92b9778affa25de084` — [PR #11015](https://github.com/NVIDIA/NemoClaw/pull/11015) — feat(config): export verified sandbox configuration
- `43e7f96ac98977ac64b8e126ea14818f8b5b89d8` — [PR #11042](https://github.com/NVIDIA/NemoClaw/pull/11042) — test(ci): repair npm audit regression fixtures
- `9c4e89a1479af55f8c4de433de51a5bfec49788e` — [PR #11035](https://github.com/NVIDIA/NemoClaw/pull/11035) — ci(security): enable trusted npm audit reuse
- `b612a1621fbbb15a662913ef6c62636c0f2ce9b5` — [PR #10810](https://github.com/NVIDIA/NemoClaw/pull/10810) — fix(policy): preserve gateway mTLS authority
- `d1cbe5d0680a124f77132084d4ff09ab1c4e4bbe` — [PR #11022](https://github.com/NVIDIA/NemoClaw/pull/11022) — fix(e2e): preserve hosted inference for Brev
- `c86529f230cb46dcbc9aaf096111e2a4efbdb1d9` — [PR #11029](https://github.com/NVIDIA/NemoClaw/pull/11029) — ci(security): reuse fresh npm audit evidence
- `e6d435819bc7c4a5c07860665c5712173f6e47a9` — [PR #11019](https://github.com/NVIDIA/NemoClaw/pull/11019) — perf(cli): reduce Hermes forward recovery subprocess overhead
- `7533f279edeb9cd6d71117e8e65c364ef15cacab` — [PR #11020](https://github.com/NVIDIA/NemoClaw/pull/11020) — ci(docs): clarify documentation job names
- `81471845f4071b51779e27c6773df3a26b440c43` — [PR #11023](https://github.com/NVIDIA/NemoClaw/pull/11023) — refactor(ci): unify WeChat runtime npm audit
- `2afbb2f09128d9cc90711b5a37076431a932d82e` — [PR #10815](https://github.com/NVIDIA/NemoClaw/pull/10815) — refactor(mcp): bind lifecycle to recorded runtime
- `c1d55e860d7b4e48ec86cc8954963238b5cb92fc` — [PR #11018](https://github.com/NVIDIA/NemoClaw/pull/11018) — test(onboard): align retained Podman proof assertion
- `f7d2b3a14a67b9e7fca79398b77fd1d0c903845b` — [PR #10882](https://github.com/NVIDIA/NemoClaw/pull/10882) — fix(onboard): preserve served model route
- `bb897d06953696573b50b74ebfdc34fcc62324a2` — [PR #10887](https://github.com/NVIDIA/NemoClaw/pull/10887) — docs(deployment): name the gateway service unit for each authority mode
- `daa56969a33f8c07985945ced33f8af7378643e7` — [PR #10814](https://github.com/NVIDIA/NemoClaw/pull/10814) — refactor(openshell): add selected runtime foundation
- `16142ebfc9fb52449cea6a2c0bacbd6593e93959` — [PR #10736](https://github.com/NVIDIA/NemoClaw/pull/10736) — fix(ci): preserve managed PR contracts across reruns
- `a37ab0587257296c487635d7de7ddd14169331d9` — [PR #10999](https://github.com/NVIDIA/NemoClaw/pull/10999) — perf(cli): reuse Hermes executable proof during recovery
- `d21dfe150c6e5e9c60fd391aa0b25d094b8f14bd` — [PR #10909](https://github.com/NVIDIA/NemoClaw/pull/10909) — fix(snapshot): restore unsafe managed MCP projection
- `3d754417b5f07f9ed61ff709c5bb107aaffff1dc` — [PR #11001](https://github.com/NVIDIA/NemoClaw/pull/11001) — test(e2e): reduce Hermes Discord assertions
- `6831ed251641b6885939deef6dd34bf3e10266b0` — [PR #10997](https://github.com/NVIDIA/NemoClaw/pull/10997) — test(e2e): retire duplicate Pi ARM64 lifecycle target
- `dcfb1484dfef71345c14c2bad5c53a6a0ee0e381` — [PR #10913](https://github.com/NVIDIA/NemoClaw/pull/10913) — chore(deps): bump the codeql-action group with 3 updates
- `6c0b3193b26d8a5adaa0a6bbbe02fcf0f471495d` — [PR #10792](https://github.com/NVIDIA/NemoClaw/pull/10792) — test(e2e): prune network policy coverage
- `41f54637b317487397c5aa2dd47f7ff2271ad58a` — [PR #10895](https://github.com/NVIDIA/NemoClaw/pull/10895) — refactor(messaging): route provider preparation through adapter
- `09298538cb6fb43469f915bb708cc435b4e81c31` — [PR #10843](https://github.com/NVIDIA/NemoClaw/pull/10843) — test(ci): ratchet the root Dockerfile budget
- `ffb8bf550586048ab05e8400911084710b5ac692` — [PR #10682](https://github.com/NVIDIA/NemoClaw/pull/10682) — fix(policy): restrict Hermes Discord binary access
- `3ab308534bf5fdc4346ee14a6603f6377408827f` — [PR #10988](https://github.com/NVIDIA/NemoClaw/pull/10988) — perf(cli): wait in sandbox for Hermes readiness
- `699ec5137503cda0308ef4378228ba8e6940a6e3` — [PR #10911](https://github.com/NVIDIA/NemoClaw/pull/10911) — fix(mcp): reject unsafe Deep Agents projections
- `d836ccb446114c4d93edab7a7bd58fc5f9919a95` — [PR #10907](https://github.com/NVIDIA/NemoClaw/pull/10907) — test(openclaw): remove dependency review prose contracts
- `2b53b3e1bc7a570e4548f9bf508d78de92051c18` — [PR #10983](https://github.com/NVIDIA/NemoClaw/pull/10983) — perf(cli): reduce Hermes Podman executable checks
- `ee8b43f01a47a1caecb1d7366ab27ed04f4759eb` — [PR #10986](https://github.com/NVIDIA/NemoClaw/pull/10986) — test(package): install packed CLI as a consumer
- `f7c1d83547806681cfa10f9942293a3447dfeee9` — [PR #10695](https://github.com/NVIDIA/NemoClaw/pull/10695) — refactor(forward): adopt OpenShell service forwarding
- `36f54548583a4db32b78b02a81df0222d7ef070b` — [PR #10930](https://github.com/NVIDIA/NemoClaw/pull/10930) — fix(ci): isolate blueprint apply smoke
- `e7158c9908cadae49271666aede8c5ce726a79d9` — [PR #10981](https://github.com/NVIDIA/NemoClaw/pull/10981) — test(e2e): preserve Docker proof within assertion budget
- `7bc678f1f20d92c28a6f5f32f7a84c908952513f` — [PR #10960](https://github.com/NVIDIA/NemoClaw/pull/10960) — test(inference): isolate lifecycle lock state
- `eb3fa2e5097389d7dd8e2643552788ff16d8f14a` — [PR #10900](https://github.com/NVIDIA/NemoClaw/pull/10900) — fix(onboard): admit Docker-less native Podman
- `860962da4976eac2ecbf0ccba9caee035d84fa85` — [PR #10935](https://github.com/NVIDIA/NemoClaw/pull/10935) — test(e2e): ratchet live assertion surface
- `d4eff54a8d213a3a8fe5650703c8e708eab4dd7d` — [PR #10952](https://github.com/NVIDIA/NemoClaw/pull/10952) — fix(review): inspect specialist diffs on demand
- `3076188279c0ea657ec77aeeabebf1f82061eaaf` — [PR #10864](https://github.com/NVIDIA/NemoClaw/pull/10864) — fix(sandbox): probe a sandbox with no portable receipt without lock evidence
- `8b0f617adf362fb2ed373820d02a43a00d9d2304` — [PR #10927](https://github.com/NVIDIA/NemoClaw/pull/10927) — perf(cli): reuse retained Hermes Podman proofs
- `a92b91ce223a30484761b7aa98f329c28e25d0bb` — [PR #10829](https://github.com/NVIDIA/NemoClaw/pull/10829) — fix(e2e): use trusted workflow for exact-base comparison
- `b08eaa0844dc2e972fbfa2806590668802d449b4` — [PR #10722](https://github.com/NVIDIA/NemoClaw/pull/10722) — refactor(sandbox): remove Shields from core
- `3509b5a437ed3ec4309669c4121ae5b718895bfd` — [PR #10813](https://github.com/NVIDIA/NemoClaw/pull/10813) — refactor(review): broaden specialist coverage
- `bc7b29c95182c57c3376130b5a94a4362f18933c` — [PR #10905](https://github.com/NVIDIA/NemoClaw/pull/10905) — test(ci): skip Linux classifier process tests on macOS
- `c811ef9bed6f7eb2b98dc7a98ff8e21da109598a` — [PR #10884](https://github.com/NVIDIA/NemoClaw/pull/10884) — fix(messaging): verify refreshing bridge profiles
- `f2ee031ffae355e2cc8bc5cb785f0c6f582f4ac9` — [PR #10866](https://github.com/NVIDIA/NemoClaw/pull/10866) — fix(pi): refresh qualification receipts
- `d8e90d5bd386d852a24611c1034913fb2a957079` — [PR #10898](https://github.com/NVIDIA/NemoClaw/pull/10898) — fix(skills): decrease main refreshes, batch feedback, and stabilize review candidates
- `877d5c30f722e0d8d8f6120b9118b168abdddcab` — [PR #10912](https://github.com/NVIDIA/NemoClaw/pull/10912) — test(e2e): describe direct blueprint checks accurately
- `fe18b2f004e2304c52db33cf7bb5895828197f9a` — [PR #10908](https://github.com/NVIDIA/NemoClaw/pull/10908) — fix(ci): isolate blueprint prerequisite smoke
- `f427b07d0e01b309983239dd97c989234b18c3c1` — [PR #10902](https://github.com/NVIDIA/NemoClaw/pull/10902) — fix(ci): accept validated artifact data descriptors
- `0673b122147433e8025222a135c7b8a3ebdbd27a` — [PR #10491](https://github.com/NVIDIA/NemoClaw/pull/10491) — fix(rebuild): recover from a void sandbox replacement journal
- `788cfa1a4a888d1a33bfcdcf19360add9e9b328e` — [PR #10839](https://github.com/NVIDIA/NemoClaw/pull/10839) — perf(cli): detail Hermes currentness inspection timing
- `4e581d8b42f56790b068cfbf5839d72a531c00de` — [PR #10901](https://github.com/NVIDIA/NemoClaw/pull/10901) — docs: finalize v0.0.119 release notes
- `8c974afaa6e92b6480a4bc8b11eb918616851b44` — [PR #10892](https://github.com/NVIDIA/NemoClaw/pull/10892) — fix(security): update vulnerable fast-uri graphs
- `80e15df42a712c656fa51df2815464db47fe0876` — [PR #10894](https://github.com/NVIDIA/NemoClaw/pull/10894) — ci(security): authorize fast-uri lock transition
- `2c9e2e9cb02313db0c8e1002e2df70d656b134c3` — [PR #10896](https://github.com/NVIDIA/NemoClaw/pull/10896) — docs(skills): remove volatile skill counts
- `dfe7d3c70d8d72a749470185e7c0d45f05458fab` — [PR #10856](https://github.com/NVIDIA/NemoClaw/pull/10856) — refactor(automation): classify CI failures with a skill
- `e01658ed85745a46aa7892582cac307ad594ac01` — [PR #10832](https://github.com/NVIDIA/NemoClaw/pull/10832) — docs: prepare v0.0.119 documentation
- `19bb9860a662e25418f1afbc7e0589d7f22f2497` — [PR #10707](https://github.com/NVIDIA/NemoClaw/pull/10707) — fix(messaging): stop rebuild from disabling gateway-backed channels
- `dcb7b7d2fe89da539df21977ad40d2aa8328e32b` — [PR #10150](https://github.com/NVIDIA/NemoClaw/pull/10150) — refactor(cli): add typed OpenShell policy boundaries
- `5c8f991d2d7273ad512946dc701b230b3b338d5a` — [PR #9923](https://github.com/NVIDIA/NemoClaw/pull/9923) — feat(runtime): activate qualified native Podman
- `16c21afdc858f5ca549b73d5e1fa6624bfc23c8b` — [PR #10844](https://github.com/NVIDIA/NemoClaw/pull/10844) — fix(hermes): bind Langfuse credentials to endpoint
- `0e1b7d150b6079563256330baf1043dca998040f` — [PR #10859](https://github.com/NVIDIA/NemoClaw/pull/10859) — fix(ci): stabilize Docker boundary tests
- `63bc39d14c0889c6e77bc5fd8671ae284e2e7276` — [PR #10858](https://github.com/NVIDIA/NemoClaw/pull/10858) — test(review): align conflict fixer inference expectation
- `156bddd20e7e50ca129e1b86a7e218e8e3a762a2` — [PR #10834](https://github.com/NVIDIA/NemoClaw/pull/10834) — fix(policy): validate reserved keys during dry-run
- `fbf1ecfce663de167a01dfeb7f2f2622c5687914` — [PR #10692](https://github.com/NVIDIA/NemoClaw/pull/10692) — fix(messaging): authorize validated WeChat IDC origins
- Changed paths: #10832 changed only allowed documentation paths: `docs/changelog/2026-09-02.mdx`, `docs/manage-sandboxes/set-up-wechat.mdx`, `docs/network-policy/create-custom-policy-presets.mdx`, and `docs/reference/troubleshooting.mdx`.
- Review and checks: #10832 was `APPROVED`; all 63 check-rollup entries completed (37 `SUCCESS`, 26 intentional `SKIPPED`, none failed or pending).
- Open managed docs PRs: [draft #10919](https://github.com/NVIDIA/NemoClaw/pull/10919) at `4642d1bc59ddc98b50742e576a66f46fdf1a8b3e`. Its remaining two-line legacy Hermes rebuild text is superseded by the more precise, approved, green, and merged release-docs sequence [#11100](https://github.com/NVIDIA/NemoClaw/pull/11100), [#11101](https://github.com/NVIDIA/NemoClaw/pull/11101), and [#11102](https://github.com/NVIDIA/NemoClaw/pull/11102).
- Maintainer decision: Proceed with the candidate as shown.

## Base and managed image evidence

- Base-image candidate: `2444537f5a77c7b2789de4d59430e228328b8279`
- Evidence: `base-image-publication` completed successfully for the exact candidate in [E2E workflow run 33947980322, attempt 1](https://github.com/NVIDIA/NemoClaw/actions/runs/33947980322), [job 101257411550](https://github.com/NVIDIA/NemoClaw/actions/runs/33947980322/job/101257411550), from `2026-09-05T05:44:30Z` through `2026-09-05T05:45:37Z`.

## General E2E decision

- Displayed newest identifiable full manual main run: [run 33812558290, attempt 2](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290), `E2E full main (ec86a710-78db-49c0-af87-04642ac20232)`.
- Tested commit: `3d754417b5f07f9ed61ff709c5bb107aaffff1dc`; this does not match candidate `2444537f5a77c7b2789de4d59430e228328b8279`.
- Workflow result: `completed/failure`; created `2026-09-03T22:20:14Z`, attempt started `2026-09-04T16:02:47Z`, last updated `2026-09-04T16:04:08Z`; age at inspection `31h 27m` at `2026-09-05T05:47:52Z`.
- Release qualification: `completed/failure`, started `2026-09-04T16:03:31Z`, completed `2026-09-04T16:03:39Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088902631)).
- Non-successful job results:
- `base-image-publication` — `completed/failure`; started `2026-09-04T16:02:51Z`, completed `2026-09-04T16:03:28Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088697376))
- `package-openshell-sdk` — `completed/skipped`; started `2026-09-04T16:02:50Z`, completed `2026-09-04T16:02:49Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088698968))
- `generate-matrix` — `completed/skipped`; started `2026-09-04T16:03:28Z`, completed `2026-09-04T16:03:28Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088898895))
- `${{ matrix.display_name }} (${{ matrix.runtime_provider }})` — `completed/skipped`; started `2026-09-04T16:03:29Z`, completed `2026-09-04T16:03:28Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088899911))
- `openshell-gateway-auth-contract` — `completed/skipped`; started `2026-09-04T16:03:29Z`, completed `2026-09-04T16:03:28Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088899991))
- `Hermes GPU startup (${{ matrix.scenario }}, ${{ matrix.runtime_provider }})` — `completed/skipped`; started `2026-09-04T16:03:29Z`, completed `2026-09-04T16:03:28Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088900012))
- `retired-selector-compatibility` — `completed/skipped`; started `2026-09-04T16:03:29Z`, completed `2026-09-04T16:03:28Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088900019))
- `${{ matrix.display_name }} (${{ matrix.runtime_provider }})` — `completed/skipped`; started `2026-09-04T16:03:29Z`, completed `2026-09-04T16:03:28Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088900073))
- `jetson-nvmap-gpu` — `completed/skipped`; started `2026-09-04T16:03:29Z`, completed `2026-09-04T16:03:28Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088900105))
- `openclaw-plugin-runtime-exdev` — `completed/skipped`; started `2026-09-04T16:03:29Z`, completed `2026-09-04T16:03:28Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088900125))
- `Shared E2E (${{ matrix.execution_id }})` — `completed/skipped`; started `2026-09-04T16:03:29Z`, completed `2026-09-04T16:03:28Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088900139))
- `${{ matrix.display_name }} (${{ matrix.runtime_provider }})` — `completed/skipped`; started `2026-09-04T16:03:29Z`, completed `2026-09-04T16:03:28Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088900289))
- `MCP bridge (${{ matrix.agent }}, ${{ matrix.runtime_provider }})` — `completed/skipped`; started `2026-09-04T16:03:29Z`, completed `2026-09-04T16:03:28Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088900303))
- `Messaging providers (${{ matrix.runtime_provider }})` — `completed/skipped`; started `2026-09-04T16:03:29Z`, completed `2026-09-04T16:03:28Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088900390))
- `${{ matrix.display_name }} (${{ matrix.runtime_provider }})` — `completed/skipped`; started `2026-09-04T16:03:29Z`, completed `2026-09-04T16:03:28Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088900465))
- `openshell-dev-artifact` — `completed/skipped`; started `2026-09-04T16:03:29Z`, completed `2026-09-04T16:03:28Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088900513))
- `native-runtime-qualification-producer-plan` — `completed/skipped`; started `2026-09-04T16:03:29Z`, completed `2026-09-04T16:03:28Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088900590))
- `Exact staging Brev Launchable` — `completed/skipped`; started `2026-09-04T16:03:29Z`, completed `2026-09-04T16:03:28Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088900618))
- `Hermes E2E (${{ matrix.runtime_provider }})` — `completed/skipped`; started `2026-09-04T16:03:29Z`, completed `2026-09-04T16:03:28Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088900633))
- `Protected managed-image startup (${{ matrix.platform }})` — `completed/skipped`; started `2026-09-04T16:03:29Z`, completed `2026-09-04T16:03:28Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088900735))
- `Exact staging Brev Launchable identity` — `completed/skipped`; started `2026-09-04T16:03:29Z`, completed `2026-09-04T16:03:28Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088900739))
- `Cloud onboard (${{ matrix.runtime_provider }})` — `completed/skipped`; started `2026-09-04T16:03:29Z`, completed `2026-09-04T16:03:28Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088900773))
- `matrix.label` — `completed/skipped`; started `2026-09-04T16:03:29Z`, completed `2026-09-04T16:03:28Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088900776))
- `external-gateway-health` — `completed/skipped`; started `2026-09-04T16:03:29Z`, completed `2026-09-04T16:03:28Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088900876))
- `${{ matrix.display_name }} (${{ matrix.runtime_provider }})` — `completed/skipped`; started `2026-09-04T16:03:29Z`, completed `2026-09-04T16:03:28Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088901006))
- `Compile protected llama.cpp DGX Spark plan` — `completed/skipped`; started `2026-09-04T16:03:29Z`, completed `2026-09-04T16:03:28Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088901136))
- `OpenShell credential generation window (${{ matrix.runtime_provider }})` — `completed/skipped`; started `2026-09-04T16:03:29Z`, completed `2026-09-04T16:03:28Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088901162))
- `matrix.jobName` — `completed/skipped`; started `2026-09-04T16:03:29Z`, completed `2026-09-04T16:03:29Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088902032))
- `Build pinned native Podman toolchain / ${{ matrix.architecture }}` — `completed/skipped`; started `2026-09-04T16:03:29Z`, completed `2026-09-04T16:03:29Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088902086))
- `MCP bridge dev (${{ matrix.agent }}, ${{ matrix.runtime_provider }})` — `completed/skipped`; started `2026-09-04T16:03:29Z`, completed `2026-09-04T16:03:29Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088902361))
- `Protected managed-image GPU and local inference` — `completed/skipped`; started `2026-09-04T16:03:29Z`, completed `2026-09-04T16:03:29Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088902403))
- `Protected llama.cpp on NVIDIA DGX Spark` — `completed/skipped`; started `2026-09-04T16:03:29Z`, completed `2026-09-04T16:03:29Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088902610))
- `Release qualification` — `completed/failure`; started `2026-09-04T16:03:31Z`, completed `2026-09-04T16:03:39Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088902631))
- `Aggregate native runtime qualification evidence` — `completed/skipped`; started `2026-09-04T16:03:29Z`, completed `2026-09-04T16:03:29Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088903378))
- `Relevant E2E` — `completed/skipped`; started `2026-09-04T16:03:29Z`, completed `2026-09-04T16:03:29Z` ([job](https://github.com/NVIDIA/NemoClaw/actions/runs/33812558290/job/101088903771))
- Requested runs: None.
- Maintainer choice: Proceed with the status as shown.

Exceptions: The newest identifiable full manual main run tested `3d754417b5f07f9ed61ff709c5bb107aaffff1dc` rather than candidate `2444537f5a77c7b2789de4d59430e228328b8279` and failed; required candidate image evidence passed, and the maintainer accepts the remaining general E2E risk to unblock this release.
Assets 2
Loading