Skip to content

fix(onboard): summarize inference validation failures - #5418

Merged
cv merged 3 commits into
mainfrom
fix/onboard-validation-error-summary
Jun 14, 2026
Merged

fix(onboard): summarize inference validation failures#5418
cv merged 3 commits into
mainfrom
fix/onboard-validation-error-summary

Conversation

@cv

@cv cv commented Jun 14, 2026

Copy link
Copy Markdown
Collaborator

Summary

Improves non-interactive onboarding diagnostics for hosted/custom inference validation failures by printing a credential-safe probe summary. Operators can now distinguish HTTP statuses such as 404/429 from curl/timeout failures without exposing raw response bodies or credentials.

Related Issue

Related to nightly run 27504927177.

Changes

  • Add src/lib/onboard/probe-diagnostics.ts to summarize probe failures as HTTP status, curl exit, or timeout-only diagnostics.
  • Update inference selection validation to print Validation probe summary: ... before the redaction notice.
  • Add tests proving raw provider bodies, stderr, and credential-shaped values are not surfaced in summaries.

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

  • Git hooks passed during commit and push, or npx prek run --from-ref main --to-ref HEAD passes
  • Targeted tests pass for changed behavior
  • Full npm test passes (broad runtime changes only)
  • 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)

Targeted verification:

  • npx biome check --write src/lib/onboard/inference-selection-validation.ts src/lib/onboard/probe-diagnostics.ts src/lib/onboard/probe-diagnostics.test.ts
  • npx vitest run --project cli src/lib/onboard/probe-diagnostics.test.ts
  • npm run typecheck:cli

Docs review: no user-facing docs changes needed; this changes CLI diagnostic wording only.


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

Summary by CodeRabbit

  • New Features

    • Added user-friendly probe failure diagnostics, including a formatted summary for validation failures when probe details are available.
  • Bug Fixes

    • Improved validation error reporting by surfacing clearer HTTP/curl/timeout context while omitting raw response/error details that could expose sensitive information.
  • Tests

    • Added a Vitest suite covering probe diagnostic summarization, including HTTP failures, curl/timeout failures, and fallback behavior when structured details are incomplete.

Signed-off-by: Carlos Villela <cvillela@nvidia.com>
@cv cv self-assigned this Jun 14, 2026
@coderabbitai

coderabbitai Bot commented Jun 14, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 8a690b83-a208-4aac-b762-f6b711f9cac7

📥 Commits

Reviewing files that changed from the base of the PR and between 17765d1 and f002451.

📒 Files selected for processing (1)
  • src/lib/onboard/inference-selection-validation.ts
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/lib/onboard/inference-selection-validation.ts

📝 Walkthrough

Walkthrough

Adds a new probe-diagnostics.ts module exporting summarizeProbeForDisplay, which converts raw probe failure data into a redacted human-readable string by inspecting structured failures or parsing the message field. The printValidationFailure helper in inference-selection-validation.ts is extended to accept and log probe summaries, and four validation call sites now pass the failing probe.

Changes

Probe Diagnostics and Validation Logging

Layer / File(s) Summary
summarizeProbeForDisplay implementation and tests
src/lib/onboard/probe-diagnostics.ts, src/lib/onboard/probe-diagnostics.test.ts
New module with a non-exported summarizeProbeFailureForDisplay helper and an exported summarizeProbeForDisplay that prioritizes structured failures entries and falls back to parsing message; Vitest suite asserts redaction of secrets and correct fallback classifications.
Integration into validation failure logging
src/lib/onboard/inference-selection-validation.ts
Imports summarizeProbeForDisplay, extends printValidationFailure to log a "Validation probe summary" line with a credentials-omitted notice when a probe is provided, and updates all four validation failure call sites to pass the probe.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Suggested labels

area: cli, area: onboarding, v0.0.64

Poem

