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
1 change: 0 additions & 1 deletion .agents/skills/_shared/controlled-words.md
Original file line number Diff line number Diff line change
Expand Up @@ -354,7 +354,6 @@ For a persistence claim, name the applicable `stop` and `start`, `restart`, `reb
| `package contract` | Technical noun | A testable requirement of the compiled or published package artifact. | integration contract, package test |
| `passing` | Adjective | A command exited with status 0, or a check concluded with `SUCCESS`. | green when the result is not named |
| `PR` | Technical noun | A GitHub pull request. Write `pull request (PR)` at first use for an audience that might not know the abbreviation. | change request, merge request |
| `PR SHA` | Technical noun | The PR-branch commit that the evidence covers. Use its short SHA in reports. Use the full SHA only when a command or API requires it. | relative revision terms without a SHA |
| `pre-commit hook` | Technical noun | A repository hook that runs before Git records a commit. | precommit, lint hook |
| `pre-push hook` | Technical noun | A repository hook that runs before Git sends commits to a remote. | push hook, CI check |
| `regression test` | Technical noun | A test that fails for a previously observed defect and passes when the defect is corrected. | bug test, reproduction only |
Expand Down
4 changes: 2 additions & 2 deletions .agents/skills/nemoclaw-contributor-update-hermes/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ Build and inspect the final image from the pinned digest before using it as runt

Use
[`nemoclaw-contributor-create-pr`](../nemoclaw-contributor-create-pr/SKILL.md)
for the commit, PR template, labels, CI, review, and exact-head follow-up.
for the commit, PR template, labels, CI, review, and follow-up.
State the target tag and semver, adjacent release ranges, material migrations, retained workarounds, dependency disposition, base-image digest, local evidence, and remaining live gates.

Keep Friday or another planned landing date separate from merge authorization.
Expand All @@ -228,5 +228,5 @@ The upgrade is approval-ready only when:
- retained workarounds pass against target source and runtime;
- the branch base-image workflow succeeds for the source SHA;
- the final Dockerfile pins that branch image by immutable multi-platform digest;
- exact-head CI, automated review, and required E2E pass; and
- CI, automated review, and required E2E pass on the head commit; and
- the PR has no unresolved blocking review thread or material external gate.
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,6 @@ Use this order:
7. Pin the published digest in the final Dockerfile.
8. Rebuild and inspect the final image.
9. Push the digest commit.
10. Run exact-head CI, review, and E2E.
10. Run CI, review, and E2E on the head commit.

Repeat steps 3 through 9 when a base-image input changes.
2 changes: 1 addition & 1 deletion .agents/skills/nemoclaw-maintainer-day/MERGE-GATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ Use the maintainer workflow when coordination reports either of these states:
- `Maintainer approval required to run fork E2E`

1. Follow the `E2E / PR Gate Controller run <id>` link in the coordination summary.
2. Verify the exact head repository, PR SHA, base SHA, selected jobs and targets, and risk-plan artifact.
2. Verify the head repository, head commit, base commit, selected jobs and targets, and risk-plan artifact.
3. Select **Run workflow** on `main`.
4. Select `approve-e2e`.
5. Enter the exact `pr_number`, 40-character `expected_head_sha`, 40-character `expected_base_sha`, and a specific `review_reason` of 10 to 500 characters.
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/nemoclaw-skills-guide/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ documentation updates, and onboarding new messaging channels.
| `nemoclaw-contributor-onboard` | Set up, repair, or verify a trusted source checkout, with explicit opt-ins for host-visible CLI exposure, the pinned agent, and runtime onboarding. |
| `nemoclaw-contributor-create-pr` | Create a PR with the NemoClaw template, required checks, DCO declaration, and verified commits. Then, monitor CI and automated reviews. |
| `nemoclaw-contributor-update-dependencies` | Audit dependency upgrades release by release, trace upstream source and test changes into downstream contracts, resolve migration concerns, and verify immutable artifacts separately. |
| `nemoclaw-contributor-update-hermes` | Audit and deliver Hermes upgrades across release identity, configuration, compatibility shims, state, packaging, base-image publication, and exact-head runtime evidence. |
| `nemoclaw-contributor-update-hermes` | Audit and deliver Hermes upgrades across release identity, configuration, compatibility shims, state, packaging, base-image publication, and runtime evidence. |
| `nemoclaw-contributor-onboard-messaging-channel` | Add or review a new messaging channel with manifest-first implementation, upstream source analysis, plugin install confirmation, reachability checks, policies, docs, and tests. |
| `nemoclaw-contributor-update-docs` | Scan recent git commits, update user-facing documentation, and create the canonical `docs/changelog/YYYY-MM-DD.mdx` entry in the pre-tag release-note docs PR. |

Expand Down
2 changes: 1 addition & 1 deletion WRITING.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,4 +96,4 @@ These examples use recurring NemoClaw concepts. They show the required level of
| Announcement | `Added more robust E2E handling.` | `The PR gate now retries evidence download after a child run is cancelled.` |
| Release entry | `Fixed various issues.` | `The CLI now rejects a provider configuration that has no endpoint.` |
| Release entry | `Better error handling.` | `The CLI now reports the provider authentication error without a stack trace.` |
| Procedure | `Refresh and rerun as needed.` | `Fetch origin/main. Rerun the gate after the PR SHA changes.` |
| Procedure | `Refresh and rerun as needed.` | `Push the next commit. Rerun the gate.` |
6 changes: 3 additions & 3 deletions docs/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,12 +92,12 @@ By default, it publishes to the `nvidia-nemoclaw-staging.docs.buildwithfern.com/
Set `FERN_STAGING_INSTANCE` to a `<hostname>/<path>` value when you need to target a different Fern docs instance.
The watcher rejects blank or malformed overrides before it starts Fern.

