feat(bench): add agent-runnable value benchmark harness (#5604) - #5649
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughA local benchmark harness is added under ChangesNemoClaw Value Benchmark Harness
Estimated code review effort: 4 (Complex) | ~60 minutes Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@scripts/bench/run.ts`:
- Around line 222-223: The error messages in the preflight checks for missing
options.baseUrl and options.model only mention the OPENAI_BASE_URL and
OPENAI_MODEL environment variables, but the argument parser also accepts
NEMOCLAW_BENCH_BASE_URL and NEMOCLAW_BENCH_MODEL. Update both error message
strings to include all supported environment variable names so users are aware
of all available options during setup failures.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 1e9c6514-583c-4f42-a2ac-432d9f358db9
📒 Files selected for processing (5)
package.jsonscripts/bench/README.mdscripts/bench/lib.tsscripts/bench/run.tstest/bench/bench.test.ts
|
CodeRabbit feedback addressed (commit |
|
✨ Thanks for the proposed benchmark harness that measures inference-round-trip, sandbox-cold-start, and policy-shield-overhead timings. This proposes a way to run Related open issues: |
5a078c8 to
fd296cb
Compare
Add a developer- and agent-runnable benchmark under scripts/bench/ that answers "is NemoClaw fast enough on this machine?" and emits both machine-readable JSON (schema nemoclaw.bench.v1) and a concise Markdown value report. v1 metrics: - inference-round-trip: times N OpenAI-compatible /v1/chat/completions calls (warm-up + samples) and reports min/median/p95/mean/max. - sandbox-cold-start and policy-shield-overhead: ingested from an existing onboard trace artifact (nemoclaw.sandbox.create_stream, nemoclaw.sandbox.readiness_wait, nemoclaw.policy.application spans); marked "unsupported" with a clear reason when no --trace is supplied. Behavior: - One documented command via `npm run bench` (tsx scripts/bench/run.ts). - Fails clearly (non-zero) when endpoint/model/API key prerequisites are missing. - Redacts URL userinfo and scrubs secret-shaped strings from all output; the API key is read from an env var, never a flag. - Contacts only the configured inference endpoint; no external telemetry. Interpretation is deliberately advisory and non-normative: NemoClaw does not ship owner-approved pass/warn/fail thresholds yet (NVIDIA#3776), so the numbers compare runs rather than gate. Documentation lives in scripts/bench/README.md, including how an agent should run the benchmark and summarize the result. Unit tests cover stats, URL handling, secret redaction, live round-trip (ok / error / throw via injected fetch), trace ingestion, and report rendering. Signed-off-by: Abhimanyu Kumar <abhimanyukumar7290@gmail.com>
The preflight error only mentioned OPENAI_BASE_URL / OPENAI_MODEL, but the parser also accepts NEMOCLAW_BENCH_BASE_URL / NEMOCLAW_BENCH_MODEL. Include them so the failure message is accurate. Signed-off-by: Abhimanyu Kumar <abhimanyukumar7290@gmail.com>
fd296cb to
cbbed1b
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@scripts/bench/run.ts`:
- Around line 126-127: Avoid calling process.exit() immediately after writing
the help output in main() and the related error/report paths in
scripts/bench/run.ts; process.stdout.write/process.stderr.write can be async and
lose piped output. Update the help/error handling around the usage branch and
the final reporting logic to use synchronous writes where needed and set
process.exitCode instead of exiting directly, so the streams in main() can drain
cleanly.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 26b96016-21be-44f2-b7b3-722110cfc1dd
📒 Files selected for processing (4)
package.jsonscripts/bench/README.mdscripts/bench/lib.tsscripts/bench/run.ts
✅ Files skipped from review due to trivial changes (1)
- scripts/bench/README.md
🚧 Files skipped from review as they are similar to previous changes (2)
- package.json
- scripts/bench/lib.ts
prekshivyas
left a comment
There was a problem hiding this comment.
Review (maintainer skill) — security clean, but blocked on validation
Security: clean. This is dev-only benchmark tooling under scripts/bench/ with no production/sandbox surface. No child_process/exec/eval — the only outbound call is fetch to a developer-configured inference endpoint (OPENAI_BASE_URL/NEMOCLAW_BENCH_BASE_URL); reports scrub secret-shaped substrings and record only api_key_present: boolean; no new dependencies (adds a bench npm script only). No secret/injection/exec concerns.
Why I'm not approving yet — the merge bar isn't met: this is a fork PR, so both PR advisors and the E2E recommendation advisor were skipped (no secrets access), and only 4 basic checks ran — the new test/bench/bench.test.ts and the standard CLI test shards never executed. So the harness itself is unverified by CI.
To unblock: a maintainer should run the PR-review/E2E advisor workflow against this fork PR (advisor-equivalent coverage), and get the CLI test shards to run (the branch may need a refresh so the current CI workflows apply). Once the tests actually run green, this is a straightforward approve given the clean security surface.
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
|
The Please rebase or merge git fetch upstream
git merge upstream/main
git push |
process.exit() after async process.stdout/stderr.write() can drop the help text, report, or error message when output is piped. Use a synchronous write on the help path and set process.exitCode in main() and the error handler so the streams drain before the process exits. Signed-off-by: Abhimanyu Kumar <abhimanyukumar7290@gmail.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
|
@coderabbitai review |
✅ Action performedReview finished.
|
cv
left a comment
There was a problem hiding this comment.
Reviewed exact head 2f3b00d after main refresh. Required CI is green, installer pins validate against OpenShell 0.0.72, all commits are Verified with DCO, CodeRabbit has no unresolved findings, and the focused benchmark/security review passed.
Fail closed on malformed endpoints and non-completion HTTP responses, omit remote response bodies from reports, and redact configured secrets and query values. Validate trace lineage and duration bounds, expose sanitized comparison context, and leave unavailable request-path policy overhead explicitly unsupported. Add process-level CLI coverage for output, redaction, exit status, and prerequisite failures. Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
cv
left a comment
There was a problem hiding this comment.
Re-approving exact head 78f0016 after the maintainer refresh. Strict HTTPS is now required for remote endpoints (literal loopback exceptions only), the prior plaintext credential-exposure risk is closed, 51/51 focused benchmark/CLI tests pass, the conditional scan and Biome pass, all 32 repository gates are green, CodeRabbit is clean, and DCO/GitHub verification pass for all commits.
ericksoa
left a comment
There was a problem hiding this comment.
Reviewed exact head e75419f after the final main restack. The endpoint, credential-selection, response-validation, report-redaction, and trace-integrity boundaries are closed; 53/53 focused benchmark tests and the readiness/progress regression suite pass. The full required matrix is green, all 13 commits are Verified with DCO, CodeRabbit is clean, the trusted PR advisor has no remaining findings, and the E2E advisor requires no runs or targets. Approving for v0.0.74.
<!-- markdownlint-disable MD041 --> ## Summary This PR prepares the user-facing documentation for v0.0.74 before the release plan is frozen. It expands the release notes across the 56-commit train and closes durable documentation gaps found during the pre-tag commit scan. ## Changes - Expand the `v0.0.74` release notes to cover OpenShell 0.0.72, managed MCP, progressive tool disclosure, LangChain Deep Agents Code, onboarding, local inference, messaging, recovery, and contributor workflows. - Correct the `destroy` contract for retained per-name volumes, gateway-unreachable `--force` cleanup, managed MCP ownership, and same-name recovery. - Document separate remediation for an unreachable container DNS resolver versus one that answers with `NXDOMAIN` or `REFUSED`. - Document the Windows on Arm N1X automatic Ollama safeguard and its remaining large-model limitations. - State that messaging conflicts abort rebuild before backup or deletion, leaving the original sandbox intact. - Link the agent-runnable value benchmark from the contributor task index. - Synchronize generated agent command variants. - Validate with `npm run docs:sync-agent-variants` and `npm run docs`; Fern completed with 0 errors and 2 existing warnings. - Source summary: - [#6020](#6020) and [#5876](#5876) -> `docs/about/release-notes.mdx`: Consolidate the OpenShell 0.0.72 policy boundary and managed MCP lifecycle. - [#6251](#6251) and [#5989](#5989) -> `docs/about/release-notes.mdx`: Summarize progressive tool disclosure and sandbox-first inference controls. - [#6232](#6232), [#6082](#6082), [#6219](#6219), [#6214](#6214), [#6215](#6215), [#6230](#6230), and [#6260](#6260) -> `docs/about/release-notes.mdx`: Summarize the experimental LangChain Deep Agents Code status, secret, version, rebuild, snapshot, and MCP boundaries. - [#6166](#6166), [#6254](#6254), [#6265](#6265), [#6164](#6164), and [#6017](#6017) -> `docs/about/release-notes.mdx`: Summarize BuildKit prebuild, validated image reuse, bounded readiness, and preflight improvements. - [#6150](#6150) -> `docs/about/release-notes.mdx` and `docs/reference/troubleshooting.mdx`: Separate unreachable-resolver remediation from reachable-but-rejected DNS responses. - [#6234](#6234) -> `docs/about/release-notes.mdx`, `docs/inference/use-local-inference.mdx`, and `docs/get-started/windows-preparation.mdx`: Document N1X automatic 9B selection and the remaining explicit-large-model boundary. - [#6129](#6129), [#5987](#5987), [#5955](#5955), and [#6220](#6220) -> `docs/about/release-notes.mdx`, `docs/manage-sandboxes/messaging-channels.mdx`, `docs/reference/commands.mdx`, and `docs/reference/commands-nemohermes.mdx`: Document messaging policy persistence, status, and the pre-destructive conflict check. - [#5963](#5963), [#6050](#6050), [#6094](#6094), [#6238](#6238), [#5988](#5988), [#6235](#6235), [#6181](#6181), and [#5986](#5986) -> `docs/about/release-notes.mdx`, `docs/reference/commands.mdx`, and `docs/reference/commands-nemohermes.mdx`: Summarize day-two recovery and clarify retained-volume and local-only destroy semantics. - [#6200](#6200), [#6248](#6248), [#6168](#6168), [#6270](#6270), and [#5649](#5649) -> `docs/about/release-notes.mdx` and `CONTRIBUTING.md`: Summarize contributor setup and verification improvements and expose the advisory value benchmark. ## 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 <!-- Check exactly one tests line and one docs line. Check other lines when applicable. Add every requested justification or approval reference. --> - [ ] Tests added or updated for changed behavior - [ ] Existing tests cover changed behavior — justification: - [x] Tests not applicable — justification: documentation-only release preparation; generated-variant synchronization and the Fern docs build validate the changed pages and routes. - [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 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: tests are not applicable to this documentation-only change; `npm run docs` validates the source and generated routes. - [ ] 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) - [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: Aaron Erickson <aerickson@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Expanded setup guidance for Windows on Arm devices with safer default local model selection. * Clarified local inference and sandbox messaging behavior, including conflict checks before rebuilds and safer recovery steps. * Updated destroy/rebuild/reference docs with more detailed warnings, failure handling, and volume-retention guidance. * Improved troubleshooting instructions for Docker DNS issues with clearer paths for unreachable vs. blocked resolvers. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
…NVIDIA#5649) <!-- markdownlint-disable MD041 --> ## Summary Adds a developer- and agent-runnable value benchmark under `scripts/bench/`, exposed as `npm run bench`. It emits `nemoclaw.bench.v1` JSON and a concise Markdown report for live inference latency and trace-backed sandbox startup; request-path policy overhead remains explicitly `unsupported` until dedicated instrumentation exists. ## Related Issue Closes NVIDIA#5604 ## Changes - Measures OpenAI-compatible inference round trips and reports min/median/p95/mean/max. - Ingests validated production onboard traces for sandbox cold-start timing and sanitized comparison context. - Requires HTTPS except for true loopback HTTP, rejects URL credentials and redirects, and allowlists API-key variables to `OPENAI_API_KEY` and `NVIDIA_INFERENCE_API_KEY`. - Redacts query values and configured secrets, omits remote error bodies, rejects arbitrary HTTP 2xx responses, and replaces untrusted trace status text with fixed report-safe reasons. - Documents prerequisites, usage, schema, interpretation, and agent workflow in `scripts/bench/README.md`. - Adds unit and process-level CLI coverage for statistics, traces, endpoint and secret boundaries, output, exit status, and prerequisite failures. Exact-head verification for `e75419fe5dc80c007d854a8e00e95c7bdcee3350`: - `npx vitest run test/bench/bench.test.ts test/bench/bench-cli.test.ts` — 53/53 passed. - `npx vitest run --project cli src/lib/onboard/sandbox-readiness-tracing.test.ts src/lib/onboard/machine/phase-progress.test.ts` — 35 passed, 1 expected skip. - `npm run typecheck`, `npm run build:cli`, `npm run typecheck:cli`, `npm run lint`, and repository policy checks — passed; lint reports one unrelated existing warning. - Production trace probe — sandbox and readiness timing ingested correctly after the latest `main` restack; policy overhead correctly remained `unsupported` because the current span measures setup rather than request-path shield overhead. - [PR Review / Advisor](https://github.com/NVIDIA/NemoClaw/actions/runs/28687675601) — exact-head GPT review found no required fixes, resolve/justify items, or in-scope improvements; prior secret-boundary findings are resolved. - [E2E / Advisor](https://github.com/NVIDIA/NemoClaw/actions/runs/28687676448) — no required or optional E2E runs or targets. ## 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 advisor review covered endpoint confinement, API-key selection, output redaction, completion validation, and trace lineage/status/duration checks; see the PR Review / Advisor run above and the [maintainer security approval](NVIDIA#5649 (review)). - [x] Non-success, skipped, or missing CI check accepted by maintainer — automatic advisor jobs skip fork PRs by design; trusted manual exact-head PR-review and E2E runs are linked above. GPT produced a clean final review; the parallel Nemotron job completed but its synthesis JSON was unusable. Fork-advisor follow-up: NVIDIA#6145. The conditional docs-only job is not applicable to this code PR. ## Verification - [x] PR description includes the DCO sign-off declaration and every commit appears as `Verified` in GitHub — 13/13 at exact head. - [ ] Git hooks passed during commit and push, or `npx prek run --from-ref main --to-ref HEAD` passes — not claimed. - [x] Targeted tests pass for changed behavior - [ ] Full `npm test` passes (broad runtime changes only) — not required for this isolated developer benchmark; the exact-head GitHub CI shards provide broad coverage. - [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; this is not a doc-only PR. - [ ] Doc pages follow the [style guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md) (doc changes only) — not applicable; only the benchmark README changed. - [ ] New doc pages include SPDX header and frontmatter (new pages only) — not applicable; no documentation page was added. --- Signed-off-by: Abhimanyu Kumar <abhimanyukumar7290@gmail.com> Signed-off-by: Aaron Erickson <aerickson@nvidia.com> --------- Signed-off-by: Abhimanyu Kumar <abhimanyukumar7290@gmail.com> Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com> Signed-off-by: Carlos Villela <cvillela@nvidia.com> Signed-off-by: Aaron Erickson <aerickson@nvidia.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> Co-authored-by: Aaron Erickson <aerickson@nvidia.com>
<!-- markdownlint-disable MD041 --> ## Summary This PR prepares the user-facing documentation for v0.0.74 before the release plan is frozen. It expands the release notes across the 56-commit train and closes durable documentation gaps found during the pre-tag commit scan. ## Changes - Expand the `v0.0.74` release notes to cover OpenShell 0.0.72, managed MCP, progressive tool disclosure, LangChain Deep Agents Code, onboarding, local inference, messaging, recovery, and contributor workflows. - Correct the `destroy` contract for retained per-name volumes, gateway-unreachable `--force` cleanup, managed MCP ownership, and same-name recovery. - Document separate remediation for an unreachable container DNS resolver versus one that answers with `NXDOMAIN` or `REFUSED`. - Document the Windows on Arm N1X automatic Ollama safeguard and its remaining large-model limitations. - State that messaging conflicts abort rebuild before backup or deletion, leaving the original sandbox intact. - Link the agent-runnable value benchmark from the contributor task index. - Synchronize generated agent command variants. - Validate with `npm run docs:sync-agent-variants` and `npm run docs`; Fern completed with 0 errors and 2 existing warnings. - Source summary: - [NVIDIA#6020](NVIDIA#6020) and [NVIDIA#5876](NVIDIA#5876) -> `docs/about/release-notes.mdx`: Consolidate the OpenShell 0.0.72 policy boundary and managed MCP lifecycle. - [NVIDIA#6251](NVIDIA#6251) and [NVIDIA#5989](NVIDIA#5989) -> `docs/about/release-notes.mdx`: Summarize progressive tool disclosure and sandbox-first inference controls. - [NVIDIA#6232](NVIDIA#6232), [NVIDIA#6082](NVIDIA#6082), [NVIDIA#6219](NVIDIA#6219), [NVIDIA#6214](NVIDIA#6214), [NVIDIA#6215](NVIDIA#6215), [NVIDIA#6230](NVIDIA#6230), and [NVIDIA#6260](NVIDIA#6260) -> `docs/about/release-notes.mdx`: Summarize the experimental LangChain Deep Agents Code status, secret, version, rebuild, snapshot, and MCP boundaries. - [NVIDIA#6166](NVIDIA#6166), [NVIDIA#6254](NVIDIA#6254), [NVIDIA#6265](NVIDIA#6265), [NVIDIA#6164](NVIDIA#6164), and [NVIDIA#6017](NVIDIA#6017) -> `docs/about/release-notes.mdx`: Summarize BuildKit prebuild, validated image reuse, bounded readiness, and preflight improvements. - [NVIDIA#6150](NVIDIA#6150) -> `docs/about/release-notes.mdx` and `docs/reference/troubleshooting.mdx`: Separate unreachable-resolver remediation from reachable-but-rejected DNS responses. - [NVIDIA#6234](NVIDIA#6234) -> `docs/about/release-notes.mdx`, `docs/inference/use-local-inference.mdx`, and `docs/get-started/windows-preparation.mdx`: Document N1X automatic 9B selection and the remaining explicit-large-model boundary. - [NVIDIA#6129](NVIDIA#6129), [NVIDIA#5987](NVIDIA#5987), [NVIDIA#5955](NVIDIA#5955), and [NVIDIA#6220](NVIDIA#6220) -> `docs/about/release-notes.mdx`, `docs/manage-sandboxes/messaging-channels.mdx`, `docs/reference/commands.mdx`, and `docs/reference/commands-nemohermes.mdx`: Document messaging policy persistence, status, and the pre-destructive conflict check. - [NVIDIA#5963](NVIDIA#5963), [NVIDIA#6050](NVIDIA#6050), [NVIDIA#6094](NVIDIA#6094), [NVIDIA#6238](NVIDIA#6238), [NVIDIA#5988](NVIDIA#5988), [NVIDIA#6235](NVIDIA#6235), [NVIDIA#6181](NVIDIA#6181), and [NVIDIA#5986](NVIDIA#5986) -> `docs/about/release-notes.mdx`, `docs/reference/commands.mdx`, and `docs/reference/commands-nemohermes.mdx`: Summarize day-two recovery and clarify retained-volume and local-only destroy semantics. - [NVIDIA#6200](NVIDIA#6200), [NVIDIA#6248](NVIDIA#6248), [NVIDIA#6168](NVIDIA#6168), [NVIDIA#6270](NVIDIA#6270), and [NVIDIA#5649](NVIDIA#5649) -> `docs/about/release-notes.mdx` and `CONTRIBUTING.md`: Summarize contributor setup and verification improvements and expose the advisory value benchmark. ## 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 <!-- Check exactly one tests line and one docs line. Check other lines when applicable. Add every requested justification or approval reference. --> - [ ] Tests added or updated for changed behavior - [ ] Existing tests cover changed behavior — justification: - [x] Tests not applicable — justification: documentation-only release preparation; generated-variant synchronization and the Fern docs build validate the changed pages and routes. - [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 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: tests are not applicable to this documentation-only change; `npm run docs` validates the source and generated routes. - [ ] 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) - [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: Aaron Erickson <aerickson@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Expanded setup guidance for Windows on Arm devices with safer default local model selection. * Clarified local inference and sandbox messaging behavior, including conflict checks before rebuilds and safer recovery steps. * Updated destroy/rebuild/reference docs with more detailed warnings, failure handling, and volume-retention guidance. * Improved troubleshooting instructions for Docker DNS issues with clearer paths for unreachable vs. blocked resolvers. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Summary
Adds a developer- and agent-runnable value benchmark under
scripts/bench/, exposed asnpm run bench. It emitsnemoclaw.bench.v1JSON and a concise Markdown report for live inference latency and trace-backed sandbox startup; request-path policy overhead remains explicitlyunsupporteduntil dedicated instrumentation exists.Related Issue
Closes #5604
Changes
OPENAI_API_KEYandNVIDIA_INFERENCE_API_KEY.scripts/bench/README.md.Exact-head verification for
e75419fe5dc80c007d854a8e00e95c7bdcee3350:npx vitest run test/bench/bench.test.ts test/bench/bench-cli.test.ts— 53/53 passed.npx vitest run --project cli src/lib/onboard/sandbox-readiness-tracing.test.ts src/lib/onboard/machine/phase-progress.test.ts— 35 passed, 1 expected skip.npm run typecheck,npm run build:cli,npm run typecheck:cli,npm run lint, and repository policy checks — passed; lint reports one unrelated existing warning.mainrestack; policy overhead correctly remainedunsupportedbecause the current span measures setup rather than request-path shield overhead.Type of Change
Quality Gates
Verification
Verifiedin GitHub — 13/13 at exact head.npx prek run --from-ref main --to-ref HEADpasses — not claimed.npm testpasses (broad runtime changes only) — not required for this isolated developer benchmark; the exact-head GitHub CI shards provide broad coverage.npm run docsbuilds without warnings (doc changes only) — not applicable; this is not a doc-only PR.Signed-off-by: Abhimanyu Kumar abhimanyukumar7290@gmail.com
Signed-off-by: Aaron Erickson aerickson@nvidia.com