🐇 A probe has failed, but fear not, dear friend,
No secrets leak out — credentials we defend!
I sniff at the status, the curl exit too,
And summarize neatly what went askew.
Hop, hop! Clean logs for me and for you! 🌿

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 12.50% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'fix(onboard): summarize inference validation failures' clearly and concisely describes the main change—adding diagnostic summaries to inference validation failure messages.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/onboard-validation-error-summary

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-code-quality

github-code-quality Bot commented Jun 14, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall coverage in the fix/onboard-validati... branch is 96%. Coverage data for the main branch is not yet available.

Show a code coverage summary of the most covered files.
File main fix/onboard-validati... f002451 +/-
nemoclaw/src/se...cret-scanner.ts 100%
nemoclaw/src/commands/slash.ts 100%
nemoclaw/src/li...bprocess-env.ts 100%
nemoclaw/src/bl...eprint/state.ts 98%
nemoclaw/src/onboard/config.ts 98%
nemoclaw/src/bl...int/snapshot.ts 97%
nemoclaw/src/bl...print/runner.ts 95%
nemoclaw/src/co...ration-state.ts 94%
nemoclaw/src/bl...ate-networks.ts 94%
nemoclaw/src/index.ts 94%

TypeScript / code-coverage/cli

The overall coverage in the fix/onboard-validati... branch is 44%. Coverage data for the main branch is not yet available.

Show a code coverage summary of the most covered files.
File main fix/onboard-validati... f002451 +/-
src/lib/state/o...oard-session.ts 90%
src/lib/inference/local.ts 77%
src/lib/sandbox/config.ts 72%
src/lib/inference/nim.ts 72%
src/lib/onboard/preflight.ts 64%
src/lib/state/sandbox.ts 55%
src/lib/onboard...er-gpu-patch.ts 50%
src/lib/actions...licy-channel.ts 49%
src/lib/policy/index.ts 48%
src/lib/onboard.ts 17%

Updated June 14, 2026 16:50 UTC
Code Coverage is in Public Preview. Learn more and provide us with your feedback.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 `@src/lib/onboard/inference-selection-validation.ts`:
- Line 90: The console.error message on line 90 has been changed from the
original wording "Validation details were omitted to avoid exposing
credentials." to "Detailed response bodies were omitted to avoid exposing
credentials." However, downstream validation-failure classification logic and
tests depend on the exact original wording. Revert the console.error message
text back to the original canonical wording to maintain compatibility with
downstream classifiers and prevent breaking validation-failure classification.
🪄 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: f56fd6e3-7cc8-40d8-b837-37e2a1a27f84

📥 Commits

Reviewing files that changed from the base of the PR and between 618e978 and 17765d1.

📒 Files selected for processing (3)
  • src/lib/onboard/inference-selection-validation.ts
  • src/lib/onboard/probe-diagnostics.test.ts
  • src/lib/onboard/probe-diagnostics.ts

Comment thread src/lib/onboard/inference-selection-validation.ts Outdated
@github-actions

github-actions Bot commented Jun 14, 2026

Copy link
Copy Markdown
Contributor

E2E Advisor Recommendation

Required E2E: onboard-negative-paths-vitest, inference-routing-vitest
Optional E2E: credential-sanitization-vitest, cloud-inference-vitest

Dispatch hint: onboard-negative-paths-vitest,inference-routing-vitest

Workflow run

Full advisor summary

E2E Recommendation Advisor

Base: origin/main
Head: HEAD
Confidence: high

Required E2E

  • onboard-negative-paths-vitest (medium): Required because onboarding negative-path behavior and CLI failure output changed. This job exercises real non-interactive onboard invalid-key handling and verifies failures remain clean and stack-trace-free.
  • inference-routing-vitest (high): Required because provider probe failure reporting is part of inference selection/routing. This job covers invalid API key and unreachable endpoint onboard failures, credential/transport classification, cleanup, and non-exposure of raw stack traces or submitted keys.