Fern `.mdx` pages are the canonical docs source.
Fern `.mdx` pages are the docs source.
Fern publishes Markdown routes for AI agents from the same source pages.

## Updating the Changelog

The native Fern changelog under `docs/changelog/` is the canonical release history.
The native Fern changelog under `docs/changelog/` is the release history.
One source directory is shared across the OpenClaw, Hermes, and Deep Agents user-guide variants.
Create the planned release entry in the pre-tag release-note docs PR so it lands on `main` before the release plan captures the tag commit.

Expand Down Expand Up @@ -129,7 +129,7 @@ If the tag does not point to a commit on `main`, the job stops before installing

## Starter Prompt Generation

The canonical coding-agent installation prompt lives in `docs/resources/starter-prompt.md`.
The coding-agent installation prompt lives in `docs/resources/starter-prompt.md`.
Edit that Markdown file instead of placing prompt text in a React component.
Keep conditional platform instructions in focused Markdown files under `docs/resources/prompt-assets/` and link to their raw GitHub URLs from the starter prompt.
The main prompt should tell the coding agent when to load each asset and should not repeat the asset's detailed instructions.
Expand Down
2 changes: 1 addition & 1 deletion docs/changelog/2026-07-24.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,6 @@ NemoClaw v0.0.94 strengthens sandbox restore and update behavior, adds machine-r
- Hermes image assembly now groups repository payloads into five ownership-preserving BuildKit layers.
The first hosted comparison reduced the production build step from 205 seconds to 101 seconds and the layer export from 178.8 seconds to 70.4 seconds.
Build-time checks preserve file contents, modes, owners, scanner ordering, and cache boundaries.
- Live E2E validation now isolates long-running lanes, trusts exact-head Hermes swap setup, stabilizes cancelled child lifecycles, parallelizes plugin EXDEV coverage, and records periodic runner-pressure telemetry.
- Live E2E validation now isolates long-running lanes, trusts Hermes swap setup, stabilizes cancelled child lifecycles, parallelizes plugin EXDEV coverage, and records periodic runner-pressure telemetry.
These changes distinguish hosted-runner loss from product failures while retaining the cold-onboard performance budget as a separate release signal.
Documentation validation also keeps agent-variant checks read-only, accepts an absent Fern preview as a non-blocking condition, and uses Fern `5.80.1`.
4 changes: 2 additions & 2 deletions docs/get-started/quickstart.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -330,7 +330,7 @@ Use these details when your first-run path needs more control.
The selector can include destinations such as GitHub, Jira, Slack, Telegram, or local inference.
Press `r` to switch a selected preset between read-only and read-write when it supports both modes.

