Skip to content

K8s autoscaling - #4

Merged
maggiezha merged 1550 commits into
mainfrom
k8s-autoscaling
Jul 22, 2026
Merged

K8s autoscaling#4
maggiezha merged 1550 commits into
mainfrom
k8s-autoscaling

Conversation

@maggiezha

Copy link
Copy Markdown
Owner

Summary

Related Issue

Changes

Type of Change

  • Code change (feature, bug fix, or refactor)
  • Code change with doc updates
  • Doc only (prose changes, no code sample modifications)
  • Doc only (includes code sample changes)

Verification

  • npx prek run --all-files passes
  • npm test passes
  • Tests added or updated for new or changed behavior
  • No secrets, API keys, or credentials committed
  • Docs updated for user-facing behavior changes
  • npm run docs builds without warnings (doc changes only)
  • Doc pages follow the style guide (doc changes only)
  • New doc pages include SPDX header and frontmatter (new pages only)

Signed-off-by: Your Name your-email@example.com

Dongni-Yang and others added 30 commits July 13, 2026 16:53
…DIA#6749)

<!-- markdownlint-disable MD041 -->
## Summary

`snapshot restore --to <dst>` auto-creates the destination by spreading
the source's registry entry, so the clone was registered with the
source's `dashboardPort`. Because the host forward for that port is
owned by the source, the clone's `dashboard-url` pointed at the source's
dashboard and every rebuild of the clone was rejected by the rebuild
preflight (`Dashboard port NNNNN belongs to sandbox '<src>'.`). The
clone now gets its own dashboard port allocated at registration, so
`dashboard-url` reports the clone's own port and rebuild proceeds.

## Related Issue

Fixes NVIDIA#6746

## Changes

- `src/lib/actions/sandbox/snapshot.ts`: allocate a destination-owned
dashboard port before any destructive `--force` action, then hold a
host-wide reservation from selection through durable registration.
Onboard and snapshot restore now share the same lock order: sandbox
mutation → host dashboard reservation → gateway route mutation.
- Clone startup explicitly sets `CHAT_UI_URL` and
`NEMOCLAW_DASHBOARD_PORT` to the allocated port, so the in-sandbox
listener, host forward, and registry all use the same destination port
immediately after restore.
- Enabled Hermes clones persist the allocated public port while
preserving the source image's internal relay port and TUI setting. The
internal port is excluded from public-port allocation, and the runtime
Hermes environment is validated before destination deletion or creation.
- Sources without a managed dashboard keep the clone dashboard field
unset. Allocation or Hermes validation failures abort before destination
deletion, and failed operations release the shared reservation for the
next allocator.
- Regression coverage exercises cross-gateway serialization, failure
release, OpenClaw and Hermes create argv, Hermes rebuild consistency,
port exhaustion before deletion, missing dashboard ports, lifecycle mock
compatibility, and shuffled test order.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: internal
registry-registration fix; no doc page documents snapshot-clone
dashboard-port behavior.
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [ ] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: pending —
sensitive-path review requested from maintainers as part of this PR's
review.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Verification

- [x] PR description includes the DCO sign-off declaration and every
commit appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — command/result: focused lock/clone
suite 36/36; shuffled clone suite 4/4; onboard handler suite 203/203;
`npm run typecheck:cli` passed; full sandbox action suite 1,719 passed /
3 skipped with one unrelated timeout passing immediately in isolation;
normal pre-commit, commit-msg, and pre-push hooks passed.
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result:
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only)
- [ ] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
Signed-off-by: Dongni Yang <dongniy@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Bug Fixes**
* Snapshot-restore clones now reserve and assign a destination-owned
dashboard port, ensuring registration uses the correct port and Hermes
dashboard settings propagate correctly.
* If dashboard-port allocation fails during restore, the restore exits
cleanly and avoids subsequent destructive or registration actions.
* When the source sandbox has no dashboard port, the clone is registered
with a null dashboard port and allocation is skipped.

* **Tests**
* Expanded snapshot-restore/clone coverage for dashboard-port, Hermes
behavior, and failure scenarios.
* Added/updated dashboard-port reservation locking tests to verify
serialization across gateways and proper release on failure.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Dongni Yang <dongniy@nvidia.com>
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
Co-authored-by: Carlos Villela <cvillela@nvidia.com>
Co-authored-by: Charan Jagwani <cjagwani@nvidia.com>
<!-- markdownlint-disable MD041 -->
## Summary
<!-- 1-3 plain sentences: what changes and why. Describe
before-and-after behavior when it applies. Use existing repository
terms; do not invent a label for this PR. -->

This follow-up to NVIDIA#6745 and NVIDIA#6788 makes the combined PR Review Advisor
disclose both model lanes without giving Nemotron authority over GPT's
assessment, fixes contradictory confidence and E2E guidance, and ensures
stale CI events close only the seeded in-progress E2E check. Missing or
malformed Nemotron artifacts now degrade to an unavailable second
opinion while a valid GPT review still publishes.

## Changes
<!-- List concrete changes. If this adds an abstraction, configuration,
fallback, migration, or compatibility path, name its current requirement
and consumer, explain why a direct change is insufficient, and identify
the test that protects it. -->

- Download the exact same-run Nemotron artifact in the write-capable
publisher, validate its raw status, final result, summary, size, path,
and head SHA, and pass it to the comment renderer only through a trusted
validation output. GPT remains fail-closed and authoritative; the
nonblocking Nemotron lane reports only allowlisted status, confidence,
severity counts, and opaque structural agreement or disagreement.
- Render the actual normalized confidence for informational reviews,
reconcile trusted E2E coverage and selector tiers through the existing
target normalizer, and avoid “Why no…” text when optional guidance
exists.
- Delete only `github-actions[bot]` comments whose first line is one of
the two retired E2E Advisor markers, after the combined sticky comment
publishes. The bot-owner and exact-marker restrictions are covered by
the security-boundary tests.
- Recover an existing exact-diff check ID before stale workflow-run
validation only when the check is still `in_progress`, allowing the
existing cleanup step to terminalize abandoned checks without rewriting
completed historical results.
- Extend workflow-boundary, comment, normalization, GitHub API, and gate
regression tests for complete, partial, failed, skipped, malformed,
stale, and completed-check cases.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates
<!-- Check exactly one tests line and one docs line. Check other lines
when applicable. Add every requested justification or approval
reference. -->
- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: This changes internal
maintainer automation and GitHub workflow behavior only; the required
documentation-writer pass found no user-facing CLI, configuration, API,
policy, or product documentation change.
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [x] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: Independent final
reviews found no remaining findings after checking `pull_request_target`
privilege separation, same-run artifact provenance, primary fail-closed
behavior, nonblocking secondary validation, prose isolation, exact
bot-owned legacy comment deletion, E2E selector trust, and
stale/completed check races. The nine-category security checklist also
found no secret, injection, authorization, dependency, logging,
cryptography, configuration, test, or holistic posture regression.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Verification
<!-- Check each applicable item only when supported by the requested
evidence. Run targeted tests once per relevant change set and rerun
after later edits or hook autofixes that can affect that behavior. Do
not rerun hook-covered checks. -->
- [x] PR description includes the DCO sign-off declaration and every
commit appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — final advisor suites passed 120/120
tests, the compacted advisor regression passed 44/44, and all four PR
E2E gate suites passed 69/69; CLI type-check passed in the normal
pre-push hook.
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result:
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only)
- [ ] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
<!-- DCO sign-off is required in this PR description, and every commit
must appear as Verified in GitHub. Run: git config user.name && git
config user.email -->
Signed-off-by: Carlos Villela <cvillela@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* PR review comments now support an optional second-opinion analysis,
including model-lane status and comparison details when compatible.
* Comments show clearer confidence-aware model-lane information, with
improved E2E “no coverage” messaging.
* Legacy advisor sticky comments are cleaned up automatically during
updates.
* **Bug Fixes**
* E2E recommendations/coverage handling is corrected when only optional
coverage is selected.
* E2E coverage/target reconciliation is more accurately aligned with
available trusted capabilities.
* PR gate handling is improved for stale, duplicate, and superseded
checks—avoiding unnecessary check reopens and recording recovered check
IDs.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- markdownlint-disable MD041 -->
## Summary

Install the Docker CLI and binutils in the digest-pinned Ubuntu 26.04
contract job. The job now verifies the mounted Docker daemon and
`strings` before running compatibility contracts, so missing runner
tools fail at the environment boundary instead of cascading into
installer assertion failures.

## Related Issue

Refs NVIDIA#3245.

## Changes

- install `docker.io` and `binutils` in the Ubuntu 26.04 job container
- verify Docker daemon connectivity and the `strings` binary before
running the contract suites
- keep the existing compatibility suites as the behavior boundary that
protects the job dependencies

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [ ] Tests added or updated for changed behavior
- [x] Existing tests cover changed behavior — justification: the Ubuntu
26.04 job runs the installer contracts that exposed the missing host
tools, and the added preflight probes fail directly if those tools drift
again.
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: this only repairs an internal
CI job environment; NemoClaw user behavior and requirements are
unchanged.
- [ ] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [ ] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification:
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Verification

- [x] PR description includes the DCO sign-off declaration and every
commit appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — command/result or justification: the
exact pinned Ubuntu 26.04 image with the mounted Docker socket passed
`test/install-preflight.test.ts` (94/94); targeted CLI preflight tests
passed (132/132), and `test/platform.test.ts` passed (25/25).
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result: not applicable to this
focused workflow dependency fix.
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only)
- [ ] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
Signed-off-by: Carlos Villela <cvillela@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
* Improved Ubuntu 26.04 environment validation by adding Docker and
binary utility checks.
* Expanded the test environment with additional system tools required
for runtime verification.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Signed-off-by: Carlos Villela <cvillela@nvidia.com>
<!-- markdownlint-disable MD041 -->
## Summary

Removes the main-only Intel macOS final-destroy job because OpenShell
does not publish a macOS x86_64 standalone gateway asset and the
installer correctly rejects that unsupported platform. The supported
Apple Silicon job continues to run the deterministic gateway lifecycle
regressions, and its workflow boundary now prevents the invalid Intel
runner from being reintroduced.

## Changes

- Remove the `macos-docker-final-destroy` job that could never reach its
live E2E test.
- Preserve the three gateway lifecycle regressions on the supported
`macos-26` runner.
- Replace the Intel-runner assertion with a compatibility guard and
retain the surviving secret and artifact-publishing boundaries.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: This corrects CI to match the
existing platform matrix and documentation, which already mark Intel
macOS unsupported.
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [x] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: Independent review
confirmed the deleted job never reached E2E, while the surviving
secret-bearing job retains trusted-main gating and immutable artifact
publication coverage.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Verification

- [x] PR description includes the DCO sign-off declaration and every
commit appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — command/result or justification: `npx
vitest run --project integration
test/macos-e2e-workflow-boundary.test.ts` passed 3/3; `npm run
source-shape:check`, focused Biome validation, and `git diff --check`
passed.
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result: Not run; the focused
workflow-boundary test covers this CI-only change.
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only)
- [ ] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **CI Improvements**
* Streamlined macOS end-to-end testing by removing the Intel-based
Docker final-destroy phase and retaining the supported Apple Silicon
workflow.
* Added stronger workflow validation to ensure gateway lifecycle
coverage targets the intended macOS runner and avoids Intel job
execution.
* Strengthened diagnostics by securely pinning log upload behavior and
tightening failure-only artifact collection conditions.
* **Tests**
* Updated macOS E2E workflow boundary contract tests to reflect the
revised runner and log upload requirements.
* **Bug Fixes**
* Removed obsolete Intel-based macOS Docker cleanup testing and related
Docker log handling.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary

Replace the SHA-copying E2E no-secret exception workflow with a
repository-native protected-environment approval on the exact `E2E / PR
Gate` run. Maintainers can use GitHub's **Review deployments** button
while the controller preserves the existing exact-diff, role, risk-plan,
and stale-revision checks.

## Changes

- Publish allowlisted exception mode, PR, head SHA, and base SHA outputs
from the trusted coordinator, then wait on `e2e-no-secret-exception`
with `deployment: false` and no secret references or PR-controlled
execution.
- Read the workflow run's approval history, require one approval for
only that environment, derive the reviewer and optional bounded comment
from GitHub, recheck `maintain`/`admin`, and reuse the existing
exact-diff resolver. An absent or unprotected environment fails closed.
- Bind approval to the trusted first workflow attempt, exact workflow
SHA, current PR revision, matching failed check, recomputed risk plan,
and a final live-PR read. Per-PR concurrency cancels stale waiting
approvals.
- Keep the typed `workflow_dispatch` resolver for rollout and rerun
fallback because GitHub approval history is run-scoped rather than
attempt-scoped. The controller exception and workflow contract tests
protect both paths.
- Update the E2E reference and maintainer merge-gate guidance, including
the required repository environment configuration. This addresses the
maintainer friction observed on NVIDIA#6732 without adding a GitHub App.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: No end-user product behavior
changed; maintainer workflow and E2E reference documentation were
updated.
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [x] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: Adversarial review
covered approval provenance, first-attempt replay prevention,
permissions, unconfigured-environment failure, stale revisions, and
exact check identity; no actionable findings.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Verification

- [x] PR description includes the DCO sign-off declaration and every
commit appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — `npx vitest run --project integration
test/pr-e2e-gate.test.ts test/pr-e2e-gate-lifecycle.test.ts
test/pr-e2e-gate-exceptions.test.ts test/pr-e2e-gate-workflow.test.ts`
(4 files, 88 tests passed)
- [ ] Applicable broad gate passed — not applicable; this focused
workflow/controller change is covered by the targeted suite and normal
hooks.
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only) — not
applicable; no `docs/` pages changed.
- [ ] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---

Signed-off-by: Carlos Villela <cvillela@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Added an approval-based “no-secret” workflow step to resolve eligible
E2E gate exceptions.
* Gate completions now include a linked run “details” URL and
standardized exception outputs.
* **Documentation**
* Updated maintainer guidance for protected-environment approval setup
and the typed manual fallback path.
* **Tests**
* Expanded end-to-end coverage for approval validation, strict
trust/scoping checks, concurrency wiring, and improved gate output
assertions (including rerun rejection and safe input handling).
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary

Separate trusted controller health from the exact-diff merge verdict so
handled PR CI/E2E failures and superseded or closed revisions no longer
masquerade as controller failures. Add self-explanatory diagnostics and
exception links while preserving red controller status for real
controller, correlation, and evidence-download faults. This follows the
actual-run review of NVIDIA#6807 and NVIDIA#6810.

## Changes

- Rename the workflow to `E2E / PR Gate Controller` while preserving the
required custom check name `E2E / PR Gate`, and document which outcome
controls merge authority.
- Complete prerequisite-CI and selected-E2E failures as handled red PR
verdicts with direct run, job, and failed-step links; paginate bounded
workflow-job results and keep diagnostic lookup failures fail-closed at
the PR check.
- Cancel exact checks for superseded revisions and closed PRs, including
deleted fork repositories, only after validating the trusted check
identity. Bracket evidence parsing with live exact-diff reads so stale
evidence cannot become a current result.
- Keep infrastructure failures distinct: a successful child whose
evidence download fails leaves both controller and custom check red,
while classified missing, duplicate, skipped, pending, or
reported-failing signals remain handled PR verdicts.
- Make no-secret exceptions explicitly say that credentialed E2E did not
run, embed the controller-run link needed for **Review deployments**,
and clarify the exact manual evidence URL format.
- Add lifecycle, pagination, workflow, command, exception, and race
regression coverage; update the E2E reference and maintainer merge-gate
guidance.

## Type of Change

- [ ] Code change (feature, bug fix, or refactor)
- [x] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: No end-user product behavior
changed; the internal E2E reference and maintainer merge-gate guidance
were updated.
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [x] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: Adversarial fail-closed
review covered GitHub App/external-ID correlation, stale and
deleted-fork revisions, bounded diagnostics, evidence trust boundaries,
download failures, and pre/post-parse race validation; no remaining
blockers.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Verification

- [x] PR description includes the DCO sign-off declaration and every
commit appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — `npx vitest run --project integration
test/pr-e2e-gate-command.test.ts test/pr-e2e-gate.test.ts
test/pr-e2e-gate-lifecycle.test.ts test/pr-e2e-gate-exceptions.test.ts
test/pr-e2e-gate-workflow.test.ts` (5 files, 107 tests passed)
- [x] Applicable broad gate passed — `GIT_CONFIG_GLOBAL=/dev/null
SSH_AUTH_SOCK=/tmp/ssh-qmH9wX3sr5/agent.4170011 npm test` (1,502 files
and 17,062 tests passed; 3 files and 40 tests skipped)
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only)
- [ ] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---

Signed-off-by: Carlos Villela <cvillela@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Improvements**
* Renamed the E2E gate workflow to **E2E / PR Gate Controller** with
stronger handling for superseded, closed, cancelled, and timeout
scenarios.
* Improved evidence verification and finalization reporting, including
evidence outcome propagation and clearer fail-closed behavior.
* Updated wait/completion behavior so terminal failures/timeouts are
reported consistently without unexpected non-zero exits, and improved
check conclusion/link messaging (including **cancelled**).

* **Documentation**
* Refined controller/manual dispatch guidance, evidence handling rules,
and “no-secret exception” workflow instructions.

* **Tests**
* Updated and expanded E2E lifecycle, workflow contract, and CLI
parsing/evidence outcome coverage to match the new behavior and
messages.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Carlos Villela <cvillela@nvidia.com>
<!-- markdownlint-disable MD041 -->
## Summary

Fix the main-branch platform Vitest watch that produced 83 WSL failures
and canceled macOS at its 20-minute ceiling. The WSL suite now exercises
ordinary behavior as a non-root user while retaining focused root-only
contracts, and host-dependent tests explicitly select the platform
behavior they verify.

## Changes

- Provision a non-root WSL test user, install `python3-venv`, and run
dependency installation, builds, and the full suite under that user.
- Preserve all five UID-0-only security contracts in a focused root step
with their required sandbox identity and trusted normalizer fixture.
- Pass explicit WSL behavior through dashboard, forward-recovery,
process-recovery, and inference probe tests so ordinary-Linux assertions
do not inherit the host kernel. Child-process connect and recover tests
use a preload because they execute the compiled CLI in a separate
process; their tests protect that boundary.
- Refresh inode-bound fake process identities after recreating fake
`/proc` entries.
- Raise the macOS and WSL full-suite ceilings to 60 minutes based on the
observed 20-minute macOS cutoff and approximately 43-minute WSL runtime.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: This changes internal CI
execution and test determinism without changing supported user-facing
behavior.
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [x] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: Independent diff review
covered WSL privilege separation, preservation of root-only contracts,
PowerShell/Bash quoting, and explicit platform overrides; the identified
root-coverage gap was corrected before commit.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Verification

- [x] PR description includes the DCO sign-off declaration and every
commit appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — 13 changed-behavior files, 137 tests
passed together; the fake-process fixture also passed five consecutive
focused runs. `npm run typecheck:cli`, project membership, source-shape
checks, and all diff-scoped hooks passed.
- [ ] Applicable broad gate passed — the real branch platform workflow
is running at
https://github.com/NVIDIA/NemoClaw/actions/runs/29299731938. Local `npm
test` under unsupported Node 26/macOS completed 16,851 tests and
reported 66 unrelated environment/order failures in untouched files;
changed-set tests pass in isolation.
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only)
- [ ] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---

Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Bug Fixes**
* Improved sandbox port-forward recovery/health checks to consistently
respect explicit WSL mode overrides.
* Refined WSL2 timeout/connection error messaging to reflect the
intended execution environment.
* **Tests**
* Updated dashboard and sandbox lifecycle tests to pass explicit WSL
mode flags.
* Added/expanded test helpers to force non-WSL behavior and stabilize
platform-dependent assertions.
* **CI**
* Increased CI timeouts for WSL and Ubuntu compatibility runs; adjusted
WSL job execution user/permissions for reliable test setup.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
…ness stage (NVIDIA#6782)

<!-- markdownlint-disable MD041 -->
## Summary

The PR Review Advisor's correctness stage now performs purpose-driven
adversarial reasoning when a PR states a correctness guarantee
(fail-closed check, locality invariant, ordering constraint, capacity
gate). Before this change the advisor applied a generic correctness
checklist; it would not systematically enumerate bypass paths or verify
external-system contract assumptions against upstream documentation. A
review of NVIDIA#6771 showed three successive blocker rounds that CI and prior
review missed — all traceable to this gap.

## Changes

- Added one paragraph to the `correctness-state` stage prompt in
`buildPromptTurns()` (`tools/pr-review-advisor/analyze.mts`): when the
PR states a correctness guarantee, the advisor must identify the
guarantee, enumerate specific bypass paths (alternate branches, combined
input states, external-spec assumptions), verify each against the diff,
and check external-system behavior against upstream documentation rather
than internal code consistency alone.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [ ] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [x] Tests not applicable — justification: the change is a prompt
string; correctness is evaluated by running the advisor against real
PRs, not unit tests
- [x] Docs not applicable — justification: no user-facing behavior
change; advisor prompt internals are not documented
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [x] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: change strengthens the
advisor's security and correctness coverage; no weakening of trust
boundaries

## Verification

- [x] PR description includes the DCO sign-off declaration and every
commit appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — command/result or justification:
prompt-only change; no executable test surface
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result:
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed

---
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Documentation**
* Enhanced review guidance for assessing correctness guarantees when
changes affect correctness-critical paths, even if not explicitly
labeled.
* Added steps to identify the dependent/claimed guarantee and enumerate
silent bypasses across alternate branches, input state/precedence
differences, and external contract assumptions.
* Clarified how to verify external behavior using repository evidence
and upstream documentation, and to mark ambiguous documentation as
**unverified** rather than confirmed.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Carlos Villela <cvillela@nvidia.com>
## Summary
- replace the unsupported TypeScript constructor parameter property in
the PR E2E gate
- add a regression that launches the controller with the exact `node
--experimental-strip-types` runtime used by Actions

## Why
Current `main` crashes every PR E2E gate during initialization with
`ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX`, before it can evaluate the PR. This
is visible on NVIDIA#6770, NVIDIA#6711, and NVIDIA#6672.

## Validation
- `npx vitest run --project integration test/pr-e2e-gate-command.test.ts
test/pr-e2e-gate-lifecycle.test.ts test/pr-e2e-gate-exceptions.test.ts
test/pr-e2e-gate.test.ts test/pr-e2e-gate-workflow.test.ts` (108 passed)
- `npm run build:cli`
- pre-commit and pre-push hooks

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Bug Fixes**
* Improved validation for invalid end-to-end gate modes, including
clearer error messaging and the correct failure status.
* Prevented unsupported TypeScript syntax errors when running the gate
command directly in Node’s experimental type-stripping mode.


<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary

Stabilizes the main-branch Platform Vitest workflow after the previous
WSL fix left three residual WSL failures and macOS still failed 216
tests. The workflow now provisions the runtime its cross-platform tests
require, while genuine Darwin and WSL timing/path differences are
handled explicitly.

## Changes

- Provision Python 3.14 with hash-locked PyYAML and setuptools plus
Homebrew Bash, GNU coreutils, gawk, and ripgrep for the macOS lane.
- Fix Darwin PTY, canonical-path, Unix-socket-length, job-control, and
Hermes direct-execution behavior; gate Linux-only memfd/fcntl and
exact-rlimit contracts to Linux.
- Install ripgrep in WSL and fix the remaining outside-repository
fixture permission, resolver timeout, and `/proc` argv transition races.
- Add workflow contracts and opaque-input watch triggers covering the
macOS toolchain and unprivileged WSL boundary.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: CI portability and internal
main-module path detection do not change supported user behavior.
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [x] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: independent diff review
found no credential or policy behavior change; action pins, Python wheel
hashes, unprivileged WSL execution, and Linux-only boundaries were
verified.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Verification

- [x] PR description includes the DCO sign-off declaration and every
commit appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — focused CLI, integration, E2E-support,
workflow/watch-trigger, Darwin PTY, gateway-control, Hermes/path, and
platform-gating tests passed; `npm run test:changed` passed (31 passed,
15 Linux-only skipped on Darwin).
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result: awaiting the
branch-dispatched Platform Vitest workflow on real macOS and WSL
runners.
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only)
- [ ] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **CI Improvements**
  * Improved macOS and WSL test environment setup and diagnostics.
  * Added pinned Python and dependency configuration for macOS testing.
  * Ensured standard WSL tests run without elevated privileges.

* **Bug Fixes**
  * Improved cross-platform path and socket handling.
* Increased test reliability for process startup, signal output, and
macOS shell behavior.

* **Tests**
* Added workflow validation coverage for runtime setup, dependency
versions, permissions, and command configuration.
  * Expanded watch-trigger coverage for platform test workflow changes.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
## Summary

Controller-only internal PRs now automatically dispatch the selected
exact-SHA E2E jobs instead of requiring a no-run exception. Internal
changes that alter PR-controlled E2E execution or evidence code require
an explicit maintainer/admin `run-control-plane` authorization, then use
the normal dispatch, wait, evidence, and finish path so only verified
results can clear `E2E / PR Gate`. Fork handling remains a no-secret
exception.

## Related Issue

Part of NVIDIA#6145

## Changes

- Treat only `.github/workflows/pr-e2e-gate.yaml` and
`tools/e2e/pr-e2e-gate.mts` as controller-only control-plane changes
eligible for automatic internal dispatch.
- Replace the internal `resolve-control-plane` no-run waiver with
exact-head/base `run-control-plane` authorization that requires
`maintain` or `admin` and dispatches the selected jobs.
- Serialize automatic and manual coordination on the exact head SHA,
preserve a retryable failure after authorized-start errors, and keep
success exclusive to verified evidence.
- Expand command, workflow, risk-plan, lifecycle, authorization, retry,
origin, and NVIDIA#6821 regression coverage; update contributor and maintainer
E2E guidance.

## Type of Change

- [ ] Code change (feature, bug fix, or refactor)
- [x] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [x] Docs updated for user-facing behavior changes
- [ ] Docs not applicable — justification:
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [x] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: Maintainer-directed
scope; an independent implementation audit found no success bypass,
identified two lifecycle races, and both were fixed and retested before
submission.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Verification

- [x] PR description includes the DCO sign-off declaration and every
commit appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — `npx vitest run
test/pr-risk-plan.test.ts test/pr-e2e-gate-command.test.ts
test/pr-e2e-gate-workflow.test.ts test/pr-e2e-gate-exceptions.test.ts
test/pr-e2e-gate.test.ts` (154 passed)
- [ ] Applicable broad gate passed — local `npm test` did not complete:
after eight minutes it remained on one idle integration worker with an
orphaned persistent-log `tail -F`; the process was terminated and GitHub
CI is required for the broad verdict.
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only)
- [ ] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
Signed-off-by: Carlos Villela <cvillela@nvidia.com>

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* Added maintainer-authorized, exact-revision execution for
control-plane E2E checks.
* Added clearer fork exception resolution with validated evidence links
and protected approvals.
* Improved risk-based handling of E2E changes and credentialed test
authorization.

* **Bug Fixes**
* Prevented unauthorized or outdated control-plane and fork workflows
from dispatching E2E jobs.
* Improved cancellation and supersession handling when pull requests
change.

* **Documentation**
* Updated E2E gate guidance, authorization requirements, exception
workflows, and manual recovery steps.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Signed-off-by: Carlos Villela <cvillela@nvidia.com>
<!-- markdownlint-disable MD041 -->
## Summary

Release-prep documentation for v0.0.82 now summarizes user-facing
changes merged since v0.0.81.
It also closes stale wording in the stopped-sandbox backup,
snapshot-clone, Ollama selection, and custom-policy authoring guidance.

## Changes

- Add the `v0.0.82` section to `docs/about/release-notes.mdx` with links
to the focused user guides.
- Document that snapshot clones receive a destination-owned dashboard
port before destructive replacement begins.
- Align `backup-all` guidance with eligible stopped Docker-driver
sandboxes that NemoClaw starts temporarily.
- Describe the running and stopped Ollama menu states without claiming
one fixed label.
- Document runtime rejection of catch-all hosts in custom policy files.

### Source summary

- [NVIDIA#6748](NVIDIA#6748) ->
`docs/about/release-notes.mdx`, `docs/manage-sandboxes/lifecycle.mdx`,
and `docs/reference/commands.mdx`: Summarize non-destructive sandbox
`stop` and `start` commands.
- [NVIDIA#6723](NVIDIA#6723) ->
`docs/about/release-notes.mdx`,
`docs/manage-sandboxes/backup-restore.mdx`, and
`docs/reference/commands.mdx`: Record temporary startup and cleanup for
eligible stopped-sandbox backups.
- [NVIDIA#6749](NVIDIA#6749) ->
`docs/about/release-notes.mdx` and
`docs/manage-sandboxes/backup-restore.mdx`: Document destination-owned
dashboard ports for snapshot clones.
- [NVIDIA#6764](NVIDIA#6764) ->
`docs/about/release-notes.mdx`: Summarize installer handling of
route-only onboarding placeholders.
- [NVIDIA#6771](NVIDIA#6771) ->
`docs/about/release-notes.mdx`, `docs/inference/set-up-vllm.mdx`,
`docs/inference/choose-inference-provider.mdx`,
`docs/reference/commands.mdx`, and
`docs/reference/platform-support.mdx`: Summarize managed-vLLM storage
gates, immutable image digests, and the explicit override boundary.
- [NVIDIA#6759](NVIDIA#6759) ->
`docs/about/release-notes.mdx`: Record early, actionable OpenShell
gateway-port conflict diagnostics.
- [NVIDIA#6753](NVIDIA#6753) ->
`docs/about/release-notes.mdx` and `docs/inference/set-up-ollama.mdx`:
Document truthful running and stopped Ollama menu states.
- [NVIDIA#6776](NVIDIA#6776) ->
`docs/about/release-notes.mdx`: Summarize proxy-independent loopback
readiness checks.
- [NVIDIA#6769](NVIDIA#6769) ->
`docs/about/release-notes.mdx`: Record compatible endpoint and agent
guidance when Chat Completions is unavailable.
- [NVIDIA#6730](NVIDIA#6730) ->
`docs/about/release-notes.mdx`: Summarize bounded reuse of an eligible
successful Chat Completions check.
- [NVIDIA#6768](NVIDIA#6768) ->
`docs/about/release-notes.mdx`: Record route-reservation repair during
resumed onboarding.
- [NVIDIA#6742](NVIDIA#6742) ->
`docs/about/release-notes.mdx`: Summarize pre-mutation resolution of
secret-free sandbox create intent.
- [NVIDIA#6721](NVIDIA#6721) ->
`docs/about/release-notes.mdx` and
`docs/get-started/quickstart-langchain-deepagents-code.mdx`: Record
bounded cleanup of completed managed Deep Agents headless sessions.
- [NVIDIA#6731](NVIDIA#6731) ->
`docs/about/release-notes.mdx` and
`docs/network-policy/customize-network-policy.mdx`: Document runtime
rejection of catch-all custom-policy destinations.
- [NVIDIA#6729](NVIDIA#6729) ->
`docs/about/release-notes.mdx` and `docs/get-started/prerequisites.mdx`:
Record the Node.js 22.19 minimum.
- [NVIDIA#6735](NVIDIA#6735) ->
`docs/about/release-notes.mdx` and
`docs/reference/platform-support.mdx`: Summarize the Ubuntu 26.04
userspace contract without claiming pending host or live validation.
- [NVIDIA#6775](NVIDIA#6775) ->
`docs/about/release-notes.mdx` and
`docs/resources/community-contributions.mdx`: Route independent
solutions outside canonical supported-product documentation.
- [NVIDIA#6740](NVIDIA#6740) ->
`docs/about/release-notes.mdx`: Summarize the semantic
dependency-upgrade contributor workflow.
- [NVIDIA#6777](NVIDIA#6777) ->
`docs/about/release-notes.mdx` and `docs/CONTRIBUTING.md`: Summarize the
route-safe documentation-refactor workflow.
- [NVIDIA#6741](NVIDIA#6741) ->
`docs/about/release-notes.mdx` and
`docs/security/openclaw-2026.6.10-dependency-review.md`: Summarize
reviewed npm archive verification and audit enforcement.
- [NVIDIA#6739](NVIDIA#6739) ->
`docs/about/release-notes.mdx` and
`docs/security/openclaw-2026.6.10-dependency-review.md`: Record the
locked offline dependency graph for the managed OpenClaw WeChat runtime.
- [NVIDIA#6737](NVIDIA#6737) ->
`docs/about/release-notes.mdx`: Record removal of the messaging build
plan from final OpenClaw and Hermes image environments.
- [NVIDIA#6733](NVIDIA#6733) ->
`docs/about/release-notes.mdx`: Summarize cached plugin dependency
layers for source and blueprint rebuilds.

### Skipped from docs-skip

- None. No commit or changed path in `v0.0.81..origin/main` matched
`openclaw-sandbox-permissive.yaml` or `config-show`, and the drafted
content contains none of the configured skip terms.

## Type of Change

- [ ] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [x] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [ ] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [x] Tests not applicable — justification: This is a documentation-only
release-prep update; behavior is protected by the merged source PRs, and
the documentation build validates the changed routes and agent variants.
- [x] Docs updated for user-facing behavior changes
- [ ] Docs not applicable — justification:
- [ ] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [ ] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification:
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Verification

- [x] PR description includes the DCO sign-off declaration and every
commit appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — tests are not applicable for this
documentation-only change.
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result: not run for this
documentation-only change.
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only) — 0
errors; two pre-existing Fern warnings remain.
- [x] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)
— no new pages.

---
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Documentation**
* Updated release notes with improvements to sandbox recovery,
onboarding, session management, policy validation, storage checks, and
system requirements.
  * Clarified Ollama setup instructions and status labels.
* Documented safer snapshot restoration, including dedicated ports and
protection against destructive failures.
* Expanded `backup-all` coverage to include eligible stopped sandboxes.
* Added guidance rejecting broad or catch-all network destinations in
custom policies.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
<!-- markdownlint-disable MD041 -->
## Summary

Addresses the five release/nightly E2E blockers according to the
evidence each failure left behind. The OpenShell version-pin fixture now
supports the installer's archive validation calls, the Shields target
restores lockdown after its intentional failure assertion, MCP patch
failures preserve their real sandbox phase, and the Hermes rebuild
target emits secret-safe phase and host-resource heartbeats.

The Hermes failure was not the fixture's 45-minute rebuild timeout.
GitHub ended the job after about 50 minutes because the hosted runner
lost communication; the rebuild command began later in the scenario and
could not yet have reached its own timeout. No final logs or artifacts
survived, so the underlying memory, disk, CPU, network, or
runner-termination trigger cannot be recovered from that run.

Follow-up to NVIDIA#6744 and NVIDIA#6724.

The source nightly had seven red jobs. A same-SHA rerun cleared the two
accepted flakes, `hermes-shields-config` and `gateway-guard-recovery`,
leaving five release blockers: `openshell-version-pin`,
`shields-config`, `mcp-bridge`, `rebuild-hermes`, and
`channels-stop-start (hermes)`. This PR fixes the two reproducible
fixture defects, repairs the MCP phase evidence, and instruments the
Hermes rebuild runner loss. `mcp-bridge` failed when Docker `stop`
exceeded its 30-second client timeout after a successful image build,
while `channels-stop-start (hermes)` was externally canceled before any
assertion or artifact; neither has evidence for a causal retry or
timeout change, so both still require a fresh green candidate run or a
reproducible product defect.

## Changes

- Model `tar -tzf`, `tar -tvzf`, and extraction in the hermetic
OpenShell version-pin fixture so the installer can validate fake release
archives before extracting them.
- Restore Shields lockdown after the duplicate-down rejection assertion
and register a strict relock cleanup that reports a failed command or
missing lockdown confirmation before continuing destruction.
- Parse modern `NAME CREATED PHASE` OpenShell rows with the shared
sandbox-list parser so MCP Docker-patch diagnostics report
`Provisioning` instead of the creation date, while retaining the
canonical terminal `Evicted` phase.
- Emit a one-minute Hermes rebuild heartbeat from setup through cleanup
with the active phase, child-output age, memory, process RSS, workspace
disk, and load average. The output observer records timestamps only and
never forwards command output or credentials.
- Map the changed OpenShell and Hermes live targets to their fast PR
coverage in the mock/live parity manifest.
- Keep installer recovery behavior, the 30-second destructive
Docker-operation timeout, Shields behavior, sandbox destruction, and
Hermes rebuild behavior unchanged; the 90-minute workflow limit and
45-minute rebuild-command limit are unchanged.
- Keep the underlying `mcp-bridge` Docker timeout and
`channels-stop-start (hermes)` cancellation as explicit green-evidence
blockers instead of masking them with retries.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: all changes are internal E2E
fixture, diagnostic, and parity corrections; no user-facing CLI, policy,
lifecycle, installer, or Hermes contract changes.
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [ ] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: the Shields security
E2E target and secret-safe Hermes diagnostics changed; review is pending
on the current revision and no waiver is requested.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue: no waiver is requested;
required PR CI is pending.

## Verification

- [x] PR description includes the DCO sign-off declaration and every
commit appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — OpenShell version-pin live fixture
(3/3); focused archive-safety installer tests (9/9); MCP Docker-patch
and shared phase parsing (29/29); Hermes progress and cleanup tests
(15/15); mock/live parity guard; Vitest project membership; source-shape
check; CLI typecheck and build; Shields and Hermes live target
collection.
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result: not applicable to narrow
live-target fixture and diagnostic changes. An exploratory local
E2E-support run passed 979 tests and hit 15 environment-specific
failures (macOS Bash behavior, Node 26 warning output, and nested-run
timeouts); required Linux CI remains authoritative.
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only)
- [ ] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **Bug Fixes**
- Improved sandbox status detection across modern list output formats,
including evicted sandboxes.
- Improved cleanup behavior so shield restoration failures are reported
while subsequent cleanup continues.
  - Strengthened shield-state handling during test teardown.

- **User Experience**
- Added clearer progress and activity reporting during lengthy Hermes
rebuild operations.

- **Tests**
- Expanded coverage for installer version pinning, sandbox lifecycle
states, cleanup ordering, and rebuild progress reporting.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
<!-- markdownlint-disable MD041 -->
## Summary

Broaden the live Shields cleanup assertion to accept the existing
idempotent `Lockdown is already active.` success response. The cleanup
still requires exit code 0, so real restore failures remain failures
while a valid no-op restore is no longer misclassified.

## Changes

- Accept both successful `shields up` responses in the `shields-config`
cleanup callback.
- Keep the existing exit-code assertion as the authoritative success
boundary.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: This changes only a live E2E
assertion for two existing success messages; the documentation-writer
review found no user-facing contract change.
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [x] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: The assertion remains
gated by exit code 0 and accepts only the two success messages already
emitted by `shields up`; no production Shields behavior changes.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Verification

- [x] PR description includes the DCO sign-off declaration and every
commit appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [ ] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — command/result or justification:
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result:
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only)
- [ ] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Tests**
* Improved end-to-end test reliability by accepting both valid messages
when restoring shield protection during cleanup.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
<!-- markdownlint-disable MD041 -->
## Summary

The PR advisor showed the same E2E jobs as recommended coverage and
recommended selectors. Its output and maintainer guidance also used
modifiers that did not change the meaning. This change shows each E2E
job once and uses plain, consistent language across the advisor and
skills. The fork maintainer path now states explicitly that approval
records a credentialed-E2E skip: fork code does not run with repository
secrets, and skipped jobs are never described as passing.

## Changes

- Show one `Recommended E2E` list and one `Optional E2E` list in
comments and summaries while keeping coverage and selector data separate
in JSON.
- Use `Blocker`, `Warning`, and `Suggestion` consistently, with shorter
next-action, footer, prompt, and model-lane wording.
- Remove redundant uses of `comprehensive`, `thorough`, `exact`, and
`exactly` from skills, contributor guidance, and the advisor.
- Rename the internal changed-test evidence field from
`exactHeadCredentialFreeTests` to `changedCredentialFreeTests`; the
evidence still binds each changed test to the analyzed head SHA.
- Replace `exact-head` terminology with `head`, `PR head`, or `current
head` where the sentence needs that distinction.
- Update the advisor README, PR template, packaged skills, workflow
fallback, schema, budgets, and focused tests.
- Rename the protected environment and manual fallback to say they
approve skipping credentialed E2E for a fork PR, and explain why
**Review deployments** may be absent.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: The maintainer-facing README,
runbook, and skills were updated. A documentation audit found no
published user docs that expose these labels or need a docs/ change.
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [x] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: Advisor
workflow-boundary, provenance, security-boundary, and E2E controller
tests passed. The workflow edit changes names, messages, and controller
identifiers only; it does not change permissions, secret exposure, or
execution behavior.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Verification

- [x] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — latest rerun: 106 E2E gate and
maintainer-skill tests passed; earlier advisor and skill suites passed
as recorded in prior commits.
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result:
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only)
- [ ] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
Signed-off-by: Carlos Villela <cvillela@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* PR reviews now present consolidated Recommended and Optional E2E
guidance, with duplicate recommendations removed and long lists
summarized.
* Fork pull requests can record approved credentialed E2E skips with
clearer statuses and approval messaging; skipped checks are not reported
as passed.
* **Bug Fixes**
* Improved validation and handling for stale, mismatched, or missing E2E
skip approvals.
* **Documentation**
* Updated review, E2E skip, release, contributor, and maintainer
guidance to reflect the revised workflows and terminology.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
…allback (NVIDIA#6099) (NVIDIA#6833)

## Summary

`nemoclaw onboard` still deletes a healthy sandbox after "forward did
not appear in list within 180000ms" in NemoClaw v0.0.81 even previous
fix NVIDIA#6116 is merged. One
reproducible case is when the host's ssh config applies `ControlMaster
auto` to the sandbox host: the spawned ssh client delegates its `-L`
forward to the ControlMaster mux daemon and exits, and openshell 0.0.72+
reports that exit as `ssh exited before local forward listener opened` —
a diagnostic the untracked-forward fallback regex does not match (due to
openshell's [recent code change in
crates/openshell-cli/src/ssh.rs#419](NVIDIA/OpenShell@ffc102a#diff-167ac902da19cb5c4bb003b4fcb65fa70b8877fd8ae54d034d6baf070ea18ad1R419)),
so the live-port probe never runs. After this change the fallback
recognizes the untracked port-forward and confirms the forward via the
existing live-port probe instead of rolling back.

## Related Issue

Fixes NVIDIA#6099

## Changes

- Extend `looksLikeUntrackedForward()` in
`src/lib/onboard/forward-start.ts` to also match the openshell 0.0.72
diagnostic variants (`ssh exited before local forward listener opened`,
`local forward listener was not reachable`), and document the
ControlMaster mux-delegation mechanism. Confirmation still requires the
live-port probe, and the EADDRINUSE conflict check still runs first, so
a genuinely failed ssh (no listener) keeps timing out exactly as before.
- Add tests: regex unit coverage for the new diagnostic, an end-to-end
helper test confirming `ok-port-live` for a mux-delegated forward with a
live port, and a negative test proving the same diagnostic without a
live port still times out.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: internal forward-confirmation
fallback; no user-facing docs describe the openshell diagnostic text.
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [ ] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: requesting maintainer
sensitive-path review (onboarding forward confirmation). The change does
not weaken the gate: the fallback still requires openshell's own failure
notice AND a live local listener, and the port-conflict check retains
precedence.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Verification

- [x] PR description includes the DCO sign-off declaration and every
commit appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — command/result: `npx vitest run
--project cli src/lib/onboard/forward-start.test.ts` → 27 passed (24
existing + 3 new)
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result:
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only)
- [ ] Doc pages follow the style guide (doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

## Reproduction evidence

A/B verified on a clean macOS 26.5 / Colima (aarch64) host with nemoclaw
v0.0.81 + openshell 0.0.72:

- Control (no ControlMaster): onboard succeeds first-try; both forwards
tracked in `openshell forward list`.
- With `Host *` / `ControlMaster auto` + `ControlPersist 600` in
`~/.ssh/config`: onboard fails with the exact NVIDIA#6099 signature and
deletes the sandbox. Captured mid-failure: the ControlMaster mux daemon
(`ssh: ~/.ssh/sockets/<user>@sandbox-22 [mux]`, ppid 1) holds
`127.0.0.1:18789 LISTEN`, the dashboard answers HTTP 200, while
`openshell forward list` stays empty — the exact condition the extended
fallback now confirms.
- A manual foreground `openshell forward start -d 127.0.0.1:18999
<sandbox>` in the same state errors with `ssh exited before local
forward listener opened on 127.0.0.1:18999` while the mux picks up the
port anyway, confirming the diagnostic text this PR adds to the regex.

A complementary root-cause option (out of scope here) is for openshell
to spawn its forward ssh with `-o ControlMaster=no -o ControlPath=none`,
which would also keep `forward list` tracking accurate under multiplexed
ssh configs.

---

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Signed-off-by: Tedy Yu <tedyy@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Bug Fixes**
* Improved SSH port-forward startup detection for ControlMaster and
other delegated connection scenarios.
* Forwarding now correctly succeeds when the local listener is active,
even if the forward list is temporarily empty or SSH reports a listener
diagnostic.
* Improved handling of inactive listeners so the system continues
waiting and reports a timeout appropriately.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Signed-off-by: Tedy Yu <tedyy@nvidia.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
<!-- markdownlint-disable MD041 -->
## Summary
The corporate proxy CA baked by the onboard opt-in (NVIDIA#6210) was decoded
only late in the sandbox image build — after the OpenClaw/mcporter
reinstall path — and `NODE_EXTRA_CA_CERTS` was never set at build time.
Behind a TLS-intercepting corporate proxy the `npm audit signatures`
step then failed to fetch the sigstore TUF root and aborted the build
with `SELF_SIGNED_CERT_IN_CHAIN`. This moves the CA decode ahead of the
reinstall path and exports `NODE_EXTRA_CA_CERTS` for the whole final
build stage, so build-time TLS traverses the operator proxy exactly as
runtime already does.

## Related Issue
Fixes NVIDIA#6839

## Changes
- `Dockerfile`: moved `ARG NEMOCLAW_CORPORATE_CA_B64` and the CA
decode/validate `RUN` to the top of the final stage, so the decoded
`corporate-ca.pem` exists before the OpenClaw/mcporter reinstall `RUN`
(which runs `npm audit signatures`). The decode block text is unchanged,
so the existing decode-guard contract still applies.
- `Dockerfile`: added a final-stage `ENV
NODE_EXTRA_CA_CERTS=/usr/local/share/nemoclaw/corporate-ca.pem`. Node
ignores a missing file, so this is a no-op when no CA is baked;
`scripts/nemoclaw-start.sh` still overrides it at runtime with the
merged OpenShell + corporate bundle. Signature and integrity
verification are unchanged — this only adds a transport trust anchor.
- `test/corporate-ca-build-tls-anchor.test.ts`: new contract test
pinning that the ARG, the decode `RUN`, and the anchor `ENV` all precede
the reinstall `audit signatures` step, and that exactly one corporate CA
build arg exists (the onboard patch's single replace target). The real
failure only reproduces against a full image build behind a
TLS-intercepting proxy, so this asserts the shipped build ordering
rather than a runtime path — registered as two `security` source-shape
contract exceptions in `ci/source-shape-test-budget.json`.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates
- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: restores the intended NVIDIA#6210
corporate-CA behavior on the image-build path; no new user-facing
surface or option is introduced.
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [ ] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: requesting maintainer
review — change is confined to the sandbox image build trust path; it
only makes the operator's own public CA (already baked for runtime)
available to build-time TLS. Package signature and integrity checks
still run end to end.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Verification
- [x] PR description includes the DCO sign-off declaration and every
commit appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — command/result: `vitest run --project
integration test/corporate-ca-build-tls-anchor.test.ts
test/corporate-ca-dockerfile-decode.test.ts` → 16 passed; `vitest run
--project cli src/lib/onboard/dockerfile-patch-corporate-ca.test.ts` → 6
passed; `npm run source-shape:check` → cases=0, invalid=0.
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result:
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only)
- [ ] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
Signed-off-by: Tinson Lai <tinsonl@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* Added optional corporate proxy CA support for secure TLS connections
during image builds and runtime.
* Corporate CA certificates are validated, securely stored, and
automatically trusted when provided.

* **Tests**
* Added coverage to verify corporate CA configuration and TLS trust
setup occur in the required order.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Signed-off-by: Tinson Lai <tinsonl@nvidia.com>
Co-authored-by: Carlos Villela <cvillela@nvidia.com>
<!-- markdownlint-disable MD041 -->
## Summary

Consolidates hermetic Vitest coverage into the existing CLI shard matrix
so PR and `main` CI have fewer independent lanes to reason about.
Retires the duplicate mock Ollama shell lane and standalone
live-workflow alias while keeping the real `ollama-auth-proxy` target
available through the canonical E2E workflow.

## Changes

- Include the `e2e-support` Vitest project and changed-live-E2E
mock-parity validation in the eight shared CLI coverage shards.
- Preserve the base-trusted PR action boundary with a bootstrap in
`.github/workflows/pr.yaml`: the current PR and PRs targeting older
bases run `e2e-support` directly only when the trusted base action does
not advertise that project. A direct action replacement is insufficient
because PR-authored composite actions cannot be executed with the base
workflow's trust. `test/pr-workflow-contract.test.ts` protects the
capability probe, bootstrap conditions, full-history checkout, and
steady-state shared action.
- Retire `test/e2e-ollama-proxy.sh` in favor of the existing handler
Vitest, adding the one missing unauthenticated `POST /api/tags`
assertion.
- Remove the standalone `ollama-proxy-e2e.yaml` alias; the live
`ollama-auth-proxy` target remains selectable through
`.github/workflows/e2e.yaml`.
- Remove the duplicate direct skill-frontmatter Vitest invocation from
static checks because the integration project is already collected by
the CLI shards.
- Update shard balancing/contracts and internal E2E contributor
documentation.

## Type of Change

- [ ] Code change (feature, bug fix, or refactor)
- [x] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: User-facing runtime behavior
is unchanged; internal E2E contributor docs were updated for the new CI
routing.
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [ ] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: Pending maintainer
review of the CI trust-boundary change; base-trusted action execution
remains intact and is covered by a security-classified workflow
contract.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue: Not applicable.

## Verification

- [x] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — `38` integration
contract/handler/shard tests and `4` E2E-support retirement tests
passed.
- [x] Applicable broad gate passed — `npm test`: 1,504 files / 17,105
tests passed; `npm run check`: all pre-commit/manual checks and coverage
ratchets passed.
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only) — passed
with 0 errors and 2 existing Fern warnings.
- [ ] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only) — not applicable to internal `test/e2e` contributor
docs; markdownlint passed.
- [ ] New doc pages include SPDX header and frontmatter (new pages only)
— no new doc pages.

---
Signed-off-by: Carlos Villela <cvillela@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **CI Improvements**
* Integrated E2E support coverage and Ollama proxy checks into existing
CLI test shards.
* Improved coverage validation for pull requests and main-branch builds.
* Removed redundant standalone E2E workflow jobs and legacy shell-based
checks.
  * Added validation to detect mismatches in live E2E mocks.

* **Bug Fixes**
* Added coverage ensuring unauthenticated Ollama API requests are
rejected.

* **Documentation**
  * Updated E2E testing guidance and CI workflow documentation.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Signed-off-by: Carlos Villela <cvillela@nvidia.com>
…DIA#6860)

## Summary

The atomic DCode rebuild gate probes the sandbox's recorded
OpenAI-compatible route before making changes. Its Chat Completions
payload hard-coded `max_tokens`, so rebuilds configured with GPT-5 or
o-series models could fail with HTTP 400 before rebuild processing
began.

This PR makes that rebuild-only probe use the shared model-aware
token-field resolver. It does not change the managed gateway's ongoing
route-health validation.

## Scope

`preflightRebuildInferenceRoute` is called only by the DCode rebuild
preflight. This PR intentionally does not change the managed gateway's
ongoing route-health validation or claim broader runtime behavior.

## Changes

- Resolve the Chat Completions reply-budget field with
`resolveMaxTokensField(input.model)`.
- Send `max_completion_tokens` for GPT-5 and o1/o3/o4 model families.
- Preserve `max_tokens` for models that support the legacy field.
- Cover GPT-5, o-series, and legacy-model behavior at the
rebuild-preflight command boundary.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior - justification:
- [ ] Tests not applicable - justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable - justification: internal rebuild inference
preflight behavior; no user-facing contract changed.
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [ ] Sensitive-path review completed or maintainer-approved waiver
recorded - reviewer/approval link/justification:
- [ ] Non-success, skipped, or missing CI check accepted by maintainer -
check name, approval link, and follow-up issue:

## Verification

- [x] PR description includes `Signed-off-by:` lines and every commit is
signed
- [x] `npm run check:diff`
- [x] `npm run build:cli`
- [x] `npm run typecheck:cli`
- [x] `npx vitest run --project cli
src/lib/actions/sandbox/rebuild-inference-preflight.test.ts` - 7 passed
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed

Signed-off-by: Tinson Lai <tinsonl@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Bug Fixes**
* Improved inference preflight checks for newer GPT-5 and o-series
models by using the correct completion token parameter.
* Preserved compatibility with legacy models by continuing to use their
supported token limit parameter.
* Added coverage to verify request payloads use the appropriate field
for each model type.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Tinson Lai <tinsonl@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Co-authored-by: Prekshi Vyas <prekshiv@nvidia.com>
<!-- markdownlint-disable MD041 -->
## Summary

Jetson workflow mutation tests now validate the runner-dispatch boundary
in memory instead of serializing a 249 KB workflow and running the full
aggregate validator for every mutation. This keeps `e2e-support` in the
combined CLI coverage shards while removing the operation that exceeded
the five-second test budget under CI contention.

## Changes

- Add `validateJetsonRunnerDispatchBoundary` as the shared consumer of
the existing Jetson workflow input, selector, routing, and guard checks;
the aggregate E2E workflow validator continues to invoke it.
- Route focused Jetson mutations through that in-memory boundary instead
of temporary YAML files and repeated whole-workflow validation. The
current requirement is the combined coverage shard introduced in NVIDIA#6857,
and `jetson-workflow-boundary.test.ts` protects the direct and aggregate
validator paths.
- Leave artifact-upload and Docker-auth cleanup contracts with their
dedicated validators and tests rather than duplicating those
cross-cutting assertions in the Jetson dispatch test.
- Reduce the previously failing coverage-mode mutation from 1.35 seconds
to 118 milliseconds locally.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: Internal test-harness
optimization; no CLI behavior, workflow behavior, contributor command,
or user-facing contract changes.
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [x] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: No runtime runner path
changed. The aggregate validator still invokes the same Jetson input,
selector, routing, and dispatch-guard checks, and the complete E2E
support suite passes.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Verification

- [x] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — `npx vitest run --project
e2e-support`: 116 files and 1,000 tests passed; focused CI-style V8
coverage run: 3 tests passed and the mutation completed in 118 ms.
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result:
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only)
- [ ] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
Signed-off-by: Carlos Villela <cvillela@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Tests**
* Updated end-to-end workflow validation to check Jetson GPU dispatch
boundaries directly and consistently.
* Refined expected validation results to focus on runner queue settings
and dispatch guard ordering.

* **Refactor**
* Consolidated workflow boundary checks, reducing duplicate validation
paths and improving test reliability.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary
Adds a DGX Spark-specific warning when onboarding selects an
already-running vLLM server that appears to serve a large unquantized
model. This gives operators headroom guidance before agent/tool load can
surface as `NVRM NV_ERR_NO_MEMORY`, SSH loss, or a hard host freeze.

The warning is limited to bring-your-own vLLM servers and is suppressed
for the managed Spark vLLM handoff, so NemoClaw's validated managed
recipe does not warn on itself.

## Changes
- Detect DGX Spark during existing vLLM onboarding and warn for large
unquantized model IDs, including reported `max_model_len` when vLLM
exposes it.
- Thread a `managedInstall` option through the managed vLLM flow so the
BYO-server warning is not emitted after `install-vllm` succeeds.
- Document DGX Spark local vLLM headroom triage and the distinction
between host freezes and agent tool-call hangs.
- Add targeted CLI tests for the Spark warning, managed-path
suppression, quantized model exclusion, numeric large-model threshold
behavior, and managed vLLM option handoff.

## Type of Change

- [ ] Code change (feature, bug fix, or refactor)
- [x] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates
- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [x] Docs updated for user-facing behavior changes
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [x] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: self-reviewed as a
warning-only onboarding/inference guardrail; no credential, policy,
sandbox, or vLLM launch behavior changes. Targeted tests cover warning,
suppression, and quantized exclusion.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Verification
- [x] PR description includes the DCO sign-off declaration and every
commit appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable —
`npm run check:diff` passed on DGX Spark Linux after building the
plugin/CLI artifacts required by CLI typecheck.
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — `npx vitest run --project cli
src/lib/onboard/setup-nim-vllm.test.ts
src/lib/onboard/setup-nim-flow.test.ts` passed, 22 tests.
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result:
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [x] `npm run docs` builds without warnings (doc changes only) — passed
on DGX Spark Linux with 0 errors; Fern emitted only the existing upgrade
notice.
- [x] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

Additional validation:
- `npx @biomejs/biome check src/lib/onboard/setup-nim-vllm.ts
src/lib/onboard/setup-nim-vllm.test.ts src/lib/onboard/setup-nim-flow.ts
src/lib/onboard/setup-nim-flow.test.ts src/lib/onboard.ts` passed.
- `npm run typecheck:cli` passed locally after build artifacts were
present.
- `npm run docs:check-agent-variants` and `npm run docs:check-routes`
passed locally; Fern check returned 0 errors.
- DGX Spark runtime evidence: a manually operated vLLM serving
`Qwen/Qwen3.6-35B-A3B` with a very long context and high memory
utilization left minimal unified-memory headroom and had prior `NVRM
NV_ERR_NO_MEMORY` logs. Restarting with a smaller envelope allowed a
smoke request to complete without freezing, which matches the
warning/troubleshooting scope.

---
Signed-off-by: HwangJohn <angelic805@gmail.com>

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Documentation**
* Added DGX Spark troubleshooting guidance for host freezes / `NVRM
NV_ERR_NO_MEMORY` from risky local vLLM setups, with recovery steps and
advice to prefer the managed Spark path.
* Clarified managed vLLM labeling and behavior when port `8000` is
already in use.
* **New Features**
* DGX Spark onboarding now warns about high-risk existing local vLLM
instances and suppresses the warning for managed vLLM.
* Managed vLLM onboarding is safer when a server is already running,
including Spark-specific handling.
* **Tests**
* Expanded coverage for DGX Spark warnings, suppression,
managed-vs-existing detection, and port-conflict flows.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: HwangJohn <angelic805@gmail.com>
Co-authored-by: Prekshi Vyas <prekshiv@nvidia.com>
Co-authored-by: Prekshi Vyas <34834085+prekshivyas@users.noreply.github.com>
Co-authored-by: Carlos Villela <cvillela@nvidia.com>
…lure (NVIDIA#6867)

<!-- markdownlint-disable MD041 -->
## Summary
During `nemoclaw onboard`, choosing "Other OpenAI-compatible endpoint"
and entering a DNS-unreachable base URL (`https://example.invalid/v1`)
failed the SSRF preflight and **silently looped back to provider
selection** — no probe guidance, no retry/back/exit prompt, no clean
exit. This PR routes an unreachable endpoint through the existing
transport-recovery path (DNS/VPN/URL hint + retry/back/exit + exit),
matching the credential-failure path. The safety property is unchanged:
no sandbox is created.

Closes NVIDIA#6854.

## Reproduction
Exercised the real compiled recovery path on our DGX Spark aarch64 test
host (matching the reporter's DGX Spark aarch64), driving
`validateCustomOpenAiLikeSelection` against a host that does not resolve
and capturing the recovery classification handed to the prompt.

**Environment**
- Test machine: our DGX Spark aarch64 test host (GB10 GPU), Ubuntu 24.04
- NemoClaw `main` (v0.0.82)

**Observed on `main` (before fix)**
```
recovery.kind = unknown     # -> promptValidationRecovery falls through to the
                            #    silent "Please choose a provider/model again"
                            #    branch and loops back to provider selection
```

**Observed on `fix/...` (after fix)**
```
recovery.kind = transport   # -> "Validation could not resolve the provider
                            #    hostname. Check DNS, VPN, or the endpoint URL."
                            #    + "Type 'retry', 'back', or 'exit'"
```

## Analysis
`preflightCustomEndpointOrFail`
(`src/lib/onboard/inference-selection-validation.ts`) builds a synthetic
probe failure for an SSRF-preflight failure with `curlStatus: 0` and
`httpStatus: 0`. `classifyValidationFailure` has no status to key on, so
it returns `kind: "unknown"` (retry: "selection"), and
`promptValidationRecovery` takes its final else-branch — printing
"Please choose a provider/model again" and returning to the menu with no
guidance and no exit option. The credential path and every real
transport failure (curl exit 6/7/28, HTTP 429/5xx) instead get
`getTransportRecoveryMessage` + a retry/back/exit prompt. A
DNS-unreachable endpoint is genuinely a transport failure, but the
synthetic failure never carried that signal.

## Fix
When the preflight reason is a host-resolution failure (`cannot resolve
endpoint host …` / `did not resolve to any address`), mark the synthetic
failure with curl's "could not resolve host" status (6). It then
classifies as `transport` and routes through the existing transport
recovery — which already emits the "Check DNS, VPN, or the endpoint URL"
hint (curl 6 branch) and the retry/back/exit prompt with a clean exit. A
private-IP SSRF block keeps status 0 (it resolved fine; the address is
just refused), so that path is unchanged. No new recovery UI is added —
the fix reuses the existing transport contract.

## Changes
- `src/lib/onboard/inference-selection-validation.ts`: classify an
unresolved-host SSRF-preflight failure as a transport failure.
- `src/lib/onboard/inference-selection-validation.test.ts`: regression
test that an unreachable endpoint yields a transport recovery.

## Type of Change
- [x] Code change (feature, bug fix, or refactor)

## Verification
- [x] `npm test` passes (touched files)
- [x] Tests added or updated for new or changed behavior
- [x] No secrets, API keys, or credentials committed

## AI Disclosure
- [x] AI-assisted — tool: Claude Code

Signed-off-by: Yanyun Liao <yanyunl@nvidia.com>

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Bug Fixes**
* Improved validation for custom OpenAI-compatible endpoints when
DNS/host resolution fails.
* Unreachable endpoints are now classified as transport failures,
triggering the appropriate recovery flow instead of being treated as
blocked/unsafe.
* Continued to keep separate handling for endpoints that resolve to
private or internal network addresses.
* **Tests**
* Added coverage to confirm DNS-style failures are detected as transport
issues and follow the expected recovery path.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Yanyun Liao <yanyunl@nvidia.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
<!-- markdownlint-disable MD041 -->
## Summary
Repository checks now invoke Windows `.cmd` shims through `cmd.exe`
instead of spawning the shim directly. This keeps `npm run checks`
usable on Windows where direct `spawnSync('*.cmd')` returns `EINVAL`,
while leaving POSIX execution direct.

## Changes
- Split `scripts/checks/run.ts` into testable invocation helpers while
preserving the existing check list and script entry point.
- Route Windows check commands as `cmd.exe /d /s /c <shim> ...args` so
`tsx.cmd` can run under Node on Windows.
- Add integration coverage for Windows shim invocation, POSIX direct
invocation, and null-status failure handling.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates
<!-- Check exactly one tests line and one docs line. Check other lines
when applicable. Add every requested justification or approval
reference. -->
- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: contributor validation
tooling behavior changed, but no command syntax, documented workflow, or
user-facing CLI behavior changed.
- [ ] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [ ] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification:
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Verification
<!-- Check each applicable item only when supported by the requested
evidence. Run targeted tests once per relevant change set and rerun
after later edits or hook autofixes that can affect the tested behavior.
Do not rerun hook-covered checks. -->
- [x] PR description includes the DCO sign-off declaration and every
commit appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — command/result or justification: DGX
Spark/Linux: `npx vitest run --project integration
test/checks-runner.test.ts` passed; Windows local mechanism check showed
direct `spawnSync('npm.cmd')` returns `EINVAL` while `cmd.exe /d /s /c
npm.cmd --version` exits 0.
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result: DGX Spark/Linux `npm run
checks`, `npm run typecheck:cli`, and `npm run check:diff` passed. `npm
run check` was attempted but the host lacks `hadolint`, and the separate
all-files manual coverage stage exceeded the 10-minute local timeout; no
broad-gate success is claimed.
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only)
- [ ] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
<!-- DCO sign-off is required in this PR description, and every commit
must appear as Verified in GitHub. Run: git config user.name && git
config user.email -->
Signed-off-by: HwangJohn <angelic805@gmail.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Bug Fixes**
* Improved cross-platform execution of project checks, including
reliable Windows command handling via `ComSpec`/cmd.exe routing.
* Ensured failed or incomplete checks correctly trigger error exit
codes.

* **Refactor**
* Check execution was reworked into reusable, exported runner utilities
with injectable spawn/exit behavior while preserving CLI behavior.

* **Tests**
* Added coverage for Windows and POSIX invocation building, environment
handling, output forwarding, and failure-path exit behavior.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: HwangJohn <angelic805@gmail.com>
<!-- markdownlint-disable MD041 -->
## Summary
Skill install upload failures now point users at the common shields-up
cause instead of reporting only the failed filenames. The hint stays
conditional, so unrelated upload failures are not reported as definitely
caused by shields.

## Related Issue
Fixes NVIDIA#6859

## Changes
- Print a recovery hint after `skill install` upload failures explaining
that skill uploads write to a directory locked while shields are up.
- Tell users to run `nemoclaw <sandbox> shields down` before installing
skills when shields are up.
- Add action-level regression coverage for the upload failure message
and post-install short-circuit.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates
<!-- Check one tests line and one docs line. Check other lines when
applicable. Add every requested justification or approval reference. -->
- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: this is a narrow runtime
error-message improvement for an existing command and does not change
command usage, options, defaults, or documented workflows.
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [x] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: self-review of sandbox
action behavior; the change only adds guidance after an upload failure
and does not alter upload, shields, permission, or sandbox mutation
logic.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Verification
<!-- Check each applicable item only when supported by the requested
evidence. Run targeted tests once per relevant change set and rerun
after later edits or hook autofixes that can affect the tested behavior.
Do not rerun hook-covered checks. -->
- [x] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — command/result or justification: DGX
Spark/Linux: `npx vitest run --project cli
src/lib/actions/sandbox/skill-install.test.ts` passed; `npm run
check:diff` passed.
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result:
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only)
- [ ] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
<!-- DCO sign-off is required in this PR description, and every commit
must appear as Verified in GitHub. Run: git config user.name && git
config user.email -->
Signed-off-by: HwangJohn <angelic805@gmail.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Bug Fixes**
* Improved error messages when skill uploads fail by providing guidance
to lower shields before retrying.
* Prevented post-install steps from running after an unsuccessful
upload.

* **Tests**
* Added coverage for failed skill uploads, including error details and
recovery guidance.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Signed-off-by: HwangJohn <angelic805@gmail.com>
<!-- markdownlint-disable MD041 -->
## Summary

On macOS, `nemohermes connect` failed to write the managed Hermes light
terminal skin: the skin helper passed a multi-line shell script as a `sh
-c` argument, and OpenShell's macOS exec rejects command arguments
containing a newline or carriage return. The write and remove helpers
now stream the script over stdin via `sh -s`, so the skin is written as
intended on macOS while Linux behaviour stays unchanged.

## Related Issue

Fixes NVIDIA#6834

## Changes

- `writeHermesLightSkinFile` and `removeHermesLightSkinFile` now invoke
`openshell sandbox exec ... -- sh -s` with the script supplied on stdin
(`input`) and stdin piped, instead of `sh -c "<multi-line script>"`.
This mirrors the existing stdin pattern already used in
`tunnel/sandbox-gateway-stop.ts`.
- Updated the `connect-hermes-light-theme` test harness helpers and mock
arms to read the script from the exec stdin rather than the `-c` argv
slot.
- Added a regression test asserting the forwarded argv is exactly `sh
-s`, no argv element carries a newline or carriage return, and the
multi-line script travels over stdin.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates
<!-- Check exactly one tests line and one docs line. Check other lines
when applicable. Add every requested justification or approval
reference. -->
- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: internal exec-transport fix;
no user-facing behaviour, CLI surface, flags, or output change (the skin
is written as originally intended).
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [x] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: transport-only change
(exec argv `-c` → stdin `sh -s`); the executed script is byte-identical
and still runs as the sandbox user, with no change to privileges,
credentials, or network surface. Requesting maintainer sensitive-path
review.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Verification
<!-- Check each applicable item only when supported by the requested
evidence. Run targeted tests once per relevant change set and rerun
after later edits or hook autofixes that can affect the tested behavior.
Do not rerun hook-covered checks. -->
- [x] PR description includes the DCO sign-off declaration and every
commit appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — command/result: `npx vitest run
src/lib/actions/sandbox/connect-hermes-light-theme.test.ts` → 11/11
passed
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result:
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only)
- [ ] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
Signed-off-by: Tinson Lai <tinsonl@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Bug Fixes**
* Improved the reliability and security of Hermes light-skin setup and
cleanup operations.
* Prevented multi-line shell scripts and sensitive values from appearing
in command arguments or logs.
* Strengthened failure handling when applying or removing the light
skin, while preserving existing cleanup behavior.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Signed-off-by: Tinson Lai <tinsonl@nvidia.com>
Co-authored-by: Carlos Villela <cvillela@nvidia.com>
Co-authored-by: Julie Yaunches <jyaunches@nvidia.com>
<!-- markdownlint-disable MD041 -->
## Summary

Long-running Hermes rebuild probes currently retain every stdout and
stderr byte until the child exits. If a Docker or OpenShell command
wedges and becomes noisy, that lets the test process grow without bound
on the hosted runner; runner loss then prevents the final log and
artifact upload steps from running.

Retain a redacted 4 MiB diagnostic tail per stream for only the five
long Hermes rebuild commands. Other `ShellProbe` consumers keep their
existing unlimited capture behavior.

## Changes

- Add an opt-in per-stream byte limit to the E2E `ShellProbe` fixture.
- Preserve the newest diagnostic output, report how many earlier bytes
were omitted, and apply the existing redaction before returning or
writing artifacts.
- Apply the limit to Hermes install, old/current Docker builds, old
sandbox creation, and `nemoclaw rebuild`.
- Cover bounded stdout/stderr, diagnostic-tail preservation, artifact
parity, and secret redaction in the E2E support suite.

## Failure evidence

- The last successful normal rebuild was Actions run 29306093311 attempt
1 at `b85f5b29` (16m38s).
- The next normal rebuild in run 29307095519 at `4f64b0ac` lost its
hosted runner after 50 minutes. No Hermes rebuild code, Dockerfile,
`ShellProbe`, pinned Hermes version, or E2E workflow changed between
those revisions.
- Run 29313003676 later lost both rebuild runners after 49 and 60
minutes. GitHub reported runner communication loss; neither failed job
produced logs or an artifact.
- Successful rebuild artifacts contain small normal-path output. This
change fixes the concrete unbounded-memory amplifier without claiming
that the unavailable failure evidence proves which host resource was
exhausted.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: required documentation-writer
review confirmed this is internal E2E capture behavior with no CLI,
configuration, API, policy, or user-facing rebuild contract change.
- [ ] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [ ] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification:
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Verification

- [x] PR description includes the DCO sign-off declaration and every
commit appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — `npx vitest run --project e2e-support
test/e2e/support/e2e-redaction-entry.test.ts
test/e2e/support/rebuild-hermes-progress.test.ts
test/e2e/support/hermes-workflow-boundary.test.ts` (48 passed); Biome,
exact Vitest project membership, and `npm run typecheck:cli` also
passed.
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result: not applicable to this
opt-in live-target fixture safeguard; required CI remains authoritative.
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only)
- [ ] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Added configurable stdout/stderr capture limits for shell-command
probes, including persisted artifacts.
- When output is truncated, an omission marker is shown while preserving
a redacted tail.

- **Bug Fixes**
- Improved truncation-aware redaction, including safer diagnostics when
a probe fails to spawn.

- **Tests**
- Added E2E coverage for high-volume output truncation, redacted tail
preservation, and exact artifact contents.
  - Added E2E coverage for rejecting invalid capture limit values.
- Capped capture sizes in the long-running Hermes rebuild flow for
stability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
…VIDIA#6856)

## Summary

On the re-onboard **reuse** path, the Balanced-tier default preset
`brave` (Brave Search API access) was silently dropped even when the
policy tier (Balanced) and the web-search choice (No web search) were
unchanged. The other four Balanced defaults (`npm`, `pypi`,
`huggingface`, `brew`) persisted — only `brave` was narrowed out of the
reapplied set, removing its egress (`api.search.brave.com`).

Fixes NVIDIA#6844.

## Root cause

`isStaleBuiltinWebSearchPolicyPreset` treats `brave`/`tavily` as a stale
web-search leftover whenever no matching web-search provider is
configured. It did not account for the fact that the same preset is
*also* a default egress preset of the tier being applied. On reuse,
`preparePolicyPresetResumeSelection` pruned `brave` under this rule,
flipping `recordedPolicyPresetsNeedReconcile` and driving a reapply
whose set omitted `brave`.

## Fix

A preset that is a default of the **applied tier** is a tier egress
default, not a stale web-search leftover. The exemption is expressed
through the existing `classifyPresetProvenance` classifier (`source:
"tier"`), so pruning and the `policy-list` display share a single notion
of *why* a preset is present rather than a second, parallel one. It is
threaded through both reuse/resume prune sites
(`preparePolicyPresetResumeSelection` and
`createUnavailablePolicyPresetPruner`).

Scoped to the reuse/resume path. **Fresh-onboard suggestion behaviour is
intentionally unchanged**: a fresh *suggested* onboard omits `brave`
egress unless web-search is chosen (conservative egress by design — see
`onboard-policy-suggestions.test.ts`), which is not part of this reuse
regression.

### Design annotation
- **invalidState**: on reuse, an already-applied tier-default egress
preset (`brave`/`tavily` on Balanced/Open) is pruned as a stale
web-search leftover and its egress narrowed, on an unchanged tier.
- **sourceBoundary**: `isStaleBuiltinWebSearchPolicyPreset` — the single
predicate all reuse/resume prune sites share.
- **whyNotSourceFix**: preset provenance is intentionally *not*
persisted (`preset-provenance.ts` is display-only by design); we reuse
its classifier rather than reverse that decision with a persisted-state
refactor.
- **regressionTest**: `policy-resume-selection.test.ts` — preserve on
Balanced, still-prune on Restricted, keep-with-switched-provider,
prune-non-tier-default.
- **removalCondition**: if preset provenance ever becomes persisted
per-preset, replace the current-tier inference with the stored source.

### Behaviour preserved (boundaries)
- **Restricted tier** lists no `brave`/`tavily` default → a genuinely
stale preset there is still pruned.
- A **non-tier-default** web-search preset (e.g. `tavily` on Balanced
with no matching provider) is still pruned — the exemption is scoped to
real tier defaults, not "any `brave`/`tavily`".
- **Provider switch** (brave → tavily) still replaces the stale provider
and adds the newly active one.
- **Unknown / non-canonical recorded tier** fails safe (`getTier` → null
→ not `"tier"` → not exempt → prior behaviour), so the
authoritative-rebuild-tier-pending case does not throw.

## Testing

- `policy-resume-selection.test.ts` covers the full contract above; the
broader onboard policy/tier/preset suites pass (213 tests across 15
files); `build:cli` + `typecheck` green.
- **End-to-end on both arches**, on `main`, onboarding a local Ollama
sandbox (loopback route, so onboarding is not blocked by the endpoint
SSRF preflight):
- **x86_64** (our Ubuntu 24.04 no-GPU test host) and **aarch64** (our
DGX Spark GB10 GPU test host — matching the reporter's DGX Station
architecture).
- **Before the fix:** reuse reapply = `npm, pypi, huggingface, brew` →
`Removed preset: brave` → brave inactive.
- **After the fix:** reuse reapply = `npm, pypi, huggingface, brew,
brave` → brave stays active (`[from balanced tier]`), no egress
narrowing.

Signed-off-by: Yanyun Liao <yanyunl@nvidia.com>

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Bug Fixes**
* Preserved built-in web-search and egress presets based on the recorded
tier during policy resume and reconciliation.
* Prevented tier-default presets from being incorrectly pruned when
resuming, including when web search is disabled or uses a different
provider.
* Ensured reconciliation still removes unavailable, non-default presets
that don’t match the active tier’s defaults.
* **Tests**
* Added coverage for tier-default preservation across resume selection
and reapply behavior.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Yanyun Liao <yanyunl@nvidia.com>
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Charan Jagwani <cjagwani@nvidia.com>
<!-- markdownlint-disable MD041 -->
## Summary

DGX Station GB300 OEM systems now enter the DGX Station express-install
path. Managed vLLM storage preflight is also narrowed to the Docker
image pull: it blocks only for a verified shortage, recognizes both
default Linux socket spellings, and no longer aborts express onboarding
when capacity is inconclusive.

## Proof of test
### Happy case
```
  [3/8] Configuring inference provider
  ──────────────────────────────────────────────────
  [non-interactive] Provider: install-vllm

  vLLM (DGX Station):
    Image: nvcr.io/nvidia/vllm@sha256:9204569b17ee4c0eff75194b8e6e458479c8aee18953b5ab9cf359fcdac659e2
    Model: deepseek-ai/DeepSeek-V4-Flash
    Image download on first run, cached after
    Model download on first run, cached after


  Installing vLLM. Progress will print below.
  ==> Pulling vLLM image: nvcr.io/nvidia/vllm@sha256:9204569b17ee4c0eff75194b8e6e458479c8aee18953b5ab9cf359fcdac659e2
  ==> nvcr.io/nvidia/vllm@sha256:9204569b17ee4c0eff75194b8e6e458479c8aee18953b5ab9cf359fcdac659e2: Pulling from nvidia/vllm
```
### Shortage of space
```
  Installing vLLM. Progress will print below.

  Insufficient Docker storage for the managed vLLM image.

  Image:     nvcr.io/nvidia/vllm@sha256:9204569b17ee4c0eff75194b8e6e458479c8aee18953b5ab9cf359fcdac659e2
  Available: 9.7 GiB
  Required:  approximately 29.8 GiB
  Storage:   Docker root directory (/mnt/nemoclaw-docker-10g/docker)

  Free or expand Docker storage before continuing.
  Useful diagnostics:
    docker system df
    docker info --format '{{.DockerRootDir}}'
  Non-interactive setup stops before the guarded download. Set NEMOCLAW_IGNORE_VLLM_DISK_SPACE=1 to override.
  [non-interactive] Aborting: vLLM install failed. See errors above.
```
## Related Issue

Closes NVIDIA#6757.
Closes NVIDIA#6858.

## Changes

- Detect product names containing both `Station` and `GB300` as DGX
Station for express install.
- Keep the managed image-size estimate and backend-aware
Docker/containerd capacity probe while removing Hugging Face model-cache
sizing and bind-identity probes.
- Prompt or stop only for a verified Docker image-storage shortage;
continue when capacity cannot be established, and retain the explicit
non-interactive override for known shortages.
- Recognize both `/run/docker.sock` and `/var/run/docker.sock`, and
honor Docker's documented `DOCKER_CONTEXT` precedence.
- Update focused installer/storage tests and user documentation.

## Type of Change

- [ ] Code change (feature, bug fix, or refactor)
- [x] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [x] Docs updated for user-facing behavior changes
- [ ] Docs not applicable — justification:
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [x] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: Full combined-diff
review found no secret, dependency, injection, authentication,
cryptography, privilege, or sandbox-policy issues; Docker context
precedence is covered in both directions.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Verification

- [x] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — installer integration: 7 passed, 1
skipped; focused CLI: 88 passed; focused integration: 38 passed; `npm
run typecheck:cli` passed.
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result:
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only) — build
passed with two pre-existing Fern warnings and no errors.
- [x] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---

Signed-off-by: San Dang <sdang@nvidia.com>



<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Summary by CodeRabbit

* **New Features**
* Added support for recognizing additional DGX Station hardware variants
during installation.
* Added image-focused managed vLLM disk preflight checks before pulling
vLLM images.

* **Bug Fixes**
* Improved Docker image-storage detection with clearer inconclusive
behavior across local configurations.
* Tightened non-interactive and `--yes` / disk-override handling so only
explicitly verified cases can proceed.

* **Documentation**
* Updated vLLM setup guidance and command reference to clarify that
Hugging Face model-cache space is not preflight-estimated.

* **Tests**
* Updated vLLM storage and capacity test coverage to match the new
probing scope.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: San Dang <sdang@nvidia.com>
Co-authored-by: Julie Yaunches <jyaunches@nvidia.com>
<!-- markdownlint-disable MD041 -->
## Summary

Reduce `e2e-support` runtime by removing real timer waits, repeated
Vitest and shell subprocess startup, and repeated parsing of the E2E
workflow. Under the same V8-coverage profile, the project wall time
falls from 17.29 seconds to 11.78 seconds (about 32%) without changing
tested behavior.

## Changes

- Use fake timers for PID-stability sampling and batch related
live-target collection checks into fewer Vitest subprocesses.
- Exercise the exported workflow-plan helper directly instead of
launching the workflow's shell/TSX wrapper four times.
- Parse the E2E workflow once in the aggregate validator, pass the
parsed document to focused validators, and validate host-dependency
mutations in memory.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: test execution and internal
workflow-validation behavior only; commands, selectors, workflow inputs,
and user-facing behavior are unchanged.
- [ ] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [ ] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification:
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Verification

- [x] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — full `e2e-support` V8-coverage
profile: 253 suites and 997 tests passed; 17.29s before, 11.78s after
- [x] Applicable broad gate passed — `npm test`: 1,506 files passed (3
skipped), 17,150 tests passed (40 skipped)
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only)
- [ ] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---

Signed-off-by: Carlos Villela <cvillela@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Refactor**
- Improved end-to-end workflow validation by adding workflow-value
(in-memory) checks alongside the existing file-based validation.
- Refactored Hermes GPU startup workflow validation to operate on
already-parsed workflow content.
- Updated workflow planning validation to assert against the shared
workflow plan builder output.
- **Tests**
- Updated E2E host-dependency rules to validate by mutating in-memory
workflows directly.
- Enhanced live-test gating to support multi-file collection with
per-file assertions.
  - Made PID stability checks deterministic by using mocked timers.
- Simplified the E2E workflow test setup by switching to the shared
workflow plan builder.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Carlos Villela <cvillela@nvidia.com>
apurvvkumaria and others added 28 commits July 21, 2026 12:35
)

<!-- markdownlint-disable MD041 -->
## Summary

Adds an independent, opt-in container E2E verifier for the historical
OpenClaw security revision image produced by NVIDIA#7276. Normal CI validates
the harness contracts; configured live execution checks supported state
selectors, the reviewed Slack dependency remediation, transactional
state and credential restoration, and fail-closed rejection of a state
directory outside `HOME`.

## Related Issue

Related to NVIDIA#7272. Validates NVIDIA#7276. PR NVIDIA#7276 must merge before this PR
can merge.

## Changes

- Add a hermetic-by-default integration contract with an explicitly
enabled live Docker lane.
- Resolve the configured candidate image to an immutable image ID and
run it non-root, read-only, capability-dropped, resource-bounded, and
without host mounts or Docker socket access.
- Pack the exact integrity-pinned `@openclaw/slack@2026.6.10` archive
and verify Axios, `https-proxy-agent`, and `agent-base` remediation
across profile, development, and in-home custom-state selectors.
- Prove failed post-install remediation restores prior state and
credentials, and prove an outside-home state directory is rejected
before the original installer runs.
- Record structured image identity and assertion evidence for the live
run.

This PR covers the runtime wrapper and plugin-remediation boundary. The
focused tests in NVIDIA#7276 remain responsible for its historical-version,
tar-graph, workflow, and multi-architecture contracts.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: test-only verification; no
command, flag, default, configuration, API, or policy behavior changes
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [ ] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: pending maintainer
review
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## DGX Station Hardware Evidence

- [ ] Tested on DGX Station
- Tested commit:
- Station profile/scenario:
- Result:
- Supporting evidence:

## Verification

- [x] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — `npx vitest run --project integration
test/historical-openclaw-security-revision-container-e2e.test.ts` (7
passed, live candidate lane explicitly skipped until configured)
- [ ] Applicable broad gate passed — CI pending; local typecheck and
repository structural gates passed
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only)
- [ ] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

## Merge Dependencies

Human review can proceed now, but NVIDIA#7294 must not merge until all items
below are complete:

- [ ] NVIDIA#7276 is merged into `main`.
- [ ] Update or rebase NVIDIA#7294 on the resulting `main`.
- [ ] Run the opt-in container E2E lane against the exact final image
produced by NVIDIA#7276 and record the immutable image digest and passing
evidence.

---
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Tests**
* Added an end-to-end test suite for the “historical security revision”
Docker wrapper contract.
* Validates reviewed plugin remediation outcomes, evidence output, and
approved dependency versions.
* Ensures hardened container execution settings and enforces safety
checks that reject unsafe state directories.
* Covers successful remediation, remediation failure behavior, and
safeguards against running the installer in invalid contexts.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
<!-- markdownlint-disable MD041 -->
## Summary

Make the coding-agent starter prompt construct non-interactive installs
with explicit agent, provider, and release-tag variables.
Add tool-neutral Docker approval guidance that keeps escalation
command-scoped and preserves the execution-sandbox boundary.

## Related Issue

Fixes NVIDIA#7311

## Changes

- Name `NEMOCLAW_AGENT` for every supported agent and pair it with
`NEMOCLAW_PROVIDER` during non-interactive command construction.
- Document `NEMOCLAW_INSTALL_TAG=vX.Y.Z` on the `bash` side of the
installer pipeline and clear any inherited higher-priority
`NEMOCLAW_INSTALL_REF`.
- Align the environment-variable reference and explicit `lkg` upgrade
example with the same install-ref precedence.
- Tell a coding agent to use its command-scoped approval flow only for
the exact Docker command blocked by its execution sandbox.
- Prohibit Docker socket permission changes and broad host access as
sandbox workarounds.
- Add a regression contract for all three requested variables,
release-tag precedence and placement, and the coding-agent Docker
approval boundary.
- Record the QA detection gap: existing tests protected prompt
generation and Deep Agents selection but did not assert the complete
install-variable or execution-sandbox contract.

## Type of Change

- [ ] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [x] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [x] Docs updated for user-facing behavior changes
- [ ] Docs not applicable — justification:
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [x] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: Independent
documentation review confirmed the guidance is coding-agent-neutral,
narrowed escalation to Docker commands, required explicit denial
behavior, and prohibited socket-permission and broad-host-access
workarounds.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## DGX Station Hardware Evidence

- [ ] Tested on DGX Station
- Tested commit:
- Station profile/scenario:
- Result:
- Supporting evidence:

## Verification

- [x] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — command/result or justification:
`vitest run --project integration test/starter-prompt-docs.test.ts`
passed 18 tests.
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result:
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only) — the
command passed with 0 errors and one existing Fern light-mode accent
contrast warning outside this diff.
- [x] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
Signed-off-by: Miyoung Choi <miyoungc@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Documentation**
* Expanded non-interactive onboarding with explicit agent/provider
environment variables and clearer installation version pinning guidance.
* Updated precedence rules for install reference vs install tag,
including how CLI flags override each.
* Added execution-sandbox guidance for when Docker commands are blocked,
including narrowly scoped re-approval and what to avoid.

* **Tests**
* Added a starter-prompt documentation test to verify required
environment variables, sandbox approval language, and correct
precedence/tag formatting rules.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Miyoung Choi <miyoungc@nvidia.com>
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
Co-authored-by: Charan Jagwani <cjagwani@nvidia.com>
<!-- markdownlint-disable MD041 -->
## Summary

Physical validation on one DGX Station GB300 now covers generic Ubuntu
24.04 ARM64, stock DGX OS `7.5.0`, the April 2026 NVIDIA Colossus BaseOS
profile, and the June 2026 NVIDIA AI Developer Tools profile, but the
platform matrix still classified all Station configurations as Deferred.
This change sets the platform status to Tested with limitations and
states that dual-Station configurations and dedicated CI coverage remain
pending.

## Related Issue

Fixes NVIDIA#6951.

## Changes

- Set the `DGX OS (Station)` matrix entry to `caveated` while keeping
`ci_tested` false.
- Record the four qualified single-Station profiles, distinguish
clean-host end-to-end results from Station Express validation, and
preserve the unvalidated dual-Station boundary in generated and
hand-written guidance.
- Update the installer disclosure and focused regression checks to use
the same platform-status contract.
- Repin the immutable DGX Station starter-prompt asset so copied
installation guidance uses the same status.
- Clarify that v0.0.83 restored the Station express-install path without
changing the status that applied to that release.

## Type of Change

- [ ] Code change (feature, bug fix, or refactor)
- [x] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [x] Docs updated for user-facing behavior changes
- [ ] Docs not applicable — justification:
- [ ] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [ ] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification:
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## DGX Station Hardware Evidence

- [x] Tested on DGX Station
- Detailed DGX OS `7.5.0` run tested commit:
`7a7414b3d80a9cb38257a276cd926fd48a93ec0e`
- Station profiles/scenarios: Generic Ubuntu 24.04 ARM64, stock DGX OS
`7.5.0`, April 2026 NVIDIA Colossus BaseOS, and June 2026 NVIDIA AI
Developer Tools on one physical DGX Station GB300.
- Result: Clean-host end-to-end validation passed on generic Ubuntu and
Colossus BaseOS. Stock DGX OS and AI Developer Tools completed physical
Station Express validation. The detailed DGX OS run exited `0` with
released OpenShell `0.0.85`, local Nemotron Ultra, sandbox CUDA, bounded
sysfs policy, and Hermes one-shot and TUI file-tool tasks.
- Detailed DGX OS evidence:
NVIDIA#7108 (comment)
- Expanded validation record:
NVIDIA#6951 (comment)
- Initial maintainer scope decision:
NVIDIA#6951 (comment)
- Updated maintainer decision accepting the expanded profiles:
NVIDIA#6951 (comment)

## Verification

- [x] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — platform/installer suite: 95 passed, 1
skipped; immutable starter-prompt suite: 17 passed.
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result: Not run; focused
generator, installer-disclosure, and documentation-contract tests cover
this change.
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only) — 0
errors and 1 Fern warning.
- [x] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
Signed-off-by: Miyoung Choi <miyoungc@nvidia.com>
<!-- markdownlint-disable MD041 -->
## Summary

The Hermes rebuild lanes now bootstrap their dependencies once, pull a
digest-pinned historical fixture, and carry the exact validated
current-base identity through the immutable rebuild handoff. Repeated
`ubuntu-latest` samples reduced the normal median from 1000.5s to 618.5s
(38.2%) and the stale-base median from 1068s to 614.5s (42.5%) without
weakening state, readiness, replacement, or provenance assertions.

This is incremental progress toward NVIDIA#7144. It does not implement or
waive the issue's reusable cross-job BuildKit cache requirement, so
NVIDIA#7144 remains open.

## Related Issue

Part of NVIDIA#7144

## Changes

- Pull the historical Hermes fixture by immutable digest, verify its
provenance before use, reuse the prepared current base across rebuild
phases, and keep the stale-base refresh boundary intact.
- Separate OpenShell/bootstrap setup from the timed rebuild contract and
emit per-phase timing plus runner-resource evidence for comparable
repeated samples.
- Preserve state more defensively by failing closed on SQLite backup
errors or missing state files and by cleaning temporary immutable
base-image handoffs.
- Carry validated base resolution metadata through recreate, managed
Dockerfile preparation, and the final image labels so the rebuilt
sandbox proves the exact phase-one base identity.
- Reconcile the rebuild handoff with NVIDIA#6884's approved trust contract:
locally built bases carry the signed per-operation provenance lease,
pinned official bases retain the stricter immutable identity/ABI/runtime
binder, and arbitrary local aliases remain rejected. Focused base-image
and rebuild-preflight tests protect both paths.
- Verify backup/restore, sandbox replacement, readiness, state schema,
base layers, image labels, and current/stale lane behavior in focused
and live E2E coverage.
- Keep the existing Docker-engine cache security boundary. This PR does
not add an external Buildx builder, registry cache, or reusable
cross-job BuildKit cache; that requirement remains open in NVIDIA#7144 pending
its security-design decision.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: this changes internal rebuild
implementation and E2E coverage without adding a command, option,
environment variable, migration, or user choice; the required docs
review found existing rebuild and base-image validation documentation
already accurate.
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [x] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: provenance remains
fail-closed for arbitrary aliases and is adopted only after exact
immutable identity, platform, official digest, ABI, and Hermes runtime
proof. Focused negative tests cover every rejected mismatch; earlier
live samples exercised the normal and stale-base behaviors, and final
exact-head E2E remains pending after branch convergence.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Verification

- [x] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — command/result or justification: the
focused reconciliation suite passed 129 tests; `npm run build:cli` and
`npm run typecheck:cli` passed; exact-head GitHub CI is running and
protected E2E remains pending.
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result: not run; diff-scoped hooks
and focused runtime/support tests cover the changed rebuild contract.
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only)
- [ ] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Bug Fixes**
* Improved Hermes rebuilds by preserving and validating base-image
identity/provenance across phases, including correct reuse handling and
immutable temporary handoffs.
* Added safer temporary base-image handoff cleanup with best-effort
disposal and retry on cleanup failures.
* Rebuilds now abort when required sandbox state files fail to back up,
unless `--force` is enabled.
* Improved SQLite backup/restore reliability via isolated Python
execution and stricter empty-output failure handling.
* **New Features**
* Hermes rebuild flow now carries pre-resolved base-image provenance
into target/image preflights.
* Added trusted local override support and scoped base-image reuse
tagging/cleanup.
* **Tests**
* Expanded Hermes end-to-end coverage (base identity evidence, reuse
planning, stale-base classification, cleanup/disposal, and workflow
boundary validation), including OpenShell binary install/version checks.
* **Documentation**
* Clarified `--force` behavior for manifest-declared state file backup
failures and updated sandbox base-image override constraints.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Ho Lim <subhoya@gmail.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
Co-authored-by: Ho Lim <subhoya@gmail.com>
Co-authored-by: Prekshi Vyas <prekshiv@nvidia.com>
Co-authored-by: Carlos Villela <cvillela@nvidia.com>
Co-authored-by: cjagwani <cjagwani@nvidia.com>
…IA#7301) (NVIDIA#7306)

## Summary

The license / third-party software acceptance prompt read "the NemoClaw
license
and and third-party software notice", repeating "and". The text is
served from a
single shared data field, so the doubled conjunction appeared in both
the
curl|bash installer and `nemoclaw onboard` on every platform. This
removes the
duplicate word.

## Related Issue

Fixes NVIDIA#7301

## Changes

- Fixed `interactivePrompt` in `bin/lib/usage-notice.json`: "license and
and
third-party" → "license and third-party". This one field is consumed by
  `scripts/install.sh` (installer) and `src/lib/onboard/usage-notice.ts`
(`loadUsageNoticeConfig` → the `nemoclaw onboard` prompt), so a single
edit
  corrects every surface.
- Added `src/lib/onboard/usage-notice.test.ts`, which reads the shipped
prompt
through `loadUsageNoticeConfig()` and asserts the exact grammatical form
and
  the absence of any adjacent duplicated word.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: fixes a typo in a runtime
prompt string; no documentation quotes this line.
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [ ] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: Onboarding-adjacent,
but the change is a single grammatical fix to prompt display text;
acceptance logic, versioning, and gating are unchanged. Flagging for
maintainer confirmation.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Verification

- [x] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — command/result: `npx vitest run
--project cli src/lib/onboard/usage-notice.test.ts` → 1/1 passed locally
and on a fresh clone + `npm ci` on an Ubuntu x86_64 host (exit 0).
- [ ] Applicable broad gate passed — justification: single-string data
fix with a focused source-lane test; not a broad runtime/test-harness
change.
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only)
- [ ] Doc pages follow the style guide (doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
Signed-off-by: Jason Ma <jama@nvidia.com>

🤖 Generated with [Claude Code](https://claude.com/claude-code)


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Bug Fixes**
* Corrected the license and third-party software acceptance prompt by
removing duplicated wording.

* **Tests**
* Added coverage to verify the prompt’s grammar and prevent repeated
adjacent words.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
## Summary

Remediate CVE-2026-59873 / GHSA-23hp-3jrh-7fpw across the completed
Node-based sandbox images targeted for v0.0.91. Before this change,
NemoClaw's plugin lockfile and npm's private bundles shipped affected
node-tar releases; after it, every discovered physical installation must
resolve to tar 7.5.19 or newer before an image can be published.

## Changes

- Require and lock NemoClaw's direct dependency to `tar@7.5.20`.
- Replace affected npm-private node-tar trees in the pinned Node 22 and
Node 24 image paths with the registry- and SRI-verified `tar@7.5.20`
archive.
- Patch both base and final OpenClaw, Hermes, and Deep Agents Code
images so a stale published base cannot reintroduce the affected
package.
- Scan completed filesystems across local, global, npm-private, and
symlinked installations; fail builds for invalid metadata, an empty
inventory, or any version below `7.5.19`.
- Scan completed OpenClaw and Hermes CI images in isolated containers
and retain image-ID-keyed JSON inventories for 14 days.
- Add source-fingerprint inputs and regression coverage for patching,
physical-copy enumeration, Dockerfile ordering, workflow hardening, and
evidence retention.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — this changes image dependency remediation
and publication evidence without changing a user-facing contract; the
required documentation review found no canonical page to update.
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [ ] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: maintainer security
review pending on this PR.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## DGX Station Hardware Evidence

- [ ] Tested on DGX Station
- Tested commit: not applicable
- Station profile/scenario: not applicable
- Result: not applicable
- Supporting evidence: not applicable

## Verification

- [x] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — 51 focused tests pass across source
identity, npm bundle patching, image scanning, Dockerfile contracts, and
workflow boundaries; plugin type-checking also passes.
- [ ] Applicable broad gate passed — required CI pending. A completed
OpenClaw production image built and passed both embedded and isolated
scans; Node 22/npm 10 and Node 24/npm 11 patch/install/npx smoke tests
pass.
- [ ] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only)
- [ ] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---

Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Security Improvements**
* Updated bundled npm `tar` to a safer release and added automated
in-image remediation.
* Added build-time and production sandbox node-tar scans that generate
read-only inventory evidence.
* **Reliability**
* Extended hardened node-tar scanning/inventory generation to production
and arm64 variants.
* Added tighter sandbox workflow contract validation to enforce required
scan + evidence upload ordering.
* **Bug Fixes**
* Improved remediation safety with idempotency and rollback on failure.
* **Chores**
* Updated workflow triggers and sandbox build-context staging to include
the new validation assets.
* **Tests**
* Added unit, contract, and end-to-end coverage for remediation/scanning
and workflow boundaries.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>
Co-authored-by: Charan Jagwani <cjagwani@nvidia.com>
Co-authored-by: Senthil Ravichandran <senthilr@nvidia.com>
…A#7212)

## Summary

Documents the Hermes `API_SERVER_KEY` lifecycle so operators can tell
ordinary restart stability apart from expected rebuild rotation, and
adds a rebuild-time notice pointing at the supported retrieval command.
Before this change the reference described what `gateway-token` prints
but not when the value changes, and the headless quickstart told
operators to read the token out of the generated Hermes environment —
which contradicts the supported retrieval path.

## Related Issue

Fixes NVIDIA#7175

## Changes

- Document the token lifecycle in the `gateway-token` Hermes reference
section: generated once per sandbox home, distinct across sandbox homes,
preserved across a gateway restart, a sandbox stop and start, and a host
OpenShell gateway restart.
- Document the two regeneration cases: rebuilding or replacing the
sandbox, and a startup `API_SERVER_KEY` that is missing or is not
exactly 64 lowercase hexadecimal characters. Ordinary restarts that
change the token without replacing the sandbox stay a bug, and the page
says what evidence to collect.
- Document the retrieval contract: the sandbox must be running, the
token is a password, and operators use `gateway-token --quiet` instead
of reading or editing `.hermes/.env`.
- Fix the contradiction in the headless quickstart, which pointed
operators at the generated Hermes environment rather than the supported
command.
- Add the rebuild warning to the rebuild guide and the `rebuild`
reference section.
- Print a Hermes-only rebuild notice that the API bearer token changed
and how to retrieve the replacement. The notice is worded to fire only
as guidance for after recovery completes, so it does not read as a
success signal on a rebuild that later bails.
- Cover the docs contract with a test scoped to the `gateway-token`
heading boundary rather than a whole-file match, so a correct phrase in
the wrong section fails.
- Cover the rebuild notice with a Hermes case, an OpenClaw negative
case, and the two post-restore failure paths.
- Extend the Hermes snapshot test to prove state restore does not
overwrite a replacement home's `API_SERVER_KEY`, which is the structural
guarantee behind rotation.
- Rename the touched test titles to behavior-oriented phrasing with the
issue reference as a suffix, per the repo test convention.

Scope note: the issue also mentions a planned headless/server deployment
guide. That page does not exist yet, so it is out of scope here.

## Type of Change

- [ ] Code change (feature, bug fix, or refactor)
- [x] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [x] Docs updated for user-facing behavior changes
- [ ] Docs not applicable — justification:
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [ ] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification:
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Verification

- [x] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — command/result: `npx vitest run
src/lib/actions/sandbox/rebuild-post-restore-phase.test.ts
test/hermes-api-key-lifecycle-docs.test.ts test/snapshot.test.ts` — 3
files, 57 tests passed.
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result:
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [x] `npm run docs` builds without warnings (doc changes only) — 0
errors. The 2 reported warnings are pre-existing and unrelated to this
change: an unauthenticated redirect check that is skipped without
`FERN_TOKEN`, and the site-wide light-mode accent contrast ratio.
- [x] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

### Coverage limitation

Rebuild rotation is proven structurally, not end to end. Two tests
together establish it: state restore does not carry `.hermes/.env` into
a replacement home, and separate sandbox homes mint distinct keys. No
test drives a real rebuild and compares the token before and after. A
live-E2E rotation and retrieval check in
`test/e2e/live/rebuild-hermes.test.ts` is the natural follow-up;
`e2e-live` is opt-in and outside the required gate for code-changing
PRs, so it is not included here. Ordinary-restart preservation keeps its
existing direct coverage in `test/hermes-runtime-api-key.test.ts`.

---

Signed-off-by: harjoth <harjoth.khara@gmail.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Bug Fixes**
* Hermes “rebuild” now conditionally warns when the Hermes API bearer
token changes, using the supported `gateway-token --quiet` command, and
suppresses the notice on certain verification/restore failure paths.
* Restores now preserve Hermes durable-state files while keeping
credential-related behavior consistent with the intended semantics
during restore.
* **Documentation**
* Updated Hermes quickstart and command reference to clarify correct
bearer-token sourcing, lifecycle/regeneration rules after rebuilds, and
proper `--quiet` usage (not environment/dashboard tokens).
* **Tests**
* Expanded unit and live E2E coverage for token-change notice behavior,
documentation text consistency, restore credential/durable-state
semantics, and token stability across repeated retrievals.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: harjoth <harjoth.khara@gmail.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Co-authored-by: Aaron Erickson <aerickson@nvidia.com>
<!-- markdownlint-disable MD041 -->
## Summary

Restore the deterministic image and upgrade coverage exposed by [E2E
main run
29887082757](https://github.com/NVIDIA/NemoClaw/actions/runs/29887082757).
Deep Agents Code now installs the verified archive downloader before
node-tar remediation, legacy OpenClaw fixture images remediate their
affected tar dependency before the completed-image scan, and frozen
gateway-upgrade fixtures no longer fail only because the current
advisory database changed.

## Changes

- Move the Deep Agents Code npm-private node-tar remediation after the
layer that installs `curl`, and extend the Dockerfile contract to
enforce that prerequisite ordering.
- Add an exact, E2E-only `openclaw@2026.3.11` remediation from
`tar@7.5.11` to reviewed `tar@7.5.19`. The `rebuild-openclaw` and
`upgrade-stale-sandbox` fixtures require this compatibility path;
relaxing the completed-image scanner would weaken the production
security boundary. The OpenClaw remediation and integrity contract tests
protect the archive identity, dependency shape, metadata hash, install
path, and scanned tree.
- Extract the existing frozen-installer adapter and skip only the
current advisory audit for an immutable historical mcporter lock while
retaining `npm audit signatures`. The historical source cannot be
changed without invalidating the upgrade fixture; the new E2E-support
tests prove the exact replacement and ambiguous-boundary rejection.
- Update the existing OpenClaw dependency review note with the fifth
reviewed remediation identity and fixture-only audit boundary.

## Type of Change

- [ ] Code change (feature, bug fix, or refactor)
- [x] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: No supported user-facing
behavior changes; the existing security review note is updated only to
keep reviewed fixture identities and boundaries aligned.
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [ ] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: Maintainer security
review is pending on this PR.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## DGX Station Hardware Evidence

- [ ] Tested on DGX Station
- Tested commit: not applicable
- Station profile/scenario: not applicable
- Result: not applicable
- Supporting evidence: not applicable

## Verification

- [x] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — `npx vitest run --project integration
test/node-tar-dockerfile-contract.test.ts
test/openclaw-npm-remediation.test.ts
test/openclaw-integrity-pin-contract.test.ts` (23 passed); `npx vitest
run --project e2e-support
test/e2e/support/openshell-gateway-upgrade-old-installer.test.ts
test/e2e/support/rebuild-openclaw-old-base-context.test.ts` (6 passed);
`npm run test:changed` (3 passed); `npm run test:projects:check` and
`npm run source-shape:check` passed.
- [ ] Applicable broad gate passed — focused image and fixture changes
use the targeted evidence above; required CI is pending.
- [ ] Quality Gates section completed with required justifications or
waivers — sensitive-path review is pending.
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only) — the
build passed with two pre-existing Fern warnings.
- [x] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Bug Fixes**
- Added support for installing and upgrading OpenClaw **2026.3.11** with
the correct legacy remediation behavior.
- Improved npm archive remediation integrity checking and expanded
post-install global package verification across supported OpenClaw
versions.
- Improved determinism and reliability of historical gateway upgrade
flows while preserving archive signature verification and enforcing
stricter audit boundaries.
- **Documentation**
- Updated security/dependency review guidance for the adjusted
remediation rules and expected integrity artifacts.
- **Tests**
- Expanded e2e and contract tests for legacy upgrades, installer
patching, archive integrity pinning, and step ordering verification.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- markdownlint-disable MD041 -->
## Summary

Follow up on NVIDIA#7355 so the E2E-only `openclaw@2026.3.11` remediation
cannot resolve its patched tar package from mutable registry state. The
remediation now verifies and bundles the reviewed `tar@7.5.19` archive
before the historical image install.

## Related Issue

Follow-up to NVIDIA#7355 and Apurv's requested security fix on that PR.

## Changes

- Fetch `tar@7.5.19` through `packReviewedNpmArchive`, verify its exact
SRI and tarball URL, reject a pre-existing bundled tar directory, and
copy the verified package into the remediated OpenClaw archive.
- Declare tar as a bundled dependency and bind the OpenClaw identity,
replacement declaration, bundle marker, and tar identity to the
committed patched-metadata hash.
- Make the legacy archive test succeed with the committed hash before
exercising the mismatch path, and prove the extracted archive contains
the reviewed bundled tar package.
- Address the remaining NVIDIA#7355 review findings by strengthening the
apt/curl ordering contract, sharing historical installer markers,
proving audit-boundary failures do not partially rewrite the Dockerfile,
and correcting the dependency review note.

## Type of Change

- [ ] Code change (feature, bug fix, or refactor)
- [x] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: This changes only legacy E2E
fixture construction; the existing security dependency review note is
updated to keep the reviewed boundary accurate.
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [ ] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: Maintainer security
review is pending on this PR.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## DGX Station Hardware Evidence

- [ ] Tested on DGX Station
- Tested commit: not applicable
- Station profile/scenario: not applicable
- Result: not applicable
- Supporting evidence: not applicable

## Verification

- [x] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — integration tests: 22 passed; E2E
support tests: 7 passed; `npm run test:changed`: 8 passed; `npm run
typecheck:cli`, `npm run source-shape:check`, `npm run
test:projects:check`, and the test conditional scan passed. A real
reviewed npm archive proof produced an OpenClaw archive with
`bundledDependencies: ["tar"]` and `tar@7.5.19` under
`node_modules/tar`.
- [ ] Applicable broad gate passed — focused legacy fixture and contract
changes use the targeted evidence above; required CI is pending.
- [ ] Quality Gates section completed with required justifications or
waivers — sensitive-path review is pending.
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only) — the
build passed with two pre-existing Fern warnings.
- [x] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Security**
* Strengthened validation and remediation of legacy OpenClaw packages,
including verified bundled `tar` package metadata and integrity checks.
* Updated the expected security integrity value for the affected
OpenClaw release.

* **Bug Fixes**
* Improved installer patching for legacy upgrade paths and preserved
Dockerfile contents when boundary validation fails.

* **Tests**
* Expanded coverage for bundled dependency contents, metadata integrity
mismatches, package installation ordering, and installer failure
scenarios.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
<!-- markdownlint-disable MD041 -->
## Summary

This PR moves the permanent NemoClaw writing policy from
`CONTRIBUTING.md` to `WRITING.md` and removes the pilot terms. It
updates contributor and maintainer guidance, and it makes the PR Review
Advisor load the guide from its trusted workflow checkout.

## Changes

- Add `WRITING.md` as the source for writing scope, terms, rules,
examples, and review policy.
- Point contributor docs, agent guidance, skills, and the PR template to
the shared guide.
- Embed the guide in the PR Review Advisor prompt and test that a PR
worktree cannot replace it.

## Type of Change

- [ ] Code change (feature, bug fix, or refactor)
- [x] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: No product behavior changes.
This PR updates contributor and advisor guidance directly.
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [x] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: The advisor resolves
`WRITING.md` from the trusted script checkout.
`test/pr-review-advisor-writing-guide.test.ts` proves that a file in the
PR worktree cannot replace it.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## DGX Station Hardware Evidence

- [ ] Tested on DGX Station
- Tested commit: Not applicable. `scripts/prepare-dgx-station-host.sh`
is unchanged.
- Station profile/scenario: Not applicable.
- Result: Not applicable.
- Supporting evidence: Not applicable.

## Verification

- [x] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — `npx vitest run
test/pr-review-advisor.test.ts test/maintainer-skills-policy.test.ts
test/skills-frontmatter.test.ts` passed 86 tests. After the review fix,
`npx vitest run test/pr-review-advisor.test.ts
test/pr-review-advisor-writing-guide.test.ts` passed 46 tests. `npm run
test-size:check` passed.
- [ ] Applicable broad gate passed — Not run. The focused tests cover
the advisor and skill changes.
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only). The
build passed with 0 errors and 2 existing Fern warnings.
- [x] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages
only). `WRITING.md` is a root repository guide and includes its SPDX
header; Fern frontmatter does not apply.

---
Signed-off-by: Carlos Villela <cvillela@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* Added a centralized NemoClaw Writing Guide with required terminology,
writing rules, and examples.
* Updated contributor, maintainer, documentation, and PR template
guidance to reference the new Writing Guide.
* PR review assistance now incorporates the trusted Writing Guide when
generating review guidance.

* **Documentation**
* Clarified which language findings block vs remain suggestions, and how
to format rewrite suggestions.
* Updated guidance for PR text, changelog/announcement posts, test
titles, and procedural documentation.

* **Tests**
* Added/updated coverage to verify the trusted Writing Guide is loaded
and used by review assistance.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Carlos Villela <cvillela@nvidia.com>
<!-- markdownlint-disable MD041 -->
## Summary

Repair the `rebuild-hermes` and `rebuild-hermes-stale-base` live
fixtures after the historical sandbox began failing the API bearer-token
lifecycle check before rebuild. The synthetic old sandbox now contains a
valid per-run API server key, so the test can verify that rebuild
rotates it and then keeps the new token stable.

## Related Issue

Follow-up to NVIDIA#7144.

## Changes

- Seed `API_SERVER_KEY` in the synthetic historical Hermes `.env` file.
- Generate a valid 64-character per-run fixture key and include it in
command redaction and backup leak scanning.
- Assert the historical Dockerfile contains the key required by the
token-lifecycle probe.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: This only repairs a synthetic
live-E2E fixture and does not change product behavior or user workflows.
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [ ] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: Maintainer review is
pending.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## DGX Station Hardware Evidence

- [ ] Tested on DGX Station
- Tested commit: not applicable
- Station profile/scenario: not applicable
- Result: not applicable
- Supporting evidence: not applicable

## Verification

- [x] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — focused E2E-support fixture test: 9/9;
CLI build and typecheck passed.
- [x] Applicable broad gate passed — `npm run check:diff` passed.
- [ ] Quality Gates section completed with required justifications or
waivers — sensitive-path review is pending.
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only)
- [ ] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Bug Fixes**
* Improved protection against sensitive API server keys appearing in
rebuild artifacts, command output, and diagnostic scans.
* Ensured rebuilt sandbox environments receive the required API server
key configuration.
* **Tests**
* Added coverage verifying API server key injection and credential
redaction during rebuild workflows.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
<!-- markdownlint-disable MD041 -->
## Summary

Repair the historical gateway-upgrade adapter after [E2E main run
29890967158](https://github.com/NVIDIA/NemoClaw/actions/runs/29890967158)
exposed four deterministic failures.
The adapter now matches each pinned release's advisory-audit shape and
stores the reviewed OpenClaw archive in the source subtree preserved by
frozen optimized build contexts.

## Related Issue

Follow-up to NVIDIA#7360.

## Changes

- Bind the historical adapter to the three current gateway-upgrade
consumers: `v0.0.36` and `v0.0.55` require zero advisory-audit
statements, while `v0.0.74` requires one.
A direct one-count rule cannot support the older frozen Dockerfiles
because they predate the mcporter audit block.
The E2E-support test covers every reviewed profile and rejects unknown
profiles or mismatched counts.
- Store the reviewed OpenClaw archive under `nemoclaw/src` and update
the injected Dockerfile `COPY` path.
Each frozen optimized-context builder copies that subtree, while none
copies arbitrary source-root files.
The E2E-support test stages the preserved subtree and verifies that the
archive remains available.
- Update the OpenClaw dependency review note with the exact staging
path, per-release audit boundary, and `v0.0.74` signature-verification
scope.

## Type of Change

- [ ] Code change (feature, bug fix, or refactor)
- [x] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: This changes only historical
E2E fixture construction. The internal security review note is updated
to keep the reviewed boundary accurate.
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [ ] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: Maintainer security
review is pending on this PR.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## DGX Station Hardware Evidence

- [ ] Tested on DGX Station
- Tested commit: not applicable
- Station profile/scenario: not applicable
- Result: not applicable
- Supporting evidence: not applicable

## Verification

- [x] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — `npx vitest run --project e2e-support
test/e2e/support/openshell-gateway-upgrade-old-installer.test.ts` passed
11 tests.
- [ ] Applicable broad gate passed — the full local E2E-support project
exposed one unrelated `e2e-phase-lifecycle` missing-log failure after
serial confirmation. The four other parallel timeout failures passed
serially.
- [ ] Quality Gates section completed with required justifications or
waivers — sensitive-path review is pending.
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only) — the
build passed with two existing Fern warnings.
- [x] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Bug Fixes**
* Improved legacy gateway upgrade fixture patching with deterministic,
reviewed per-profile installer selection and stricter validation
(including profile-specific advisory-audit occurrence handling and
correct conditional “skip” behavior).
* Updated historical archive wiring to use the documented installer
archive context path, with runtime checks, while preserving
installer/fixture contents when validation fails.
* **Tests**
* Expanded end-to-end coverage with pinned fixture identity, Dockerfile
assertion of archive-context COPY wiring and install commands, and
tighter negative cases for mismatched or unsupported profile inputs.
* **Documentation**
* Refined legacy fixture pins documentation for archive storage
location, installation behavior, and per-version advisory-audit
expectations.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
<!-- markdownlint-disable MD041 -->
## Summary

Deep Agents rebuild preflight built a local base image, then rejected
that same image because the rebuild did not carry its operation-scoped
trust proof into managed image preparation. This change uses the
existing validated base-image builder and leases its exact ref and
provenance only for that preparation window.

## Changes

- Build the DCode rebuild base through `ensureAgentBaseImage` so it has
current provenance, compatibility validation, and a content-addressed
ref.
- Lease that exact local ref and provenance while the managed
replacement image is prepared, then restore both trust and environment
state.
- Add a regression test that verifies the trust lease is installed and
removed around DCode replacement preflight.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: This restores the documented
managed DCode rebuild path and does not change its command,
configuration, or output contract.
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [x] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: The lease requires the
exact current-build ref and provenance. Existing negative resolver tests
still reject arbitrary local overrides.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## DGX Station Hardware Evidence

- [ ] Tested on DGX Station
- Tested commit:
- Station profile/scenario:
- Result:
- Supporting evidence:

## Verification

- [x] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — command/result or justification:
`rebuild-dcode-preflight.test.ts` (16 passed); rebuild base-image helper
tests (36 passed); base-image trust and resolution tests (43 passed).
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result:
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only)
- [ ] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Bug Fixes**
- Improved DCode sandbox rebuild reliability by using verified trusted
base images during preflight.
- Ensured temporary base-image settings are restored after rebuild
operations, including when preparation fails.
- Preserved the original error details when a rebuild preparation step
encounters a failure.
- Added safeguards to prevent rebuilds from continuing when trusted
base-image verification is incomplete.

- **Tests**
- Added coverage for successful and failed rebuild scenarios, including
cleanup and base-image setting restoration.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
<!-- markdownlint-disable MD041 -->
## Summary

Prevent inner onboarding from taking a second state backup during a
sandbox rebuild. A stale gateway listing can no longer abort recreation
after the outer rebuild already captured the backup and deleted the
sandbox, as seen in [E2E run
29890967158](https://github.com/NVIDIA/NemoClaw/actions/runs/29890967158/job/88831739932).

## Changes

- Scope the existing `NEMOCLAW_RECREATE_WITHOUT_BACKUP=1` marker to the
inner onboarding call after the rebuild backup and delete phases.
- Restore the caller's marker value after successful and failed
recreation.
- Test marker forwarding and environment restoration on both paths.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: This internal handoff
restores the documented single-backup rebuild flow and does not change a
CLI contract or user workflow.
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [ ] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: Maintainer review is
pending.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## DGX Station Hardware Evidence

- [ ] Tested on DGX Station
- Tested commit: not applicable
- Station profile/scenario: not applicable
- Result: not applicable
- Supporting evidence: not applicable

## Verification

- [x] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — `npx vitest run --project cli
src/lib/actions/sandbox/rebuild-recreate-observability.test.ts` (6
passed); `npm run test:changed` (57 passed); `npm run typecheck:cli`
passed.
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result: Not run; the change is
limited to one rebuild phase and its focused tests.
- [ ] Quality Gates section completed with required justifications or
waivers — sensitive-path review is pending.
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only)
- [ ] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Bug Fixes**
* Improved sandbox rebuild/recreate reliability when stale gateway
conditions are detected.
* Prevented redundant backup attempts during the inner recreate step by
temporarily enabling the “recreate without backup” behavior.
* Ensured the recreate-without-backup setting is restored after success,
and reverted to the caller’s original value when onboarding fails.
* **Tests**
* Expanded observability and rebuild lifecycle coverage to verify
correct environment-variable behavior across inner and outer onboarding
paths.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
<!-- markdownlint-disable MD041 -->
## Summary

Make sandbox rebuild fail closed until OpenShell explicitly confirms
that the deleted sandbox is absent. This prevents registry removal and
replacement creation from racing an asynchronous delete, while
preserving the original registry entry and state backup when
confirmation is inconclusive.

## Changes

- Poll `openshell sandbox get <name>` after an accepted delete until the
gateway reports the sandbox missing.
- Treat live, terminating, timeout, and transport-error results as
unconfirmed and abort before registry removal or recreation.
- Move the deletion callback behind confirmed absence so shield recovery
still treats the old sandbox as potentially live on timeout.
- Add focused convergence, transport-failure, provider-recreate,
resume-snapshot, and shared rebuild-harness coverage.
- Document the bounded wait and recovery guidance in the rebuild command
reference.

## Type of Change

- [ ] Code change (feature, bug fix, or refactor)
- [x] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [x] Docs updated for user-facing behavior changes
- [ ] Docs not applicable — justification:
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [x] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: Independent
pre-publication security review found no remaining blocker after moving
`onDeleted()` behind explicit absence confirmation; transport failures
preserve registry/backup state and shield recovery remains fail-closed.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## DGX Station Hardware Evidence

- [ ] Tested on DGX Station
- Tested commit: not applicable
- Station profile/scenario: not applicable
- Result: not applicable
- Supporting evidence: not applicable

## Verification

- [x] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — `npx vitest run --project cli
src/lib/actions/sandbox/rebuild-destroy-phase.test.ts
src/lib/actions/sandbox/rebuild-flow.test.ts
src/lib/actions/sandbox/rebuild-local-provider-recreate.test.ts
src/lib/actions/sandbox/rebuild-resume-snapshot.test.ts
src/lib/actions/sandbox/rebuild-dcode-base-image-lease.test.ts
--no-file-parallelism` (94 passed at exact final head).
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result: Full suite deferred to PR
CI; the serialized changed-test sweep passed 202 tests before the clean
main rebase, and the exact final head passed 94 focused tests plus `npm
run check:diff`.
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only) — 0
errors; 2 pre-existing warnings.
- [x] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Bug Fixes**
* Rebuild now waits for explicit confirmation that a sandbox is absent
before removing local registry state and creating a replacement.
* If deletion can’t be confirmed within the timeout (including
probe/transport issues), rebuild now exits non-zero and preserves local
registry and state backup for recovery.
* Improved behavior for resumed rebuild flows when the sandbox is
already missing.
* **Documentation**
* Clarified `nemoclaw <name> rebuild` post-deletion confirmation,
bounded wait behavior, failure handling, and recovery guidance.
* **Tests**
* Expanded teardown and resumed-path coverage with more realistic mock
OpenShell behaviors and ordered-event assertions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
…IA#7341)

## Summary

Fixes a broken link that 404s for Deep Agents readers on the OpenShell
0.0.72 compatibility review page.

The page renders in the openclaw, hermes, and deepagents variants and
links to the OpenShell 0.0.71 gateway authentication review. That review
page is intentionally scoped to openclaw and hermes only. Its content is
specific to those agents (Hermes env-file secret boundaries and the
OpenClaw gateway-runtime API) and it was deliberately left out of the
deepagents nav when the variant was added. A later scoped PR (NVIDIA#6606)
added only the 0.0.72 review to the deepagents nav and included a
regression test asserting that scoping, so adding 0.0.71 to the
deepagents nav would contradict a prior decision and break that test.

Instead of forcing the 0.0.71 page into the deepagents nav, this scopes
the link itself. The sentence is wrapped in AgentOnly
variant="openclaw,hermes" so those readers keep the working link, and a
parallel AgentOnly variant="deepagents" block carries the same sentence
as plain text so Deep Agents readers still get the information without a
dead link. This follows the existing convention in
docs/manage-sandboxes/run-sandboxes.mdx.

## Test plan

npx vitest run test/agent-variant-docs.test.ts passes (13 tests).
npm run docs builds with 0 errors. Verified the generated output:
openclaw and hermes keep the link, deepagents renders the plain-text
sentence with no broken link.

Signed-off-by: Atharv Kumaria <kumariaaatharv@gmail.com>

Signed-off-by: Atharv Kumaria <kumariaaatharv@gmail.com>
<!-- markdownlint-disable MD041 -->
## Summary

Updates the reviewed OpenClaw distribution from 2026.6.10 to 2026.7.1
and the sandbox Node image to 22.23.1. The image build fails closed
while applying integrity-pinned remediations for vulnerable Axios copies
in the Slack and Teams archives and the affected OpenTelemetry Jaeger
pair in diagnostics. The separately locked `mcporter@0.7.3` graph now
resolves exact `@hono/node-server@2.0.11` and `fast-uri@3.1.4` releases
and passes the reviewed audit, signature, install, and CLI checks.

The sandbox credential contract remains unchanged: generated
`openclaw.json` contains the non-secret `apiKey: "unused"` sentinel,
while `COMPATIBLE_API_KEY` remains an OpenShell provider-environment
placeholder whose real value is resolved at the OpenShell boundary. No
literal provider credential is persisted in OpenClaw configuration or
state.

OpenClaw 2026.7.1 changed loopback shared-token CLI calls to omit the
signed CLI device identity. That prevented the paired-device scope
comparison from reaching the canonical `scope-upgrade` pairing gate. The
compatibility patch now retains the signed CLI identity only after a
stored operator device credential exists. The shared token still
authenticates the loopback call; the paired-device record remains
authoritative for scopes, and an `operator.admin` request must still
create and receive canonical pairing approval.

The installed-base contract is covered explicitly. A pinned E2E row
installs NemoClaw v0.0.89 with OpenClaw 2026.6.10 from a
registry-SRI-bound frozen source archive, materializes the legacy
per-agent SQLite, Memory Core, and update-check state, then upgrades in
place to 2026.7.1. The current installer is deliberately not given the
provider credential, so the post-upgrade turn proves reuse of the
credential already held by OpenShell. The shared frozen-installer
adapter also keeps the historical v0.0.36, v0.0.55, v0.0.74, and v0.0.89
matrix deterministic without weakening the current candidate.

The merge from current `main` preserves its Node `tar@7.5.20` package
fix and bundled-npm tar remediation, rebinding the affected-base guard
to the upgraded Node 22.23.1 image digest. For the E2E-only OpenClaw
2026.3.11 stale-upgrade fixture, the exact reviewed source shape is
verified, the replacement `tar@7.5.19` archive is registry-SRI-bound,
and that reviewed package is bundled into the remediated OpenClaw
archive before installation. There is no completed-image scanner
exception: any remaining affected copy fails the strict scan, and both
stale-upgrade E2Es require the rebuilt current image inventory to be
completely clean.

## Changes

- Pin OpenClaw and its first-party plugin archives to reviewed 2026.7.1
artifacts and update the Node 22.23.1 image digest.
- Remediate only the reviewed Axios and diagnostics OTEL subtrees, with
original-package identity checks, integrity pins, canonical tree
digests, and archive-shape drift rejection.
- Lock the mcporter runtime to `@hono/node-server@2.0.11` and
`fast-uri@3.1.4`; verify the script-disabled production install,
registry signatures, ESM transport construction/close path, and
installed CLI version.
- Retain stored CLI device identity on loopback shared-token calls so
OpenClaw's paired-device scope gate remains authoritative without moving
provider secrets into OpenClaw state.
- Preserve private device, credential, and SQLite state across startup
and installed-base migrations, including bounded repair of legacy
update-check state.
- Add the frozen v0.0.89/OpenClaw 2026.6.10 to 2026.7.1 installed-base
E2E row and retain the broader historical migration matrix.
- Preserve current-main node-tar remediation, run it only after curl is
installed in the DeepAgents and Hermes bases, and verify both patch
helpers in the sandbox build context.
- Exact-shape remediate the E2E-only 2026.3.11 source archive from
`tar@7.5.11` to a registry-SRI-bound, bundled `tar@7.5.19`, with the
completed-image scan remaining strict and exception-free.
- Set the authoritative local base-build allowance to 90 seconds for
upgrade-head matrix runs that must build the exact local base.
- Incorporate current main's historical Hermes fixture repair so rebuild
coverage seeds, rotates, redacts, and leak-scans the required per-run
API server key.

## Type of Change

- [ ] Code change (feature, bug fix, or refactor)
- [x] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [x] Docs updated for user-facing behavior changes
- [ ] Docs not applicable — justification:
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [x] Sensitive-path review completed or maintainer-approved waiver
recorded — exact head reviewed during maintainer follow-through; the
implementation fails closed on package identity, archive shape,
dependency graph, SRI drift, and device-scope enforcement.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## DGX Station Hardware Evidence

- [ ] Tested on DGX Station
- Tested commit: not applicable
- Station profile/scenario: not applicable
- Result: not applicable
- Supporting evidence: not applicable

## Verification

- [x] PR description includes `Signed-off-by:` lines and all new commits
are SSH-signed and DCO-clean.
- [x] `npm run checks`, `npm run typecheck`, `npm run typecheck:cli`,
`npm run source-shape:check`, and `npm run test-size:check` passed on
the current-main reconciliation.
- [x] Focused combined suites passed: 258 tests with one expected skip;
an independent combined run passed 61/61; the fresh real OpenClaw
2026.7.1 tarball harness passed 5/5.
- [x] The real upstream 2026.7.1 compiled distribution audit passed all
five required compatibility-shape checks.
- [x] After merging current `main` through NVIDIA#7360, the focused
remediation/integrity/scanner suites passed 34/34 and the installed-base
migration/workflow suites passed 19/19.
- [x] After reconciling current `main` through NVIDIA#7364, the exact affected
Hermes historical fixture passed 9/9, the focused OpenClaw contract set
passed 81 tests with one expected skip, and repository/source-shape
checks passed.
- [ ] Exact-head required GitHub CI and E2E gate are in flight.
- [x] No secrets, API keys, or credentials committed.

Evidence:

- Prior upgrade-head historical evidence: [five migration rows
passed](https://github.com/NVIDIA/NemoClaw/actions/runs/29862234216),
including the dedicated v0.0.89/OpenClaw 2026.6.10 installed-base
upgrade. Current-head coverage is also selected in the full matrix
below.
- Scope-upgrade proof on parent head 54b59af: [focused run
29888373497](https://github.com/NVIDIA/NemoClaw/actions/runs/29888373497)
and the independent full-matrix cell both passed the formerly
deterministic `operator.admin` cron path.
- Prior-head focused rebuild coverage: [run
29889345896](https://github.com/NVIDIA/NemoClaw/actions/runs/29889345896),
covering both stale OpenClaw upgrade fixtures, DeepAgents routing, and
both Hermes rebuild paths.
- Preserved prior-head full E2E evidence: [run
29889347151](https://github.com/NVIDIA/NemoClaw/actions/runs/29889347151)
improved the original 66-failure/22-pass signal to 19 failures/68
passes. Every remaining red was a pre-existing DeepAgents trust-fixture
failure, hosted inference capacity error, runner loss/cancellation, or
transient load/SSH failure; every OpenClaw upgrade, rebuild, pairing,
and installed-base migration path passed. The intermediate-head [replay
29888849758](https://github.com/NVIDIA/NemoClaw/actions/runs/29888849758)
remains active append-only evidence.
- Current exact-head append-only full matrix: [run
29893928454](https://github.com/NVIDIA/NemoClaw/actions/runs/29893928454),
queued without canceling or replacing the active replay.
- Current exact-head required CI: [run
29893824224](https://github.com/NVIDIA/NemoClaw/actions/runs/29893824224),
[security CodeQL
29893824206](https://github.com/NVIDIA/NemoClaw/actions/runs/29893824206),
and [E2E gate
29893823011](https://github.com/NVIDIA/NemoClaw/actions/runs/29893823011).

---
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>

---------

Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Co-authored-by: Aaron Erickson <aerickson@nvidia.com>
## Summary

- Keep the installer production contract unchanged: relative OpenShell
overrides are resolved to an absolute physical path with `pwd -P`.
- Make the focused test assert the actual contract: the watcher receives
an absolute path resolving to the same executable.
- Accept the standard macOS `/var` to `/private/var` canonicalization.

## Why

The post-merge main platform watch failed only because the test compared
path spellings lexically. The identical assertion failed on the
immediately previous completed main-watch run and on the first completed
run after the test was introduced, so this was not introduced by NVIDIA#7280.

Evidence:
https://github.com/NVIDIA/NemoClaw/actions/runs/29910675239/job/88892568917
and
https://github.com/NVIDIA/NemoClaw/actions/runs/29897085188/job/88849484779

## Verification

- `CI=1 npx vitest run --project cli
src/lib/actions/uninstall/hermes-forward-watcher-installer.test.ts
--reporter=verbose`
- `npx @biomejs/biome check
src/lib/actions/uninstall/hermes-forward-watcher-installer.test.ts`
- `npm run build:cli && npm run typecheck`
- `git diff --check`

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Tests**
* Updated coverage to verify that the Hermes forward watcher logs an
absolute OpenShell path.
* Confirmed the logged path resolves to the same filesystem target as
the generated executable.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
## Summary

- raise the Platform Vitest Main Watch WSL job limit from 60 to 90
minutes
- capability-gate the one Docker-backed Hermes root-container contract
when the platform has no Docker daemon
- keep the concurrent `latest` safety test semantic across Git
rejection-message variants

## Why

The preserved current-main platform run
[29914791092](https://github.com/NVIDIA/NemoClaw/actions/runs/29914791092)
completed 19,226 WSL tests and exposed two platform assumptions after
the earlier timeout was removed:

- the fresh WSL distro intentionally installs no Docker CLI or daemon,
while one Hermes test gated only on `process.platform === "linux"`; Node
returned immediate Docker `ENOENT` with `status: null`
- WSL Git correctly rejected the stale compare-and-swap with `incorrect
old value provided` instead of the older `cannot lock ref` prose; the
remote object invariants prove `latest` was not overwritten

The job-level 90-minute allowance remains necessary because
[29910675239](https://github.com/NVIDIA/NemoClaw/actions/runs/29910675239)
previously reached the exact 60-minute cap while the suite was still
passing and progressing. Production Hermes and release behavior are
unchanged.

## Verification

- focused concurrent-tag safety test passed at a 60-second budget
- Hermes topology and platform workflow contracts: 5 passed, 2
intentional capability skips
- Biome check passed
- `git diff --check` passed

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
* Increased the maximum runtime for the WSL test workflow from 60 to 90
minutes to reduce timeout risk during longer runs.
* **Tests**
* Improved Linux root-container integration tests to run only when the
needed container runtime capability is available.
* Made assertion failure reporting more reliable by using additional
error context when available.
* Relaxed a concurrent “latest tag” test to check failure behavior
without requiring a specific error message, while still verifying the
remote tag was not overwritten.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
## Summary

- provision the established bounded 32 GiB swap before both hosted
Hermes image exports
- retain memory, disk, swap, and Docker usage diagnostics around the
resource boundary
- enforce the swap size, commands, and build ordering in the
reusable-workflow contract

## Why

Current main completed all 63 Hermes Dockerfile steps, then received
runner shutdown during final layer export twice: [attempt
1](https://github.com/NVIDIA/NemoClaw/actions/runs/29914791304/job/88908049245)
and [failed-only
retry](https://github.com/NVIDIA/NemoClaw/actions/runs/29914791304/job/88911116741).
The repository already documents and uses this 32 GiB swap mitigation
for Hermes rebuild exports. This applies the same bounded mitigation to
the only two reusable-workflow jobs that export Hermes images. It does
not change the Dockerfile, image contents, or runtime behavior.

## Verification

- `CI=1 npx vitest run --project e2e-support
test/e2e/support/sandbox-images-workflow-boundary.test.ts
test/e2e/support/hermes-secret-boundary-workflow.test.ts
--reporter=verbose` (15 passed)
- direct sandbox-image workflow validator returned no errors
- Biome check passed
- `git diff --check` passed

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
<!-- markdownlint-disable MD041 -->
## Summary

Live E2E jobs now report the semantic phase they are executing without
repeating Vitest's test-level start, identity, elapsed time, or
completion output. Every live test declares an individualized ordered
plan, and each completed phase records its outcome and duration so a
stalled or failed matrix job shows where time was spent.

## Related Issue

Part of NVIDIA#7101

## Changes

- Instrument all 121 collected live E2E cases across 80 live entries (79
test implementations plus one bootstrap workflow forwarder) with
ordered, test-specific semantic phases.
- Extend the shared E2E fixture to print low-noise phase transitions
with `passed`, `failed`, or `skipped` outcomes and per-phase durations,
then append a harness-owned resource-release phase so cleanup hangs and
failures are timed independently.
- Preserve the originating phase for hard failures, soft assertions, and
skips; persist the complete timeline, target, and shard identity in
`test-progress.json`, including the dedicated `skill-agent` job upload.
- Emit secret-safe stall evidence after five minutes and every ten
minutes thereafter, including phase/output age, bounded command
activity, process memory, free memory, disk, load, and the existing
runner-pressure snapshot.
- Add a collection-only checker and pre-commit gate that require every
live test to use the shared fixture, declare a valid semantic plan,
enter every later phase, and keep transitions scoped to their owning
test, including siblings and repeated registrations that share one plan.
The checker redirects the one compiled-artifact live import to source
only while collecting, so it works in a clean checkout without running
live bodies; fixture-backed negative coverage verifies missing metadata
plus nonliteral, undeclared, and sibling-owned transitions are rejected.
- Keep the historical runtime audit and matrix progress-summary upload
from the earlier PR commits so maintainers can rank slow or unreliable
targets and inspect phase artifacts across shards.
- Document phase authoring, cleanup ownership, outcome/duration
semantics, stall output, artifacts, and runtime-audit usage in the
contributor and E2E guides.

## Type of Change

- [ ] Code change (feature, bug fix, or refactor)
- [x] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates
<!-- Check one tests line and one docs line. Check other lines when
applicable. Add every requested justification or approval reference. -->
- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [x] Docs updated for user-facing behavior changes
- [ ] Docs not applicable — justification:
- [ ] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [ ] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification:
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Verification
<!-- Check each applicable item only when supported by the requested
evidence. Run targeted tests once per relevant change set and rerun
after later edits or hook autofixes that can affect the tested behavior.
Do not rerun hook-covered checks. -->
- [x] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — 4 focused final-head E2E-support
files, 28 tests passed; semantic collection audit passed for 121 tests
across 80 live entries; mock/live parity, conditional-growth, `npm run
typecheck:cli`, project membership, source-shape, file-size,
changed-file Biome, and `git diff --check` passed
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result: required CI is
authoritative for the broad sharded suite
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only) —
validation passed; Fern reported 2 existing warnings
- [x] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
<!-- DCO sign-off is required in this PR description, and every commit
must appear as Verified in GitHub. Run: git config user.name && git
config user.email -->
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Live E2E runs now emit ordered phase markers with clear outcomes and
durations, plus periodic stall diagnostics.
* Each live E2E run produces a `test-progress.json` artifact (including
target/shard metadata when available).
* Added semantic phase-plan validation to prevent missing/invalid phase
coverage before running.
* Added runtime auditing to rank captured runs by median/p95/variability
and identify the slowest phase.

* **Documentation**
* Expanded E2E fixture and workflow guidance for phase reporting,
diagnostics, and runtime analysis.

* **Tests**
* Added automated checks for phase validity, progress outcomes, runtime
auditing, and artifact upload requirements.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Co-authored-by: Carlos Villela <cvillela@nvidia.com>
<!-- markdownlint-disable MD041 -->
## Summary

Add the canonical `v0.0.91` changelog entry that was missed before the
release tag was cut. Correct the custom-image compatibility guidance
because the tagged code still accepts the legacy inference route
selector instead of removing it in v0.0.91.

## Changes

- Add `docs/changelog/2026-07-22.mdx` with the release summary and
detailed security, rebuild, Hermes, DGX Station, and
historical-validation changes from the published v0.0.91 announcement.
- Link shipped behavior to the most specific published OpenClaw and
Hermes documentation routes.
- Correct the v0.0.90 changelog and command reference so they match the
compatibility fallback present in the tagged v0.0.91 code without
inventing a new removal version.
- Keep the immutable v0.0.91 release tag unchanged; this is the
documented post-release recovery path.

Source summary:

- [NVIDIA#7332](NVIDIA#7332),
[NVIDIA#7289](NVIDIA#7289), and
[NVIDIA#7294](NVIDIA#7294) ->
`docs/changelog/2026-07-22.mdx`: Summarize completed-image `node-tar`
remediation and current and historical container verification.
- [NVIDIA#7213](NVIDIA#7213),
[NVIDIA#7363](NVIDIA#7363),
[NVIDIA#7366](NVIDIA#7366), and
[NVIDIA#7369](NVIDIA#7369) ->
`docs/changelog/2026-07-22.mdx`: Summarize trusted base preparation,
backup reuse, deletion convergence, and rebuild confidence.
- [NVIDIA#7212](NVIDIA#7212) ->
`docs/changelog/2026-07-22.mdx`: Summarize the Hermes API bearer-token
lifecycle and supported retrieval command.
- [NVIDIA#7327](NVIDIA#7327) and
[NVIDIA#7328](NVIDIA#7328) ->
`docs/changelog/2026-07-22.mdx`: Summarize qualified DGX Station
guidance and reproducible coding-agent installation instructions.
- [NVIDIA#7355](NVIDIA#7355),
[NVIDIA#7360](NVIDIA#7360),
[NVIDIA#7362](NVIDIA#7362), and
[NVIDIA#7364](NVIDIA#7364) ->
`docs/changelog/2026-07-22.mdx`: Summarize restored historical OpenClaw
upgrade and Hermes rebuild validation.
- [NVIDIA#7189](NVIDIA#7189) ->
`docs/changelog/2026-07-20.mdx`, `docs/reference/commands.mdx`: Correct
its forward-looking removal deadline after v0.0.91 shipped with the
documented legacy fallback still present.
- [NVIDIA#7282](NVIDIA#7282),
[NVIDIA#7306](NVIDIA#7306), and
[NVIDIA#7341](NVIDIA#7341) need no additional
user-guide update because they already update their owned contributor or
user-facing text directly.

## Type of Change

- [ ] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [x] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [ ] Tests added or updated for changed behavior
- [x] Existing tests cover changed behavior — justification:
`test/changelog-docs.test.ts` validates dated changelog structure, SPDX
syntax, version ordering, and published routes.
- [ ] Tests not applicable — justification:
- [x] Docs updated for user-facing behavior changes
- [ ] Docs not applicable — justification:
- [ ] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [ ] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification:
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## DGX Station Hardware Evidence

- [ ] Tested on DGX Station
- Tested commit: Not applicable; this documentation-only PR does not
change Station preparation or runtime behavior.
- Station profile/scenario: Not applicable.
- Result: Not applicable.
- Supporting evidence: Not applicable.

## Verification

- [x] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — `npx vitest run
test/changelog-docs.test.ts` (6 passed).
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — not run; this is a focused
documentation-only change.
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only) —
completed with 0 errors and 2 existing site-wide warnings.
- [x] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)
— the native changelog entry uses the required parser-safe MDX SPDX
comment and intentionally has no frontmatter.

---
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Documentation**
* Updated v0.0.91 guidance for custom Dockerfiles, including continued
legacy compatibility and recommended migration to
`NEMOCLAW_INFERENCE_PROVIDER_ID`.
* Added release notes covering image security scanning, safer rebuild
behavior, token management, DGX Station guidance, and deterministic
release validation.
* Clarified that existing custom images may continue using the legacy
selector temporarily, with fallback removal planned for a future
release.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Co-authored-by: cjagwani <cjagwani@nvidia.com>
<!-- markdownlint-disable MD041 -->
## Summary

Allow the base-trusted installer verifier to accept either the current
archive-only installer template with its exact eight-asset table or the
reviewed formula installer template with those same eight assets plus
`openshell.rb`. Each trusted template hash is bound to its exact asset
set, so this prerequisite lets NVIDIA#7319 pass base-SHA verification without
allowing a formula pin before its consumer or arbitrary release assets
and templates.

## Related Issue

Refs NVIDIA#6903

Prerequisite for NVIDIA#7319.

## Changes

- Bind the current archive-only installer template to exactly the
current eight installer assets.
- Bind the reviewed formula installer template to exactly those same
eight assets plus `openshell.rb` until NVIDIA#7319 lands and tightens the
rule.
- Download and verify the formula release asset directly, with
regression coverage for both valid template/asset contracts, crossed
contracts, duplicate pins, and digest mismatches.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: This is a temporary internal
CI trust boundary and does not change user-facing installation behavior.
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [x] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: The trust-boundary
review binds each accepted operational template hash to one exact asset
set; the formula is fetched over HTTPS and checked against its pinned
SHA-256. CodeRabbit follow-up added duplicate-pin and digest-mismatch
coverage.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## DGX Station Hardware Evidence

- [ ] Tested on DGX Station
- Tested commit:
- Station profile/scenario:
- Result:
- Supporting evidence:

## Verification

- [x] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — command/result or justification: `npx
vitest run --project integration test/installer-hash-check.test.ts` (74
passed); the trusted checker also passed against this PR's archive-only
installer, the actual NVIDIA#7319 formula-consuming installer, and the
OpenShell v0.0.85 release assets.
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result: `npm run check` completed
every pre-commit gate successfully, then reached the 20-minute local
timeout during the manual coverage stage.
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only)
- [ ] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
Signed-off-by: San Dang <sdang@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Bug Fixes**
- Improved installer hash verification for OpenShell release assets,
including the Homebrew formula (`openshell.rb`).
- Updated installer pin-table validation to allow a transitional asset
set and to use computed expectations instead of fixed totals.
- Enhanced template hashing by verifying against an allowlist of trusted
SHA-256 values.
- **Tests**
- Expanded installer-hash verification fixtures to cover formula hashing
(success and mismatch), transitional template mappings, and
duplicate-asset failure scenarios.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: cjagwani <cjagwani@nvidia.com>
<!-- markdownlint-disable MD041 -->
## Summary

Add one provider-neutral guide for running NemoClaw on a headless Linux
server over SSH.
Retire the outdated Brev deployment and web UI guides, and redirect
their published URLs directly to the shared headless-server guide.

## Related Issue

Fixes NVIDIA#7180

## Changes

- Add a variant-aware headless-server guide for OpenClaw, Hermes, and
Deep Agents Code, including unattended installation, loopback-only
access, readiness checks, credential boundaries, and manual recovery
after a host reboot.
- Clarify that Brev can provision one example of a headless server,
while NemoClaw setup starts afterward and depends on neither Brev nor
its web UI.
- Remove the Brev web UI and remote GPU deployment pages from the docs
and navigation.
- Replace Brev deployment claims in the platform matrix with one
caveated headless Linux server path.
- Add direct redirects for the retired canonical and legacy URL forms,
including HTML and Markdown routes.
- Remove stale Brev troubleshooting and cross-references while retaining
factual reference documentation for the still-present deprecated
`nemoclaw deploy` compatibility command.
- Add regression coverage for guide content, variant boundaries, retired
routes, direct redirects, published links, and generated platform
documentation.

## Type of Change

- [ ] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [x] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [x] Docs updated for user-facing behavior changes
- [ ] Docs not applicable — justification:
- [ ] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [ ] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification:
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## DGX Station Hardware Evidence

- [ ] Tested on DGX Station
- Tested commit:
- Station profile/scenario:
- Result:
- Supporting evidence:

## Verification

- [x] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed
- [x] Targeted behavior tests pass — `npx vitest run
test/headless-server-docs.test.ts
test/check-docs-published-routes.test.ts test/check-docs-links.test.ts
test/generate-platform-docs.test.ts
src/lib/gateway-token-command.test.ts` (86 passed)
- [x] Applicable broad gate passed — all 48 applicable PR checks passed,
including CLI shards, CodeQL, image builds, platform E2Es, and automated
reviews
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [x] `npm run docs` builds — 0 errors and one existing Fern warning
- [x] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
- [x] New doc pages include SPDX header and frontmatter
- [x] Clean-Linux `cloud-onboard` E2E passed on the final commit —
[workflow
run](https://github.com/NVIDIA/NemoClaw/actions/runs/29892562701)

---
Signed-off-by: Miyoung Choi <miyoungc@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Documentation**
* Added a new “Deploy to a Headless Server” guide for SSH-only setup,
including unattended onboarding, readiness/probe checks, policy setup,
updates, recovery, and troubleshooting.
* Updated site navigation and multiple overview/reference pages to point
to the new guide.
* Removed Brev-specific deployment docs and added redirects so legacy
links route to the shared headless guide.
* **Tests**
* Added/expanded contract tests to validate published routes and
per-agent content, including recovery and dashboard/token behavior.
* **Chores**
* Refreshed platform support metadata and broadened redirect-route
validation coverage.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Miyoung Choi <miyoungc@nvidia.com>
Co-authored-by: cjagwani <cjagwani@nvidia.com>
## Summary

- raise the Hermes Python guard test-harness allowance from 5 seconds to
90 seconds
- apply the shared allowance to the three runtime-config-guard helper
paths only
- correct the WSL root-only peer fixture to start from the production
mutable topology, `sandbox:sandbox 03770`
- assert sealing produces `root:sandbox 03770`, permits sandbox-group
runtime-state creation, rejects unlink of root-owned sealed config, and
restores the original ownership
- let the existing config-reclaim peer write probe traverse Vitest's
private temp root only for the duration of that probe, then restore its
exact mode
- leave production runtime behavior and non-guard command limits
unchanged

## Evidence

- main CI job 88920894839 returned `status: null` after the first guard
child exceeded its 5-second `spawnSync` limit; the runner and later
guard cases remained healthy
- four prior main runs passed the same case in about 0.3 seconds,
confirming a load-sensitive harness limit rather than a Hermes behavior
regression
- current-main Platform Vitest run 29919416442 passed the complete WSL
suite (1,642 files / 19,227 tests) and then reproduced the isolated
root-fixture failure
- historical run 29307612216 reproduced that fixture failure before the
OpenClaw upgrade and before NVIDIA#7379
- first exact-head WSL proof 29923652396 passed the complete WSL suite
and both corrected Hermes root contracts; it then exposed the next
root-only fixture defect
- that config-reclaim test completed production normalization and all
ownership/mode assertions; only its stepped-down write probe failed
because PR NVIDIA#6690 made Vitest's shared temp ancestor private
- current exact head `b7414d2f7f1bfd68028e9f43c11c1cc61033e266` includes
current `main` at `f9924949922f8e554f94aeefdd23a993a801e7b4`
- current exact-head platform proof:
https://github.com/NVIDIA/NemoClaw/actions/runs/29929199550
- focused `nemoclaw-start-perms` suite: 16 passed, 3 Linux-root
capability skips on macOS
- `npm run build:cli` and `npm run check:diff`: passed
- independent review of the narrow changes: no production findings

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>

---------

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
<!-- markdownlint-disable MD041 -->
## Summary
<!-- 1-3 plain sentences: what changes and why. Describe
before-and-after behavior when it applies. Follow the NemoClaw Writing
Guide: https://github.com/NVIDIA/NemoClaw/blob/main/WRITING.md. Do not
add unrelated prose cleanup. -->
Adds a real-artifact regression for the reviewed OpenClaw diagnostics
remediation, proving malformed Jaeger trace and baggage headers cannot
terminate the process. Product-scope verdict: NVIDIA#7337 requires this
regression and owns removal after an upstream-safe SDK graph; this PR
does not create a supported integration or recipe. GitHub merge status
is separate: this task stops after exact-base CI and E2E pass but before
human approval, so GitHub can report `BLOCKED` or `REVIEW_REQUIRED`
without a product-scope rejection.

## Related Issue
<!-- Fixes #NNN or Closes #NNN. Remove this section if none. -->
Related to NVIDIA#7337. This PR delivers the independently reviewable
regression portion; it does not close the issue because removing the
archive remediation still depends on a reviewed upstream OpenClaw
diagnostics release.

## Changes
<!-- List concrete changes. If this adds an abstraction, configuration,
fallback, migration, or compatibility path, name its current requirement
and consumer, explain why a direct change is insufficient, and identify
the test that protects it. -->

- Add an opt-in child-process probe that materializes the
integrity-pinned diagnostics archive, applies the production
remediation, installs it with lifecycle scripts disabled, and resolves
Jaeger through the SDK Node consumer.
- Cover malformed `uber-trace-id` and `uberctx-*` values plus valid
trace and baggage controls.
- Run the probe in the trusted main-only real-distribution job and
enforce that workflow boundary in the dependency-review contract test.
- Record the regression evidence and mark the diagnostics remediation
branch for removal under NVIDIA#7337 only after a reviewed upstream release is
safe.

## Type of Change

- [ ] Code change (feature, bug fix, or refactor)
- [x] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates
<!-- Check one tests line and one docs line. Check other lines when
applicable. Add every requested justification or approval reference. -->
- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: No user-visible behavior
changes; the internal dependency-review evidence documents the
regression contract.
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [ ] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: Pending independent
human review; no waiver requested.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## DGX Station Hardware Evidence
<!-- Required only when scripts/prepare-dgx-station-host.sh changes.
Maintainers must review the linked evidence before approving or merging.
This is human-reviewed evidence, not authenticated hardware provenance.
Exceptional bypasses use existing repository governance and must be
documented on the PR. -->
- [ ] Tested on DGX Station
- Tested commit: not applicable
- Station profile/scenario: not applicable
- Result: not applicable
- Supporting evidence: not applicable

## Verification
<!-- Check each applicable item only when supported by the requested
evidence. Run targeted tests once per relevant change set and rerun
after later edits or hook autofixes that can affect the tested behavior.
Do not rerun hook-covered checks. -->
- [x] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable — the
merge commit passed commit-msg and normal pre-push; the canonical
`upstream/main...HEAD` diff passed the equivalent pre-commit and
pre-push checks.
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — 10/10 dependency-review contract tests
passed with the opt-in test skipped by default;
`NEMOCLAW_REAL_OPENCLAW_JAEGER_HARNESS=1 npx --no-install vitest run
--project integration test/openclaw-diagnostics-jaeger-runtime.test.ts
--silent=false --reporter=default` passed 1/1 against the reviewed
registry artifact.
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — not applicable because the new opt-in
harness has focused real-artifact coverage and the repository diff
checks passed.
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only) — passed
with 0 errors and 2 existing Fern warnings.
- [x] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
<!-- DCO sign-off is required in this PR description, and every commit
must appear as Verified in GitHub. Run: git config user.name && git
config user.email -->
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>

---------

Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>
Co-authored-by: Julie Yaunches <jyaunches@nvidia.com>
Co-authored-by: Aaron Erickson <aerickson@nvidia.com>
Co-authored-by: Senthil Ravichandran <senthilr@nvidia.com>
<!-- markdownlint-disable MD041 -->
## Summary

Adds the canonical `## v0.0.92` release entry to
`docs/changelog/2026-07-22.mdx` before the release plan is generated.
The entry summarizes all ten pull requests merged after v0.0.91,
including the OpenClaw security update and Jaeger runtime regression
coverage.

## Changes

- Added the canonical v0.0.92 changelog entry.
- Recorded the user-visible, security, documentation, CI, and test
changes in the release range.
- NVIDIA#7280 -> `docs/changelog/2026-07-22.mdx`: OpenClaw 2026.7.1 and
Node.js 22.23.1 security/runtime update.
- NVIDIA#7378 -> `docs/changelog/2026-07-22.mdx`: canonical macOS watcher path
validation.
- NVIDIA#7379 -> `docs/changelog/2026-07-22.mdx`: stabilized full WSL platform
validation.
- NVIDIA#7380 -> `docs/changelog/2026-07-22.mdx`: bounded swap for hosted
Hermes image exports.
- NVIDIA#7100 -> `docs/changelog/2026-07-22.mdx`: semantic progress phases for
live E2E tests.
- NVIDIA#7376 -> `docs/changelog/2026-07-22.mdx`: restored v0.0.91 changelog
history and corrected tagged guidance.
- NVIDIA#7374 -> `docs/changelog/2026-07-22.mdx`: reviewed Homebrew formula
transition for installer integrity checks.
- NVIDIA#7346 -> `docs/changelog/2026-07-22.mdx`: provider-neutral headless
server deployment guidance.
- NVIDIA#7381 -> `docs/changelog/2026-07-22.mdx`: stabilized Hermes guard
timing and WSL ownership fixtures.
- NVIDIA#7339 -> `docs/changelog/2026-07-22.mdx`: real-artifact Jaeger header
remediation regression coverage.

## Type of Change

- [ ] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [x] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [ ] Tests added or updated for changed behavior
- [x] Existing tests cover changed behavior — justification:
`test/changelog-docs.test.ts` validates the canonical dated changelog
and release heading contract.
- [ ] Tests not applicable — justification:
- [x] Docs updated for user-facing behavior changes
- [ ] Docs not applicable — justification:
- [ ] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [ ] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification:
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## DGX Station Hardware Evidence

- [ ] Tested on DGX Station
- Tested commit: Not applicable
- Station profile/scenario: Not applicable
- Result: Not applicable
- Supporting evidence: Not applicable

## Verification

- [x] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — `npx vitest run
test/changelog-docs.test.ts` passed 6/6 tests.
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result: Not applicable to a
changelog-only change.
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only) — passed
with 0 errors and 2 pre-existing Fern warnings.
- [x] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
Signed-off-by: Carlos Villela <cvillela@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Documentation**
* Added `v0.0.92` release notes covering sandboxing updates
(OpenClaw/Node.js bumps, integrity pinning remediation, mcporter
handling, and upgrade validation).
* Updated deployment guidance for provider-neutral headless installs,
and improved live E2E test reporting plus phase-plan validation.
* Tightened installer integrity-check messaging during an OpenShell
Homebrew transition and expanded platform/image validation (including
macOS/WSL timing) and hosted image export behavior.
* Restored the previously missed `v0.0.91` changelog entry and release
validation guidance.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Carlos Villela <cvillela@nvidia.com>
<!-- markdownlint-disable MD041 -->
## Summary

This draft completes the two unowned follow-ups from the v0.0.91
post-tag documentation audit.
It documents the remaining rebuild data-loss and base-image override
constraints, and preserves flat Markdown legacy routes for the
Additional Setup migration.

## Changes

- NVIDIA#7213 -> `docs/manage-sandboxes/recover-rebuild-sandboxes.mdx` and
`docs/changelog/2026-07-22.mdx`: Document when `rebuild --force` can
continue after a manifest-declared state-file backup failure, what state
it restores, and which base-image overrides remain trusted.
- NVIDIA#7261 -> `fern/docs.yml`, `scripts/check-docs-published-routes.mts`,
and `test/station-doc-ownership.test.ts`: Add direct `.md` and `.mdx`
redirects for the pre-variant DGX Station and Windows Prerequisites
routes, reject duplicate mappings, and validate each destination against
the published route index.
- Existing Markdown clients require the redirect compatibility paths
because Fern's generic redirects do not preserve these retired flat
routes.

## Type of Change

- [ ] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [x] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior, justification:
- [ ] Tests not applicable, justification:
- [x] Docs updated for user-facing behavior changes
- [ ] Docs not applicable, justification:
- [ ] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [ ] Sensitive-path review completed or maintainer-approved waiver
recorded, reviewer/approval link/justification:
- [ ] Non-success, skipped, or missing CI check accepted by maintainer,
check name, approval link, and follow-up issue:

## DGX Station Hardware Evidence

- [ ] Tested on DGX Station
- Tested commit: Not applicable. This PR changes documentation routes
only.
- Station profile/scenario: Not applicable.
- Result: Not applicable.
- Supporting evidence: Not applicable.

## Verification

- [x] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above, command/result: `npx vitest run
test/station-doc-ownership.test.ts` passed 3 tests; `npx vitest run
test/check-docs-published-routes.test.ts` passed 25 tests; `npx vitest
run test/changelog-docs.test.ts` passed 6 tests.
- [ ] Applicable broad gate passed, `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes, command/result: Not run. The focused docs
tests and build cover this change.
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only). The
build completed with 0 errors and the existing light-mode accent
contrast warning.
- [x] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
Signed-off-by: Miyoung Choi <miyoungc@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Documentation**
* Clarified “Rebuilds” behavior when manifest-declared state can’t be
archived, including `--force`, and how partial/restored state works.
* Tightened guidance for remote `base-image` overrides to immutable
digests and clarified when local bases are accepted.
* Updated prerequisite documentation redirects to include legacy `.md`
and `.mdx` routes (versioned and unversioned).

* **Tests**
* Strengthened redirect validation by parsing `fern/docs.yml` and
asserting exact `{ source, destination }` matches for `.md`/`.mdx`.
* Added a test to reject an “Additional Setup” redirect to an
unpublished destination.

* **Chores**
* Expanded published-route redirect checking to include “Additional
Setup” paths.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
@coderabbitai

coderabbitai Bot commented Jul 22, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 2682 files, which is 2582 over the limit of 100.

To get a review, narrow the scope:
• coderabbit review --committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

Upgrade to a paid plan to raise the limit.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 214d8c76-ff0e-47be-bee5-cc79162b17fc

📥 Commits

Reviewing files that changed from the base of the PR and between 1daf081 and c136c37.

⛔ Files ignored due to path filters (10)
  • .agents/skills/nemoclaw-user-overview/references/images/nemoclaw-highlevel-component-diagram.png is excluded by !**/*.png
  • .github/actions/ci-static-checks/package-lock.json is excluded by !**/package-lock.json
  • agents/langchain-deepagents-code/requirements.lock is excluded by !**/*.lock
  • agents/openclaw/mcporter-runtime/package-lock.json is excluded by !**/package-lock.json
  • agents/openclaw/wechat-runtime/package-lock.json is excluded by !**/package-lock.json
  • ci/platform-vitest-macos-requirements.lock is excluded by !**/*.lock
  • nemoclaw/package-lock.json is excluded by !**/package-lock.json
  • package-lock.json is excluded by !**/package-lock.json
  • test/e2e/docs/parity-inventory.generated.json is excluded by !**/*.generated.*
  • test/e2e/fixtures/plugins/weather/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (2990)
  • .agents/catalog-skills.yaml
  • .agents/skills/_shared/git-github-hard-stop.md
  • .agents/skills/_shared/pr-follow-up.md
  • .agents/skills/nemoclaw-contributor-create-pr/SKILL.md
  • .agents/skills/nemoclaw-contributor-onboard-messaging-channel/SKILL.md
  • .agents/skills/nemoclaw-contributor-onboard/SKILL.md
  • .agents/skills/nemoclaw-contributor-onboard/agents/openai.yaml
  • .agents/skills/nemoclaw-contributor-update-dependencies/SKILL.md
  • .agents/skills/nemoclaw-contributor-update-dependencies/agents/openai.yaml
  • .agents/skills/nemoclaw-contributor-update-dependencies/references/contract-audit.md
  • .agents/skills/nemoclaw-contributor-update-dependencies/references/release-ledger.md
  • .agents/skills/nemoclaw-contributor-update-dependencies/scripts/collect-release-ledger.py
  • .agents/skills/nemoclaw-contributor-update-docs/SKILL.md
  • .agents/skills/nemoclaw-maintainer-cross-issue-sweep/SKILL.md
  • .agents/skills/nemoclaw-maintainer-cross-issue-sweep/checks/fingerprint-extraction.md
  • .agents/skills/nemoclaw-maintainer-cross-issue-sweep/checks/relationship-judgment.md
  • .agents/skills/nemoclaw-maintainer-cross-issue-sweep/relationship-rules.md
  • .agents/skills/nemoclaw-maintainer-cross-issue-sweep/repo-policy.md
  • .agents/skills/nemoclaw-maintainer-cross-issue-sweep/scripts/search-candidate-issues.sh
  • .agents/skills/nemoclaw-maintainer-cross-issue-sweep/templates/report.md
  • .agents/skills/nemoclaw-maintainer-cut-release-tag/SKILL.md
  • .agents/skills/nemoclaw-maintainer-day/HOTSPOTS.md
  • .agents/skills/nemoclaw-maintainer-day/MERGE-GATE.md
  • .agents/skills/nemoclaw-maintainer-day/PR-REVIEW-PRIORITIES.md
  • .agents/skills/nemoclaw-maintainer-day/RISKY-AREAS.md
  • .agents/skills/nemoclaw-maintainer-day/SALVAGE-PR.md
  • .agents/skills/nemoclaw-maintainer-day/SECURITY-SWEEP.md
  • .agents/skills/nemoclaw-maintainer-day/SEQUENCE-WORK.md
  • .agents/skills/nemoclaw-maintainer-day/SKILL.md
  • .agents/skills/nemoclaw-maintainer-day/STATE-SCHEMA.md
  • .agents/skills/nemoclaw-maintainer-day/TEST-GAPS.md
  • .agents/skills/nemoclaw-maintainer-day/scripts/bump-stragglers.ts
  • .agents/skills/nemoclaw-maintainer-day/scripts/check-gates.ts
  • .agents/skills/nemoclaw-maintainer-day/scripts/handoff-summary.ts
  • .agents/skills/nemoclaw-maintainer-day/scripts/hotspots.ts
  • .agents/skills/nemoclaw-maintainer-day/scripts/shared.ts
  • .agents/skills/nemoclaw-maintainer-day/scripts/state.ts
  • .agents/skills/nemoclaw-maintainer-day/scripts/triage.ts
  • .agents/skills/nemoclaw-maintainer-day/scripts/version-progress.ts
  • .agents/skills/nemoclaw-maintainer-day/scripts/version-target.ts
  • .agents/skills/nemoclaw-maintainer-evening/SKILL.md
  • .agents/skills/nemoclaw-maintainer-find-review-pr/SKILL.md
  • .agents/skills/nemoclaw-maintainer-morning/SKILL.md
  • .agents/skills/nemoclaw-maintainer-policies/SKILL.md
  • .agents/skills/nemoclaw-maintainer-policies/references/daily-flow.md
  • .agents/skills/nemoclaw-maintainer-policies/references/examples.md
  • .agents/skills/nemoclaw-maintainer-policies/references/label-taxonomy.json
  • .agents/skills/nemoclaw-maintainer-policies/references/label-taxonomy.md
  • .agents/skills/nemoclaw-maintainer-policies/references/project-workflow.md
  • .agents/skills/nemoclaw-maintainer-policies/references/release-train.md
  • .agents/skills/nemoclaw-maintainer-policies/references/triage-instructions.md
  • .agents/skills/nemoclaw-maintainer-policies/references/workflow-policy.md
  • .agents/skills/nemoclaw-maintainer-pr-comparator/SKILL.md
  • .agents/skills/nemoclaw-maintainer-pr-comparator/checks/tier-0-gates.md
  • .agents/skills/nemoclaw-maintainer-pr-comparator/checks/tier-1-correctness.md
  • .agents/skills/nemoclaw-maintainer-pr-comparator/checks/tier-2-quality.md
  • .agents/skills/nemoclaw-maintainer-pr-comparator/repo-policy.md
  • .agents/skills/nemoclaw-maintainer-pr-comparator/scripts/collect-gates.sh
  • .agents/skills/nemoclaw-maintainer-pr-comparator/scripts/render-verdict.py
  • .agents/skills/nemoclaw-maintainer-pr-comparator/templates/verdict.md
  • .agents/skills/nemoclaw-maintainer-pr-comparator/tiebreakers.md
  • .agents/skills/nemoclaw-maintainer-refactor-docs/SKILL.md
  • .agents/skills/nemoclaw-maintainer-refactor-docs/agents/openai.yaml
  • .agents/skills/nemoclaw-maintainer-release-notes/SKILL.md
  • .agents/skills/nemoclaw-maintainer-security-code-review/SKILL.md
  • .agents/skills/nemoclaw-maintainer-triage/SKILL.md
  • .agents/skills/nemoclaw-maintainer-triage/references/triage-instructions.md
  • .agents/skills/nemoclaw-maintainer-verify-stale/SKILL.md
  • .agents/skills/nemoclaw-maintainer-verify-stale/reference/brev-provisioning.md
  • .agents/skills/nemoclaw-maintainer-verify-stale/reference/by-design.md
  • .agents/skills/nemoclaw-maintainer-verify-stale/reference/candidate-selection.md
  • .agents/skills/nemoclaw-maintainer-verify-stale/reference/environment-and-reproducer.md
  • .agents/skills/nemoclaw-maintainer-verify-stale/reference/reproduction-rubrics.md
  • .agents/skills/nemoclaw-maintainer-verify-stale/reference/scoring-comments-and-logging.md
  • .agents/skills/nemoclaw-skills-guide/SKILL.md
  • .agents/skills/nemoclaw-user-agent-skills/SKILL.md
  • .agents/skills/nemoclaw-user-agent-skills/references/agent-skills.md
  • .agents/skills/nemoclaw-user-configure-inference/SKILL.md
  • .agents/skills/nemoclaw-user-configure-inference/references/inference-options.md
  • .agents/skills/nemoclaw-user-configure-inference/references/set-up-sub-agent.md
  • .agents/skills/nemoclaw-user-configure-inference/references/switch-inference-providers.md
  • .agents/skills/nemoclaw-user-configure-inference/references/tool-calling-reliability.md
  • .agents/skills/nemoclaw-user-configure-security/SKILL.md
  • .agents/skills/nemoclaw-user-configure-security/references/best-practices.md
  • .agents/skills/nemoclaw-user-configure-security/references/credential-storage.md
  • .agents/skills/nemoclaw-user-configure-security/references/openclaw-controls.md
  • .agents/skills/nemoclaw-user-deploy-remote/SKILL.md
  • .agents/skills/nemoclaw-user-deploy-remote/references/brev-web-ui.md
  • .agents/skills/nemoclaw-user-deploy-remote/references/install-openclaw-plugins.md
  • .agents/skills/nemoclaw-user-deploy-remote/references/sandbox-hardening.md
  • .agents/skills/nemoclaw-user-get-started/SKILL.md
  • .agents/skills/nemoclaw-user-get-started/references/prerequisites.md
  • .agents/skills/nemoclaw-user-get-started/references/quickstart-hermes.md
  • .agents/skills/nemoclaw-user-get-started/references/windows-preparation.md
  • .agents/skills/nemoclaw-user-guide/SKILL.md
  • .agents/skills/nemoclaw-user-guide/evals/evals.json
  • .agents/skills/nemoclaw-user-manage-policy/SKILL.md
  • .agents/skills/nemoclaw-user-manage-policy/references/approve-network-requests.md
  • .agents/skills/nemoclaw-user-manage-policy/references/integration-policy-examples.md
  • .agents/skills/nemoclaw-user-manage-sandboxes/SKILL.md
  • .agents/skills/nemoclaw-user-manage-sandboxes/references/backup-restore.md
  • .agents/skills/nemoclaw-user-manage-sandboxes/references/messaging-channels.md
  • .agents/skills/nemoclaw-user-manage-sandboxes/references/runtime-controls.md
  • .agents/skills/nemoclaw-user-manage-sandboxes/references/workspace-files.md
  • .agents/skills/nemoclaw-user-monitor-sandbox/SKILL.md
  • .agents/skills/nemoclaw-user-overview/SKILL.md
  • .agents/skills/nemoclaw-user-overview/references/ecosystem.md
  • .agents/skills/nemoclaw-user-overview/references/how-it-works.md
  • .agents/skills/nemoclaw-user-overview/references/overview.md
  • .agents/skills/nemoclaw-user-overview/references/release-notes.md
  • .agents/skills/nemoclaw-user-reference/SKILL.md
  • .agents/skills/nemoclaw-user-reference/references/architecture.md
  • .agents/skills/nemoclaw-user-reference/references/cli-selection-guide.md
  • .agents/skills/nemoclaw-user-reference/references/commands.md
  • .agents/skills/nemoclaw-user-reference/references/network-policies.md
  • .agents/skills/nemoclaw-user-reference/references/troubleshooting.md
  • .coderabbit.yaml
  • .editorconfig
  • .github/CODEOWNERS
  • .github/ISSUE_TEMPLATE/bug_report.yml
  • .github/ISSUE_TEMPLATE/config.yml
  • .github/ISSUE_TEMPLATE/doc_issue.yml
  • .github/ISSUE_TEMPLATE/feature_request.yml
  • .github/PULL_REQUEST_TEMPLATE.md
  • .github/actions/base-image-resolver.sh
  • .github/actions/basic-checks/action.yaml
  • .github/actions/ci-build-typecheck/action.yaml
  • .github/actions/ci-cli-coverage-merge/action.yaml
  • .github/actions/ci-cli-coverage-shard/action.yaml
  • .github/actions/ci-installer-hash-check/action.yaml
  • .github/actions/ci-installer-integration/action.yaml
  • .github/actions/ci-plugin-coverage/action.yaml
  • .github/actions/ci-reviewed-npm-audit/action.yaml
  • .github/actions/ci-static-checks/action.yaml
  • .github/actions/ci-static-checks/create-require-ratchet-core.mts
  • .github/actions/ci-static-checks/create-require-ratchet.mts
  • .github/actions/ci-static-checks/package.json
  • .github/actions/ci-wechat-runtime-audit/action.yaml
  • .github/actions/ci-wechat-runtime-audit/audit.sh
  • .github/actions/docker-auth-setup/action.yaml
  • .github/actions/host-dependency-setup/action.yaml
  • .github/actions/prepare-e2e/action.yaml
  • .github/actions/resolve-hermes-base-image/action.yaml
  • .github/actions/resolve-sandbox-base-image/action.yaml
  • .github/actions/run-e2e-script/action.yaml
  • .github/actions/upload-e2e-artifacts/action.yaml
  • .github/catalog-skills-signing-flow.md
  • .github/dependabot.yml
  • .github/pr-bodies/catalog-skills-refresh.md
  • .github/scripts/docker-auth-cleanup.sh
  • .github/scripts/docker-auth-setup.sh
  • .github/scripts/host-dependency-setup.sh
  • .github/workflows/base-image.yaml
  • .github/workflows/brev-nightly-e2e.yaml
  • .github/workflows/candidate-compatibility.yaml
  • .github/workflows/catalog-skills-refresh.yaml
  • .github/workflows/cloudflared-update-check.yaml
  • .github/workflows/code-scanning.yaml
  • .github/workflows/codebase-growth-guardrails.yaml
  • .github/workflows/commit-lint.yaml
  • .github/workflows/dco-check.yaml
  • .github/workflows/docker-pin-check.yaml
  • .github/workflows/docs-cli-parity-pr.yaml
  • .github/workflows/docs-links-pr.yaml
  • .github/workflows/docs-preview-pr.yaml
  • .github/workflows/docs-publish-public.yaml
  • .github/workflows/docs-publish-staging.yaml
  • .github/workflows/e2e-advisor.yaml
  • .github/workflows/e2e-branch-validation.yaml
  • .github/workflows/e2e-scenarios-all.yaml
  • .github/workflows/e2e-scenarios.yaml
  • .github/workflows/e2e-script.yaml
  • .github/workflows/e2e.yaml
  • .github/workflows/installer-hash-check.yaml
  • .github/workflows/label-merged-pr-release-target.yaml
  • .github/workflows/macos-e2e.yaml
  • .github/workflows/main.yaml
  • .github/workflows/nightly-e2e.yaml
  • .github/workflows/ollama-proxy-e2e.yaml
  • .github/workflows/platform-vitest-main.yaml
  • .github/workflows/pr-e2e-gate.yaml
  • .github/workflows/pr-limit.yaml
  • .github/workflows/pr-review-advisor.yaml
  • .github/workflows/pr-self-hosted.yaml
  • .github/workflows/pr.yaml
  • .github/workflows/regression-e2e.yaml
  • .github/workflows/release-latest-tag.yaml
  • .github/workflows/release-lkg-brev-image.yaml
  • .github/workflows/request-nvskills-ci.yml
  • .github/workflows/require-maintainer-edits.yaml
  • .github/workflows/sandbox-images-and-e2e.yaml
  • .github/workflows/wsl-e2e.yaml
  • .gitleaksignore
  • .markdownlint-cli2.yaml
  • .pre-commit-config.yaml
  • AGENTS.md
  • CONTRIBUTING.md
  • Dockerfile
  • Dockerfile.base
  • Makefile
  • README.md
  • SECURITY.md
  • WRITING.md
  • agents/hermes/Dockerfile
  • agents/hermes/Dockerfile.base
  • agents/hermes/build-mcp-digest.py
  • agents/hermes/config/build-env.ts
  • agents/hermes/config/generate.ts
  • agents/hermes/config/hermes-config.ts
  • agents/hermes/config/hermes-env.ts
  • agents/hermes/config/managed-tool-gateway.ts
  • agents/hermes/config/messaging-config.ts
  • agents/hermes/config/model-specific-setup.ts
  • agents/hermes/config/object-record.ts
  • agents/hermes/config/upstream-header.ts
  • agents/hermes/config/write-config.ts
  • agents/hermes/config/yaml.ts
  • agents/hermes/finalize-tirith-marker.py
  • agents/hermes/generate-config.ts
  • agents/hermes/hermes-wrapper.py
  • agents/hermes/host/tool-gateway-broker.ts
  • agents/hermes/manifest.yaml
  • agents/hermes/mcp-config-transaction.py
  • agents/hermes/patch-session-list-preview.py
  • agents/hermes/plugin/__init__.py
  • agents/hermes/plugin/test_register_tools.py
  • agents/hermes/policy-additions.yaml
  • agents/hermes/policy-permissive.yaml
  • agents/hermes/runtime-config-guard.py
  • agents/hermes/seed-dashboard-config.py
  • agents/hermes/start.sh
  • agents/hermes/validate-env-secret-boundary.py
  • agents/langchain-deepagents-code/Dockerfile
  • agents/langchain-deepagents-code/Dockerfile.base
  • agents/langchain-deepagents-code/dcode-launcher.sh
  • agents/langchain-deepagents-code/dcode-session-supervisor.py
  • agents/langchain-deepagents-code/dcode-wrapper.sh
  • agents/langchain-deepagents-code/dependency-review.md
  • agents/langchain-deepagents-code/generate-config.ts
  • agents/langchain-deepagents-code/managed-dcode-runtime.py
  • agents/langchain-deepagents-code/manifest.yaml
  • agents/langchain-deepagents-code/nemoclaw_observability.py
  • agents/langchain-deepagents-code/patch-managed-deepagents-code.py
  • agents/langchain-deepagents-code/policy-additions.yaml
  • agents/langchain-deepagents-code/profile-plugin/.gitignore
  • agents/langchain-deepagents-code/profile-plugin/pyproject.toml
  • agents/langchain-deepagents-code/profile-plugin/src/nemoclaw_deepagents_profile/__init__.py
  • agents/langchain-deepagents-code/progressive_tool_disclosure.py
  • agents/langchain-deepagents-code/requirements.in
  • agents/langchain-deepagents-code/start.sh
  • agents/langchain-deepagents-code/validate-nemotron-ultra-profile.py
  • agents/langchain-deepagents-code/validate-observability.py
  • agents/langchain-deepagents-code/validate-progressive-tool-disclosure.py
  • agents/openclaw/dependency-review.md
  • agents/openclaw/manifest.yaml
  • agents/openclaw/mcporter-runtime/package.json
  • agents/openclaw/policy-permissive.yaml
  • agents/openclaw/wechat-runtime/package.json
  • bin/lib/nim-images.json
  • bin/lib/usage-notice.json
  • bin/nemoclaw.js
  • biome.json
  • ci/cli-test-timing-hints.json
  • ci/coverage-threshold-cli.json
  • ci/coverage-threshold-plugin.json
  • ci/env-var-doc-allowlist.json
  • ci/full-e2e-cold-path-calibration.json
  • ci/onboard-performance-budget.json
  • ci/platform-matrix.json
  • ci/reviewed-npm-audit.json
  • ci/reviewed-npm-lifecycle-allowlist.json
  • ci/source-shape-test-budget.json
  • ci/test-file-size-budget.json
  • docs/.docs-skip
  • docs/AGENTS.md
  • docs/CONTRIBUTING.md
  • docs/_ext/json_output/__init__.py
  • docs/_ext/json_output/config.py
  • docs/_ext/json_output/content/__init__.py
  • docs/_ext/json_output/content/extractor.py
  • docs/_ext/json_output/content/metadata.py
  • docs/_ext/json_output/content/structured.py
  • docs/_ext/json_output/content/text.py
  • docs/_ext/json_output/core/__init__.py
  • docs/_ext/json_output/core/builder.py
  • docs/_ext/json_output/core/document_discovery.py
  • docs/_ext/json_output/core/global_metadata.py
  • docs/_ext/json_output/core/hierarchy_builder.py
  • docs/_ext/json_output/core/json_formatter.py
  • docs/_ext/json_output/core/json_writer.py
  • docs/_ext/json_output/processing/__init__.py
  • docs/_ext/json_output/processing/cache.py
  • docs/_ext/json_output/processing/processor.py
  • docs/_ext/json_output/utils.py
  • docs/_ext/search_assets/__init__.py
  • docs/_ext/search_assets/enhanced-search.css
  • docs/_ext/search_assets/main.js
  • docs/_ext/search_assets/modules/DocumentLoader.js
  • docs/_ext/search_assets/modules/EventHandler.js
  • docs/_ext/search_assets/modules/ResultRenderer.js
  • docs/_ext/search_assets/modules/SearchEngine.js
  • docs/_ext/search_assets/modules/SearchInterface.js
  • docs/_ext/search_assets/modules/SearchPageManager.js
  • docs/_ext/search_assets/modules/Utils.js
  • docs/_ext/search_assets/templates/search.html
  • docs/_templates/layout.html
  • docs/about/ecosystem-deepagents.mdx
  • docs/about/ecosystem-hermes.mdx
  • docs/about/ecosystem.mdx
  • docs/about/how-it-works.mdx
  • docs/about/overview.mdx
  • docs/about/release-notes.mdx
  • docs/changelog/2026-05-05.mdx
  • docs/changelog/2026-05-08.mdx
  • docs/changelog/2026-05-12.mdx
  • docs/changelog/2026-05-13.mdx
  • docs/changelog/2026-05-14.mdx
  • docs/changelog/2026-05-15.mdx
  • docs/changelog/2026-05-18.mdx
  • docs/changelog/2026-05-19.mdx
  • docs/changelog/2026-05-20.mdx
  • docs/changelog/2026-05-22.mdx
  • docs/changelog/2026-05-23.mdx
  • docs/changelog/2026-05-26.mdx
  • docs/changelog/2026-05-27.mdx
  • docs/changelog/2026-05-28.mdx
  • docs/changelog/2026-05-29.mdx
  • docs/changelog/2026-06-01.mdx
  • docs/changelog/2026-06-02.mdx
  • docs/changelog/2026-06-03.mdx
  • docs/changelog/2026-06-04.mdx
  • docs/changelog/2026-06-05.mdx
  • docs/changelog/2026-06-08.mdx
  • docs/changelog/2026-06-09.mdx
  • docs/changelog/2026-06-10.mdx
  • docs/changelog/2026-06-11.mdx
  • docs/changelog/2026-06-15.mdx
  • docs/changelog/2026-06-22.mdx
  • docs/changelog/2026-06-23.mdx
  • docs/changelog/2026-06-25.mdx
  • docs/changelog/2026-06-28.mdx
  • docs/changelog/2026-06-29.mdx
  • docs/changelog/2026-06-30.mdx
  • docs/changelog/2026-07-01.mdx
  • docs/changelog/2026-07-02.mdx
  • docs/changelog/2026-07-04.mdx
  • docs/changelog/2026-07-06.mdx
  • docs/changelog/2026-07-07.mdx
  • docs/changelog/2026-07-08.mdx
  • docs/changelog/2026-07-09.mdx
  • docs/changelog/2026-07-10.mdx
  • docs/changelog/2026-07-12.mdx
  • docs/changelog/2026-07-14.mdx
  • docs/changelog/2026-07-15.mdx
  • docs/changelog/2026-07-16.mdx
  • docs/changelog/2026-07-17.mdx
  • docs/changelog/2026-07-18.mdx
  • docs/changelog/2026-07-20.mdx
  • docs/changelog/2026-07-22.mdx
  • docs/changelog/overview.mdx
  • docs/configure-agents/configure-agent-heartbeats.mdx
  • docs/configure-agents/progressive-tool-disclosure.mdx
  • docs/configure-agents/understand-context-compaction.mdx
  • docs/deployment/brev-web-ui.mdx
  • docs/deployment/deploy-to-headless-server.mdx
  • docs/deployment/deploy-to-remote-gpu.mdx
  • docs/deployment/install-openclaw-plugins.mdx
  • docs/deployment/sandbox-hardening.mdx
  • docs/deployment/set-up-mcp-bridge.mdx
  • docs/get-started/dgx-station-preparation.mdx
  • docs/get-started/prerequisites.mdx
  • docs/get-started/quickstart-hermes.mdx
  • docs/get-started/quickstart-langchain-deepagents-code.mdx
  • docs/get-started/quickstart.mdx
  • docs/get-started/windows-preparation.mdx
  • docs/index.mdx
  • docs/index.yml
  • docs/inference/choose-compatible-inference-api.mdx
  • docs/inference/choose-inference-provider.mdx
  • docs/inference/choose-local-inference-server.mdx
  • docs/inference/choose-model.mdx
  • docs/inference/configure-inference-timeouts.mdx
  • docs/inference/configure-model-capabilities.mdx
  • docs/inference/configure-model-limits.mdx
  • docs/inference/custom-endpoint-security.mdx
  • docs/inference/declarative-agents-manifest.mdx
  • docs/inference/how-inference-routing-works.mdx
  • docs/inference/inference-options.mdx
  • docs/inference/model-capability-audit.mdx
  • docs/inference/set-up-anthropic-compatible-endpoint.mdx
  • docs/inference/set-up-model-router.mdx
  • docs/inference/set-up-nvidia-nim.mdx
  • docs/inference/set-up-ollama.mdx
  • docs/inference/set-up-openai-compatible-endpoint.mdx
  • docs/inference/set-up-sub-agent.mdx
  • docs/inference/set-up-vllm.mdx
  • docs/inference/switch-inference-providers.mdx
  • docs/inference/switch-models.mdx
  • docs/inference/switch-providers.mdx
  • docs/inference/tool-calling-reliability.mdx
  • docs/inference/understand-provider-validation.mdx
  • docs/inference/use-anthropic.mdx
  • docs/inference/use-google-gemini.mdx
  • docs/inference/use-hermes-provider.mdx
  • docs/inference/use-local-inference.mdx
  • docs/inference/use-nvidia-endpoints.mdx
  • docs/inference/use-openai.mdx
  • docs/inference/use-openrouter.mdx
  • docs/inference/use-shared-gateway-routes.mdx
  • docs/inference/verify-inference-route.mdx
  • docs/inference/view-active-inference-route.mdx
  • docs/manage-sandboxes/add-channels-after-onboarding.mdx
  • docs/manage-sandboxes/add-mcp-server.mdx
  • docs/manage-sandboxes/backup-restore.mdx
  • docs/manage-sandboxes/enable-channels-during-onboarding.mdx
  • docs/manage-sandboxes/gateway-lifecycle-control.mdx
  • docs/manage-sandboxes/install-plugins-hermes.mdx
  • docs/manage-sandboxes/lifecycle.mdx
  • docs/manage-sandboxes/manage-mcp-servers.mdx
  • docs/manage-sandboxes/manage-messaging-channels.mdx
  • docs/manage-sandboxes/messaging-channels.mdx
  • docs/manage-sandboxes/recover-rebuild-sandboxes.mdx
  • docs/manage-sandboxes/run-sandboxes.mdx
  • docs/manage-sandboxes/runtime-controls.mdx
  • docs/manage-sandboxes/set-up-discord.mdx
  • docs/manage-sandboxes/set-up-microsoft-teams.mdx
  • docs/manage-sandboxes/set-up-slack.mdx
  • docs/manage-sandboxes/set-up-telegram.mdx
  • docs/manage-sandboxes/set-up-wechat.mdx
  • docs/manage-sandboxes/set-up-whatsapp.mdx
  • docs/manage-sandboxes/transfer-state-manually.mdx
  • docs/manage-sandboxes/uninstall-nemoclaw.mdx
  • docs/manage-sandboxes/update-sandboxes.mdx
  • docs/manage-sandboxes/workspace-files.mdx
  • docs/monitoring/monitor-sandbox-activity.mdx
  • docs/network-policy/approve-network-requests.mdx
  • docs/network-policy/customize-network-policy.mdx
  • docs/network-policy/integration-policy-examples.mdx
  • docs/reference/architecture.mdx
  • docs/reference/cli-selection-guide.mdx
  • docs/reference/commands.mdx
  • docs/reference/enterprise-readiness.mdx
  • docs/reference/extension-taxonomy-sdk-readiness.mdx
  • docs/reference/host-files-and-state.mdx
  • docs/reference/network-policies.mdx
  • docs/reference/platform-support.mdx
  • docs/reference/troubleshoot-mcp-servers.mdx
  • docs/reference/troubleshooting.mdx
  • docs/resources/agent-skills.mdx
  • docs/resources/community-contributions.mdx
  • docs/resources/engineer-agentic-documentation.mdx
  • docs/resources/license.mdx
  • docs/resources/local-credential-form.html
  • docs/resources/prompt-assets/dgx-spark.md
  • docs/resources/prompt-assets/dgx-station.md
  • docs/resources/prompt-assets/windows-wsl.md
  • docs/resources/starter-prompt.md
  • docs/security/best-practices.mdx
  • docs/security/configure-corporate-ca-trust.mdx
  • docs/security/credential-rotation.mdx
  • docs/security/credential-storage.mdx
  • docs/security/e2e-weather-plugin-fixture-dependency-review.md
  • docs/security/openclaw-2026.6.10-dependency-review.md
  • docs/security/openclaw-2026.7.1-dependency-review.md
  • docs/security/openclaw-controls.mdx
  • docs/security/openshell-0.0.71-gateway-auth-review.mdx
  • docs/security/openshell-0.0.72-compatibility-review.mdx
  • docs/security/openshell-0.0.85-migration-review.md
  • docs/security/tcb-boundary.mdx
  • fern/AGENTS.md
  • fern/docs.yml
  • fern/fern.config.json
  • install.sh
  • nemoclaw-blueprint/blueprint.yaml
  • nemoclaw-blueprint/model-specific-setup/openclaw/gpt-5-o-series-managed-inference.json
  • nemoclaw-blueprint/model-specific-setup/openclaw/kimi-k2.6-managed-inference.json
  • nemoclaw-blueprint/model-specific-setup/openclaw/nemotron-3-super-120b-managed-inference.json
  • nemoclaw-blueprint/model-specific-setup/openclaw/nemotron-3-ultra-managed-inference.json
  • nemoclaw-blueprint/model-specific-setup/schema.json
  • nemoclaw-blueprint/openclaw-plugins/kimi-inference-compat/index.js
  • nemoclaw-blueprint/policies/openclaw-sandbox-permissive.yaml
  • nemoclaw-blueprint/policies/openclaw-sandbox.yaml
  • nemoclaw-blueprint/policies/presets/brew.yaml
  • nemoclaw-blueprint/policies/presets/claude-code.yaml
  • nemoclaw-blueprint/policies/presets/gmail.yaml
  • nemoclaw-blueprint/policies/presets/observability-otlp-local.yaml
  • nemoclaw-blueprint/policies/presets/openclaw-diagnostics-otel-local.yaml
  • nemoclaw-blueprint/policies/presets/public-reference.yaml
  • nemoclaw-blueprint/policies/presets/pypi.yaml
  • nemoclaw-blueprint/policies/presets/tavily.yaml
  • nemoclaw-blueprint/policies/presets/weather.yaml
  • nemoclaw-blueprint/policies/presets/wechat.yaml
  • nemoclaw-blueprint/policies/presets/whatsapp.yaml
  • nemoclaw-blueprint/policies/tiers.yaml
  • nemoclaw-blueprint/provider-profiles/tavily-hermes-v1.yaml
  • nemoclaw-blueprint/provider-profiles/tavily.yaml
  • nemoclaw-blueprint/scripts/nemotron-inference-fix.js
  • nemoclaw-blueprint/scripts/slack-channel-guard.js
  • nemoclaw-blueprint/scripts/telegram-diagnostics.js
  • nemoclaw-blueprint/scripts/wechat-diagnostics.js
  • nemoclaw/openclaw.plugin.json
  • nemoclaw/package.json
  • nemoclaw/src/blueprint/private-networks.test.ts
  • nemoclaw/src/blueprint/runner-openshell-072-policy.test.ts
  • nemoclaw/src/blueprint/runner-test-fixtures.ts
  • nemoclaw/src/blueprint/runner.test.ts
  • nemoclaw/src/blueprint/runner.ts
  • nemoclaw/src/blueprint/snapshot-command.test.ts
  • nemoclaw/src/blueprint/snapshot-command.ts
  • nemoclaw/src/blueprint/snapshot-delete-helper.ts
  • nemoclaw/src/blueprint/snapshot-management.test.ts
  • nemoclaw/src/blueprint/snapshot-management.ts
  • nemoclaw/src/blueprint/snapshot-realfs.test.ts
  • nemoclaw/src/blueprint/snapshot.ts
  • nemoclaw/src/blueprint/ssrf.test.ts
  • nemoclaw/src/blueprint/ssrf.ts
  • nemoclaw/src/blueprint/state.test.ts
  • nemoclaw/src/blueprint/state.ts
  • nemoclaw/src/commands/config-show.test.ts
  • nemoclaw/src/commands/migration-state.test.ts
  • nemoclaw/src/commands/migration-state.ts
  • nemoclaw/src/commands/shields-status.test.ts
  • nemoclaw/src/commands/shields-status.ts
  • nemoclaw/src/commands/slash.test.ts
  • nemoclaw/src/commands/slash.ts
  • nemoclaw/src/index.ts
  • nemoclaw/src/lib/subprocess-env.ts
  • nemoclaw/src/onboard/config.test.ts
  • nemoclaw/src/onboard/config.ts
  • nemoclaw/src/package-metadata.test.ts
  • nemoclaw/src/register.test.ts
  • nemoclaw/src/runtime-context.test.ts
  • nemoclaw/src/runtime-context.ts
  • nemoclaw/src/security/safe-resolve-path.test.ts
  • nemoclaw/src/security/safe-resolve-path.ts
  • nemoclaw/src/security/secret-scanner.test.ts
  • nemoclaw/src/security/secret-scanner.ts
  • nemoclaw/src/shared/object-record.test.ts
  • nemoclaw/src/shared/object-record.ts
  • nemoclaw/src/shared/openshell-policy-boundary.cts
  • nemoclaw/src/shared/openshell-policy-boundary.test.ts
  • nemoclaw/tsconfig.json
  • nemoclaw/tsconfig.shared.json
  • nemoclaw/tsconfig.test.json
  • nemoclaw/vitest.config.ts
  • nemoclaw/vitest.project.ts
  • package.json
  • pyproject.toml
  • schemas/onboard-config.schema.json
  • schemas/openclaw-plugin.schema.json
  • schemas/policy-preset.schema.json
  • schemas/sandbox-policy.schema.json
  • scripts/audit-reviewed-npm-graph.mts
  • scripts/audit-test-runtime.mts
  • scripts/bedrock-runtime-adapter.js
  • scripts/bedrock-runtime-adapter.mts
  • scripts/bench/README.md
  • scripts/bench/lib.mts
  • scripts/bench/run.mts
  • scripts/bench/trace-ingest.mts
  • scripts/benchmark-sandbox-image-build.js
  • scripts/benchmark-sandbox-image-build.mts
  • scripts/bootstrap-windows.ps1
  • scripts/brev-launchable-ci-cpu.sh
  • scripts/bump-version.mts
  • scripts/bump-version.ts
  • scripts/check-coverage-ratchet.mts
  • scripts/check-coverage-ratchet.ts
  • scripts/check-dcode-profile-import-gate.sh
  • scripts/check-dist-sourcemaps.mts
  • scripts/check-dist-sourcemaps.ts
  • scripts/check-docs-published-routes.mts
  • scripts/check-env-var-docs.mts
  • scripts/check-installer-hash.sh
  • scripts/check-messaging-plan-image-boundary.mts
  • scripts/check-node-version.js
  • scripts/check-production-build-args.sh
  • scripts/check-stale-dist.mts
  • scripts/check-stale-dist.ts
  • scripts/check-test-file-size-budget.mts
  • scripts/checks/check-cloudflared-update.sh
  • scripts/checks/dependency-pins.mts
  • scripts/checks/direct-credential-env.mts
  • scripts/checks/direct-credential-env.ts
  • scripts/checks/e2e-mock-parity.mts
  • scripts/checks/extract-installer-pins.mts
  • scripts/checks/hermes-light-skin-boundary.mts
  • scripts/checks/layer-import-boundaries.mts
  • scripts/checks/layer-import-boundaries.ts
  • scripts/checks/local-credential-helper-pin.mts
  • scripts/checks/no-coverage-ignore.mts
  • scripts/checks/no-coverage-ignore.ts
  • scripts/checks/no-test-dist-imports.mts
  • scripts/checks/no-unit-blocks-in-live-e2e.mts
  • scripts/checks/node-tar-image-scan.mts
  • scripts/checks/openshell-policy-mutation-read.mts
  • scripts/checks/run.mts
  • scripts/checks/run.ts
  • scripts/checks/test-create-require-budget.mts
  • scripts/checks/test-title-style.mts
  • scripts/checks/verify-openshell-policy-boundary-dependencies.mts
  • scripts/checks/vitest-project-overlap.mts
  • scripts/convert-docs-to-fern.mjs
  • scripts/dev-setup.sh
  • scripts/dev-tier-selector.js
  • scripts/dev-tier-selector.mts
  • scripts/docs-to-skills.py
  • scripts/e2e/lint-conventions.ts
  • scripts/e2e/sanitize-trace-timing.py
  • scripts/export-catalog-skills.py
  • scripts/fern-preview-config.mts
  • scripts/find-source-shape-tests.mts
  • scripts/find-source-shape-tests.ts
  • scripts/find-test-conditionals.mts
  • scripts/gateway-control.sh
  • scripts/generate-openclaw-config.mts
  • scripts/generate-openclaw-config.py
  • scripts/generate-platform-docs.py
  • scripts/generate-starter-prompt.mts
  • scripts/install-openshell.sh
  • scripts/install.sh
  • scripts/lib/clean_runtime_shell_env_shim.py
  • scripts/lib/gateway-supervisor.sh
  • scripts/lib/normalize_mutable_config_perms.py
  • scripts/lib/openclaw-npm-remediation.mts
  • scripts/lib/openclaw_device_approval_policy.py
  • scripts/lib/reviewed-npm-archive.mts
  • scripts/lib/runtime.sh
  • scripts/lib/sandbox-init.sh
  • scripts/lib/sandbox-rlimits.sh
  • scripts/list-command-helper-uses.mts
  • scripts/list-command-helper-uses.ts
  • scripts/local-credential-helper.mts
  • scripts/managed-gateway-control.py
  • scripts/nemoclaw-start.sh
  • scripts/ollama-auth-proxy.js
  • scripts/ollama-auth-proxy.mts
  • scripts/openclaw-config-guard.py
  • scripts/patch-bundled-npm-tar.mts
  • scripts/patch-openclaw-chat-send.js
  • scripts/patch-openclaw-chat-send.mts
  • scripts/patch-openclaw-device-self-approval.mts
  • scripts/patch-openclaw-issue-4434-diagnostics.mts
  • scripts/patch-openclaw-mcp-npx.mts
  • scripts/patch-openclaw-shared-state-permissions.mts
  • scripts/patch-openclaw-tool-catalog.js
  • scripts/patch-openclaw-tool-catalog.mts
  • scripts/prepare-dgx-station-host.sh
  • scripts/release-cut-tag.sh
  • scripts/release-latest-tag.sh
  • scripts/release-lkg-brev-image.sh
  • scripts/release-notes-data.mts
  • scripts/release-plan.mts
  • scripts/release-wait-latest.sh
  • scripts/retire-release-label.mts
  • scripts/scorecard/analyze-trace-timing.mts
  • scripts/scorecard/build-slack-blocks.mts
  • scripts/scorecard/coordinate-scorecard.mts
  • scripts/scorecard/summarize-jobs.mts
  • scripts/seed-wechat-accounts.py
  • scripts/setup-spark.sh
  • scripts/shellcheck-json1-to-sarif.mts
  • scripts/smoke-macos-install.sh
  • scripts/state-dir-guard.py
  • scripts/sync-agent-variant-docs.mts
  • scripts/type-safety-hotspots.mts
  • scripts/type-safety-hotspots.ts
  • scripts/update-hermes-agent.sh
  • scripts/validate-configs.mts
  • scripts/validate-configs.ts
  • scripts/validate-openclaw-tool-search.mts
  • scripts/verify-wechat-runtime-lock.mts
  • scripts/walkthrough.sh
  • scripts/watch-fern-preview.mjs
  • scripts/watch-fern-preview.mts
  • skills/README.md
  • skills/nemoclaw-user-guide/BENCHMARK.md
  • skills/nemoclaw-user-guide/SKILL.md
  • skills/nemoclaw-user-guide/evals/evals.json
  • skills/nemoclaw-user-guide/skill-card.md
  • skills/nemoclaw-user-guide/skill.oms.sig
  • spark-install.md
  • src/commands/agents.ts
  • src/commands/agents/list.test.ts
  • src/commands/agents/list.ts
  • src/commands/completion.ts
  • src/commands/credentials.test.ts
  • src/commands/credentials.ts
  • src/commands/credentials/add.ts
  • src/commands/credentials/list.ts
  • src/commands/credentials/reset.ts
  • src/commands/debug.ts
  • src/commands/deploy.ts
  • src/commands/gc.ts
  • src/commands/global-oclif-command-adapters.test.ts
  • src/commands/inference/get.ts
  • src/commands/inference/set.ts
  • src/commands/internal/dns/fix-coredns.ts
  • src/commands/internal/dns/setup-proxy.ts
  • src/commands/internal/installer/normalize-env.ts
  • src/commands/internal/installer/plan.ts
  • src/commands/internal/installer/resolve-release-tag.ts
  • src/commands/internal/uninstall/classify-shim.ts
  • src/commands/internal/uninstall/plan.ts
  • src/commands/internal/uninstall/run-plan.ts
  • src/commands/list.ts
  • src/commands/onboard.test.ts
  • src/commands/onboard.ts
  • src/commands/resources.test.ts
  • src/commands/sandbox/agent.test.ts
  • src/commands/sandbox/agent.ts
  • src/commands/sandbox/agents.ts
  • src/commands/sandbox/agents/add.ts
  • src/commands/sandbox/agents/apply.ts
  • src/commands/sandbox/agents/delete.ts
  • src/commands/sandbox/agents/list.ts
  • src/commands/sandbox/channels/add.ts
  • src/commands/sandbox/channels/list.ts
  • src/commands/sandbox/channels/mutate.test.ts
  • src/commands/sandbox/channels/status.ts
  • src/commands/sandbox/config/rotate-token.ts
  • src/commands/sandbox/config/set.ts
  • src/commands/sandbox/connect.ts
  • src/commands/sandbox/dashboard-url.ts
  • src/commands/sandbox/destroy.ts
  • src/commands/sandbox/doctor.ts
  • src/commands/sandbox/download.ts
  • src/commands/sandbox/exec.test.ts
  • src/commands/sandbox/exec.ts
  • src/commands/sandbox/gateway/restart.ts
  • src/commands/sandbox/gateway/token.ts
  • src/commands/sandbox/hosts/command-adapters.test.ts
  • src/commands/sandbox/hosts/list.ts
  • src/commands/sandbox/inference/get.ts
  • src/commands/sandbox/inference/oclif-command-adapters.test.ts
  • src/commands/sandbox/inference/set.ts
  • src/commands/sandbox/logs.test.ts
  • src/commands/sandbox/logs.ts
  • src/commands/sandbox/mcp.ts
  • src/commands/sandbox/oclif-command-adapters.test.ts
  • src/commands/sandbox/policy/explain.ts
  • src/commands/sandbox/policy/get.test.ts
  • src/commands/sandbox/policy/get.ts
  • src/commands/sandbox/policy/list.ts
  • src/commands/sandbox/policy/mutate.test.ts
  • src/commands/sandbox/rebuild.ts
  • src/commands/sandbox/recover.ts
  • src/commands/sandbox/sessions.ts
  • src/commands/sandbox/sessions/delete.ts
  • src/commands/sandbox/sessions/export.ts
  • src/commands/sandbox/sessions/list.ts
  • src/commands/sandbox/sessions/reset.ts
  • src/commands/sandbox/share.ts
  • src/commands/sandbox/share/mount.ts
  • src/commands/sandbox/share/status.ts
  • src/commands/sandbox/share/unmount.ts
  • src/commands/sandbox/shields/down.ts
  • src/commands/sandbox/shields/status.ts
  • src/commands/sandbox/shields/up.ts
  • src/commands/sandbox/skill.test.ts
  • src/commands/sandbox/skill.ts
  • src/commands/sandbox/skill/install.ts
  • src/commands/sandbox/skill/remove.ts
  • src/commands/sandbox/snapshot/create.ts
  • src/commands/sandbox/snapshot/list.ts
  • src/commands/sandbox/snapshot/restore.ts
  • src/commands/sandbox/start.test.ts
  • src/commands/sandbox/start.ts
  • src/commands/sandbox/status.ts
  • src/commands/sandbox/stop.test.ts
  • src/commands/sandbox/stop.ts
  • src/commands/sandbox/upload.ts
  • src/commands/setup-spark.ts
  • src/commands/setup.ts
  • src/commands/simple-global-oclif-adapters.test.ts
  • src/commands/start.ts
  • src/commands/status.ts
  • src/commands/stop.ts
  • src/commands/tunnel.ts
  • src/commands/tunnel/start.ts
  • src/commands/tunnel/status.ts
  • src/commands/tunnel/stop.ts
  • src/commands/uninstall.ts
  • src/commands/update.ts
  • src/commands/use.ts
  • src/lib/actions/completion.test.ts
  • src/lib/actions/completion.ts
  • src/lib/actions/credentials-add.ts
  • src/lib/actions/deploy.ts
  • src/lib/actions/dev/npm-link-or-shim.test.ts
  • src/lib/actions/dev/npm-link-or-shim.ts
  • src/lib/actions/dns/index.test.ts
  • src/lib/actions/dns/index.ts
  • src/lib/actions/gateway-drift-preflight.test.ts
  • src/lib/actions/global.test.ts
  • src/lib/actions/global.ts
  • src/lib/actions/inference-get.test.ts
  • src/lib/actions/inference-get.ts
  • src/lib/actions/inference-route-api.test.ts
  • src/lib/actions/inference-route-api.ts
  • src/lib/actions/inference-set-compatible-provider.test.ts
  • src/lib/actions/inference-set-context-window.test.ts
  • src/lib/actions/inference-set-degraded-state.test.ts
  • src/lib/actions/inference-set-endpoint-security.test.ts
  • src/lib/actions/inference-set-error.test.ts
  • src/lib/actions/inference-set-error.ts
  • src/lib/actions/inference-set-failure-handling.test.ts
  • src/lib/actions/inference-set-gateway-restart.ts
  • src/lib/actions/inference-set-gateway-route-containment.test.ts
  • src/lib/actions/inference-set-hermes-run.test.ts
  • src/lib/actions/inference-set-local-provider.test.ts
  • src/lib/actions/inference-set-openclaw-gateway-restart.test.ts
  • src/lib/actions/inference-set-openclaw-run.test.ts
  • src/lib/actions/inference-set-patch-hermes.test.ts
  • src/lib/actions/inference-set-patch-openclaw.test.ts
  • src/lib/actions/inference-set-provider-alias.test.ts
  • src/lib/actions/inference-set-provider-diagnostics.test.ts
  • src/lib/actions/inference-set-provider-diagnostics.ts
  • src/lib/actions/inference-set-reply-budget.ts
  • src/lib/actions/inference-set-route-containment.ts
  • src/lib/actions/inference-set-shields.test.ts
  • src/lib/actions/inference-set.test-support.ts
  • src/lib/actions/inference-set.test.ts
  • src/lib/actions/inference-set.ts
  • src/lib/actions/installer/plan.test.ts
  • src/lib/actions/installer/plan.ts
  • src/lib/actions/maintenance.test.ts
  • src/lib/actions/maintenance.ts
  • src/lib/actions/onboard.ts
  • src/lib/actions/root-help.ts
  • src/lib/actions/sandbox/agent/ollama-restart-recovery.test.ts
  • src/lib/actions/sandbox/agent/ollama-restart-recovery.ts
  • src/lib/actions/sandbox/agent/passthrough-help.test.ts
  • src/lib/actions/sandbox/agent/passthrough-help.ts
  • src/lib/actions/sandbox/agent/passthrough-json.test.ts
  • src/lib/actions/sandbox/agent/passthrough-json.ts
  • src/lib/actions/sandbox/agent/passthrough-ollama-recovery.test.ts
  • src/lib/actions/sandbox/agent/passthrough-ollama-recovery.ts
  • src/lib/actions/sandbox/agent/passthrough-shields-warning.test.ts
  • src/lib/actions/sandbox/agent/passthrough-shields-warning.ts
  • src/lib/actions/sandbox/agent/passthrough.test.ts
  • src/lib/actions/sandbox/agent/passthrough.ts
  • src/lib/actions/sandbox/agents/apply.test.ts
  • src/lib/actions/sandbox/agents/apply.ts
  • src/lib/actions/sandbox/agents/passthrough.ts
  • src/lib/actions/sandbox/auto-pair-approval.test.ts
  • src/lib/actions/sandbox/auto-pair-approval.ts
  • src/lib/actions/sandbox/auto-pair-warmup.test.ts
  • src/lib/actions/sandbox/auto-pair-warmup.ts
  • src/lib/actions/sandbox/channel-status-config-channels.test.ts
  • src/lib/actions/sandbox/channel-status-config-core.test.ts
  • src/lib/actions/sandbox/channel-status-config-values.test.ts
  • src/lib/actions/sandbox/channel-status-config-values.ts
  • src/lib/actions/sandbox/channel-status-config.ts
  • src/lib/actions/sandbox/channel-status-summary.test.ts
  • src/lib/actions/sandbox/channel-status-telegram-policy.test.ts
  • src/lib/actions/sandbox/channel-status.test-helpers.ts
  • src/lib/actions/sandbox/channel-status.test.ts
  • src/lib/actions/sandbox/channel-status.ts
  • src/lib/actions/sandbox/connect-autopair-budget.test.ts
  • src/lib/actions/sandbox/connect-autopair-budget.ts
  • src/lib/actions/sandbox/connect-boundary-refusal.ts
  • src/lib/actions/sandbox/connect-flow-dcode-probe-preamble.test.ts
  • src/lib/actions/sandbox/connect-flow-hermes-boundary.test.ts
  • src/lib/actions/sandbox/connect-flow.test.ts
  • src/lib/actions/sandbox/connect-hermes-light-skin.ts
  • src/lib/actions/sandbox/connect-hermes-light-theme.test.ts
  • src/lib/actions/sandbox/connect-inference-gateway.ts
  • src/lib/actions/sandbox/connect-inference-route-probe.test.ts
  • src/lib/actions/sandbox/connect-inference-route-probe.ts
  • src/lib/actions/sandbox/connect-probe-observe.test.ts
  • src/lib/actions/sandbox/connect-route-containment.test.ts
  • src/lib/actions/sandbox/connect-route-lifecycle.test.ts
  • src/lib/actions/sandbox/connect-route-repair-inconclusive.test.ts
  • src/lib/actions/sandbox/connect-route-repair.test.ts
  • src/lib/actions/sandbox/connect-vllm-preflight.ts
  • src/lib/actions/sandbox/connect.ts
  • src/lib/actions/sandbox/dcode-activity-probe.test.ts
  • src/lib/actions/sandbox/dcode-activity-probe.ts
  • src/lib/actions/sandbox/destroy-confirmation.ts
  • src/lib/actions/sandbox/destroy-execution.ts
  • src/lib/actions/sandbox/destroy-flow.test.ts
  • src/lib/actions/sandbox/destroy-gateway-cleanup.test.ts
  • src/lib/actions/sandbox/destroy-gateway-cleanup.ts
  • src/lib/actions/sandbox/destroy-gateway-runtime-evidence.test.ts
  • src/lib/actions/sandbox/destroy-gateway.test.ts
  • src/lib/actions/sandbox/destroy-gateway.ts
  • src/lib/actions/sandbox/destroy-preflight.ts
  • src/lib/actions/sandbox/destroy-presence.ts
  • src/lib/actions/sandbox/destroy.ts
  • src/lib/actions/sandbox/docker-health.test.ts
  • src/lib/actions/sandbox/docker-health.ts
  • src/lib/actions/sandbox/doctor-config-perms.test.ts
  • src/lib/actions/sandbox/doctor-config-perms.ts
  • src/lib/actions/sandbox/doctor-flow.test.ts
  • src/lib/actions/sandbox/doctor-gateway-fallback.ts
  • src/lib/actions/sandbox/doctor-host-command.test.ts
  • src/lib/actions/sandbox/doctor-host-command.ts
  • src/lib/actions/sandbox/doctor-inference.test.ts
  • src/lib/actions/sandbox/doctor-inference.ts
  • src/lib/actions/sandbox/doctor-messaging.ts
  • src/lib/actions/sandbox/doctor-report.test.ts
  • src/lib/actions/sandbox/doctor-report.ts
  • src/lib/actions/sandbox/doctor-system-checks.test.ts
  • src/lib/actions/sandbox/doctor-system-checks.ts
  • src/lib/actions/sandbox/doctor-tool-scope.test.ts
  • src/lib/actions/sandbox/doctor-tool-scope.ts
  • src/lib/actions/sandbox/doctor.ts
  • src/lib/actions/sandbox/download.test.ts
  • src/lib/actions/sandbox/download.ts
  • src/lib/actions/sandbox/exec-gateway-target.test.ts
  • src/lib/actions/sandbox/exec-openclaw-permission-cleanup.test.ts
  • src/lib/actions/sandbox/exec-policy-hint-detection.test.ts
  • src/lib/actions/sandbox/exec-policy-hint-detection.ts
  • src/lib/actions/sandbox/exec-policy-hint-emission.ts
  • src/lib/actions/sandbox/exec-policy-hint-integration.ts
  • src/lib/actions/sandbox/exec-policy-hint-probe-decision.test.ts
  • src/lib/actions/sandbox/exec-policy-hint-rendering.test.ts
  • src/lib/actions/sandbox/exec-policy-hint-rendering.ts
  • src/lib/actions/sandbox/exec-policy-hint-runtime.test.ts
  • src/lib/actions/sandbox/exec-policy-hint.test.ts
  • src/lib/actions/sandbox/exec-policy-hint.ts
  • src/lib/actions/sandbox/exec-stdio.test.ts
  • src/lib/actions/sandbox/exec-stdio.ts
  • src/lib/actions/sandbox/exec.multiline-argv.test.ts
  • src/lib/actions/sandbox/exec.test.ts
  • src/lib/actions/sandbox/exec.ts
  • src/lib/actions/sandbox/forward-health.ts
  • src/lib/actions/sandbox/forward-recovery.ts
  • src/lib/actions/sandbox/gateway-failure-classifier.ts
  • src/lib/actions/sandbox/gateway-restart-hermes-drift.test.ts
  • src/lib/actions/sandbox/gateway-restart-mcp.test.ts
  • src/lib/actions/sandbox/gateway-restart.test.ts
  • src/lib/actions/sandbox/gateway-restart.ts
  • src/lib/actions/sandbox/gateway-select.test.ts
  • src/lib/actions/sandbox/gateway-select.ts
  • src/lib/actions/sandbox/gateway-state-drift.test.ts
  • src/lib/actions/sandbox/gateway-state-hints.test.ts
  • src/lib/actions/sandbox/gateway-state-observe-mode.test.ts
  • src/lib/actions/sandbox/gateway-state-owning-gateway.test.ts
  • src/lib/actions/sandbox/gateway-state.ts
  • src/lib/actions/sandbox/gateway-target.ts
  • src/lib/actions/sandbox/gateway-wedge-diagnostics.test.ts
  • src/lib/actions/sandbox/gateway-wedge-diagnostics.ts
  • src/lib/actions/sandbox/hermes-dashboard-recovery.test.ts
  • src/lib/actions/sandbox/hermes-dashboard-recovery.ts
  • src/lib/actions/sandbox/hermes-secret-boundary-recovery.test.ts
  • src/lib/actions/sandbox/hermes-secret-boundary-recovery.ts
  • src/lib/actions/sandbox/host-aliases.test.ts
  • src/lib/actions/sandbox/host-aliases.ts
  • src/lib/actions/sandbox/host-path.test.ts
  • src/lib/actions/sandbox/host-path.ts
  • src/lib/actions/sandbox/inference-route-health.test.ts
  • src/lib/actions/sandbox/inference-route-health.ts
  • src/lib/actions/sandbox/logs.test.ts
  • src/lib/actions/sandbox/logs.ts
  • src/lib/actions/sandbox/mcp-bridge-adapter-deepagents-capability.ts
  • src/lib/actions/sandbox/mcp-bridge-adapter-deepagents-command.ts
  • src/lib/actions/sandbox/mcp-bridge-adapter-deepagents-inspection.ts
  • src/lib/actions/sandbox/mcp-bridge-adapter-deepagents-legacy-teardown.test.ts
  • src/lib/actions/sandbox/mcp-bridge-adapter-deepagents-legacy.ts
  • src/lib/actions/sandbox/mcp-bridge-adapter-deepagents-projection.test.ts
  • src/lib/actions/sandbox/mcp-bridge-adapter-deepagents-projection.ts
  • src/lib/actions/sandbox/mcp-bridge-adapter-deepagents-registration.test.ts
  • src/lib/actions/sandbox/mcp-bridge-adapter-deepagents-registration.ts
  • src/lib/actions/sandbox/mcp-bridge-adapter-deepagents-rollback.test.ts
  • src/lib/actions/sandbox/mcp-bridge-adapter-deepagents-runtime-guards.test.ts
  • src/lib/actions/sandbox/mcp-bridge-adapter-deepagents-teardown.ts
  • src/lib/actions/sandbox/mcp-bridge-adapter-deepagents-v2-removal.test.ts
  • src/lib/actions/sandbox/mcp-bridge-adapter-deepagents.ts
  • src/lib/actions/sandbox/mcp-bridge-adapter-hermes.test.ts
  • src/lib/actions/sandbox/mcp-bridge-adapter-hermes.ts
  • src/lib/actions/sandbox/mcp-bridge-adapter-inspection.test.ts
  • src/lib/actions/sandbox/mcp-bridge-adapter-inspection.ts
  • src/lib/actions/sandbox/mcp-bridge-adapter-openclaw.test.ts
  • src/lib/actions/sandbox/mcp-bridge-adapter-openclaw.ts
  • src/lib/actions/sandbox/mcp-bridge-adapter-registration.test.ts
  • src/lib/actions/sandbox/mcp-bridge-adapter-status.ts
  • src/lib/actions/sandbox/mcp-bridge-adapter-teardown.ts
  • src/lib/actions/sandbox/mcp-bridge-adapters.ts
  • src/lib/actions/sandbox/mcp-bridge-add-restart.ts
  • src/lib/actions/sandbox/mcp-bridge-contracts.ts
  • src/lib/actions/sandbox/mcp-bridge-destroy-preflight.ts
  • src/lib/actions/sandbox/mcp-bridge-destroy.ts
  • src/lib/actions/sandbox/mcp-bridge-hermes-reconciliation.test.ts
  • src/lib/actions/sandbox/mcp-bridge-hermes-reconciliation.ts
  • src/lib/actions/sandbox/mcp-bridge-input-runtime.test.ts
  • src/lib/actions/sandbox/mcp-bridge-input-targets.test.ts
  • src/lib/actions/sandbox/mcp-bridge-input-validation.test.ts
  • src/lib/actions/sandbox/mcp-bridge-output.test.ts
  • src/lib/actions/sandbox/mcp-bridge-output.ts
  • src/lib/actions/sandbox/mcp-bridge-policy-render.ts
  • src/lib/actions/sandbox/mcp-bridge-policy.test.ts
  • src/lib/actions/sandbox/mcp-bridge-policy.ts
  • src/lib/actions/sandbox/mcp-bridge-provider-attachments.ts
  • src/lib/actions/sandbox/mcp-bridge-provider-inspection.ts
  • src/lib/actions/sandbox/mcp-bridge-provider-mutation.ts
  • src/lib/actions/sandbox/mcp-bridge-provider-readiness.ts
  • src/lib/actions/sandbox/mcp-bridge-provider.test.ts
  • src/lib/actions/sandbox/mcp-bridge-provider.ts
  • src/lib/actions/sandbox/mcp-bridge-rebuild.ts
  • src/lib/actions/sandbox/mcp-bridge-recovery.test.ts
  • src/lib/actions/sandbox/mcp-bridge-recovery.ts
  • src/lib/actions/sandbox/mcp-bridge-remove.ts
  • src/lib/actions/sandbox/mcp-bridge-render.ts
  • src/lib/actions/sandbox/mcp-bridge-resolution-probe-security.test.ts
  • src/lib/actions/sandbox/mcp-bridge-resolution-probe.test.ts
  • src/lib/actions/sandbox/mcp-bridge-resolution-probe.ts
  • src/lib/actions/sandbox/mcp-bridge-resolution-readiness.ts
  • src/lib/actions/sandbox/mcp-bridge-restart.ts
  • src/lib/actions/sandbox/mcp-bridge-runtime-capabilities.ts
  • src/lib/actions/sandbox/mcp-bridge-runtime-validation.test.ts
  • src/lib/actions/sandbox/mcp-bridge-state.ts
  • src/lib/actions/sandbox/mcp-bridge-status-boundaries.test.ts
  • src/lib/actions/sandbox/mcp-bridge-status-removal.test.ts
  • src/lib/actions/sandbox/mcp-bridge-status-resolution.test.ts
  • src/lib/actions/sandbox/mcp-bridge-status-state.test.ts
  • src/lib/actions/sandbox/mcp-bridge-status.ts
  • src/lib/actions/sandbox/mcp-bridge-url-validation.ts
  • src/lib/actions/sandbox/mcp-bridge-validation.ts
  • src/lib/actions/sandbox/mcp-bridge.ts
  • src/lib/actions/sandbox/messaging-host-forward-lifecycle.ts
  • src/lib/actions/sandbox/openshell-child-visible-credentials.v0.0.72.json
  • src/lib/actions/sandbox/openshell-child-visible-credentials.v0.0.85.json
  • src/lib/actions/sandbox/policy-channel-agent-gate.test.ts
  • src/lib/actions/sandbox/policy-channel-cleanup.test.ts
  • src/lib/actions/sandbox/policy-channel-conflict.test.ts
  • src/lib/actions/sandbox/policy-channel-dependencies.ts
  • src/lib/actions/sandbox/policy-channel-list.test.ts
  • src/lib/actions/sandbox/policy-channel-lock.test.ts
  • src/lib/actions/sandbox/policy-channel-policy.test.ts
  • src/lib/actions/sandbox/policy-channel-refresh.test.ts
  • src/lib/actions/sandbox/policy-channel-remove-flow.test.ts
  • src/lib/actions/sandbox/policy-channel-scope-disclosure.test.ts
  • src/lib/actions/sandbox/policy-channel.ts
  • src/lib/actions/sandbox/policy-context-refresh.test.ts
  • src/lib/actions/sandbox/policy-context-refresh.ts
  • src/lib/actions/sandbox/policy-explain.test.ts
  • src/lib/actions/sandbox/policy-explain.ts
  • src/lib/actions/sandbox/policy-get.test.ts
  • src/lib/actions/sandbox/policy-get.ts
  • src/lib/actions/sandbox/policy-list-render.test.ts
  • src/lib/actions/sandbox/process-recovery-lock.test.ts
  • src/lib/actions/sandbox/process-recovery-temp-ssh.test.ts
  • src/lib/actions/sandbox/process-recovery.test.ts
  • src/lib/actions/sandbox/process-recovery.ts
  • src/lib/actions/sandbox/rebuild-agent-base-image-preflight.test.ts
  • src/lib/actions/sandbox/rebuild-backup-phase.test.ts
  • src/lib/actions/sandbox/rebuild-backup-phase.ts
  • src/lib/actions/sandbox/rebuild-base-image-resolution-flow.test.ts
  • src/lib/actions/sandbox/rebuild-config-hash-command.ts
  • src/lib/actions/sandbox/rebuild-config-hash.test.ts
  • src/lib/actions/sandbox/rebuild-config-hash.ts
  • src/lib/actions/sandbox/rebuild-credential-preflight.ts
  • src/lib/actions/sandbox/rebuild-custom-image-preflight.test.ts
  • src/lib/actions/sandbox/rebuild-custom-image-preflight.ts
  • src/lib/actions/sandbox/rebuild-dcode-artifact-drift.test.ts
  • src/lib/actions/sandbox/rebuild-dcode-base-image-lease.test.ts
  • src/lib/actions/sandbox/rebuild-dcode-mutation-edge.test.ts
  • src/lib/actions/sandbox/rebuild-dcode-orchestrator.test.ts
  • src/lib/actions/sandbox/rebuild-dcode-orchestrator.ts
  • src/lib/actions/sandbox/rebuild-dcode-pre-delete-drift.test.ts
  • src/lib/actions/sandbox/rebuild-dcode-preflight.test.ts
  • src/lib/actions/sandbox/rebuild-dcode-preflight.ts
  • src/lib/actions/sandbox/rebuild-dcode-recovered-provider.test.ts
  • src/lib/actions/sandbox/rebuild-dcode-recovery.test.ts
  • src/lib/actions/sandbox/rebuild-dcode-target.test.ts
  • src/lib/actions/sandbox/rebuild-dcode-target.ts
  • src/lib/actions/sandbox/rebuild-destroy-phase.test.ts
  • src/lib/actions/sandbox/rebuild-destroy-phase.ts
  • src/lib/actions/sandbox/rebuild-durable-config.test.ts
  • src/lib/actions/sandbox/rebuild-durable-config.ts
  • src/lib/actions/sandbox/rebuild-env-isolation.test.ts
  • src/lib/actions/sandbox/rebuild-env-isolation.ts
  • src/lib/actions/sandbox/rebuild-finalization.test.ts
  • src/lib/actions/sandbox/rebuild-finalization.ts
  • src/lib/actions/sandbox/rebuild-flow-helpers.test.ts
  • src/lib/actions/sandbox/rebuild-flow-helpers.ts
  • src/lib/actions/sandbox/rebuild-flow-test-fixtures.ts
  • src/lib/actions/sandbox/rebuild-flow.test.ts
  • src/lib/actions/sandbox/rebuild-gateway-drift.test.ts
  • src/lib/actions/sandbox/rebuild-gpu-opt-out.test.ts
  • src/lib/actions/sandbox/rebuild-gpu-opt-out.ts
  • src/lib/actions/sandbox/rebuild-hermes-post-restore.test.ts
  • src/lib/actions/sandbox/rebuild-hermes-post-restore.ts
  • src/lib/actions/sandbox/rebuild-inference-preflight.test.ts
  • src/lib/actions/sandbox/rebuild-inference-preflight.ts
  • src/lib/actions/sandbox/rebuild-local-provider-recreate.test.ts
  • src/lib/actions/sandbox/rebuild-managed-image-configuration.test.ts
  • src/lib/actions/sandbox/rebuild-managed-image-preflight.ts
  • src/lib/actions/sandbox/rebuild-managed-image-preparation.test.ts
  • src/lib/actions/sandbox/rebuild-managed-image-verification.test.ts
  • src/lib/actions/sandbox/rebuild-mcp-order.test.ts
  • src/lib/actions/sandbox/rebuild-mcp-order.ts
  • src/lib/actions/sandbox/rebuild-mcp-phase.test.ts
  • src/lib/actions/sandbox/rebuild-mcp-phase.ts
  • src/lib/actions/sandbox/rebuild-messaging-conflict-preflight.test.ts
  • src/lib/actions/sandbox/rebuild-messaging-conflict-preflight.ts
  • src/lib/actions/sandbox/rebuild-messaging-phase.ts
  • src/lib/actions/sandbox/rebuild-messaging-stage.test.ts
  • src/lib/actions/sandbox/rebuild-messaging-stage.ts
  • src/lib/actions/sandbox/rebuild-onboard-dependencies.ts
  • src/lib/actions/sandbox/rebuild-pipeline.ts
  • src/lib/actions/sandbox/rebuild-post-restore-phase.test.ts
  • src/lib/actions/sandbox/rebuild-post-restore-phase.ts
  • src/lib/actions/sandbox/rebuild-preflight-confirmation.test.ts
  • src/lib/actions/sandbox/rebuild-preflight-confirmation.ts
  • src/lib/actions/sandbox/rebuild-preflight-error.ts
  • src/lib/actions/sandbox/rebuild-preflight-guards.ts
  • src/lib/actions/sandbox/rebuild-preflight-phase.ts
  • src/lib/actions/sandbox/rebuild-preflight-target-phase.test.ts
  • src/lib/actions/sandbox/rebuild-preflight-target-phase.ts
  • src/lib/actions/sandbox/rebuild-prepared-image-context.ts
  • src/lib/actions/sandbox/rebuild-prepared-recovery.test.ts
  • src/lib/actions/sandbox/rebuild-prepared-recovery.ts
  • src/lib/actions/sandbox/rebuild-provider-preflight.test.ts
  • src/lib/actions/sandbox/rebuild-provider-preflight.ts
  • src/lib/actions/sandbox/rebuild-recreate-observability.test.ts
  • src/lib/actions/sandbox/rebuild-recreate-phase.ts
  • src/lib/actions/sandbox/rebuild-registry-rollback.test.ts
  • src/lib/actions/sandbox/rebuild-registry-rollback.ts
  • src/lib/actions/sandbox/rebuild-restore-forwarding.test.ts
  • src/lib/actions/sandbox/rebuild-restore-phase.test.ts
  • src/lib/actions/sandbox/rebuild-restore-phase.ts
  • src/lib/actions/sandbox/rebuild-resume-config.test.ts
  • src/lib/actions/sandbox/rebuild-resume-config.ts
  • src/lib/actions/sandbox/rebuild-resume-preflight.ts
  • src/lib/actions/sandbox/rebuild-resume-reasoning.test.ts
  • src/lib/actions/sandbox/rebuild-resume-session.test.ts
  • src/lib/actions/sandbox/rebuild-resume-session.ts
  • src/lib/actions/sandbox/rebuild-resume-snapshot.test.ts
  • src/lib/actions/sandbox/rebuild-shields-finally.test.ts
  • src/lib/actions/sandbox/rebuild-shields-phase.ts
  • src/lib/actions/sandbox/rebuild-shields.ts
  • src/lib/actions/sandbox/rebuild-target-config.ts
  • src/lib/actions/sandbox/rebuild-target-preflight.ts
  • src/lib/actions/sandbox/rebuild-target-runtime.test.ts
  • src/lib/actions/sandbox/rebuild-target-runtime.ts
  • src/lib/actions/sandbox/rebuild-target-staging.test.ts
  • src/lib/actions/sandbox/rebuild-target-staging.ts
  • src/lib/actions/sandbox/rebuild-usage-notice.test.ts
  • src/lib/actions/sandbox/rebuild-usage-notice.ts
  • src/lib/actions/sandbox/rebuild.ts
  • src/lib/actions/sandbox/reconcile-session-models.test.ts
  • src/lib/actions/sandbox/reconcile-session-models.ts
  • src/lib/actions/sandbox/runtime-env.test.ts
  • src/lib/actions/sandbox/runtime-env.ts
  • src/lib/actions/sandbox/sandbox-container-owner.ts
  • src/lib/actions/sandbox/sandbox-exec-output.test.ts
  • src/lib/actions/sandbox/sandbox-exec-output.ts
  • src/lib/actions/sandbox/sandbox-gateway-routing.test.ts
  • src/lib/actions/sandbox/sandbox-gateway-routing.ts
  • src/lib/actions/sandbox/sessions/delete.test.ts
  • src/lib/actions/sandbox/sessions/delete.ts
  • src/lib/actions/sandbox/sessions/export.test.ts
  • src/lib/actions/sandbox/sessions/export.ts
  • src/lib/actions/sandbox/sessions/gateway-rpc-call.test.ts
  • src/lib/actions/sandbox/sessions/gateway-rpc-envelope.ts
  • src/lib/actions/sandbox/sessions/gateway-rpc.test.ts
  • src/lib/actions/sandbox/sessions/gateway-rpc.ts
  • src/lib/actions/sandbox/sessions/passthrough.test.ts
  • src/lib/actions/sandbox/sessions/passthrough.ts
  • src/lib/actions/sandbox/sessions/paths.test.ts
  • src/lib/actions/sandbox/sessions/paths.ts
  • src/lib/actions/sandbox/sessions/reset.test.ts
  • src/lib/actions/sandbox/sessions/reset.ts
  • src/lib/actions/sandbox/sessions/session-index.test.ts
  • src/lib/actions/sandbox/sessions/session-index.ts
  • src/lib/actions/sandbox/skill-install.test.ts
  • src/lib/actions/sandbox/skill-install.ts
  • src/lib/actions/sandbox/snapshot-auto-create-failure.test.ts
  • src/lib/actions/sandbox/snapshot-create-stream-test-types.ts
  • src/lib/actions/sandbox/snapshot-restore-clone-ports.test.ts
  • src/lib/actions/sandbox/snapshot-restore-lifecycle.test.ts
  • src/lib/actions/sandbox/snapshot-restore-observability-policy.test.ts
  • src/lib/actions/sandbox/snapshot-restore-observability-reconciliation.test.ts
  • src/lib/actions/sandbox/snapshot-restore-test-fixture.ts
  • src/lib/actions/sandbox/snapshot.test.ts
  • src/lib/actions/sandbox/snapshot.ts
  • src/lib/actions/sandbox/start.test.ts
  • src/lib/actions/sandbox/start.ts
  • src/lib/actions/sandbox/status-flow.test.ts
  • src/lib/actions/sandbox/status-inference.test.ts
  • src/lib/actions/sandbox/status-lookup-rendering.test.ts
  • src/lib/actions/sandbox/status-lookup-rendering.ts
  • src/lib/actions/sandbox/status-preflight.ts
  • src/lib/actions/sandbox/status-snapshot-inference-health.test.ts
  • src/lib/actions/sandbox/status-snapshot-route-drift.test.ts
  • src/lib/actions/sandbox/status-snapshot.ts
  • src/lib/actions/sandbox/status-text.ts
  • src/lib/actions/sandbox/status.test.ts
  • src/lib/actions/sandbox/status.ts
  • src/lib/actions/sandbox/stop.test.ts
  • src/lib/actions/sandbox/stop.ts
  • src/lib/actions/sandbox/stopped-sandbox-backup.test.ts
  • src/lib/actions/sandbox/stopped-sandbox-backup.ts
  • src/lib/actions/sandbox/supervisor-relaunch.test.ts
  • src/lib/actions/sandbox/supervisor-relaunch.ts
  • src/lib/actions/sandbox/terminal-connect-probe.test.ts
  • src/lib/actions/sandbox/terminal-connect-probe.ts
  • src/lib/actions/sandbox/terminal-runtime-health.test.ts
  • src/lib/actions/sandbox/terminal-runtime-health.ts
  • src/lib/actions/sandbox/trusted-proxy-env.test.ts
  • src/lib/actions/sandbox/trusted-proxy-env.ts
  • src/lib/actions/sandbox/upload.test.ts
  • src/lib/actions/sandbox/upload.ts
  • src/lib/actions/sandbox/vm-dns-monkeypatch.test.ts
  • src/lib/actions/sandbox/vm-dns-monkeypatch.ts
  • src/lib/actions/sandbox/warmup-session.ts
  • src/lib/actions/sandbox/wipe-state.ts
  • src/lib/actions/uninstall/hermes-forward-watcher-cleanup.ts
  • src/lib/actions/uninstall/hermes-forward-watcher-installer.test.ts
  • src/lib/actions/uninstall/openrouter-runtime-adapter-cleanup.test.ts
  • src/lib/actions/uninstall/openrouter-runtime-adapter-cleanup.ts
  • src/lib/actions/uninstall/plan.test.ts
  • src/lib/actions/uninstall/plan.ts
  • src/lib/actions/uninstall/run-plan-gateway-segregation.test.ts
  • src/lib/actions/uninstall/run-plan-hermes-forward-watcher.test.ts
  • src/lib/actions/uninstall/run-plan-preserved-registry.test.ts
  • src/lib/actions/uninstall/run-plan.test.ts
  • src/lib/actions/uninstall/run-plan.ts
  • src/lib/actions/update.test.ts
  • src/lib/actions/update.ts
  • src/lib/actions/upgrade-sandboxes-preflight.test.ts
  • src/lib/actions/upgrade-sandboxes-recovery.test.ts
  • src/lib/actions/upgrade-sandboxes.ts
  • src/lib/adapters/dns/resolve.test.ts
  • src/lib/adapters/dns/resolve.ts
  • src/lib/adapters/docker/container.ts
  • src/lib/adapters/docker/exec.ts
  • src/lib/adapters/docker/image.ts
  • src/lib/adapters/docker/index.test.ts
  • src/lib/adapters/docker/index.ts
  • src/lib/adapters/docker/inspect.ts
  • src/lib/adapters/docker/pull.test.ts
  • src/lib/adapters/docker/pull.ts
  • src/lib/adapters/docker/runtime.test.ts
  • src/lib/adapters/docker/runtime.ts
  • src/lib/adapters/docker/volume.ts
  • src/lib/adapters/fs/build-context-fingerprint.test.ts
  • src/lib/adapters/fs/build-context-fingerprint.ts
  • src/lib/adapters/http/auth-config-test-helpers.test.ts
  • src/lib/adapters/http/auth-config-test-helpers.ts
  • src/lib/adapters/http/auth-config.test.ts
  • src/lib/adapters/http/auth-config.ts
  • src/lib/adapters/http/curl-args.test.ts
  • src/lib/adapters/http/curl-args.ts
  • src/lib/adapters/http/probe.test.ts
  • src/lib/adapters/http/probe.ts
  • src/lib/adapters/http/validation-session.test.ts
  • src/lib/adapters/http/validation-session.ts
  • src/lib/adapters/openshell/client.test.ts
  • src/lib/adapters/openshell/client.ts
  • src/lib/adapters/openshell/gateway-drift.test.ts
  • src/lib/adapters/openshell/gateway-drift.ts
  • src/lib/adapters/openshell/hermes-forward-watcher.ts
  • src/lib/adapters/openshell/resolve.test.ts
  • src/lib/adapters/openshell/resolve.ts
  • src/lib/adapters/openshell/runtime-capabilities.ts
  • src/lib/adapters/openshell/runtime.ts
  • src/lib/adapters/openshell/timeouts.test.ts
  • src/lib/adapters/stdio.ts
  • src/lib/advisories/checks/host/cdi.ts
  • src/lib/advisories/checks/host/common.ts
  • src/lib/advisories/checks/host/docker.test.ts
  • src/lib/advisories/checks/host/docker.ts
  • src/lib/advisories/checks/host/index.test.ts
  • src/lib/advisories/checks/host/index.ts
  • src/lib/advisories/checks/host/runtime.test.ts
  • src/lib/advisories/checks/host/runtime.ts
  • src/lib/advisories/checks/host/toolchain.test.ts
  • src/lib/advisories/checks/host/toolchain.ts
  • src/lib/advisories/presenter.test.ts
  • src/lib/advisories/presenter.ts
  • src/lib/advisories/registry.test.ts
  • src/lib/advisories/registry.ts
  • src/lib/advisories/runner.test.ts
  • src/lib/advisories/runner.ts
  • src/lib/advisories/types.ts
  • src/lib/agent/aliases.ts
  • src/lib/agent/base-image-hermes-resolution.test.ts
  • src/lib/agent/base-image-hermes.test.ts
  • src/lib/agent/base-image.test.ts
  • src/lib/agent/base-image.ts
  • src/lib/agent/binary-availability.ts
  • src/lib/agent/dashboard-ui.ts
  • src/lib/agent/deep-agents-code-base-image.test.ts
  • src/lib/agent/deep-agents-code-base-image.ts
  • src/lib/agent/definition-types.ts
  • src/lib/agent/defs.test.ts
  • src/lib/agent/defs.ts
  • src/lib/agent/gateway-restart-markers.ts
  • src/lib/agent/gateway-restart-scripts.ts
  • src/lib/agent/gateway-script-shared.ts
  • src/lib/agent/hermes-recovery-boundary-fixtures.ts
  • src/lib/agent/list-command.test.ts
  • src/lib/agent/list-command.ts
  • src/lib/agent/manifest-readers.ts
  • src/lib/agent/onboard-terminal-fixtures.test.ts
  • src/lib/agent/onboard-terminal-fixtures.ts
  • src/lib/agent/onboard-terminal.test.ts
  • src/lib/agent/onboard-web-auth.test.ts
  • src/lib/agent/onboard.test.ts
  • src/lib/agent/onboard.ts
  • src/lib/agent/runtime-auth-state-dirs.test.ts
  • src/lib/agent/runtime-manifest.ts
  • src/lib/agent/runtime-recovery-preload.test.ts
  • src/lib/agent/runtime-recovery-preload.ts
  • src/lib/agent/runtime-terminal.test.ts
  • src/lib/agent/runtime.test.ts
  • src/lib/agent/runtime.ts
  • src/lib/agent/state-file-restore-reader.test.ts
  • src/lib/agent/state-file-restore-reader.ts
  • src/lib/agent/terminal-smoke.ts
  • src/lib/agent/terminal-version-drift.test.ts
  • src/lib/agent/terminal-version-drift.ts
  • src/lib/agent/terminal-version-enforcement.ts
  • src/lib/agent/web-auth-ui.ts
  • src/lib/agent/web-auth.ts
  • src/lib/build-context.test.ts
  • src/lib/build-context.ts
  • src/lib/channel-runtime-status.test.ts
  • src/lib/channel-runtime-status.ts
  • src/lib/cli/argv-normalizer.test.ts
  • src/lib/cli/banner.ts
  • src/lib/cli/bare-connect-routing.ts
  • src/lib/cli/branding.test.ts
  • src/lib/cli/branding.ts
  • src/lib/cli/command-display.ts
  • src/lib/cli/command-registry.test.ts
  • src/lib/cli/command-registry.ts
  • src/lib/cli/flag-helpers.ts
  • src/lib/cli/generate-oclif-metadata-manifest.ts
  • src/lib/cli/inference-set-help.ts
  • src/lib/cli/logger.test.ts
  • src/lib/cli/logger.ts
  • src/lib/cli/nemoclaw-oclif-command.test.ts
  • src/lib/cli/nemoclaw-oclif-command.ts
  • src/lib/cli/oclif-command-metadata.test.ts
  • src/lib/cli/oclif-metadata.test.ts
  • src/lib/cli/oclif-metadata.ts
  • src/lib/cli/oclif-pattern-discovery.test.ts
  • src/lib/cli/oclif-runner.test.ts
  • src/lib/cli/oclif-runner.ts
  • src/lib/cli/public-argv-translation.test.ts
  • src/lib/cli/public-argv-translation.ts
  • src/lib/cli/public-dispatch.ts
  • src/lib/cli/public-display-agents.ts
  • src/lib/cli/public-display-defaults.ts
  • src/lib/cli/public-display-layout.ts
  • src/lib/cli/public-display-mcp.test.ts
  • src/lib/cli/public-display-mcp.ts
  • src/lib/cli/public-display-sessions.ts
  • src/lib/cli/public-route-metadata.ts
  • src/lib/cli/stdout-guard.ts
  • src/lib/cli/terminal-style.test.ts
  • src/lib/cli/terminal-style.ts
  • src/lib/cluster-image-patch.test.ts
  • src/lib/cluster-image-patch.ts
  • src/lib/core/errno.test.ts
  • src/lib/core/errno.ts
  • src/lib/core/gateway-address.test.ts
  • src/lib/core/gateway-address.ts
  • src/lib/core/json-types.test.ts
  • src/lib/core/json-types.ts
  • src/lib/core/non-interactive.test.ts
  • src/lib/core/non-interactive.ts
  • src/lib/core/phase-activity.test.ts
  • src/lib/core/phase-activity.ts
  • src/lib/core/ports.test.ts
  • src/lib/core/ports.ts
  • src/lib/core/process-exit.test.ts
  • src/lib/core/process-exit.ts
  • src/lib/core/prompt-activity.test.ts
  • src/lib/core/prompt-activity.ts
  • src/lib/core/require-value.test.ts
  • src/lib/core/shell-quote.test.ts
  • src/lib/core/stdin.test.ts
  • src/lib/core/stdin.ts
  • src/lib/core/url-utils.test.ts
  • src/lib/core/url-utils.ts
  • src/lib/core/version.test.ts
  • src/lib/core/version.ts
  • src/lib/core/wait.test.ts
  • src/lib/core/wait.ts
  • src/lib/coverage-hotspots.test.ts
  • src/lib/credentials/command-support.ts
  • src/lib/credentials/provider-list.ts
  • src/lib/credentials/store.ts
  • src/lib/dashboard-url-command.test.ts
  • src/lib/dashboard-url-command.ts
  • src/lib/dashboard/contract.test.ts
  • src/lib/dashboard/contract.ts
  • src/lib/deploy/index.test.ts
  • src/lib/deploy/index.ts
  • src/lib/diagnostics/debug-command.test.ts
  • src/lib/diagnostics/debug-command.ts
  • src/lib/diagnostics/debug.test.ts
  • src/lib/diagnostics/debug.ts
  • src/lib/diagnostics/tarball.ts
  • src/lib/domain/backup-failure.test.ts
  • src/lib/domain/backup-failure.ts
  • src/lib/domain/dev/npm-link-or-shim.test.ts
  • src/lib/domain/dns/coredns.test.ts
  • src/lib/domain/dns/coredns.ts
  • src/lib/domain/dns/setup-proxy.test.ts
  • src/lib/domain/duration.test.ts
  • src/lib/domain/installer/npm.test.ts
  • src/lib/domain/installer/npm.ts
  • src/lib/domain/installer/provider.test.ts
  • src/lib/domain/installer/provider.ts
  • src/lib/domain/installer/ref.test.ts
  • src/lib/domain/installer/ref.ts
  • src/lib/domain/installer/version.test.ts
  • src/lib/domain/installer/version.ts
  • src/lib/domain/lifecycle/options.test.ts
  • src/lib/domain/lifecycle/options.ts
  • src/lib/domain/maintenance/images.test.ts
  • src/lib/domain/maintenance/orphan-detection.test.ts
  • src/lib/domain/maintenance/orphan-detection.ts
  • src/lib/domain/maintenance/upgrade.test.ts
  • src/lib/domain/maintenance/upgrade.ts
  • src/lib/domain/sandbox/connect-env.test.ts
  • src/lib/domain/sandbox/connect-env.ts
  • src/lib/domain/sandbox/destroy.test.ts
  • src/lib/domain/sandbox/destroy.ts
  • src/lib/domain/sandbox/image-tag.test.ts
  • src/lib/domain/sandbox/image-tag.ts
  • src/lib/domain/sandbox/logs.test.ts
  • src/lib/domain/sandbox/logs.ts
  • src/lib/domain/uninstall/hermes-forward-watcher.ts
  • src/lib/domain/uninstall/messaging.test.ts
  • src/lib/domain/uninstall/messaging.ts
  • src/lib/domain/uninstall/paths.test.ts
  • src/lib/domain/uninstall/paths.ts
  • src/lib/domain/uninstall/plan.test.ts
  • src/lib/domain/uninstall/plan.ts
  • src/lib/domain/uninstall/shims.test.ts
  • src/lib/domain/uninstall/shims.ts
  • src/lib/gateway-runtime-action.test.ts
  • src/lib/gateway-runtime-action.ts
  • src/lib/gateway-token-command.test.ts
  • src/lib/gateway-token-command.ts
  • src/lib/hermes-dashboard.test.ts
  • src/lib/hermes-dashboard.ts
  • src/lib/hermes-provider-auth.test.ts
  • src/lib/hermes-provider-auth.ts
  • src/lib/hermes-proxy-api-key.ts
  • src/lib/hermes-tool-gateway-broker.ts
  • src/lib/host-qr-handlers.ts
  • src/lib/inference/README.md
  • src/lib/inference/bedrock-runtime-adapter.test.ts
  • src/lib/inference/bedrock-runtime-adapter.ts
  • src/lib/inference/bedrock-runtime.test.ts
  • src/lib/inference/bedrock-runtime.ts
  • src/lib/inference/compatible-endpoint-context.test.ts
  • src/lib/inference/compatible-endpoint-context.ts
  • src/lib/inference/config.test.ts
  • src/lib/inference/config.ts
  • src/lib/inference/context-window.test.ts
  • src/lib/inference/context-window.ts
  • src/lib/inference/endpoint-ssrf-preflight.test.ts
  • src/lib/inference/endpoint-ssrf-preflight.ts
  • src/lib/inference/gateway-route-compatibility.test.ts
  • src/lib/inference/gateway-route-compatibility.ts
  • src/lib/inference/gateway-route-mutation-lock.test.ts
  • src/lib/inference/gateway-route-mutation-lock.ts
  • src/lib/inference/gpu-trust.test.ts
  • src/lib/inference/gpu-trust.ts
  • src/lib/inference/health.test.ts
  • src/lib/inference/health.ts
  • src/lib/inference/live.test.ts
  • src/lib/inference/local-adapter-lifecycle.test.ts
  • src/lib/inference/local-adapter-lifecycle.ts
  • src/lib/inference/local.test.ts
  • src/lib/inference/local.ts
  • src/lib/inference/max-tokens-field.test.ts
  • src/lib/inference/max-tokens-field.ts
  • src/lib/inference/model-prompts.test.ts
  • src/lib/inference/model-prompts.ts
  • src/lib/inference/nim-igpu-compute-constrained.test.ts
  • src/lib/inference/nim-route-identity.test.ts
  • src/lib/inference/nim.test.ts
  • src/lib/inference/nim.ts
  • src/lib/inference/nous-models.test.ts
  • src/lib/inference/nous-models.ts
  • src/lib/inference/nvidia-featured-models.test.ts
  • src/lib/inference/nvidia-featured-models.ts
  • src/lib/inference/ollama-model-registry.test.ts
  • src/lib/inference/ollama-model-registry.ts
  • src/lib/inference/ollama-probe-timeout.test.ts
  • src/lib/inference/ollama-runtime-context.test.ts
  • src/lib/inference/ollama-runtime-context.ts
  • src/lib/inference/ollama-version.test.ts
  • src/lib/inference/ollama-version.ts
  • src/lib/inference/ollama/model-discovery.test.ts
  • src/lib/inference/ollama/model-discovery.ts
  • src/lib/inference/ollama/model-size.test.ts
  • src/lib/inference/ollama/model-size.ts
  • src/lib/inference/ollama/process.ts
  • src/lib/inference/ollama/proxy.test.ts
  • src/lib/inference/ollama/proxy.ts
  • src/lib/inference/ollama/windows.test.ts
  • src/lib/inference/ollama/windows.ts
  • src/lib/inference/onboard-host-docker-internal.test.ts
  • src/lib/inference/onboard-probes-curl-harness.ts
  • src/lib/inference/onboard-probes-responses-fallback.test.ts
  • src/lib/inference/onboard-probes.test.ts
  • src/lib/inference/onboard-probes.ts
  • src/lib/inference/openai-probe-models.ts
  • src/lib/inference/openai-validation-session-auth.test.ts
  • src/lib/inference/openai-validation-session-fallback.test.ts
  • src/lib/inference/openai-validation-session.test-helpers.ts
  • src/lib/inference/openai-validation-session.test.ts
  • src/lib/inference/openai-validation-session.ts
  • src/lib/inference/openrouter-runtime-adapter-common.ts
  • src/lib/inference/openrouter-runtime-adapter-entry.ts
  • src/lib/inference/openrouter-runtime-adapter-forward.ts
  • src/lib/inference/openrouter-runtime-adapter-lifecycle.ts
  • src/lib/inference/openrouter-runtime-adapter-server.ts
  • src/lib/inference/openrouter-runtime-adapter.test.ts
  • src/lib/inference/openrouter-runtime-adapter.ts
  • src/lib/inference/openrouter.ts
  • src/lib/inference/probe-anthropic.test.ts
  • src/lib/inference/probe-anthropic.ts
  • src/lib/inference/probe-http-helpers.test.ts
  • src/lib/inference/probe-http-helpers.ts
  • src/lib/inference/probe-retry.ts
  • src/lib/inference/provider-models.test.ts
  • src/lib/inference/provider-models.ts
  • src/lib/inference/selection.test.ts
  • src/lib/inference/selection.ts
  • src/lib/inference/vllm-docker-env.test.ts
  • src/lib/inference/vllm-docker-env.ts
  • src/lib/inference/vllm-install-storage.test.ts
  • src/lib/inference/vllm-models.test.ts
  • src/lib/inference/vllm-models.ts
  • src/lib/inference/vllm-prompt.ts
  • src/lib/inference/vllm-runtime-context.test.ts
  • src/lib/inference/vllm-runtime-context.ts
  • src/lib/inference/vllm-storage.test.ts
  • src/lib/inference/vllm-storage.ts
  • src/lib/inference/vllm.test.ts
  • src/lib/inference/vllm.ts
  • src/lib/inference/web-search.test.ts
  • src/lib/inference/web-search.ts
  • src/lib/inventory/index.test.ts
  • src/lib/inventory/index.ts
  • src/lib/messaging-channel-config.test.ts
  • src/lib/messaging-channel-config.ts
  • src/lib/messaging-conflict.test.ts
  • src/lib/messaging-conflict.ts
  • src/lib/messaging/AGENTS.md
  • src/lib/messaging/README.md
  • src/lib/messaging/applier/agent-config.ts
  • src/lib/messaging/applier/build/messaging-build-applier.mts
  • src/lib/messaging/applier/conflict-detection-entry.test.ts
  • src/lib/messaging/applier/conflict-detection-multi-credential.test.ts
  • src/lib/messaging/applier/conflict-detection-overlap.test.ts
  • src/lib/messaging/applier/conflict-detection-plan.test.ts
  • src/lib/messaging/applier/conflict-detection-slack-gateway.test.ts
  • src/lib/messaging/applier/conflict-detection/entries.ts
  • src/lib/messaging/applier/conflict-detection/index.ts
  • src/lib/messaging/applier/conflict-detection/manifest-metadata.ts
  • src/lib/messaging/applier/conflict-detection/plan.ts
  • src/lib/messaging/applier/conflict-detection/registry.ts
  • src/lib/messaging/applier/conflict-detection/slack-socket-mode.ts
  • src/lib/messaging/applier/conflict-detection/types.ts
  • src/lib/messaging/applier/hook-phases.test.ts
  • src/lib/messaging/applier/hook-phases.ts
  • src/lib/messaging/applier/host-state-applier.test.ts
  • src/lib/messaging/applier/host-state-applier.ts
  • src/lib/messaging/applier/index.ts
  • src/lib/messaging/applier/openshell-provider.ts
  • src/lib/messaging/applier/plan-filter.ts
  • src/lib/messaging/applier/policy.ts
  • src/lib/messaging/applier/setup-applier.test.ts
  • src/lib/messaging/applier/setup-applier.ts
  • src/lib/messaging/applier/types.ts
  • src/lib/messaging/channels/built-ins.ts
  • src/lib/messaging/channels/channel-health.ts
  • src/lib/messaging/channels/discord/hooks/index.ts
  • src/lib/messaging/channels/discord/hooks/openclaw-bridge-health.ts
  • src/lib/messaging/channels/discord/manifest.ts
  • src/lib/messaging/channels/discord/policy/hermes.yaml
  • src/lib/messaging/channels/discord/policy/openclaw.yaml
  • src/lib/messaging/channels/discord/rendered-config-parser.test.ts
  • src/lib/messaging/channels/discord/rendered-config-parser.ts
  • src/lib/messaging/channels/discord/template-resolver.ts
  • src/lib/messaging/channels/index.ts
  • src/lib/messaging/channels/manifests.test.ts
  • src/lib/messaging/channels/metadata.test.ts
  • src/lib/messaging/channels/metadata.ts
  • src/lib/messaging/channels/openclaw-bridge-health.test.ts
  • src/lib/messaging/channels/openclaw-bridge-health.ts
  • src/lib/messaging/channels/policy.test.ts
  • src/lib/messaging/channels/policy.ts
  • src/lib/messaging/channels/rendered-config-parser-utils.ts
  • src/lib/messaging/channels/rendered-config-parser.ts
  • src/lib/messaging/channels/slack/hooks/credential-validation.test.ts
  • src/lib/messaging/channels/slack/hooks/credential-validation.ts
  • src/lib/messaging/channels/slack/hooks/index.ts
  • src/lib/messaging/channels/slack/hooks/openclaw-bridge-health.ts
  • src/lib/messaging/channels/slack/hooks/socket-mode-gateway-conflict.test.ts
  • src/lib/messaging/channels/slack/hooks/socket-mode-gateway-conflict.ts
  • src/lib/messaging/channels/slack/hooks/socket-mode-gateway-status.test.ts
  • src/lib/messaging/channels/slack/hooks/socket-mode-gateway-status.ts
  • src/lib/messaging/channels/slack/hooks/validate-credentials.test.ts
  • src/lib/messaging/channels/slack/hooks/validate-credentials.ts
  • src/lib/messaging/channels/slack/manifest.ts
  • src/lib/messaging/channels/slack/policy/hermes.yaml
  • src/lib/messaging/channels/slack/policy/openclaw.yaml
  • src/lib/messaging/channels/slack/rendered-config-parser.ts
  • src/lib/messaging/channels/slack/runtime/slack-channel-guard.ts
  • src/lib/messaging/channels/slack/template-resolver.ts
  • src/lib/messaging/channels/teams/hooks/host-forward-port-conflict.test.ts
  • src/lib/messaging/channels/teams/hooks/host-forward-port-conflict.ts
  • src/lib/messaging/channels/teams/hooks/index.ts
  • src/lib/messaging/channels/teams/manifest.ts
  • src/lib/messaging/channels/teams/policy/hermes.yaml
  • src/lib/messaging/channels/teams/policy/openclaw.yaml
  • src/lib/messaging/channels/teams/rendered-config-parser.ts
  • src/lib/messaging/channels/teams/runtime/msteams-message-hints.ts
  • src/lib/messaging/channels/teams/template-resolver.ts
  • src/lib/messaging/channels/telegram/hooks/allowlist-aliases.test.ts
  • src/lib/messaging/channels/telegram/hooks/allowlist-aliases.ts
  • src/lib/messaging/channels/telegram/hooks/gateway-conflict-status.test.ts
  • src/lib/messaging/channels/telegram/hooks/gateway-conflict-status.ts
  • src/lib/messaging/channels/telegram/hooks/get-me-reachability.test.ts
  • src/lib/messaging/channels/telegram/hooks/get-me-reachability.ts
  • src/lib/messaging/channels/telegram/hooks/index.ts
  • src/lib/messaging/channels/telegram/hooks/openclaw-bridge-health.ts
  • src/lib/messaging/channels/telegram/hooks/status-health-eval.test.ts
  • src/lib/messaging/channels/telegram/hooks/status-health-eval.ts
  • src/lib/messaging/channels/telegram/hooks/status-health.test.ts
  • src/lib/messaging/channels/telegram/hooks/status-health.ts
  • src/lib/messaging/channels/telegram/manifest.ts
  • src/lib/messaging/channels/telegram/policy/hermes.yaml
  • src/lib/messaging/channels/telegram/policy/openclaw.yaml
  • src/lib/messaging/channels/telegram/rendered-config-parser.test.ts
  • src/lib/messaging/channels/telegram/rendered-config-parser.ts
  • src/lib/messaging/channels/telegram/runtime/telegram-diagnostics.ts
  • src/lib/messaging/channels/telegram/template-resolver.test.ts
  • src/lib/messaging/channels/telegram/template-resolver.ts
  • src/lib/messaging/channels/template-resolver-utils.ts
  • src/lib/messaging/channels/template-resolver.ts
  • src/lib/messaging/channels/wechat/hooks/health-check.ts
  • src/lib/messaging/channels/wechat/hooks/host-qr-login-runtime.ts
  • src/lib/messaging/channels/wechat/hooks/ilink-login.ts
  • src/lib/messaging/channels/wechat/hooks/implementations.test.ts
  • src/lib/messaging/channels/wechat/hooks/index.ts
  • src/lib/messaging/channels/wechat/hooks/seed-openclaw-account.ts
  • src/lib/messaging/channels/wechat/ilink-base-url.ts
  • src/lib/messaging/channels/wechat/login.test.ts
  • src/lib/messaging/channels/wechat/login.ts
  • src/lib/messaging/channels/wechat/manifest.ts
  • src/lib/messaging/channels/wechat/policy/hermes.yaml
  • src/lib/messaging/channels/wechat/policy/openclaw.yaml
  • src/lib/messaging/channels/wechat/qr.test.ts
  • src/lib/messaging/channels/wechat/qr.ts
  • src/lib/messaging/channels/wechat/rendered-config-parser.ts
  • src/lib/messaging/channels/wechat/runtime/wechat-diagnostics.ts
  • src/lib/messaging/channels/wechat/template-resolver.ts
  • src/lib/messaging/channels/whatsapp/hooks/index.ts
  • src/lib/messaging/channels/whatsapp/hooks/status-health-eval.test.ts
  • src/lib/messaging/channels/whatsapp/hooks/status-health-eval.ts
  • src/lib/messaging/channels/whatsapp/hooks/status-health.test.ts
  • src/lib/messaging/channels/whatsapp/hooks/status-health.ts
  • src/lib/messaging/channels/whatsapp/manifest.ts
  • src/lib/messaging/channels/whatsapp/policy/hermes.yaml
  • src/lib/messaging/channels/whatsapp/policy/openclaw.yaml
  • src/lib/messaging/channels/whatsapp/rendered-config-parser.ts
  • src/lib/messaging/channels/whatsapp/runtime/whatsapp-qr-compact-test-helpers.ts
  • src/lib/messaging/channels/whatsapp/runtime/whatsapp-qr-compact.test.ts
  • src/lib/messaging/channels/whatsapp/runtime/whatsapp-qr-compact.ts
  • src/lib/messaging/channels/whatsapp/template-resolver.ts
  • src/lib/messaging/compiler/engines/agent-render-engine.ts
  • src/lib/messaging/compiler/engines/build-step-engine.ts
  • src/lib/messaging/compiler/engines/credential-binding-engine.ts
  • src/lib/messaging/compiler/engines/health-check-engine.ts
  • src/lib/messaging/compiler/engines/host-forward-engine.ts
  • src/lib/messaging/compiler/engines/policy-resolver.ts
  • src/lib/messaging/compiler/engines/runtime-setup-engine.ts
  • src/lib/messaging/compiler/engines/state-update-engine.ts
  • src/lib/messaging/compiler/engines/template.ts
  • src/lib/messaging/compiler/index.ts
  • src/lib/messaging/compiler/manifest-compiler.test.ts
  • src/lib/messaging/compiler/manifest-compiler.ts
  • src/lib/messaging/compiler/types.ts
  • src/lib/messaging/compiler/workflow-planner-hermes-slack.test.ts
  • src/lib/messaging/compiler/workflow-planner.test.ts
  • src/lib/messaging/compiler/workflow-planner.ts
  • src/lib/messaging/diagnostics.test.ts
  • src/lib/messaging/diagnostics.ts
  • src/lib/messaging/hooks/builtins.ts
  • src/lib/messaging/hooks/common/config-prompt.test.ts
  • src/lib/messaging/hooks/common/config-prompt.ts
  • src/lib/messaging/hooks/common/index.ts
  • src/lib/messaging/hooks/common/static-outputs.ts
  • src/lib/messaging/hooks/common/token-paste.test.ts
  • src/lib/messaging/hooks/common/token-paste.ts
  • src/lib/messaging/hooks/errors.ts
  • src/lib/messaging/hooks/hook-runner.test.ts
  • src/lib/messaging/hooks/hook-runner.ts
  • src/lib/messaging/hooks/index.ts
  • src/lib/messaging/hooks/registry.ts
  • src/lib/messaging/hooks/status-runner.test.ts
  • src/lib/messaging/hooks/status-runner.ts
  • src/lib/messaging/hooks/types.ts
  • src/lib/messaging/host-forward.ts
  • src/lib/messaging/index.ts
  • src/lib/messaging/manifest/registry.test.ts
  • src/lib/messaging/manifest/registry.ts
  • src/lib/messaging/manifest/types.test.ts
  • src/lib/messaging/manifest/types.ts
  • src/lib/messaging/persisted-placeholders.test.ts
  • src/lib/messaging/persisted-placeholders.ts
  • src/lib/messaging/persistence.ts
  • src/lib/messaging/plan-validation.test.ts
  • src/lib/messaging/plan-validation.ts
  • src/lib/messaging/provider-placeholders.ts
  • src/lib/messaging/utils.test.ts
  • src/lib/messaging/utils.ts
  • src/lib/name-validation.ts
  • src/lib/oauth-device-code.test.ts
  • src/lib/oauth-device-code.ts
  • src/lib/onboard.ts
  • src/lib/onboard/README.md
  • src/lib/onboard/__test-helpers__/compatible-endpoint-smoke-helpers.ts
  • src/lib/onboard/__test-helpers__/corporate-ca-fixtures.ts
  • src/lib/onboard/__test-helpers__/docker-gpu-patch-fixtures.ts
  • src/lib/onboard/__test-helpers__/machine-recorders.ts
  • src/lib/onboard/__test-helpers__/sandbox-gpu-create-flow.ts
  • src/lib/onboard/__test-helpers__/virtual-clock.ts
  • src/lib/onboard/agent-dashboard-forward.test.ts
  • src/lib/onboard/agent-dashboard-forward.ts
  • src/lib/onboard/agent-fixed-forward.ts
  • src/lib/onboard/agent-flag-help.test.ts
  • src/lib/onboard/agent-flag-help.ts
  • src/lib/onboard/agent-policy-presets.ts
  • src/lib/onboard/agent-resume-state.ts
  • src/lib/onboard/agent-selection.test.ts
  • src/lib/onboard/agent-selection.ts
  • src/lib/onboard/agent-web-auth-token.ts
  • src/lib/onboard/agents-manifest.test.ts
  • src/lib/onboard/agents-manifest.ts
  • src/lib/onboard/authoritative-rebuild-target.test.ts
  • src/lib/onboard/authoritative-rebuild-target.ts
  • src/lib/onboard/base-image-resolution-flow.test.ts
  • src/lib/onboard/base-image-resolution-flow.ts
  • src/lib/onboard/base-image-resolution-metadata.test.ts
  • src/lib/onboard/base-image.ts
  • src/lib/onboard/bedrock-runtime.test.ts
  • src/lib/onboard/bedrock-runtime.ts
  • src/lib/onboard/brave-provider-profile.test.ts
  • src/lib/onboard/brave-provider-profile.ts
  • src/lib/onboard/bridge-dns-preflight.test.ts
  • src/lib/onboard/bridge-dns-preflight.ts
  • src/lib/onboard/build-context-stage.test.ts
  • src/lib/onboard/build-context-stage.ts
  • src/lib/onboard/build-credential-reuse.ts
  • src/lib/onboard/cancel-rollback.test.ts
  • src/lib/onboard/cancel-rollback.ts
  • src/lib/onboard/channel-state.test.ts
  • src/lib/onboard/channel-state.ts
  • src/lib/onboard/checkpoint-record.ts
  • src/lib/onboard/checkpoint-replay.test.ts
  • src/lib/onboard/checkpoint-replay.ts
  • src/lib/onboard/checkpoint-resume-guard.test.ts
  • src/lib/onboard/checkpoint-revalidate.ts
  • src/lib/onboard/child-exit-tracker.test.ts
  • src/lib/onboard/child-exit-tracker.ts
  • src/lib/onboard/command-agents.test.ts
  • src/lib/onboard/command-support.test.ts
  • src/lib/onboard/command-support.ts
  • src/lib/onboard/command.test.ts
  • src/lib/onboard/command.ts
  • src/lib/onboard/compatible-endpoint-smoke-gpt5.test.ts
  • src/lib/onboard/compatible-endpoint-smoke.test.ts
  • src/lib/onboard/compatible-endpoint-smoke.ts
  • src/lib/onboard/config-sync.test.ts
  • src/lib/onboard/container-runtime-resources.ts
  • src/lib/onboard/container-toolkit-bootstrap.ts
  • src/lib/onboard/corporate-ca-env.test.ts
  • src/lib/onboard/corporate-ca-env.ts
  • src/lib/onboard/corporate-ca-host-anchors.test.ts
  • src/lib/onboard/corporate-ca-host-anchors.ts
  • src/lib/onboard/corporate-ca-policy.test.ts
  • src/lib/onboard/corporate-ca-policy.ts
  • src/lib/onboard/corporate-ca-types.ts
  • src/lib/onboard/corporate-ca-validation.test.ts
  • src/lib/onboard/corporate-ca-validation.ts
  • src/lib/onboard/corporate-ca.ts
  • src/lib/onboard/created-sandbox-failure.test.ts
  • src/lib/onboard/created-sandbox-failure.ts
  • src/lib/onboard/created-sandbox-finalization.test.ts
  • src/lib/onboard/created-sandbox-finalization.ts
  • src/lib/onboard/credential-env.test.ts
  • src/lib/onboard/credential-navigation.test.ts
  • src/lib/onboard/credential-navigation.ts
  • src/lib/onboard/credential-provider-registration.test.ts
  • src/lib/onboard/credential-provider-registration.ts
  • src/lib/onboard/custom-build-context.ts
  • src/lib/onboard/custom-openclaw-runtime-diagnosis.test.ts
  • src/lib/onboard/custom-openclaw-runtime-diagnosis.ts
  • src/lib/onboard/dashboard-access.test.ts
  • src/lib/onboard/dashboard-access.ts
  • src/lib/onboard/dashboard-forward-control.ts
  • src/lib/onboard/dashboard-port.test.ts
  • src/lib/onboard/dashboard-port.ts
  • src/lib/onboard/dashboard-preflight-ports.test.ts
  • src/lib/onboard/dashboard-runtime.ts
  • src/lib/onboard/dashboard-web-auth-token.test.ts
  • src/lib/onboard/dashboard.ts
  • src/lib/onboard/dcode-auto-approval.test.ts
  • src/lib/onboard/dcode-auto-approval.ts
  • src/lib/onboard/dcode-selection-drift.test.ts
  • src/lib/onboard/dcode-selection-drift.ts
  • src/lib/onboard/default-preservation.test.ts
  • src/lib/onboard/default-preservation.ts
  • src/lib/onboard/docker-cdi.test.ts
  • src/lib/onboard/docker-cdi.ts
  • src/lib/onboard/docker-command-result.ts
  • src/lib/onboard/docker-driver-gateway-compat-container.test.ts
  • src/lib/onboard/docker-driver-gateway-compat.ts
  • src/lib/onboard/docker-driver-gateway-config-auth-contract.test.ts
  • src/lib/onboard/docker-driver-gateway-config-toml.test.ts
  • src/lib/onboard/docker-driver-gateway-config.ts
  • src/lib/onboard/docker-driver-gateway-cutover.ts
  • src/lib/onboard/docker-driver-gateway-env-config-validation.test.ts
  • src/lib/onboard/docker-driver-gateway-env-deb-override.test.ts
  • src/lib/onboard/docker-driver-gateway-env-service.test.ts
  • src/lib/onboard/docker-driver-gateway-env.test.ts
  • src/lib/onboard/docker-driver-gateway-env.ts
  • src/lib/onboard/docker-driver-gateway-failure.test.ts
  • src/lib/onboard/docker-driver-gateway-failure.ts
  • src/lib/onboard/docker-driver-gateway-jwt-bundle.test.ts
  • src/lib/onboard/docker-driver-gateway-jwt-bundle.ts
  • src/lib/onboard/docker-driver-gateway-launch.test.ts
  • src/lib/onboard/docker-driver-gateway-launch.ts
  • src/lib/onboard/docker-driver-gateway-local-tls-error.test.ts
  • src/lib/onboard/docker-driver-gateway-local-tls.test.ts
  • src/lib/onboard/docker-driver-gateway-local-tls.ts
  • src/lib/onboard/docker-driver-gateway-port-listener.test.ts
  • src/lib/onboard/docker-driver-gateway-port-listener.ts
  • src/lib/onboard/docker-driver-gateway-prelaunch.test.ts
  • src/lib/onboard/docker-driver-gateway-prelaunch.ts
  • src/lib/onboard/docker-driver-gateway-process-identity.test.ts
  • src/lib/onboard/docker-driver-gateway-process-identity.ts
  • src/lib/onboard/docker-driver-gateway-runtime-marker.test.ts
  • src/lib/onboard/docker-driver-gateway-runtime-marker.ts
  • src/lib/onboard/docker-driver-gateway-runtime.test.ts
  • src/lib/onboard/docker-driver-gateway-runtime.ts
  • src/lib/onboard/docker-driver-gateway-service.test.ts
  • src/lib/onboard/docker-driver-gateway-service.ts
  • src/lib/onboard/docker-driver-sandbox-recovery.test.ts
  • src/lib/onboard/docker-driver-sandbox-recovery.ts
  • src/lib/onboard/docker-gpu-diagnostic-redaction.test.ts
  • src/lib/onboard/docker-gpu-diagnostic-redaction.ts
  • src/lib/onboard/docker-gpu-dns-fallback.test.ts
  • src/lib/onboard/docker-gpu-dns-fallback.ts
  • src/lib/onboard/docker-gpu-jetson-groups.test.ts
  • src/lib/onboard/docker-gpu-jetson-groups.ts
  • src/lib/onboard/docker-gpu-local-inference.test.ts
  • src/lib/onboard/docker-gpu-local-inference.ts
  • src/lib/onboard/docker-gpu-patch-clone.test.ts
  • src/lib/onboard/docker-gpu-patch-clone.ts
  • src/lib/onboard/docker-gpu-patch-constants.ts
  • src/lib/onboard/docker-gpu-patch-diagnostics-classification.test.ts
  • src/lib/onboard/docker-gpu-patch-diagnostics-collection.test.ts
  • src/lib/onboard/docker-gpu-patch-diagnostics-network.test.ts
  • src/lib/onboard/docker-gpu-patch-diagnostics.ts
  • src/lib/onboard/docker-gpu-patch-finalize.test.ts
  • src/lib/onboard/docker-gpu-patch-finalize.ts
  • src/lib/onboard/docker-gpu-patch-jetson.test.ts
  • src/lib/onboard/docker-gpu-patch-mode-selection.test.ts
  • src/lib/onboard/docker-gpu-patch-mode.ts
  • src/lib/onboard/docker-gpu-patch-recreate-dns.test.ts
  • src/lib/onboard/docker-gpu-patch-recreate.test.ts
  • src/lib/onboard/docker-gpu-patch-recreate.ts
  • src/lib/onboard/docker-gpu-patch-rollback.test.ts
  • src/lib/onboard/docker-gpu-patch-rollback.ts
  • src/lib/onboard/docker-gpu-patch-types.ts
  • src/lib/onboard/docker-gpu-patch-validation.test.ts
  • src/lib/onboard/docker-gpu-patch-wsl.test.ts
  • src/lib/onboard/docker-gpu-patch.test.ts
  • src/lib/onboard/docker-gpu-patch.ts
  • src/lib/onboard/docker-gpu-pre-rollback-diagnostics.test.ts
  • src/lib/onboard/docker-gpu-pre-rollback-diagnostics.ts
  • src/lib/onboard/docker-gpu-route-consumers.test.ts
  • src/lib/onboard/docker-gpu-route-patch-adapter.ts
  • src/lib/onboard/docker-gpu-route-render.test.ts
  • src/lib/onboard/docker-gpu-route.test.ts
  • src/lib/onboard/docker-gpu-route.ts
  • src/lib/onboard/docker-gpu-sandbox-create-diagnostics.test.ts
  • src/lib/onboard/docker-gpu-sandbox-create-lifecycle.test.ts
  • src/lib/onboard/docker-gpu-sandbox-create-plan.ts
  • src/lib/onboard/docker-gpu-sandbox-create-route-plan.test.ts
  • src/lib/onboard/docker-gpu-sandbox-create.ts
  • src/lib/onboard/docker-gpu-supervisor-reconnect.test.ts
  • src/lib/onboard/docker-gpu-supervisor-reconnect.ts
  • src/lib/onboard/docker-startup-command-agent.ts
  • src/lib/onboard/docker-startup-command-env.ts
  • src/lib/onboard/docker-startup-command-patch.test.ts
  • src/lib/onboard/docker-startup-command-patch.ts
  • src/lib/onboard/docker-startup-command-sandbox-create.test.ts
  • src/lib/onboard/docker-startup-command-sandbox-create.ts
  • src/lib/onboard/dockerfile-node-runtime-refresh.test.ts
  • src/lib/onboard/dockerfile-patch-build-id.test.ts
  • src/lib/onboard/dockerfile-patch-corporate-ca.test.ts
  • src/lib/onboard/dockerfile-patch-dcode-auto-approval.test.ts
  • src/lib/onboard/dockerfile-patch-extra-agents.test.ts
  • src/lib/onboard/dockerfile-patch-hermes-context.test.ts
  • src/lib/onboard/dockerfile-patch-security.test.ts
  • src/lib/onboard/dockerfile-patch.test.ts
  • src/lib/onboard/dockerfile-patch.ts
  • src/lib/onboard/dockerfile-remote-dashboard-bind-contract.test.ts
  • src/lib/onboard/dockerfile-remote-dashboard-bind-contract.ts
  • src/lib/onboard/dockerfile-tool-disclosure-contract.test.ts
  • src/lib/onboard/dockerfile-tool-disclosure-contract.ts
  • src/lib/onboard/entry-options.test.ts
  • src/lib/onboard/entry-options.ts
  • src/lib/onboard/exit-step-failure.test.ts
  • src/lib/onboard/exit-step-failure.ts
  • src/lib/onboard/extra-placeholder-keys.test.ts
  • src/lib/onboard/extra-placeholder-keys.ts
  • src/lib/onboard/extra-provider-diagnostic-parser.ts
  • src/lib/onboard/extra-provider-reconciliation-diagnostics.test.ts
  • src/lib/onboard/extra-provider-reconciliation-probes.test.ts
  • src/lib/onboard/extra-provider-reconciliation.test-fixtures.ts
  • src/lib/onboard/extra-provider-reconciliation.test.ts
  • src/lib/onboard/extra-provider-reconciliation.ts
  • src/lib/onboard/fatal-runtime-preflight.ts
  • src/lib/onboard/finalization-deps.test.ts
  • src/lib/onboard/finalization-deps.ts
  • src/lib/onboard/forward-cleanup.test.ts
  • src/lib/onboard/forward-start.test.ts
  • src/lib/onboard/forward-start.ts
  • src/lib/onboard/gateway-binding.test.ts
  • src/lib/onboard/gateway-binding.ts
  • src/lib/onboard/gateway-bootstrap.ts
  • src/lib/onboard/gateway-container-running.test.ts
  • src/lib/onboard/gateway-container-running.ts
  • src/lib/onboard/gateway-destroy.test.ts
  • src/lib/onboard/gateway-destroy.ts
  • src/lib/onboard/gateway-gpu-passthrough.test.ts
  • src/lib/onboard/gateway-gpu-passthrough.ts
  • src/lib/onboard/gateway-health-wait.test.ts
  • src/lib/onboard/gateway-health-wait.ts
  • src/lib/onboard/gateway-http-readiness.test.ts
  • src/lib/onboard/gateway-http-readiness.ts
  • src/lib/onboard/gateway-lifecycle.ts
  • src/lib/onboard/gateway-port-conflict.test.ts
  • src/lib/onboard/gateway-port-conflict.ts
  • src/lib/onboard/gateway-process-identity.ts
  • src/lib/onboard/gateway-process-target-identity.ts
  • src/lib/onboard/gateway-provider-metadata.test.ts
  • src/lib/onboard/gateway-provider-metadata.ts
  • src/lib/onboard/gateway-recovery.test.ts
  • src/lib/onboard/gateway-recovery.ts
  • src/lib/onboard/gateway-reuse.test.ts
  • src/lib/onboard/gateway-reuse.ts
  • src/lib/onboard/gateway-sandbox-reachability-severity.test.ts
  • src/lib/onboard/gateway-sandbox-reachability.test.ts
  • src/lib/onboard/gateway-sandbox-reachability.ts
  • src/lib/onboard/gateway-stale-port-reuse.test.ts
  • src/lib/onboard/gateway-stale-port-reuse.ts
  • src/lib/onboard/gateway-start-failure-integration.test.ts
  • src/lib/onboard/gateway-start-failure.test.ts
  • src/lib/onboard/gateway-start-failure.ts
  • src/lib/onboard/gateway-tcp-readiness.test.ts
  • src/lib/onboard/gateway-tcp-readiness.ts
  • src/lib/onboard/gpu-recovery.test.ts
  • src/lib/onboard/gpu-recovery.ts
  • src/lib/onboard/hermes-auth.test.ts
  • src/lib/onboard/hermes-auth.ts
  • src/lib/onboard/hermes-dashboard.test.ts
  • src/lib/onboard/hermes-dashboard.ts
  • src/lib/onboard/hermes-managed-tools.test.ts
  • src/lib/onboard/hermes-managed-tools.ts
  • src/lib/onboard/hermes-provider-label.test.ts
  • src/lib/onboard/host-dns-preflight.test.ts
  • src/lib/onboard/host-gateway-process-target.test.ts
  • src/lib/onboard/host-gateway-process.test.ts
  • src/lib/onboard/host-gateway-process.ts
  • src/lib/onboard/host-proxy-env.ts
  • src/lib/onboard/host-qr-dispatch.ts
  • src/lib/onboard/host-service-reachability.test.ts
  • src/lib/onboard/host-service-reachability.ts
  • src/lib/onboard/http-proxy-preflight.test.ts
  • src/lib/onboard/http-proxy-preflight.ts
  • src/lib/onboard/inference-capability-cache.test.ts
  • src/lib/onboard/inference-capability-cache.ts
  • src/lib/onboard/inference-input-capability.ts
  • src/lib/onboard/inference-providers/compatible-endpoint-gateway-route.test.ts
  • src/lib/onboard/inference-providers/compatible-endpoint-gateway-route.ts
  • src/lib/onboard/inference-providers/hermes.test.ts
  • src/lib/onboard/inference-providers/hermes.ts
  • src/lib/onboard/inference-providers/index.ts
  • src/lib/onboard/inference-providers/ollama-local.ts
  • src/lib/onboard/inference-providers/remote-openai-surface.test.ts
  • src/lib/onboard/inference-providers/remote.ts
  • src/lib/onboard/inference-providers/routed.ts
  • src/lib/onboard/inference-providers/types.ts
  • src/lib/onboard/inference-providers/vllm-local.ts
  • src/lib/onboard/inference-route.test.ts
  • src/lib/onboard/inference-route.ts
  • src/lib/onboard/inference-selection-validation.test.ts
  • src/lib/onboard/inference-selection-validation.ts
  • src/lib/onboard/initial-policy-real-policy.test.ts
  • src/lib/onboard/initial-policy.test.ts
  • src/lib/onboard/initial-policy.ts
  • src/lib/onboard/install-ollama-linux-mode.ts
  • src/lib/onboard/install-ollama-linux-upgrade.test.ts
  • src/lib/onboard/install-ollama-linux.test.ts
  • src/lib/onboard/install-ollama-linux.ts
  • src/lib/onboard/install-ollama-macos.test.ts
  • src/lib/onboard/install-ollama-macos.ts
  • src/lib/onboard/landlock-warning.ts
  • src/lib/onboard/legacy-command.test.ts
  • src/lib/onboard/legacy-command.ts
  • src/lib/onboard/lifecycle-contracts.md
  • src/lib/onboard/local-inference-route.test.ts
  • src/lib/onboard/local-inference-route.ts
  • src/lib/onboard/local-inference-topology.test.ts
  • src/lib/onboard/local-inference-topology.ts
  • src/lib/onboard/machine/README.md
  • src/lib/onboard/machine/core-flow-phases.test.ts
  • src/lib/onboard/machine/core-flow-phases.ts
  • src/lib/onboard/machine/definition.test.ts
  • src/lib/onboard/machine/definition.ts
  • src/lib/onboard/machine/events.ts
  • src/lib/onboard/machine/final-flow-phases.runtime.test.ts
  • src/lib/onboard/machine/final-flow-phases.test.ts
  • src/lib/onboard/machine/final-flow-phases.ts
  • src/lib/onboard/machine/flow-context.test.ts
  • src/lib/onboard/machine/flow-context.ts
  • src/lib/onboard/machine/flow-phases/agent-policy-finalization.test.ts
  • src/lib/onboard/machine/flow-phases/agent-policy-finalization.ts
  • src/lib/onboard/machine/flow-phases/preflight-gateway.test.ts
  • src/lib/onboard/machine/flow-phases/preflight-gateway.ts
  • src/lib/onboard/machine/flow-phases/provider-sandbox.test.ts
  • src/lib/onboard/machine/flow-phases/provider-sandbox.ts
  • src/lib/onboard/machine/flow-sequence.test.ts
  • src/lib/onboard/machine/flow-sequence.ts
  • src/lib/onboard/machine/flow-slices.test.ts
  • src/lib/onboard/machine/flow-slices.ts
  • src/lib/onboard/machine/handlers/agent-setup.test.ts
  • src/lib/onboard/machine/handlers/agent-setup.ts
  • src/lib/onboard/machine/handlers/finalization.test.ts
  • src/lib/onboard/machine/handlers/finalization.ts
  • src/lib/onboard/machine/handlers/gateway.test.ts
  • src/lib/onboard/machine/handlers/gateway.ts
  • src/lib/onboard/machine/handlers/policies-observability.test.ts
  • src/lib/onboard/machine/handlers/policies-restricted-resume.test.ts
  • src/lib/onboard/machine/handlers/policies-test-fixtures.ts
  • src/lib/onboard/machine/handlers/policies.test.ts
  • src/lib/onboard/machine/handlers/policies.ts
  • src/lib/onboard/machine/handlers/preflight.test.ts
  • src/lib/onboard/machine/handlers/preflight.ts
  • src/lib/onboard/machine/handlers/provider-inference-authoritative-recovery.test.ts
  • src/lib/onboard/machine/handlers/provider-inference-context-window.test.ts
  • src/lib/onboard/machine/handlers/provider-inference-ollama-context.test.ts
  • src/lib/onboard/machine/handlers/provider-inference-recovery-gating.test.ts
  • src/lib/onboard/machine/handlers/provider-inference-recovery.ts
  • src/lib/onboard/machine/handlers/provider-inference-route-containment.test.ts
  • src/lib/onboard/machine/handlers/provider-inference-route-containment.ts
  • src/lib/onboard/machine/handlers/provider-inference-station-express.test.ts
  • src/lib/onboard/machine/handlers/provider-inference.test-support.ts
  • src/lib/onboard/machine/handlers/provider-inference.test.ts
  • src/lib/onboard/machine/handlers/provider-inference.ts
  • src/lib/onboard/machine/handlers/sandbox-checkpoint-crash-recovery.test.ts
  • src/lib/onboard/machine/handlers/sandbox-create-intent-boundary.test.ts
  • src/lib/onboard/machine/handlers/sandbox-dcode-resume.ts
  • src/lib/onboard/machine/handlers/sandbox-dcode-selection.test.ts
  • src/lib/onboard/machine/handlers/sandbox-messaging.test.ts
  • src/lib/onboard/machine/handlers/sandbox-messaging.ts
  • src/lib/onboard/machine/handlers/sandbox-recreate-resume.test.ts
  • src/lib/onboard/machine/handlers/sandbox-resume.test.ts
  • src/lib/onboard/machine/handlers/sandbox-resume.ts
  • src/lib/onboard/machine/handlers/sandbox-route-mutation-lock.test.ts
  • src/lib/onboard/machine/handlers/sandbox-test-fixtures.ts
  • src/lib/onboard/machine/handlers/sandbox-tool-disclosure.test.ts
  • src/lib/onboard/machine/handlers/sandbox.test.ts
  • src/lib/onboard/machine/handlers/sandbox.ts
  • src/lib/onboard/machine/hooks.ts
  • src/lib/onboard/machine/initial-flow-phases.test.ts
  • src/lib/onboard/machine/initial-flow-phases.ts
  • src/lib/onboard/machine/live-flow-slice.test.ts
  • src/lib/onboard/machine/live-flow-slice.ts
  • src/lib/onboard/machine/phase-progress.test.ts
  • src/lib/onboard/machine/phase-progress.ts
  • src/lib/onboard/machine/progress.test.ts
  • src/lib/onboard/machine/progress.ts
  • src/lib/onboard/machine/result-events.ts
  • src/lib/onboard/machine/result.test.ts
  • src/lib/onboard/machine/result.ts
  • src/lib/onboard/machine/runner-sequence.test.ts
  • src/lib/onboard/machine/runner.test.ts
  • src/lib/onboard/machine/runner.ts
  • src/lib/onboard/machine/runtime.test.ts
  • src/lib/onboard/machine/runtime.ts
  • src/lib/onboard/machine/sequence-runner.test.ts
  • src/lib/onboard/machine/sequence-runner.ts
  • src/lib/onboard/machine/transition-traces.test.ts
  • src/lib/onboard/machine/transitions.test.ts
  • src/lib/onboard/machine/transitions.ts
  • src/lib/onboard/machine/types.ts
  • src/lib/onboard/managed-sandbox-feature.test.ts
  • src/lib/onboard/managed-sandbox-feature.ts
  • src/lib/onboard/messaging-channel-setup-fallback.test.ts
  • src/lib/onboard/messaging-channel-setup.test.ts
  • src/lib/onboard/messaging-channel-setup.ts
  • src/lib/onboard/messaging-config.test.ts
  • src/lib/onboard/messaging-config.ts
  • src/lib/onboard/messaging-conflict-guard.test.ts
  • src/lib/onboard/messaging-conflict-guard.ts
  • src/lib/onboard/messaging-credentials.ts
  • src/lib/onboard/messaging-host-forward.test.ts
  • src/lib/onboard/messaging-host-forward.ts
  • src/lib/onboard/messaging-plan-session.ts
  • src/lib/onboard/messaging-policy-presets.test.ts
  • src/lib/onboard/messaging-policy-presets.ts
  • src/lib/onboard/messaging-prep.test.ts
  • src/lib/onboard/messaging-prep.ts
  • src/lib/onboard/messaging-reuse.test.ts
  • src/lib/onboard/messaging-reuse.ts
  • src/lib/onboard/messaging-selector.test.ts
  • src/lib/onboard/messaging-selector.ts
  • src/lib/onboard/messaging-state.test.ts
  • src/lib/onboard/messaging-state.ts
  • src/lib/onboard/missing-credential-hints.ts
  • src/lib/onboard/model-router-command.ts
  • src/lib/onboard/model-router-process.test.ts
  • src/lib/onboard/model-router-process.ts
  • src/lib/onboard/model-router-python.test.ts
  • src/lib/onboard/model-router-python.ts
  • src/lib/onboard/model-router.test.ts
  • src/lib/onboard/model-router.ts
  • src/lib/onboard/nim-image-compat-warning.test.ts
  • src/lib/onboard/nim-image-compat-warning.ts
  • src/lib/onboard/not-ready-recreate.test.ts
  • src/lib/onboard/not-ready-recreate.ts
  • src/lib/onboard/nvidia-featured-model-selection.test.ts
  • src/lib/onboard/nvidia-featured-model-selection.ts
  • src/lib/onboard/observability-command-flag.ts
  • src/lib/onboard/observability-policy-presets.test.ts
  • src/lib/onboard/observability-policy-presets.ts
  • src/lib/onboard/ollama-install-menu.test.ts
  • src/lib/onboard/ollama-install-menu.ts
  • src/lib/onboard/ollama-probe-failure-tracker.test.ts
  • src/lib/onboard/ollama-probe-failure-tracker.ts
  • src/lib/onboard/ollama-probe-failure.test.ts
  • src/lib/onboard/ollama-probe-failure.ts
  • src/lib/onboard/ollama-proxy-reachability.test.ts
  • src/lib/onboard/ollama-proxy-reachability.ts
  • src/lib/onboard/ollama-startup.test.ts
  • src/lib/onboard/ollama-startup.ts
  • src/lib/onboard/ollama-systemd.test.ts
  • src/lib/onboard/ollama-systemd.ts
  • src/lib/onboard/onboard-exit-handler.ts
  • src/lib/onboard/openclaw-otel-policy-presets.test.ts
  • src/lib/onboard/openclaw-otel-policy-presets.ts
  • src/lib/onboard/openclaw-runtime-env.test.ts
  • src/lib/onboard/openclaw-runtime-env.ts
  • src/lib/onboard/openrouter-runtime.ts
  • src/lib/onboard/openrouter-selection.ts
  • src/lib/onboard/openshell-cli.ts
  • src/lib/onboard/openshell-docker-sandbox-containers.test.ts
  • src/lib/onboard/openshell-docker-sandbox-containers.ts
  • src/lib/onboard/openshell-feature-gate.test.ts
  • src/lib/onboard/openshell-feature-gate.ts
  • src/lib/onboard/openshell-install.test.ts
  • src/lib/onboard/openshell-install.ts
  • src/lib/onboard/openshell-pin.ts
  • src/lib/onboard/openshell-version.ts
  • src/lib/onboard/orphaned-dashboard-forward.test.ts
  • src/lib/onboard/orphaned-dashboard-forward.ts
  • src/lib/onboard/overlayfs-auto-fix.test.ts
  • src/lib/onboard/overlayfs-auto-fix.ts
  • src/lib/onboard/policy-carryforward.test.ts
  • src/lib/onboard/policy-carryforward.ts
  • src/lib/onboard/policy-context-seed.test.ts
  • src/lib/onboard/policy-context-seed.ts
  • src/lib/onboard/policy-preset-persistence.test.ts
  • src/lib/onboard/policy-preset-persistence.ts
  • src/lib/onboard/policy-preset-reconciliation.ts
  • src/lib/onboard/policy-preset-sync.ts
  • src/lib/onboard/policy-presets.ts
  • src/lib/onboard/policy-resume-selection.test.ts
  • src/lib/onboard/policy-resume-selection.ts
  • src/lib/onboard/policy-selection-prompts.test.ts
  • src/lib/onboard/policy-selection-prompts.ts
  • src/lib/onboard/policy-selection-recorded-tier.test.ts
  • src/lib/onboard/policy-selection.ts
  • src/lib/onboard/policy-tier-env.ts
  • src/lib/onboard/policy-tier-suppression.ts
  • src/lib/onboard/port-conflict-report.test.ts
  • src/lib/onboard/port-conflict-report.ts
  • src/lib/onboard/port-state-writer-symlink.test.ts
  • src/lib/onboard/preflight-cdi.test.ts
  • src/lib/onboard/preflight-gateway-cleanup-decision.test.ts
  • src/lib/onboard/preflight-gateway-cleanup-decision.ts
  • src/lib/onboard/preflight-gateway-reuse.test.ts
  • src/lib/onboard/preflight-messages.test.ts
  • src/lib/onboard/preflight-messages.ts
  • src/lib/onboard/preflight-ports.ts
  • src/lib/onboard/preflight-runtime-resources.test.ts
  • src/lib/onboard/preflight-ubuntu-2604.test.ts
  • src/lib/onboard/preflight.test.ts
  • src/lib/onboard/preflight.ts
  • src/lib/onboard/prepared-dcode-rebuild.test.ts
  • src/lib/onboard/prepared-dcode-rebuild.ts
  • src/lib/onboard/probe-diagnostics.test.ts
  • src/lib/onboard/probe-diagnostics.ts
  • src/lib/onboard/prompt-helpers.test.ts
  • src/lib/onboard/prompt-helpers.ts
  • src/lib/onboard/provider-host-state.test.ts
  • src/lib/onboard/provider-host-state.ts
  • src/lib/onboard/provider-key-bridge.ts
  • src/lib/onboard/provider-key-fallback.test.ts
  • src/lib/onboard/provider-key-fallback.ts
  • src/lib/onboard/provider-menu.test.ts
  • src/lib/onboard/provider-menu.ts
  • src/lib/onboard/provider-recovery.test.ts
  • src/lib/onboard/provider-recovery.ts
  • src/lib/onboard/provider-selection-failure.test.ts
  • src/lib/onboard/provider-selection-failure.ts
  • src/lib/onboard/provider-selection-prompt.test.ts
  • src/lib/onboard/provider-selection-prompt.ts
  • src/lib/onboard/provider-selection.test.ts
  • src/lib/onboard/provider-selection.ts
  • src/lib/onboard/providers.test.ts
  • src/lib/onboard/providers.ts
  • src/lib/onboard/reasoning-mode.test.ts
  • src/lib/onboard/reasoning-mode.ts
  • src/lib/onboard/rebuild-route-handoff.test.ts
  • src/lib/onboard/rebuild-route-handoff.ts
  • src/lib/onboard/recovered-provider-reuse.test.ts
  • src/lib/onboard/recovered-provider-reuse.ts
  • src/lib/onboard/remediation.ts
  • src/lib/onboard/resource-profile-selection.test.ts
  • src/lib/onboard/resource-profile-selection.ts
  • src/lib/onboard/resume-config.test.ts
  • src/lib/onboard/resume-config.ts
  • src/lib/onboard/resume-hint.test.ts
  • src/lib/onboard/resume-hint.ts
  • src/lib/onboard/resume-machine-repair.test.ts
  • src/lib/onboard/resume-machine-repair.ts
  • src/lib/onboard/resume-provider-recovery.test.ts
  • src/lib/onboard/resume-provider-recovery.ts
  • src/lib/onboard/resume-provider-shim.ts
  • src/lib/onboard/resume-repair-policy.ts
  • src/lib/onboard/routed-inference.test.ts
  • src/lib/onboard/routed-inference.ts
  • src/lib/onboard/runtime-boundary-record-only.test.ts
  • src/lib/onboard/runtime-boundary.test.ts
  • src/lib/onboard/runtime-boundary.ts
  • src/lib/onboard/runtime-control-flow.test.ts
  • src/lib/onboard/runtime-control-flow.ts
  • src/lib/onboard/sandbox-agent.test.ts
  • src/lib/onboard/sandbox-agent.ts
  • src/lib/onboard/sandbox-backup-on-recreate.test.ts
  • src/lib/onboard/sandbox-backup-on-recreate.ts
  • src/lib/onboard/sandbox-build-patch-config.test.ts
  • src/lib/onboard/sandbox-build-patch-config.ts
  • src/lib/onboard/sandbox-create-failure.ts
  • src/lib/onboard/sandbox-create-intent-resolution.ts
  • src/lib/onboard/sandbox-create-intent-types.ts
  • src/lib/onboard/sandbox-create-intent.ts
  • src/lib/onboard/sandbox-create-launch-observability.test.ts
  • src/lib/onboard/sandbox-create-launch.test.ts
  • src/lib/onboard/sandbox-create-launch.ts
  • src/lib/onboard/sandbox-create-plan-extra-providers.test.ts
  • src/lib/onboard/sandbox-create-plan-materialization.ts
  • src/lib/onboard/sandbox-create-plan.test.ts
  • src/lib/onboard/sandbox-create-plan.ts
  • src/lib/onboard/sandbox-create-step.test.ts
  • src/lib/onboard/sandbox-create-step.ts
  • src/lib/onboard/sandbox-dockerfile-patch-fail-closed.test.ts
  • src/lib/onboard/sandbox-dockerfile-patch-flow.test.ts
  • src/lib/onboard/sandbox-dockerfile-patch-flow.ts
  • src/lib/onboard/sandbox-gpu-cleanup-verification.test.ts
  • src/lib/onboard/sandbox-gpu-create-attempt.ts
  • src/lib/onboard/sandbox-gpu-create-failure-classification.test.ts
  • src/lib/onboard/sandbox-gpu-create-flow.test.ts
  • src/lib/onboard/sandbox-gpu-create-flow.ts
  • src/lib/onboard/sandbox-gpu-create-run-attempt.ts
  • src/lib/onboard/sandbox-gpu-direct-proof.test.ts
  • src/lib/onboard/sandbox-gpu-fallback-constants.ts
  • src/lib/onboard/sandbox-gpu-fallback-orchestration.test.ts
  • src/lib/onboard/sandbox-gpu-mode.test.ts
  • src/lib/onboard/sandbox-gpu-mode.ts
  • src/lib/onboard/sandbox-gpu-notes.ts
  • src/lib/onboard/sandbox-gpu-preflight-routing.test.ts
  • src/lib/onboard/sandbox-gpu-preflight.test.ts
  • src/lib/onboard/sandbox-gpu-preflight.ts
  • src/lib/onboard/sandbox-gpu-route-policy.ts
  • src/lib/onboard/sandbox-lifecycle.test.ts
  • src/lib/onboard/sandbox-lifecycle.ts
  • src/lib/onboard/sandbox-messaging-preflight.test.ts
  • src/lib/onboard/sandbox-messaging-preflight.ts
  • src/lib/onboard/sandbox-prebuild.test.ts
  • src/lib/onboard/sandbox-prebuild.ts
  • src/lib/onboard/sandbox-provider-cleanup.ts
  • src/lib/onboard/sandbox-readiness-stability.test.ts
  • src/lib/onboard/sandbox-readiness-tracing.test.ts
  • src/lib/onboard/sandbox-readiness-tracing.ts
  • src/lib/onboard/sandbox-recreate-protection.test.ts
  • src/lib/onboard/sandbox-recreate-protection.ts
  • src/lib/onboard/sandbox-registration.test.ts
  • src/lib/onboard/sandbox-registration.ts
  • src/lib/onboard/sandbox-registry-metadata.test.ts
  • src/lib/onboard/sandbox-registry-metadata.ts
  • src/lib/onboard/sandbox-reuse.test.ts
  • src/lib/onboard/sandbox-reuse.ts
  • src/lib/onboard/selection-drift.test.ts
  • src/lib/onboard/session-bootstrap.test.ts
  • src/lib/onboard/session-bootstrap.ts
  • src/lib/onboard/session-recovery.test.ts
  • src/lib/onboard/session-recovery.ts
  • src/lib/onboard/session-updates.test.ts
  • src/lib/onboard/session-updates.ts
  • src/lib/onboard/setup-inference-gateway-scope.test.ts
  • src/lib/onboard/setup-inference-route-containment.test.ts
  • src/lib/onboard/setup-inference.ts
  • src/lib/onboard/setup-nim-flow.test.ts
  • src/lib/onboard/setup-nim-flow.ts
  • src/lib/onboard/setup-nim-ollama.test.ts
  • src/lib/onboard/setup-nim-ollama.ts
  • src/lib/onboard/setup-nim-provider-discovery.test.ts
  • src/lib/onboard/setup-nim-provider-discovery.ts
  • src/lib/onboard/setup-nim-selection.test.ts
  • src/lib/onboard/setup-nim-selection.ts
  • src/lib/onboard/setup-nim-vllm.test.ts
  • src/lib/onboard/setup-nim-vllm.ts
  • src/lib/onboard/skipped-step-message.ts
  • src/lib/onboard/smoke-retry-classifier.test.ts
  • src/lib/onboard/smoke-retry-classifier.ts
  • src/lib/onboard/ssh-forward-hint.test.ts
  • src/lib/onboard/ssh-forward-hint.ts
  • src/lib/onboard/stale-gateway-cleanup.test.ts
  • src/lib/onboard/stale-gateway-cleanup.ts
  • src/lib/onboard/station-express-resume.test.ts
  • src/lib/onboard/station-express-resume.ts
  • src/lib/onboard/summary.test.ts
  • src/lib/onboard/summary.ts
  • src/lib/onboard/tool-disclosure-flow.test.ts
  • src/lib/onboard/tool-disclosure-flow.ts
  • src/lib/onboard/tracing.ts
  • src/lib/onboard/types.ts
  • src/lib/onboard/ufw-auto-apply.ts
  • src/lib/onboard/usage-notice.test.ts
  • src/lib/onboard/usage-notice.ts
  • src/lib/onboard/validation-recovery-prompt.ts
  • src/lib/onboard/verify-channel-runtime.test.ts
  • src/lib/onboard/verify-channel-runtime.ts
  • src/lib/onboard/vllm-menu.test.ts
  • src/lib/onboard/vllm-menu.ts
  • src/lib/onboard/vllm-model-preflight.ts
  • src/lib/onboard/vm-dns-monkeypatch.test.ts
  • src/lib/onboard/web-search-flow.test.ts
  • src/lib/onboard/web-search-flow.ts
  • src/lib/onboard/web-search-support.test.ts
  • src/lib/onboard/web-search-support.ts
  • src/lib/onboard/web-search-verify.test.ts
  • src/lib/onboard/web-search-verify.ts
  • src/lib/onboard/wechat-config.ts
  • src/lib/onboard/windows-host-ollama.test.ts
  • src/lib/onboard/windows-host-ollama.ts
  • src/lib/onboard/wsl-docker-desktop-gpu.test.ts
  • src/lib/onboard/wsl-docker-desktop-gpu.ts
  • src/lib/openclaw/agent-json-provenance.test.ts
  • src/lib/openclaw/agent-json-provenance.ts
  • src/lib/openshell-gateway-endpoint-guard.ts
  • src/lib/openshell-sandbox-list.test.ts
  • src/lib/openshell-sandbox-list.ts
  • src/lib/policy/commands.ts
  • src/lib/policy/context.test.ts
  • src/lib/policy/context.ts
  • src/lib/policy/custom-preset-ownership.test.ts
  • src/lib/policy/failure-classifier.test.ts
  • src/lib/policy/failure-classifier.ts
  • src/lib/policy/gateway-state.ts
  • src/lib/policy/host-redaction.test.ts
  • src/lib/policy/host-redaction.ts
  • src/lib/policy/index.ts
  • src/lib/policy/managed-policy-binding.test.ts
  • src/lib/policy/managed-policy-binding.ts
  • src/lib/policy/merge.test.ts
  • src/lib/policy/merge.ts
  • src/lib/policy/policy-list-display.ts
  • src/lib/policy/preset-allowed-ips.test.ts
  • src/lib/policy/preset-ownership.ts
  • src/lib/policy/preset-parsing.ts
  • src/lib/policy/preset-provenance.test.ts
  • src/lib/policy/preset-provenance.ts
  • src/lib/policy/preset-scope-render.test.ts
  • src/lib/policy/preset-scope-render.ts
  • src/lib/policy/remove-preset-fail-closed.test.ts
  • src/lib/policy/semantic-validation.ts
  • src/lib/policy/tiers.ts
  • src/lib/private-networks.ts
  • src/lib/registry-recovery-action.test.ts
  • src/lib/registry-recovery-action.ts
  • src/lib/registry-recovery-seeded-paths.test.ts
  • src/lib/resources-cmd.test.ts
  • src/lib/resources-cmd.ts
  • src/lib/runner-argv.test.ts
  • src/lib/runner.ts
  • src/lib/runtime-recovery.test.ts
  • src/lib/runtime-recovery.ts
  • src/lib/sandbox-base-image-agent-resolution.test.ts
  • src/lib/sandbox-base-image-platform-digest.test.ts
  • src/lib/sandbox-base-image-release-resolution.test.ts
  • src/lib/sandbox-base-image-resolution.test.ts
  • src/lib/sandbox-base-image.test.ts
  • src/lib/sandbox-base-image.ts
  • src/lib/sandbox-base-image/image-compatibility.test.ts
  • src/lib/sandbox-base-image/image-compatibility.ts
  • src/lib/sandbox-base-image/label-codec.test.ts
  • src/lib/sandbox-base-image/label-codec.ts
  • src/lib/sandbox-base-image/local-build-heartbeat.test.ts
  • src/lib/sandbox-base-image/local-build-heartbeat.ts
  • src/lib/sandbox-base-image/resolution-key.test.ts
  • src/lib/sandbox-base-image/resolution-key.ts
  • src/lib/sandbox-base-image/resolution-metadata.test.ts
  • src/lib/sandbox-base-image/resolution-metadata.ts
  • src/lib/sandbox-base-image/resolution-validation.test.ts
  • src/lib/sandbox-base-image/source-identity.test.ts
  • src/lib/sandbox-base-image/source-identity.ts
  • src/lib/sandbox-base-image/types.ts
  • src/lib/sandbox/build-context.ts
  • src/lib/sandbox/channels-command-support.ts
  • src/lib/sandbox/channels.test.ts
  • src/lib/sandbox/channels.ts
  • src/lib/sandbox/compose-sandbox-config-body.test.ts
  • src/lib/sandbox/config-format.test.ts
  • src/lib/sandbox/config-format.ts
  • src/lib/sandbox/config-get.test.ts
  • src/lib/sandbox/config.ts
  • src/lib/sandbox/create-stream-argv.test.ts
  • src/lib/sandbox/create-stream-progress.ts
  • src/lib/sandbox/create-stream-ready-gate.test.ts
  • src/lib/sandbox/create-stream-ready-gate.ts
  • src/lib/sandbox/create-stream-test-fixtures.ts
  • src/lib/sandbox/create-stream.test.ts
  • src/lib/sandbox/create-stream.ts
  • src/lib/sandbox/hermes-dashboard-reseed.test.ts
  • src/lib/sandbox/hermes-upstream-header.parity.test.ts
  • src/lib/sandbox/hermes-upstream-header.ts
  • src/lib/sandbox/hosts-command-support.ts
  • src/lib/sandbox/policy-command-support.ts
  • src/lib/sandbox/privileged-exec.test.ts
  • src/lib/sandbox/privileged-exec.ts
  • src/lib/sandbox/temp-ssh-config.test.ts
  • src/lib/sandbox/temp-ssh-config.ts
  • src/lib/sandbox/version-scheme.test.ts
  • src/lib/sandbox/version-scheme.ts
  • src/lib/sandbox/version.test.ts
  • src/lib/sandbox/version.ts
  • src/lib/security/credential-env.test.ts
  • src/lib/security/credential-env.ts
  • src/lib/security/credential-filter-secret-patterns.test.ts
  • src/lib/security/credential-filter.test.ts
  • src/lib/security/credential-filter.ts
  • src/lib/security/mcp-url-target.ts
  • src/lib/security/process-control-env.test.ts
  • src/lib/security/process-control-env.ts
  • src/lib/security/redact-url.test.ts
  • src/lib/security/redact-url.ts
  • src/lib/security/redact.test.ts
  • src/lib/security/redact.ts
  • src/lib/security/secret-patterns.ts
  • src/lib/share-command.test.ts
  • src/lib/share-command.ts
  • src/lib/shields/audit-format.test.ts
  • src/lib/shields/audit-reader.test.ts
  • src/lib/shields/audit.test.ts
  • src/lib/shields/audit.ts
  • src/lib/shields/flow.test.ts
  • src/lib/shields/index.test.ts
  • src/lib/shields/index.ts
  • src/lib/shields/legacy-hermes-compat.test.ts
  • src/lib/shields/legacy-hermes-transition.test.ts
  • src/lib/shields/mutable-config-perms.test.ts
  • src/lib/shields/mutable-config-perms.ts
  • src/lib/shields/mutable-config-repair.test.ts
  • src/lib/shields/mutable-config-repair.ts
  • src/lib/shields/openclaw-config-lock.test.ts
  • src/lib/shields/openclaw-config-lock.ts
  • src/lib/shields/openclaw-transition.test.ts
  • src/lib/shields/policy-transition.test.ts
  • src/lib/shields/relock-reconfirm.test.ts
  • src/lib/shields/relock-reconfirm.ts
  • src/lib/shields/seal.test.ts
  • src/lib/shields/seal.ts
  • src/lib/shields/state-dir-lock.test.ts
  • src/lib/shields/state-dir-lock.ts
  • src/lib/shields/timer-bound-lock.test.ts
  • src/lib/shields/timer-bound-lock.ts
  • src/lib/shields/timer-control.test.ts
  • src/lib/shields/timer-control.ts
  • src/lib/shields/timer.test.ts
  • src/lib/shields/timer.ts
  • src/lib/shields/transition-lock.test.ts
  • src/lib/shields/transition-lock.ts
  • src/lib/shields/verify-lock.test.ts
  • src/lib/shields/verify-lock.ts
  • src/lib/skill-install.test.ts
  • src/lib/skill-install.ts
  • src/lib/skill-name.ts
  • src/lib/skill-remote.test.ts
  • src/lib/skill-remote.ts
  • src/lib/state/config-io.test.ts
  • src/lib/state/config-io.ts
  • src/lib/state/extra-providers.ts
  • src/lib/state/gateway-registry.test.ts
  • src/lib/state/gateway-registry.ts
  • src/lib/state/gateway.ts
  • src/lib/state/hermes-forward-watcher.ts
  • src/lib/state/key-allowlist-merge/python-config.ts
  • src/lib/state/key-allowlist-merge/python-entrypoint.ts
  • src/lib/state/key-allowlist-merge/python-ownership.ts
  • src/lib/state/key-allowlist-merge/python-script.ts
  • src/lib/state/key-allowlist-merge/python-serialization.ts
  • src/lib/state/legacy-port-migration.test.ts
  • src/lib/state/legacy-port-migration.ts
  • src/lib/state/mcp-lifecycle-lock-acquisition.ts
  • src/lib/state/mcp-lifecycle-lock-identity.test.ts
  • src/lib/state/mcp-lifecycle-lock-identity.ts
  • src/lib/state/mcp-lifecycle-lock-storage.ts
  • src/lib/state/mcp-lifecycle-lock.ts
  • src/lib/state/onboard-checkpoint-decision.ts
  • src/lib/state/onboard-checkpoint-migrate.test.ts
  • src/lib/state/onboard-checkpoint-migrate.ts
  • src/lib/state/onboard-checkpoint-types.ts
  • src/lib/state/onboard-checkpoint.test.ts
  • src/lib/state/onboard-checkpoint.ts
  • src/lib/state/onboard-session-cross-process-lock.test.ts
  • src/lib/state/onboard-session-redaction.test.ts
  • src/lib/state/onboard-session-sandbox-prompts.test.ts
  • src/lib/state/onboard-session-station-express.test.ts
  • src/lib/state/onboard-session-tool-disclosure.test.ts
  • src/lib/state/onboard-session-tool-disclosure.ts
  • src/lib/state/onboard-session.test.ts
  • src/lib/state/onboard-session.ts
  • src/lib/state/onboard-step-mutation.test.ts
  • src/lib/state/onboard-step-mutation.ts
  • src/lib/state/onboard-step-state.ts
  • src/lib/state/openclaw-config-merge-tool-search.test.ts
  • src/lib/state/openclaw-config-merge.test.ts
  • src/lib/state/openclaw-config-merge.ts
  • src/lib/state/openclaw-config-restore-input.test.ts
  • src/lib/state/openclaw-config-restore-input.ts
  • src/lib/state/openclaw-managed-extensions.test.ts
  • src/lib/state/openclaw-managed-extensions.ts
  • src/lib/state/openclaw-plugin-restore.test.ts
  • src/lib/state/openclaw-plugin-restore.ts
  • src/lib/state/paths.test.ts
  • src/lib/state/paths.ts
  • src/lib/state/registry-entry-view.ts
  • src/lib/state/registry-lock.test.ts
  • src/lib/state/registry-mcp.ts
  • src/lib/state/registry-messaging.ts
  • src/lib/state/registry-normalization.test.ts
  • src/lib/state/registry-normalization.ts
  • src/lib/state/registry-port-segregation.test.ts
  • src/lib/state/registry-reversible-removal.test.ts
  • src/lib/state/registry-reversible-removal.ts
  • src/lib/state/registry-route-reservation.test.ts
  • src/lib/state/registry.ts
  • src/lib/state/sandbox-openclaw-plugin-restore.test.ts
  • src/lib/state/sandbox-recreated-openclaw-restore.test.ts
  • src/lib/state/sandbox-session.ts
  • src/lib/state/sandbox-state-file-restore-contract.test.ts
  • src/lib/state/sandbox.ts
  • src/lib/state/ssh-transport.test.ts
  • src/lib/state/ssh-transport.ts
  • src/lib/state/state-file-key-merge-behavior.test.ts
  • src/lib/state/state-file-key-merge-file-safety.test.ts
  • src/lib/state/state-file-key-merge-spec.test.ts
  • src/lib/state/state-file-key-merge-test-fixture.ts
  • src/lib/state/state-file-key-merge.ts
  • src/lib/state/state-file-restore-custom-image.test.ts
  • src/lib/state/state-file-restore.ts
  • src/lib/state/state-root.test.ts
  • src/lib/state/state-root.ts
  • src/lib/state/tar-listing.ts
  • src/lib/state/user-managed-files-probe.test.ts
  • src/lib/state/user-managed-files-probe.ts
  • src/lib/status-command-deps.test.ts
  • src/lib/status-command-deps.ts
  • src/lib/subprocess-env.test.ts
  • src/lib/subprocess-env.ts
  • src/lib/tool-disclosure.test.ts
  • src/lib/tool-disclosure.ts
  • src/lib/trace.test.ts
  • src/lib/trace.ts
  • src/lib/tunnel/agent-forward-stop.test.ts
  • src/lib/tunnel/agent-forward-stop.ts
  • src/lib/tunnel/allowed-origins.test.ts
  • src/lib/tunnel/allowed-origins.ts
  • src/lib/tunnel/command-support.ts
  • src/lib/tunnel/gateway-port-confirmation.test.ts
  • src/lib/tunnel/gateway-port-confirmation.ts
  • src/lib/tunnel/gateway-port-listeners.test.ts
  • src/lib/tunnel/gateway-port-listeners.ts
  • src/lib/tunnel/gateway-port-release-fail-closed.test.ts
  • src/lib/tunnel/gateway-port-release-lifecycle.test.ts
  • src/lib/tunnel/gateway-port-release-test-helpers.ts
  • src/lib/tunnel/gateway-port-release.test.ts
  • src/lib/tunnel/gateway-port-release.ts
  • src/lib/tunnel/gateway-port-resolution.ts
  • src/lib/tunnel/gateway-stop-script.test.ts
  • src/lib/tunnel/gateway-stop-script.ts
  • src/lib/tunnel/gateway-stop.ts
  • src/lib/tunnel/sandbox-gateway-stop.test.ts
  • src/lib/tunnel/sandbox-gateway-stop.ts
  • src/lib/tunnel/service-command.test.ts
  • src/lib/tunnel/service-command.ts
  • src/lib/tunnel/services-gateway-ownership.test.ts
  • src/lib/tunnel/services-sandbox.test.ts
  • src/lib/tunnel/services.test.ts
  • src/lib/tunnel/services.ts
  • src/lib/uninstall-command.test.ts
  • src/lib/uninstall-command.ts
  • src/lib/use-command-deps.test.ts
  • src/lib/use-command-deps.ts
  • src/lib/validation-cdi.test.ts
  • src/lib/validation-plugin-install.test.ts
  • src/lib/validation-recovery.test.ts
  • src/lib/validation-recovery.ts
  • src/lib/validation.test.ts
  • src/lib/validation.ts
  • src/lib/verify-deployment-agent.test.ts
  • src/lib/verify-deployment-messaging.test.ts
  • src/lib/verify-deployment.test.ts
  • src/lib/verify-deployment.ts
  • test/Dockerfile.dcode-profile-missing-dependencies
  • test/advisor-repo-read-only-tools.test.ts
  • test/advisor-session-context-tools.test.ts
  • test/advisor-session-runner.test.ts
  • test/agent-variant-docs.test.ts
  • test/agents-manifest-policy-conformance.test.ts
  • test/base-image-resolver-helper.test.ts
  • test/bench/bench-cli.test.ts
  • test/bench/bench.test.ts
  • test/bench/benchmark-sandbox-image-build.test.ts
  • test/bootstrap-windows.test.ts
  • test/brev-launchable-ci-cpu-checksum.test.ts
  • test/brev-nightly-workflow.test.ts
  • test/brev-remote-vitest.test.ts
  • test/brew-github-policy-boundary.test.ts
  • test/bump-version.test.ts
  • test/candidate-compat.test.ts
  • test/canonical-credential-resolution.test.ts
  • test/catalog-skills-export.test.ts
  • test/changelog-docs.test.ts
  • test/channels-add-deepagents-rejection.test.ts
  • test/channels-add-preset.test.ts
  • test/channels-remove-full-teardown.test.ts
  • test/check-docs-links.test.ts
  • test/check-docs-published-routes.test.ts
  • test/check-env-var-docs.test.ts
  • test/checks-runner.test.ts
  • test/clean-runtime-shell-env-shim.test.ts
  • test/cli-coverage-sequencer.test.ts
  • test/cli-oclif-compatibility.test.ts
  • test/cli.test.ts
  • test/cli/connect-readiness.test.ts
  • test/cli/connect-recovery-settle.test.ts
  • test/cli/connect-recovery.test.ts
  • test/cli/connect-terminal-agent.test.ts
  • test/cli/credentials-command.test.ts
  • test/cli/debug-command.test.ts
  • test/cli/destroy-detach-order.test.ts
  • test/cli/destroy-gateway-cleanup.test.ts
  • test/cli/destroy-gateway-unreachable.test.ts
  • test/cli/dispatch-basics.test.ts
  • test/cli/docker-outage.test.ts
  • test/cli/doctor-gateway-token.test.ts
  • test/cli/helpers.test.ts
  • test/cli/helpers.ts
  • test/cli/list-inference.test.ts
  • test/cli/list-share-live-inference.test.ts
  • test/cli/logs.test.ts
  • test/cli/maintenance-command.test.ts
  • test/cli/onboard-compatibility.test.ts
  • test/cli/sandbox-host-aliases.test.ts
  • test/cli/sandbox-mutations.test.ts
  • test/cli/sandbox-skill-install.test.ts
  • test/cli/sandbox-status-json.test.ts
  • test/cli/sandbox-status-text.test.ts
  • test/cli/snapshot-shields.test.ts
  • test/cli/status-gateway-lifecycle.test.ts
  • test/cli/status-root-json.test.ts
  • test/cli/status-routing.test.ts
  • test/cli/tunnel-command.test.ts
  • test/cli/unknown-sandbox-action.test.ts
  • test/cloudflared-update-check-workflow.test.ts
  • test/cloudflared-version-resolver.test.ts
  • test/code-scanning-workflow.test.ts
  • test/compatible-endpoint-context-probe.test.ts
  • test/config-set-nested-ssrf.test.ts
  • test/config-set.test.ts
  • test/control-ui-config-endpoint-docs.test.ts
  • test/corporate-ca-build-tls-anchor.test.ts
  • test/corporate-ca-dockerfile-decode.test.ts
  • test/corporate-ca-runtime-merge.test.ts
  • test/corporate-ca-tls-e2e.test.ts
  • test/coverage-ratchet.test.ts
  • test/create-require-ratchet.test.ts
  • test/credential-exposure.test.ts
  • test/credential-rotation-docs.test.ts
  • test/credential-rotation.test.ts
  • test/credentials-cli-command.test.ts
  • test/credentials-reset-outcome.test.ts
  • test/credentials.test.js
  • test/credentials.test.ts
  • test/dashboard-remote-bind-lifecycle.test.ts
  • test/dcode-base-image-workflow.test.ts
  • test/dcode-managed-exec.test.ts
  • test/dcode-sandbox-identity-integration.test.ts
  • test/dcode-session-supervisor.test.ts
  • test/dcode-start-keepalive.test.ts
  • test/dcode-wrapper-empty-prompt.test.ts
  • test/dcode-wrapper-identity.test.ts
  • test/deepagents-code-tui-startup-check.test.ts
  • test/deepagents-mcp-legacy-lifecycle.test.ts
  • test/deepagents-mcp-runtime-capability.test.ts
  • test/dependency-pins-check.test.ts
  • test/dependency-upgrade-skill-security.test.ts
  • test/dependency-upgrade-skill.test.ts
  • test/destroy-cleanup-sandbox-services.test.ts
  • test/destroy-wipe-sandbox-state.test.ts
  • test/detect-vllm-profile.test.ts
  • test/dev-setup-doctor.test.ts
  • test/discord-template-resolver-proxy.test.ts
  • test/dist-sourcemaps.test.ts
  • test/docker-abstraction-guard.test.ts
  • test/docs-copyable-command-blocks.test.ts
  • test/docs-publish-staging-workflow.test.ts
  • test/e2e-advisor-dispatch.test.ts
  • test/e2e-fixture-dependency-review.test.ts
  • test/e2e-gateway-isolation.sh
  • test/e2e-mock-parity.test.ts
  • test/e2e-ollama-proxy.sh
  • test/e2e-private-file.test.ts
  • test/e2e-recommendations.test.ts
  • test/e2e-release-gate-workflow.test.ts
  • test/e2e-risk-signal-reporter.test.ts
  • test/e2e-runtime/4851-ultra-toolless-validation.md
  • test/e2e-scenario-advisor.test.ts
  • test/e2e-scenario/docs/MIGRATION.md
  • test/e2e-scenario/docs/README.md
  • test/e2e-scenario/framework-tests/e2e-assertion-modules.test.ts
  • test/e2e-scenario/framework-tests/e2e-context-helper.test.ts
  • test/e2e-scenario/framework-tests/e2e-convention-lint.test.ts
  • test/e2e-scenario/framework-tests/e2e-coverage-report.test.ts
  • test/e2e-scenario/framework-tests/e2e-expected-failure.test.ts
  • test/e2e-scenario/framework-tests/e2e-expected-state-validator.test.ts
  • test/e2e-scenario/framework-tests/e2e-lib-helpers.test.ts
  • test/e2e-scenario/framework-tests/e2e-manifests.test.ts
  • test/e2e-scenario/framework-tests/e2e-metadata-final-hygiene.test.ts
  • test/e2e-scenario/framework-tests/e2e-migration-inventory-lock.test.ts
  • test/e2e-scenario/framework-tests/e2e-phase-orchestrators.test.ts
  • test/e2e-scenario/framework-tests/e2e-plan-compiler.test.ts
  • test/e2e-scenario/framework-tests/e2e-scenario-additional-families.test.ts
  • test/e2e-scenario/framework-tests/e2e-scenario-first-migration.test.ts
  • test/e2e-scenario/framework-tests/e2e-scenario-registry.test.ts
  • test/e2e-scenario/framework-tests/e2e-scenario-resolver.test.ts
  • test/e2e-scenario/framework-tests/e2e-scenario-schema.test.ts
  • test/e2e-scenario/framework-tests/e2e-scenarios-workflow.test.ts
  • test/e2e-scenario/framework-tests/e2e-suite-runner.test.ts
  • test/e2e-scenario/nemoclaw_scenarios/expected-states.yaml
  • test/e2e-scenario/nemoclaw_scenarios/fixtures/_fake-http-stub.sh
  • test/e2e-scenario/nemoclaw_scenarios/fixtures/fake-discord.sh
  • test/e2e-scenario/nemoclaw_scenarios/fixtures/fake-openai.sh
  • test/e2e-scenario/nemoclaw_scenarios/fixtures/fake-slack.sh
  • test/e2e-scenario/nemoclaw_scenarios/fixtures/fake-telegram.sh
  • test/e2e-scenario/nemoclaw_scenarios/fixtures/older-base-image.sh
  • test/e2e-scenario/nemoclaw_scenarios/helpers/emit-context-from-plan.sh
  • test/e2e-scenario/nemoclaw_scenarios/install/dispatch.sh
  • test/e2e-scenario/nemoclaw_scenarios/install/helpers/install-path-refresh.sh
  • test/e2e-scenario/nemoclaw_scenarios/install/launchable.sh
  • test/e2e-scenario/nemoclaw_scenarios/install/ollama.sh
  • test/e2e-scenario/nemoclaw_scenarios/install/public-curl.sh
  • test/e2e-scenario/nemoclaw_scenarios/install/repo-current.sh
  • test/e2e-scenario/nemoclaw_scenarios/onboard/cloud-hermes.sh
  • test/e2e-scenario/nemoclaw_scenarios/onboard/cloud-openclaw.sh
  • test/e2e-scenario/nemoclaw_scenarios/onboard/dispatch.sh
  • test/e2e-scenario/nemoclaw_scenarios/onboard/local-ollama-openclaw.sh
  • test/e2e-scenario/nemoclaw_scenarios/scenarios.yaml
  • test/e2e-scenario/onboarding_assertions/base/00-cli-installed.sh
  • test/e2e-scenario/onboarding_assertions/preflight/00-preflight-expected-failed.sh
  • test/e2e-scenario/onboarding_assertions/preflight/00-preflight-passed.sh
  • test/e2e-scenario/runtime/coverage-report.sh
  • test/e2e-scenario/runtime/lib/artifacts.sh
  • test/e2e-scenario/runtime/lib/cleanup.sh
  • test/e2e-scenario/runtime/lib/context.sh
  • test/e2e-scenario/runtime/lib/env.sh
  • test/e2e-scenario/runtime/lib/logging.sh
  • test/e2e-scenario/runtime/lib/negative.sh
  • test/e2e-scenario/runtime/lib/onboard-state.sh
  • test/e2e-scenario/runtime/lib/port-holder.sh
  • test/e2e-scenario/runtime/lib/sandbox-teardown.sh
  • test/e2e-scenario/runtime/reports/render-gap-report.ts
  • test/e2e-scenario/runtime/resolver/coverage.ts
  • test/e2e-scenario/runtime/resolver/expected-failure.ts
  • test/e2e-scenario/runtime/resolver/index.ts
  • test/e2e-scenario/runtime/resolver/load.ts
  • test/e2e-scenario/runtime/resolver/plan.ts
  • test/e2e-scenario/runtime/resolver/schema.ts
  • test/e2e-scenario/runtime/resolver/validator.ts
  • test/e2e-scenario/runtime/run-scenario.sh
  • test/e2e-scenario/runtime/run-suites.sh
  • test/e2e-scenario/scenarios/assertions/diagnostics.ts
  • test/e2e-scenario/scenarios/assertions/environment.ts
  • test/e2e-scenario/scenarios/assertions/hermes.ts
  • test/e2e-scenario/scenarios/assertions/inference.ts
  • test/e2e-scenario/scenarios/assertions/lifecycle.ts
  • test/e2e-scenario/scenarios/assertions/messaging.ts
  • test/e2e-scenario/scenarios/assertions/negative.ts
  • test/e2e-scenario/scenarios/assertions/onboarding.ts
  • test/e2e-scenario/scenarios/assertions/platform.ts
  • test/e2e-scenario/scenarios/assertions/registry.ts
  • test/e2e-scenario/scenarios/assertions/runtime.ts
  • test/e2e-scenario/scenarios/assertions/security.ts
  • test/e2e-scenario/scenarios/builder.ts
  • test/e2e-scenario/scenarios/compiler.ts
  • test/e2e-scenario/scenarios/js-yaml.d.ts
  • test/e2e-scenario/scenarios/matrix.ts
  • test/e2e-scenario/scenarios/migration-inventory.ts
  • test/e2e-scenario/scenarios/orchestrators/environment.ts
  • test/e2e-scenario/scenarios/orchestrators/onboarding.ts
  • test/e2e-scenario/scenarios/orchestrators/phase.ts
  • test/e2e-scenario/scenarios/orchestrators/runner.ts
  • test/e2e-scenario/scenarios/orchestrators/runtime.ts
  • test/e2e-scenario/scenarios/registry.ts
  • test/e2e-scenario/scenarios/run.ts
  • test/e2e-scenario/scenarios/scenarios/baseline.ts
  • test/e2e-scenario/scenarios/types.ts
  • test/e2e-scenario/validation_suites/assert/gateway-alive.sh
  • test/e2e-scenario/validation_suites/assert/inference-works.sh
  • test/e2e-scenario/validation_suites/assert/messaging-bridge-reachable.sh
  • test/e2e-scenario/validation_suites/assert/no-credentials-leaked.sh
  • test/e2e-scenario/validation_suites/assert/policy-preset-applied.sh
  • test/e2e-scenario/validation_suites/assert/sandbox-alive.sh
  • test/e2e-scenario/validation_suites/baseline-onboarding/00-cli-and-openshell.sh
  • test/e2e-scenario/validation_suites/baseline-onboarding/01-sandbox-state.sh
  • test/e2e-scenario/validation_suites/baseline-onboarding/02-route-and-smoke.sh
  • test/e2e-scenario/validation_suites/hermes/00-hermes-health.sh
  • test/e2e-scenario/validation_suites/inference/cloud/00-models-health.sh
  • test/e2e-scenario/validation_suites/inference/cloud/01-chat-completion.sh
  • test/e2e-scenario/validation_suites/inference/cloud/02-inference-local-from-sandbox.sh
  • test/e2e-scenario/validation_suites/inference/kimi-compatibility/00-plugin-wiring.sh
  • test/e2e-scenario/validation_suites/inference/kimi-compatibility/01-kimi-compatible-models-route.sh
  • test/e2e-scenario/validation_suites/inference/model-router/00-healthy-endpoint.sh
  • test/e2e-scenario/validation_suites/inference/model-router/01-provider-routed-completion.sh
  • test/e2e-scenario/validation_suites/inference/ollama-auth-proxy/00-proxy-reachable.sh
  • test/e2e-scenario/validation_suites/inference/ollama-auth-proxy/01-auth-enforcement.sh
  • test/e2e-scenario/validation_suites/inference/ollama-gpu/00-ollama-models-health.sh
  • test/e2e-scenario/validation_suites/inference/ollama-gpu/01-ollama-chat-completion.sh
  • test/e2e-scenario/validation_suites/inference/routing/00-inference-local-chat-completion.sh
  • test/e2e-scenario/validation_suites/inference/routing/01-provider-route-health.sh
  • test/e2e-scenario/validation_suites/inference/switch/00-route-state-updated.sh
  • test/e2e-scenario/validation_suites/inference/switch/01-switched-inference-local-chat.sh
  • test/e2e-scenario/validation_suites/lib/baseline_onboarding.sh
  • test/e2e-scenario/validation_suites/lib/inference_routing.sh
  • test/e2e-scenario/validation_suites/lib/messaging_providers.sh
  • test/e2e-scenario/validation_suites/lib/rebuild_upgrade.sh
  • test/e2e-scenario/validation_suites/lib/sandbox_lifecycle.sh
  • test/e2e-scenario/validation_suites/lib/security_policy_credentials.sh
  • test/e2e-scenario/validation_suites/messaging/common/00-provider-attached.sh
  • test/e2e-scenario/validation_suites/messaging/common/01-placeholder-configured.sh
  • test/e2e-scenario/validation_suites/messaging/common/02-no-secret-leak.sh
  • test/e2e-scenario/validation_suites/messaging/common/03-bridge-reachable.sh
  • test/e2e-scenario/validation_suites/messaging/discord/00-discord-gateway-path.sh
  • test/e2e-scenario/validation_suites/messaging/slack/00-slack-provider-state.sh
  • test/e2e-scenario/validation_suites/messaging/telegram/00-telegram-injection-safety.sh
  • test/e2e-scenario/validation_suites/messaging/telegram/01-telegram-injection-payload-classes.sh
  • test/e2e-scenario/validation_suites/messaging/token-rotation/00-provider-rotation-isolated.sh
  • test/e2e-scenario/validation_suites/onboarding/state/00-registry-provider-model-policies.sh
  • test/e2e-scenario/validation_suites/onboarding/state/01-session-provider-model-policies.sh
  • test/e2e-scenario/validation_suites/platform/macos/00-macos-smoke.sh
  • test/e2e-scenario/validation_suites/platform/wsl/00-wsl-smoke.sh
  • test/e2e-scenario/validation_suites/rebuild_upgrade/00-state-preserved.sh
  • test/e2e-scenario/validation_suites/rebuild_upgrade/01-agent-version-upgraded.sh
  • test/e2e-scenario/validation_suites/rebuild_upgrade/02-post-rebuild-inference.sh
  • test/e2e-scenario/validation_suites/rebuild_upgrade/03-policy-config-preserved.sh
  • test/e2e-scenario/validation_suites/rebuild_upgrade/04-upgrade-survivor-reachable.sh
  • test/e2e-scenario/validation_suites/sandbox-exec.sh
  • test/e2e-scenario/validation_suites/sandbox/lifecycle/00-gateway-health.sh
  • test/e2e-scenario/validation_suites/sandbox/lifecycle/01-gateway-recovery.sh
  • test/e2e-scenario/validation_suites/sandbox/operations/00-list-and-status.sh
  • test/e2e-scenario/validation_suites/sandbox/operations/01-logs-and-exec.sh
  • test/e2e-scenario/validation_suites/sandbox/snapshot/00-create-list-restore.sh
  • test/e2e-scenario/validation_suites/security/credentials/00-credentials-present.sh
  • test/e2e-scenario/validation_suites/security/credentials/01-no-plaintext-host-store.sh
  • test/e2e-scenario/validation_suites/security/injection/00-telegram-message-not-shell-executed.sh
  • test/e2e-scenario/validation_suites/security/policy/00-telegram-preset-applied.sh
  • test/e2e-scenario/validation_suites/security/policy/01-openshell-version-supports-credential-rewrite.sh
  • test/e2e-scenario/validation_suites/security/shields/00-config-consistent.sh
  • test/e2e-scenario/validation_suites/smoke/00-cli-available.sh
  • test/e2e-scenario/validation_suites/smoke/01-gateway-health.sh
  • test/e2e-scenario/validation_suites/smoke/02-sandbox-listed.sh
  • test/e2e-scenario/validation_suites/smoke/03-sandbox-shell.sh
  • test/e2e-scenario/validation_suites/suites.yaml
  • test/e2e-script-workflow.test.ts
  • test/e2e-test.sh
  • test/e2e/Dockerfile.full-e2e
  • test/e2e/README.md
  • test/e2e/brev-e2e.test.ts
  • test/e2e/docs/MIGRATION.md
  • test/e2e/docs/README.md
  • test/e2e/docs/RETIREMENT.md
  • test/e2e/e2e-cloud-experimental/check-docs.sh
  • test/e2e/e2e-cloud-experimental/checks/03-deepagents-code-nemotron-ultra-profile.sh
  • test/e2e/e2e-cloud-experimental/checks/03-security-checks.sh
  • test/e2e/e2e-cloud-experimental/checks/04-deepagents-code-fresh-reonboard.sh
  • test/e2e/e2e-cloud-experimental/checks/05-deepagents-code-landlock-readonly.sh
  • test/e2e/e2e-cloud-experimental/checks/06-deepagents-code-python-egress.sh
  • test/e2e/e2e-cloud-experimental/checks/07-deepagents-code-headless-inference.sh
  • test/e2e/e2e-cloud-experimental/checks/08-deepagents-code-secret-boundary.sh
  • test/e2e/e2e-cloud-experimental/checks/09-deepagents-code-tavily-opt-in.sh
  • test/e2e/e2e-cloud-experimental/checks/10-deepagents-code-tui-startup.sh
  • test/e2e/e2e-cloud-experimental/checks/11-deepagents-code-observability.sh
  • test/e2e/e2e-cloud-experimental/checks/12-deepagents-code-thread-auto-approval.sh
  • test/e2e/e2e-cloud-experimental/cleanup.sh
  • test/e2e/e2e-cloud-experimental/expect-interactive-install.sh
  • test/e2e/e2e-cloud-experimental/features/skill/add-sandbox-skill.sh
  • test/e2e/e2e-cloud-experimental/features/skill/lib/README.md
  • test/e2e/e2e-cloud-experimental/features/skill/verify-sandbox-skill-via-agent.sh
  • test/e2e/e2e-cloud-experimental/openclaw-tui-in-sandbox.sh
  • test/e2e/e2e-cloud-experimental/skip/README.md
  • test/e2e/e2e-cloud-experimental/test-inference-local-chat.sh
  • test/e2e/e2e-cloud-experimental/test-port8080-conflict.sh
  • test/e2e/fixtures/artifacts.ts
  • test/e2e/fixtures/availability-env.ts
  • test/e2e/fixtures/ci-compatible-inference.ts
  • test/e2e/fixtures/cleanup-resources.ts
  • test/e2e/fixtures/cleanup.ts
  • test/e2e/fixtures/clients/command.ts
  • test/e2e/fixtures/clients/gateway.ts
  • test/e2e/fixtures/clients/host.ts
  • test/e2e/fixtures/clients/index.ts
  • test/e2e/fixtures/clients/provider.ts
  • test/e2e/fixtures/clients/sandbox.ts
  • test/e2e/fixtures/clients/state.ts
  • test/e2e/fixtures/corporate-ca.ts
  • test/e2e/fixtures/docker-probe.ts
  • test/e2e/fixtures/e2e-test.ts
  • test/e2e/fixtures/environment-profiles.ts
  • test/e2e/fixtures/extra-providers-registry.ts
  • test/e2e/fixtures/fake-openai-compatible.ts
  • test/e2e/fixtures/file-state.ts
  • test/e2e/fixtures/gateway-providers.ts
  • test/e2e/fixtures/hermes-rebuild-swap.ts
  • test/e2e/fixtures/hermes-session.ts
  • test/e2e/fixtures/host-address.ts
  • test/e2e/fixtures/hosted-inference.ts
  • test/e2e/fixtures/http-protocol.ts
  • test/e2e/fixtures/inference-adapter.ts
  • test/e2e/fixtures/inference-switch-retry.ts
  • test/e2e/fixtures/issue-4462-pairing-seed.ts
  • test/e2e/fixtures/live-project-gate.ts
  • test/e2e/fixtures/mcp-bridge-credentials.ts
  • test/e2e/fixtures/onboard-performance.ts
  • test/e2e/fixtures/paths.ts
  • test/e2e/fixtures/phases/environment.ts
  • test/e2e/fixtures/phases/index.ts
  • test/e2e/fixtures/phases/lifecycle-dcode-invalid-credential.ts
  • test/e2e/fixtures/phases/lifecycle.ts
  • test/e2e/fixtures/phases/onboarding.ts
  • test/e2e/fixtures/phases/runtime.ts
  • test/e2e/fixtures/phases/state-validation.ts
  • test/e2e/fixtures/plugins/weather/.gitignore
  • test/e2e/fixtures/plugins/weather/openclaw.plugin.json
  • test/e2e/fixtures/plugins/weather/package.json
  • test/e2e/fixtures/plugins/weather/src/index.ts
  • test/e2e/fixtures/plugins/weather/src/version.ts
  • test/e2e/fixtures/plugins/weather/tsconfig.json
  • test/e2e/fixtures/polling.ts
  • test/e2e/fixtures/process-token-probe.ts
  • test/e2e/fixtures/progress.ts
  • test/e2e/fixtures/redaction.ts
  • test/e2e/fixtures/secrets.ts
  • test/e2e/fixtures/security-posture.ts
  • test/e2e/fixtures/shell-probe.ts

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch k8s-autoscaling

@maggiezha
maggiezha merged commit ddf9617 into main Jul 22, 2026
18 of 33 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.