Optional E2E

  • credential-sanitization-vitest (high): Optional adjacent confidence for the broader credential non-exposure boundary, but the changed code is CLI probe diagnostic output rather than sandbox filesystem/config credential sanitization.
  • cloud-inference-vitest (high): Optional positive-path confidence that normal cloud onboarding and inference still work after adding probe diagnostic handling, though the PR primarily affects failed validation output.

New E2E recommendations

  • onboarding probe diagnostics redaction (medium): Existing E2E negative-path coverage checks classification and secret non-exposure, but does not appear to assert the new 'Validation probe summary' contract against a provider response body containing sensitive text.
    • Suggested test: Add a focused onboard/inference-routing E2E case using a controlled OpenAI-compatible mock endpoint that returns an HTTP error body with secret-shaped content, then assert CLI output includes only the coarse HTTP/curl probe summary and excludes the raw body.

Dispatch hint

  • Workflow: .github/workflows/e2e-vitest-scenarios.yaml
  • jobs input: onboard-negative-paths-vitest,inference-routing-vitest

@github-actions

github-actions Bot commented Jun 14, 2026

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Recommendation

Required Vitest E2E scenarios: ubuntu-repo-cloud-openclaw
Optional Vitest E2E scenarios: None

Dispatch required Vitest E2E scenarios:

  • gh workflow run e2e-vitest-scenarios.yaml --ref <pr-head-ref> --field scenarios=ubuntu-repo-cloud-openclaw

Workflow run

Full Vitest E2E advisor summary

Vitest E2E Scenario Advisor

Base: origin/main
Head: HEAD
Confidence: medium

Required Vitest E2E scenarios

  • ubuntu-repo-cloud-openclaw: The PR changes onboarding endpoint validation diagnostics used when probing inference providers. The smallest live-supported Vitest scenario that exercises the affected cloud OpenClaw onboarding path is ubuntu-repo-cloud-openclaw.
    • Dispatch: gh workflow run e2e-vitest-scenarios.yaml --ref <pr-head-ref> --field scenarios=ubuntu-repo-cloud-openclaw

Optional Vitest E2E scenarios

  • None.

Relevant changed files

  • src/lib/onboard/inference-selection-validation.ts
  • src/lib/onboard/probe-diagnostics.ts

@github-actions

github-actions Bot commented Jun 14, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor

Findings: 0 needs attention, 2 worth checking, 0 nice ideas
Since last review: 0 prior items resolved, 4 still apply, 0 new items found

Review findings

🛠️ Needs attention

  • None.

🔎 Worth checking

  • Claimed stderr redaction coverage is not explicit (src/lib/onboard/probe-diagnostics.test.ts:27): The PR claims tests prove raw provider bodies, stderr, and credential-shaped values are not surfaced in summaries. The added tests cover raw provider body and credential-shaped values in body/message fields, and they cover curl message redaction, but no test fixture includes a stderr field. The implementation currently ignores stderr, so this is a test-evidence gap rather than a confirmed leak.
    • Recommendation: Add a regression case where a failure includes stderr containing raw provider output and a credential-shaped value, then assert summarizeProbeForDisplay() does not include that stderr content.
    • Evidence: The new curl test at src/lib/onboard/probe-diagnostics.test.ts uses message with secret text but no stderr property; summarizeProbeForDisplay() intentionally only reads failures[].name, httpStatus, curlStatus, and probe.message.
  • Caller logging paths still lack mocked redaction coverage (src/lib/onboard/inference-selection-validation.ts:88): The summarizer unit tests are good, but the changed callers sit on credential retrieval, provider probe, console logging, process-exit, and recovery-prompt boundaries. A mocked integration test would verify the helper is wired into each validation failure path and that raw probe details are not accidentally printed by the surrounding control flow.
    • Recommendation: Add focused mocked tests for OpenAI-like, Anthropic, and noninteractive validation failures that inject secret-bearing message/body/stderr values and assert console.error receives only the endpoint failure line, coarse Validation probe summary, and redaction notice.
    • Evidence: All four failure branches now call printValidationFailure(label, probe), but only src/lib/onboard/probe-diagnostics.test.ts directly tests summarizeProbeForDisplay(); no test exercises createInferenceSelectionValidationHelpers() logging behavior.