Use the final onboarding summary to verify that the sandbox gateway, dashboard port forward, and `inference.local` route are reachable.
Use the onboarding summary to verify that the sandbox gateway, dashboard port forward, and `inference.local` route are reachable.
When web search is enabled, it also checks the selected provider configuration and sends a real search request through sandbox egress.
Treat an unreachable route or HTTP 5xx response as a failed readiness check: onboarding marks the sandbox not ready and exits non-zero.
Restore the configured endpoint or proxy, run `nemoclaw onboard --resume` to complete the retained onboarding session, then rerun `nemoclaw <sandbox-name> status` to verify the route.
Expand Down Expand Up @@ -380,7 +380,7 @@ Use these details when your first-run path needs more control.

The wizard starts a background dashboard port forward and prints its URL in the ready summary.
The default host port is `18789`.
When that port is occupied, NemoClaw uses the next free dashboard port, such as `18790`, and prints it in the final URL.
When that port is occupied, NemoClaw uses the next free dashboard port, such as `18790`, and includes the port in the URL.
If the selected port becomes occupied after the sandbox build begins, onboarding rolls back the new sandbox and asks you to retry rather than print an unreachable URL.
The installation transcript does not print the gateway token.
Use `nemoclaw my-gpt-claw dashboard-url --quiet` to print the complete authenticated URL explicitly.
Expand Down
2 changes: 1 addition & 1 deletion docs/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ By default, NemoClaw installs the OpenClaw agent. Use one of the following quick
## NemoClaw Docs for AI Agents

Use NemoClaw's Markdown docs or the docs-routing skill when you want your AI coding agent to help you install or operate a sandbox.
The assistant fetches the same canonical pages that power this site and applies them to your local environment.
The assistant fetches the same pages that power this site and applies them to your local environment.

<Cards>

Expand Down
3 changes: 2 additions & 1 deletion docs/manage-sandboxes/add-mcp-server.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,8 @@ Endpoint hostnames must use lowercase RFC-style DNS labels without empty, leadin
<AgentOnly variant="deepagents">
Deep Agents Code supports at most 64 managed MCP servers in one sandbox.
</AgentOnly>
Endpoint paths must be literal and canonical, so NemoClaw rejects percent escapes, backslashes, semicolons, OpenShell glob metacharacters, and explicit port zero.
Endpoint paths cannot contain percent escapes, backslashes, semicolons, or OpenShell glob metacharacters.
Endpoint URLs cannot use port `0`.

