Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions docs/changelog/2026-08-18.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
{/*
* SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
* SPDX-License-Identifier: Apache-2.0
*/}

## v0.0.111

NemoClaw v0.0.111 extends the explicit experimental Portable profile with receipt-owned Hermes lifecycle authority and a fixed host-gateway and registry network topology.
It makes Shields recovery, sandbox rebuilds, provider routing, and messaging bootstrap more diagnosable and less likely to leave ambiguous state.
It also improves headless and local-inference onboarding, managed gateway recovery, uninstall cleanup, and release qualification.

- Experimental Portable Hermes onboarding now publishes `pending`, `configuring`, and `active` lifecycle receipts that bind the selected rootless Podman socket, exact container, startup command, policy, and registry identity.
An active receipt supports `launch`, `connect`, `recover`, `start`, `stop`, `status`, and read-only `doctor` without falling back to Docker; incomplete receipts direct operators to resume onboarding, and unsupported commands fail before effects.
Portable onboarding also keeps every agent off Docker-labeled recreation, requires the exact stopped container to reach its terminal `exited` state, accepts the managed Hermes startup command through the root helper, and settles receipt-owned Portable uninstall in one invocation.
The Portable network now configures `169.254.1.2/32` as the OpenShell host gateway and attaches the managed registry at the distinct `169.254.1.3` address.
For more information, refer to the [NemoHermes CLI Commands Reference](/user-guide/hermes/reference/commands), [Set Up an OpenAI-Compatible Endpoint](/user-guide/hermes/inference/custom-endpoints/set-up-openai-compatible-endpoint), and [Uninstall NemoClaw](/user-guide/hermes/manage-sandboxes/operate-sandboxes/uninstall-nemoclaw).
Related changes: [PR #9424](https://github.com/NVIDIA/NemoClaw/pull/9424), [PR #9447](https://github.com/NVIDIA/NemoClaw/pull/9447), [PR #9476](https://github.com/NVIDIA/NemoClaw/pull/9476), [PR #9509](https://github.com/NVIDIA/NemoClaw/pull/9509), [PR #9511](https://github.com/NVIDIA/NemoClaw/pull/9511), and [PR #9513](https://github.com/NVIDIA/NemoClaw/pull/9513).
- OpenClaw `connect` now reports a Shields auto-relock that occurs during the active terminal session, keeps the session open, and prints the exact host command to lower Shields again.
`backup-all` recovers lockdown from its trusted policy snapshot and stops before processing another sandbox when it cannot restore the prior Shields state.
Rebuild carries read-only host mounts into the recreate session and fails closed on an older journal that cannot prove the original host-mount identity.
Uninstall removes package-owned `nemoclaw`, `nemohermes`, and `nemo-deepagents` binaries and aliases installed under NVM, including binaries that point through a linked npm package, while preserving foreign entries and the linked package source.
Managed MCP credential reservations now make `credentials add --from-existing` fail before gateway mutation; operators can provide explicit credential keys or remove the reserving MCP servers.
For more information, refer to [Create and Restore Snapshots](/user-guide/openclaw/manage-sandboxes/state-and-backups/create-and-restore-snapshots), [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).
Related changes: [PR #9508](https://github.com/NVIDIA/NemoClaw/pull/9508), [PR #9510](https://github.com/NVIDIA/NemoClaw/pull/9510), [PR #9471](https://github.com/NVIDIA/NemoClaw/pull/9471), [PR #9502](https://github.com/NVIDIA/NemoClaw/pull/9502), and [PR #9546](https://github.com/NVIDIA/NemoClaw/pull/9546).
- Headless onboarding now warns before image pulls when Docker Desktop's `desktop` credential store is selected from a session where the helper is unavailable, and provides an isolated `DOCKER_CONFIG` recovery path.
Hermes Local Ollama validation distinguishes a daemon context setting from a model's native context cap and tells operators either to restart the daemon with the required value or select a larger model.
Windows-host Ollama discovery validates the response body, provider validation rejects replies whose only message field is null, and incomplete or converging OpenShell routes receive bounded, actionable diagnostics.
Station Express preserves the selected managed-vLLM provider state, onboarding traces record the flag that activated collection, and setup reports a dropped corporate CA import or a modified OpenShell migration instead of continuing with incomplete authority.
For more information, refer to [Use Ollama](/user-guide/hermes/inference/local-inference/set-up-ollama), [Configure Model Limits](/user-guide/hermes/inference/manage-inference/configure-model-limits), and [Troubleshooting](/user-guide/hermes/reference/troubleshooting).
Related changes: [PR #9459](https://github.com/NVIDIA/NemoClaw/pull/9459), [PR #9460](https://github.com/NVIDIA/NemoClaw/pull/9460), [PR #9482](https://github.com/NVIDIA/NemoClaw/pull/9482), [PR #9488](https://github.com/NVIDIA/NemoClaw/pull/9488), [PR #9473](https://github.com/NVIDIA/NemoClaw/pull/9473), [PR #9481](https://github.com/NVIDIA/NemoClaw/pull/9481), [PR #9526](https://github.com/NVIDIA/NemoClaw/pull/9526), [PR #9516](https://github.com/NVIDIA/NemoClaw/pull/9516), [PR #9410](https://github.com/NVIDIA/NemoClaw/pull/9410), and [PR #9405](https://github.com/NVIDIA/NemoClaw/pull/9405).
- Managed messaging bootstrap now completes Discord setup, accepts reviewed per-agent credential placeholder aliases and the WeChat account token placeholder, and preserves the selected managed agent identity when onboarding reuses an existing sandbox.
The Open network-policy tier documentation also lists the experimental Microsoft Teams preset alongside the other messaging presets.
For more information, refer to [Enable Channels During Onboarding](/user-guide/openclaw/manage-sandboxes/messaging-channels/enable-channels-during-onboarding) and [Network Policies Reference](/user-guide/openclaw/reference/network-policies).
Related changes: [PR #9474](https://github.com/NVIDIA/NemoClaw/pull/9474), [PR #9477](https://github.com/NVIDIA/NemoClaw/pull/9477), [PR #9478](https://github.com/NVIDIA/NemoClaw/pull/9478), [PR #9479](https://github.com/NVIDIA/NemoClaw/pull/9479), and [PR #9504](https://github.com/NVIDIA/NemoClaw/pull/9504).
- Managed sandbox recovery now waits through exact bounded gateway startup states, stops downstream connect or launch work after a direct recovery failure, and preserves sanitized diagnostics when rollback or replacement identity cannot be confirmed.
Docker replacement failures include the exact transaction-owned container identity, exit state, and a bounded redacted log tail, while the shared private-network boundary keeps inference and managed MCP target validation consistent.
New migration snapshots now use the canonical directory name and matching manifest identity so the documented list, prune, and delete retention commands can manage them.
Failed skill installation also removes its temporary SSH configuration, and NemoClaw recognizes the OpenShell `0.0.106` manifest contract used by the release.
For more information, refer to [Recover and Rebuild Sandboxes](/user-guide/openclaw/manage-sandboxes/operate-sandboxes/recover-and-rebuild-sandboxes), [Custom Endpoint Security](/user-guide/openclaw/inference/custom-endpoints/custom-endpoint-security), and [Troubleshooting](/user-guide/openclaw/reference/troubleshooting).
Related changes: [PR #9449](https://github.com/NVIDIA/NemoClaw/pull/9449), [PR #9480](https://github.com/NVIDIA/NemoClaw/pull/9480), [PR #9475](https://github.com/NVIDIA/NemoClaw/pull/9475), [PR #9445](https://github.com/NVIDIA/NemoClaw/pull/9445), [PR #9432](https://github.com/NVIDIA/NemoClaw/pull/9432), [PR #9434](https://github.com/NVIDIA/NemoClaw/pull/9434), and [PR #9224](https://github.com/NVIDIA/NemoClaw/pull/9224).
- Release and E2E automation now treats staging Launchable as advisory context, binds PR evidence to the shipped managed-image cohort, minimizes guard-chain evidence export, and aligns typed target titles and coverage inventory.
The cumulative documentation catch-up records the changed recovery, inference, Portable, policy, and troubleshooting contracts, while contributor automation limits each author to five concurrent PRs.
Related changes: [PR #9463](https://github.com/NVIDIA/NemoClaw/pull/9463), [PR #9469](https://github.com/NVIDIA/NemoClaw/pull/9469), [PR #9472](https://github.com/NVIDIA/NemoClaw/pull/9472), [PR #9484](https://github.com/NVIDIA/NemoClaw/pull/9484), [PR #9496](https://github.com/NVIDIA/NemoClaw/pull/9496), [PR #9498](https://github.com/NVIDIA/NemoClaw/pull/9498), [PR #9514](https://github.com/NVIDIA/NemoClaw/pull/9514), [PR #9517](https://github.com/NVIDIA/NemoClaw/pull/9517), [PR #9536](https://github.com/NVIDIA/NemoClaw/pull/9536), and [PR #9550](https://github.com/NVIDIA/NemoClaw/pull/9550).
59 changes: 54 additions & 5 deletions docs/reference/commands.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -287,6 +287,13 @@ nemohermes onboard [options]
nemoclaw onboard --agent hermes [options]
```

The experimental Portable Hermes path records `pending`, `configuring`, and `active` lifecycle phases under the current user's rootless Podman authority.
If onboarding stops in `pending` or `configuring`, correct the reported condition and run `nemohermes onboard --experimental-profile portable --resume`.
Mutation, connection, and recovery commands do not act on an incomplete receipt; `status` and `doctor` report its phase.
After the receipt reaches `active`, the supported runtime actions are `launch`, `connect`, `recover`, `start`, and `stop`; `status` and read-only `doctor` provide diagnostics.
Other sandbox commands fail before their action runs while the Portable Hermes receipt exists.
The supported commands revalidate the receipt-owned Podman container and do not fall back to Docker.

</AgentOnly>
<AgentOnly variant="deepagents">

Expand Down Expand Up @@ -1243,6 +1250,15 @@ Set `NEMOCLAW_NO_CONNECT_HINT=1` to suppress the hint in scripted workflows.
If the sandbox is running an outdated agent version, a non-blocking warning prints before connecting with a `$$nemoclaw <name> rebuild` hint.
If another terminal is already connected to the sandbox, `connect` prints a note with the number of existing sessions before proceeding. Multiple concurrent sessions are allowed.

<AgentOnly variant="openclaw">

While an OpenClaw session opened by `connect` remains active, NemoClaw watches for a Shields auto-relock that occurs after the connection begins.
When one occurs, the host terminal prints one warning for that event on stderr, explains that restricted operations can now fail, and shows the exact `$$nemoclaw <name> shields down --timeout ...` command to run on the host.
The connected session remains open.
If the Shields audit cannot be read, NemoClaw keeps the session open and might not print the advisory warning.

</AgentOnly>

Without `--probe-only`, `connect` does not pull a model itself, but it does inspect managed-vLLM install variables such as `NEMOCLAW_VLLM_MODEL` and `NEMOCLAW_VLLM_EXTRA_ARGS_JSON` if you exported them in the same shell.
An unknown model slug, malformed extra-args JSON, or a gated model (for example `deepseek-r1-distill-70b`) with no `HF_TOKEN` or `HUGGING_FACE_HUB_TOKEN` exits non-zero with the same error the installer would emit, before any sandbox readiness probe or SSH attach.
Unset the managed-vLLM variable, or fix the value, before retrying a regular connection.
Expand Down Expand Up @@ -1818,28 +1834,39 @@ Terminal agents do not have a gateway runtime and fail as unsupported.

### `$$nemoclaw <name> stop`

Stop the sandbox's Docker container while preserving all of its state.
Stop the sandbox's local runtime container while preserving all of its state.
Workspace files, credentials, network policies, the registry entry, and the OpenShell sandbox record stay in place.
Use this to free CPU, memory, and GPU resources without destroying the sandbox; use [`$$nemoclaw <name> destroy`](#$$nemoclaw-name-destroy) when you want to delete it instead.

```bash
$$nemoclaw my-assistant stop
```

For OpenClaw-managed gateways, the command first asks the in-sandbox gateway to shut down its channels gracefully; agent-managed gateways (for example Hermes) are supervised inside the sandbox and shut down with the container's stop signal.
<AgentOnly variant="hermes">

For an active Portable Hermes receipt, `stop` targets only the exact receipt-owned Podman container and waits for its terminal stopped state without using Docker as a fallback.
A `pending` or `configuring` receipt instead directs you to resume Portable onboarding.
Portable Hermes does not run the Docker provider's channel hook or the generic post-stop dashboard-forward cleanup.

</AgentOnly>

For OpenClaw-managed gateways, the command first asks the in-sandbox gateway to shut down its channels gracefully; non-Portable agent-managed gateways (for example Hermes) are supervised inside the sandbox and shut down with the container's stop signal.
Then the container stops; a container stuck in a crash loop is stopped the same way, which also disarms its restart policy.
<AgentOnly variant="openclaw,hermes">
After the container stops, NemoClaw attempts to stop that sandbox's host dashboard forward.
Except for Portable Hermes, after the container stops NemoClaw attempts to stop that sandbox's host dashboard forward.
If the container does not stop, NemoClaw leaves the dashboard forward running.
</AgentOnly>
The shared host gateway, tunnel services, and any local NIM inference container serve other sandboxes and keep running.
<AgentOnly variant="openclaw,hermes">
Stopping an already-stopped sandbox succeeds and attempts to remove any leftover dashboard forward for that sandbox.
Stopping an already-stopped sandbox succeeds.
Except for Portable Hermes, NemoClaw also attempts to remove any leftover dashboard forward for that sandbox.
</AgentOnly>
<AgentOnly variant="deepagents">
Stopping an already-stopped sandbox succeeds without changes.
</AgentOnly>
The command controls the local container directly, so it is available for local-container drivers (the default Docker driver and the vm driver) and unavailable for remote drivers such as kubernetes; if the Docker daemon itself is unreachable, the command reports the outage instead of guessing at container state.
The command is available only when NemoClaw holds local-container authority.
Portable profiles use receipt-owned Podman authority; non-Portable local-container paths use the default Docker driver or the vm driver.
Remote drivers such as kubernetes are unavailable, and an unreachable selected runtime produces an outage report instead of a guessed container state.

### `$$nemoclaw <name> start`

Expand All @@ -1849,6 +1876,13 @@ Restart a sandbox container that was stopped with [`$$nemoclaw <name> stop`](#$$
$$nemoclaw my-assistant start
```

<AgentOnly variant="hermes">

For an active Portable Hermes receipt, `start` revalidates and recovers the exact receipt-owned Podman container and manifest-owned Hermes startup command without using Docker as a fallback.
A `pending` or `configuring` receipt instead directs you to resume Portable onboarding.

</AgentOnly>

Starting an already-running sandbox skips the container start and still runs the gateway and forward health checks.
A paused container is unpaused.
If the container was removed entirely, `start` fails and points you to `$$nemoclaw <name> rebuild`.
Expand Down Expand Up @@ -1876,6 +1910,13 @@ Do not pass a sandbox name to `$$nemoclaw status`; that command is the global al
NemoClaw resolves the sandbox's recorded owning OpenShell gateway before querying live state.
If another gateway is active, it selects the owner and queries again instead of trusting a result from the sibling gateway.

<AgentOnly variant="hermes">

For Portable Hermes, `status` reports `Portable lifecycle phase: pending`, `configuring`, or `active` from the receipt authority without running Docker or OpenClaw status work.
An active receipt must match its sandbox registry lifecycle identity; a mismatch fails instead of reporting status from another runtime.

</AgentOnly>

For a `compatible-endpoint` route that uses `openai-completions`, the text output prints `Reasoning effort` as `low`, `medium`, `high`, or `endpoint-default`.
The line is omitted for another provider or API family.

Expand Down Expand Up @@ -2118,6 +2159,14 @@ When lifecycle metadata is incomplete, the report names the missing or invalid f
Dashboard metadata is required only for agents that manage a dashboard.
If the registered gateway binding is invalid, `doctor` reports a failed gateway check and does not select, probe, or recover a gateway from that binding.

<AgentOnly variant="hermes">

For Portable Hermes, `doctor` reports a `Portable lifecycle` check with the receipt phase.
The `pending` and `configuring` phases produce a warning, while `active` passes when the receipt and registry authority agree.
This read-only path does not run Docker or OpenClaw checks, and `doctor --fix` is not supported while the Portable Hermes receipt exists.

</AgentOnly>

For inference health, `doctor` treats the probe to `https://inference.local/v1/models` from inside the sandbox as authoritative.
HTTP responses from `200` through `499`, including `401` and `403`, pass this check.
HTTP `500` through `599`, interim `100` through `199`, transport failures with status `000`, invalid status values, and an unavailable authoritative probe fail the check.
Expand Down
Loading