🌱 Nice ideas

  • None.
Consider writing more tests for
  • **Mocked behavioral coverage** — validateOpenAiLikeSelection with a mocked failed probe containing secret-bearing message, body, and stderr logs only the endpoint failure line, coarse Validation probe summary, and redaction notice, then passes the full probe to promptValidationRecovery.. The new helper has useful unit tests, but the changed validation code performs console logging across credential, network-probe, recovery-prompt, and process-exit boundaries.
  • **Mocked behavioral coverage** — validateAnthropicSelectionWithRetryMessage with a mocked failed probe containing raw provider text and credential-shaped values logs the sanitized summary before prompting recovery and never logs raw response text.. The new helper has useful unit tests, but the changed validation code performs console logging across credential, network-probe, recovery-prompt, and process-exit boundaries.
  • **Mocked behavioral coverage** — Noninteractive OpenAI-like validation failure logs the sanitized summary and redaction notice, calls process.exit(1), and does not invoke promptValidationRecovery.. The new helper has useful unit tests, but the changed validation code performs console logging across credential, network-probe, recovery-prompt, and process-exit boundaries.
  • **Mocked behavioral coverage** — summarizeProbeForDisplay with failure.stderr set to raw provider output containing a credential-shaped value does not include stderr content in the returned summary.. The new helper has useful unit tests, but the changed validation code performs console logging across credential, network-probe, recovery-prompt, and process-exit boundaries.
  • **Claimed stderr redaction coverage is not explicit** — Add a regression case where a failure includes stderr containing raw provider output and a credential-shaped value, then assert summarizeProbeForDisplay() does not include that stderr content.
  • **Caller logging paths still lack mocked redaction coverage** — Add focused mocked tests for OpenAI-like, Anthropic, and noninteractive validation failures that inject secret-bearing message/body/stderr values and assert console.error receives only the endpoint failure line, coarse Validation probe summary, and redaction notice.
  • **Acceptance clause:** Add tests proving raw provider bodies, stderr, and credential-shaped values are not surfaced in summaries. — add test evidence or identify existing coverage. src/lib/onboard/probe-diagnostics.test.ts covers raw provider body and credential-shaped strings in message/body inputs, plus curl message redaction. No test fixture includes a stderr field, so that named part of the clause is not explicitly proven.
Since last review details

Current findings:

  • Claimed stderr redaction coverage is not explicit (src/lib/onboard/probe-diagnostics.test.ts:27): The PR claims tests prove raw provider bodies, stderr, and credential-shaped values are not surfaced in summaries. The added tests cover raw provider body and credential-shaped values in body/message fields, and they cover curl message redaction, but no test fixture includes a stderr field. The implementation currently ignores stderr, so this is a test-evidence gap rather than a confirmed leak.
    • Recommendation: Add a regression case where a failure includes stderr containing raw provider output and a credential-shaped value, then assert summarizeProbeForDisplay() does not include that stderr content.
    • Evidence: The new curl test at src/lib/onboard/probe-diagnostics.test.ts uses message with secret text but no stderr property; summarizeProbeForDisplay() intentionally only reads failures[].name, httpStatus, curlStatus, and probe.message.
  • Caller logging paths still lack mocked redaction coverage (src/lib/onboard/inference-selection-validation.ts:88): The summarizer unit tests are good, but the changed callers sit on credential retrieval, provider probe, console logging, process-exit, and recovery-prompt boundaries. A mocked integration test would verify the helper is wired into each validation failure path and that raw probe details are not accidentally printed by the surrounding control flow.
    • Recommendation: Add focused mocked tests for OpenAI-like, Anthropic, and noninteractive validation failures that inject secret-bearing message/body/stderr values and assert console.error receives only the endpoint failure line, coarse Validation probe summary, and redaction notice.
    • Evidence: All four failure branches now call printValidationFailure(label, probe), but only src/lib/onboard/probe-diagnostics.test.ts directly tests summarizeProbeForDisplay(); no test exercises createInferenceSelectionValidationHelpers() logging behavior.