NemoClaw resolves public hostnames before registration, rejects private, local, and special-use targets, and pins the resolved addresses in the generated policy.
OpenShell re-resolves the hostname for each new connection, requires every current answer to match the pinned `allowed_ips`, and connects to the validated socket addresses.
Expand Down
2 changes: 1 addition & 1 deletion docs/manage-sandboxes/gateway-lifecycle-control.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ For built-in OpenClaw and Hermes controllers, a successful `recover` or `gateway
After the settle window, NemoClaw sends one read-only authenticated `probe` through the same controller before it declares success.

The controller rechecks the exact managed child, listener, HTTP health, and required auxiliary processes from inside the gateway network namespace without restarting the gateway.
A failed managed probe is authoritative and cannot be overridden by an outer-namespace HTTP response.
A failed managed probe cannot be overridden by an outer-namespace HTTP response.

Custom agents that recover through an SSH script do not use this controller probe and continue to poll ordinary gateway health.

Expand Down
3 changes: 2 additions & 1 deletion docs/manage-sandboxes/recover-rebuild-sandboxes.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,8 @@ If every state directory fails, NemoClaw stops before deleting the original sand
NemoClaw restores any entries captured in the partial backup; if nothing usable was captured, it recreates the sandbox from recorded registry metadata without restoring prior sandbox state.
Use this recovery path only when losing the state that could not be backed up is acceptable.
When a sandbox with managed MCP servers cannot run a pre-mutation no-op, explicit `--force` uses its complete registry entries plus the exact live generated policies and provider identities to preserve MCP intent without scrubbing the unreachable in-sandbox adapter.
Every bridge entry must record an explicit adapter that matches the sandbox's recorded agent, and the registered policy must be the canonical generated policy for that adapter, server name, URL endpoint, and current resolved-address pins.
Every bridge entry must record the adapter for the sandbox's recorded agent.
The registered policy must match the policy NemoClaw generates for that adapter, server name, endpoint URL, and resolved addresses.
NemoClaw rechecks that read-only snapshot immediately before deletion and stops if the target, registry, policy, provider, or recorded gateway changed.
NemoClaw sends the delete request and every deletion-confirmation lookup to the sandbox's exact recorded gateway.
Across every rebuild path, NemoClaw does not attempt to stop the local NIM through the delete attempt, and cleanup is attempted on a best-effort basis only after deletion is positively confirmed.
Expand Down
2 changes: 1 addition & 1 deletion docs/network-policy/integration-policy-examples.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ Preview the endpoints before applying:
$$nemoclaw my-assistant policy add outlook --dry-run
```

NemoClaw generates the preview from the exact preset policy YAML that `policy add` would apply.
NemoClaw generates the preview from the preset policy YAML that `policy add` would apply.
It lists hosts, ports, access, protocol, TLS, and enforcement settings, HTTP methods and paths, and the binary allowlist.

Apply the preset:
Expand Down
21 changes: 11 additions & 10 deletions docs/reference/commands.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2782,7 +2782,8 @@ If the backup produced nothing usable, it continues from recorded registry metad
Use this recovery path only when losing the state that could not be backed up is acceptable.
For a sandbox with managed MCP servers, `--force` probes sandbox execution before MCP teardown.
If that no-op cannot run, NemoClaw requires complete bridge entries and exact live policy and provider identities, without trying an in-sandbox adapter scrub or changing MCP ownership state.
Each bridge must carry an explicit adapter matching the sandbox's recorded agent, and the registered policy must equal the canonical generated policy for that adapter, server name, URL endpoint, and current resolved-address pins.
Each bridge must record the adapter for the sandbox's recorded agent.
The registered policy must match the policy NemoClaw generates for that adapter, server name, endpoint URL, and resolved addresses.
It rechecks the registry, recorded gateway, resolved targets, live generated policies, and provider identities immediately before deletion; incomplete adds, drift, or ambiguous ownership stop before deletion.
NemoClaw sends the delete request and every deletion-confirmation lookup to the sandbox's exact recorded gateway.
Across every rebuild path, NemoClaw does not attempt to stop local NIM until sandbox deletion is positively confirmed, then attempts NIM cleanup on a best-effort basis.
Expand Down Expand Up @@ -3260,7 +3261,7 @@ Use `--no-verify` only when OpenShell cannot verify the provider at switch time
When switching to `compatible-endpoint` or `compatible-anthropic-endpoint` from a different provider family, pass `--endpoint-url` with the trusted custom provider URL and, except for the Hermes case below, `--inference-api` with its API family so NemoClaw can persist a complete route identity for rebuild and shared-gateway checks.
For a Hermes `compatible-anthropic-endpoint` target, `--inference-api` may be omitted because NemoClaw deterministically selects `openai-completions`; an explicit different API family is rejected.
NemoClaw rejects loopback, link-local, private, and internal endpoint addresses, including public hostnames that resolve to a private address.
For a same-provider model change, pass `--endpoint-url` with the exact canonical endpoint URL that the target sandbox registry identifies as onboarding-established.
For a same-provider model change, pass `--endpoint-url` with the endpoint URL recorded during onboarding for the target sandbox.
Missing or `inference set` provenance and every different URL remain subject to the full address validation above.
For public HTTP URLs, NemoClaw stores the validated IP address to prevent DNS rebinding.
For a DNS-backed HTTPS URL, NemoClaw routes the endpoint through a local HTTPS Pin Runtime adapter that terminates a pinned, SNI-correct outbound connection to the real upstream hostname; the sandbox and the persisted registry only ever see a local `host.openshell.internal` route, never the real hostname.
Expand Down Expand Up @@ -3875,32 +3876,32 @@ Set them before running `$$nemoclaw onboard`.
<AgentOnly variant="openclaw">

Set `NEMOCLAW_SANDBOX_BASE_IMAGE_REF` to an OpenClaw sandbox-base tag or digest to override base-image resolution during onboarding.
Remote overrides must use the official NVIDIA sandbox-base repository and resolve to an immutable repository digest.
Local bases are accepted only when NemoClaw builds and pins them during the current operation; a local image reference supplied through this environment variable is rejected because it has no trusted build capability.
Remote overrides must use the official NVIDIA sandbox-base repository and resolve to a repository digest.
NemoClaw accepts local bases only when it builds and pins them during onboarding; a local image reference supplied through this environment variable is rejected because it has no trusted build capability.

</AgentOnly>

<AgentOnly variant="deepagents">

Set `NEMOCLAW_LANGCHAIN_DEEPAGENTS_CODE_SANDBOX_BASE_IMAGE_REF` to a LangChain Deep Agents Code sandbox-base tag or digest to override base-image resolution during onboarding.
NemoClaw requires environment overrides to use the official remote repository and resolve to an immutable repository digest, then validates the requested image against the manifest-required `deepagents-code` package version before using it.
Local bases are accepted only when NemoClaw builds and pins them during the current operation.
NemoClaw requires environment overrides to use the official remote repository and resolve to a repository digest, then validates the requested image against the manifest-required `deepagents-code` package version before using it.
NemoClaw accepts local bases only when it builds and pins them during onboarding.

</AgentOnly>

<AgentOnly variant="hermes">

Set `NEMOCLAW_HERMES_SANDBOX_BASE_IMAGE_REF` to a Hermes sandbox-base tag or digest to override base-image resolution during onboarding.
NemoClaw requires environment overrides to use the official remote repository and resolve to an immutable repository digest, validates the requested image for the required MCP runtime, and keeps the final image bound to that trusted base.
Local bases are accepted only when NemoClaw builds and pins them during the current operation.
NemoClaw requires environment overrides to use the official remote repository and resolve to a repository digest, validates the requested image for the required MCP runtime, and keeps the final image bound to that trusted base.
NemoClaw accepts local bases only when it builds and pins them during onboarding.

</AgentOnly>

### Onboard Profiling Traces

Set `NEMOCLAW_TRACE=1` before `$$nemoclaw onboard` to write an OpenTelemetry-style JSON trace for the run.
When no explicit path is provided, NemoClaw writes a timestamped file under `.e2e/traces/` in the current working directory.
Use `NEMOCLAW_TRACE_DIR` to choose the output directory, or `NEMOCLAW_TRACE_FILE` to choose the exact output file.
If you do not set a trace path, NemoClaw writes a timestamped file under `.e2e/traces/` in the current working directory.
Use `NEMOCLAW_TRACE_DIR` to choose the output directory, or `NEMOCLAW_TRACE_FILE` to choose the output file.

```bash
NEMOCLAW_TRACE=1 $$nemoclaw onboard
Expand Down
Loading
Loading