Workflow run details

This is an automated advisory review. A human maintainer must make the final merge decision.

Comment thread src/lib/onboard/inference-selection-validation.ts Dismissed
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
@cv
cv merged commit c95b776 into main Jun 14, 2026
44 checks passed
@cv
cv deleted the fix/onboard-validation-error-summary branch June 14, 2026 16:53
@cv cv added the v0.0.65 label Jun 15, 2026
@miyoungc miyoungc mentioned this pull request Jun 16, 2026
13 tasks
cv pushed a commit that referenced this pull request Jun 17, 2026
## Summary
Refreshes release-prep documentation for NemoClaw v0.0.65.
Adds the v0.0.65 release-notes section and refreshes generated
`nemoclaw-user-*` skills from the Fern MDX source docs.

## Changes
- Added the v0.0.65 release notes to `docs/about/release-notes.mdx` with
links to the deeper docs pages for lifecycle, troubleshooting,
inference, CLI commands, messaging, credentials, network policy, Hermes,
and sub-agents.
- Regenerated the `nemoclaw-user-*` skills with
`scripts/docs-to-skills.py` so release-prep skill output matches the
merged source docs.
- Used the v0.0.65 announcement discussion as release context:
#5472.

## Source Summary
- #2492 -> `docs/about/release-notes.mdx`: Documents deadline-based
gateway wait reliability in the v0.0.65 recovery summary.
- #4958 -> `docs/about/release-notes.mdx`: Documents re-execed OpenClaw
gateway health check recovery in the sandbox recovery summary.
- #5163 -> `docs/about/release-notes.mdx`: Documents safer uninstall TTY
confirmation behavior in the day-two CLI summary.
- #5178 -> `docs/about/release-notes.mdx`: Documents fail-closed config
restore merge behavior in the rebuild and restore summary.
- #5179 -> `docs/about/release-notes.mdx`: Documents WeChat QR token
redaction in the messaging summary.
- #5182 -> `docs/about/release-notes.mdx`: Documents sustained gateway
serving checks in the recovery summary.
- #5194 -> `docs/about/release-notes.mdx`: Documents model-router
teardown during uninstall in the day-two CLI summary.
- #5195 -> `docs/about/release-notes.mdx`: Documents Shields
auto-restore lock reconfirmation in the rebuild and restore summary.
- #5198 -> `docs/about/release-notes.mdx`: Documents Docker Desktop WSL
CDI injection failure handling in the onboarding diagnostics summary.
- #5201 -> `docs/about/release-notes.mdx`: Documents sandbox
download/upload wrappers and sessions export in the day-two CLI summary.
- #5205 -> `docs/about/release-notes.mdx`: Documents reporter-owned
model metadata preservation in the rebuild and restore summary.
- #5214 -> `docs/about/release-notes.mdx`: Documents managed vLLM model
preflight before side effects in the inference setup summary.
- #5215 -> `docs/about/release-notes.mdx`: Documents managed vLLM extra
serve arguments in the inference setup summary.
- #5216 -> `docs/about/release-notes.mdx`: Documents silent OpenClaw
runtime fallback surfacing in the onboarding diagnostics summary.
- #5225 -> `docs/about/release-notes.mdx`: Documents persisted sandbox
gateway lookup in the gateway recovery summary.
- #5238 -> `docs/about/release-notes.mdx`: Documents sub-agent gateway
dial-back through the sandbox interface in the Hermes and sub-agent
summary.
- #5248 -> `docs/about/release-notes.mdx`: Documents Discord per-account
proxy resolution in the messaging summary.
- #5264 -> `docs/about/release-notes.mdx`: Documents reserved Hermes
port `8642` handling in the Hermes compatibility summary.
- #5267 -> `docs/about/release-notes.mdx`: Documents the narrower Hermes
baseline policy in the Hermes compatibility summary.
- #5321 -> `docs/about/release-notes.mdx`: Documents restored gateway
guard chains in the gateway recovery summary.
- #5328 -> `docs/about/release-notes.mdx`: Documents compact persisted
messaging plans in the messaging summary.
- #5338 -> `docs/about/release-notes.mdx`: Documents manifest channel
migration in the messaging summary.
- #5352 -> `docs/about/release-notes.mdx`: Documents persisted agent
preservation through registry recovery in the rebuild and restore
summary.
- #5371 ->
`.agents/skills/nemoclaw-user-reference/references/commands.md`:
Refreshes generated skill output for custom build cache and
layer-ordering source docs.
- #5379 -> `docs/about/release-notes.mdx`: Documents dashboard port
allocation across multiple NemoClaw gateways in the recovery summary.
- #5382 -> `docs/about/release-notes.mdx`: Documents recovery when an
active gateway has no sandbox spec in the recovery summary.
- #5389 ->
`.agents/skills/nemoclaw-user-reference/references/troubleshooting.md`:
Refreshes generated skill output for declared agent `forward_ports`
recovery source docs.
- #5400 -> `docs/about/release-notes.mdx`: Documents bounded compatible
endpoint probes in the inference setup summary.
- #5410 -> `docs/about/release-notes.mdx`: Documents provider credential
hash removal from sandbox registry entries in the messaging summary.
- #5418 -> `docs/about/release-notes.mdx`: Documents summarized
inference validation failures in the onboarding diagnostics summary.
- #5457 -> `docs/about/release-notes.mdx`: Documents context-window
recomputation after runtime model switches in the inference setup
summary.
- #5463 -> `docs/about/release-notes.mdx`: Documents cleanup of
hard-coded messaging channel stragglers in the messaging summary.

## Skipped
- #5366 matched `docs/.docs-skip` entries through skipped experimental
paths, so this PR does not add new release-note text for that commit.

## 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)

## Verification
- [x] Git hooks passed during commit and push, or `npx prek run
--from-ref main --to-ref HEAD` passes
- [ ] Targeted tests pass for changed behavior
- [ ] Full `npm test` passes (broad runtime changes only)
- [ ] Tests added or updated for new or changed behavior
- [x] No secrets, API keys, or credentials committed
- [x] Docs updated for user-facing behavior changes
- [ ] `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)

Verification notes:
- `npm run docs` passed after rerunning outside the sandbox. Fern
reported 0 errors and 1 hidden warning.
- The first sandboxed `npm run docs` attempt failed before validation
because `tsx` could not create its local IPC pipe under sandbox
restrictions.
- `npm run build:cli` passed before push to refresh the local `dist/`
artifacts used by the CLI typecheck hook.
- `npm test` was not run because this is a docs-only release refresh.

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

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

* **New Features**
* Released NemoClaw v0.0.65 with improved gateway/sandbox recovery,
safer day-two workflows, and enhanced Hermes compatibility.
* Added managed vLLM extra-arguments configuration via
`NEMOCLAW_VLLM_EXTRA_ARGS_JSON`.
* Added Hermes troubleshooting guidance for port forwarding and health
checks.

* **Documentation**
* Updated NVIDIA Endpoints/NIM setup and examples to use
`NVIDIA_INFERENCE_API_KEY`.
* Refined NVIDIA network policy and Model Router API base configuration.
* Expanded CLI/environment variable documentation (including sub-agent
gateway connectivity) and plugin build performance tips.

* **Tests**
  * Expanded Vitest-backed E2E release validation coverage.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
@wscurran wscurran added area: onboarding Onboarding FSM, provider setup, sandbox launch, or first-run flow bug-fix PR fixes a bug or regression labels Aug 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: onboarding Onboarding FSM, provider setup, sandbox launch, or first-run flow bug-fix PR fixes a bug or regression

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants