Skip to content

perf(inference): reuse selected chat capability - #6730

Merged
cv merged 2 commits into
NVIDIA:mainfrom
HOYALIM:codex/inference-capability-session-cache
Jul 13, 2026
Merged

perf(inference): reuse selected chat capability#6730
cv merged 2 commits into
NVIDIA:mainfrom
HOYALIM:codex/inference-capability-session-cache

Conversation

@HOYALIM

@HOYALIM HOYALIM commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

Summary

Avoid repeating the same successful Chat Completions capability request during one onboarding run. Provider selection records a narrowly scoped, one-shot capability receipt that the immediately following host smoke consumes only when endpoint, model, authentication mode, and semantic requirements still match.

Changes

  • Add an in-memory, one-shot onboarding capability cache that never stores credentials.
  • Reuse only validated Chat Completions results for non-pinned, non-custom-header, credential-free URL shapes.
  • Invalidate the receipt on provider or route setup failures and fall back to the existing smoke path on any mismatch.
  • Keep SSRF-pinned, specialized streaming, custom-header, and accepted-but-unvalidated paths unchanged.

Verification

  • npx vitest run --project cli src/lib/onboard/inference-capability-cache.test.ts src/lib/onboard/inference-selection-validation.test.ts
  • npx vitest run --project integration test/onboard-smoke-verifier.test.ts
  • npm run build:cli
  • npm run typecheck:cli
  • npm run check:diff

Signed-off-by: Ho Lim subhoya@gmail.com

Summary by CodeRabbit

  • New Features
    • Reduced duplicate onboarding validation by reusing successful OpenAI-like Chat Completions checks across provider/model setup and smoke verification via an optional one-shot, in-memory capability cache.
  • Bug Fixes
    • Automatically invalidates cached entries when provider setup or validation fails to prevent stale reuse.
  • Tests
    • Added coverage for cache reuse (including benign endpoint normalization), one-time consumption, model/auth mismatches, security-sensitive rejection, invalidation, and skipping duplicate smoke probes; also added scenarios for safely/non-safely cacheable capability priming.

Copilot AI review requested due to automatic review settings July 12, 2026 23:10
@copy-pr-bot

copy-pr-bot Bot commented Jul 12, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

Copilot AI 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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@coderabbitai

coderabbitai Bot commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It 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 reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The PR adds a per-run, one-shot cache for successful OpenAI Chat Completions validation, propagates it through NIM onboarding, reuses matching results during smoke verification, and invalidates cached state on validation or setup failures.

Changes

Onboarding capability cache

Layer / File(s) Summary
Cache key and one-shot storage
src/lib/onboard/inference-capability-cache.ts, src/lib/onboard/inference-capability-cache.test.ts
Adds credential-safe cache-key generation, one-shot retrieval, invalidation, and tests for matching, mismatched, and sensitive inputs.
Selection validation recording
src/lib/onboard/inference-selection-validation.ts, src/lib/onboard/inference-selection-validation.test.ts
Records eligible successful OpenAI-like selections and invalidates cached state when probing fails.
Onboarding cache propagation
src/lib/onboard/setup-nim-flow.ts, src/lib/onboard/setup-nim-selection.ts, src/lib/onboard/machine/handlers/provider-inference.ts, src/lib/onboard/setup-inference.ts, src/lib/onboard/inference-providers/*
Creates a per-run cache and passes it through selection, provider setup, and smoke-verification paths; setup failures invalidate it.
Smoke verification reuse and coverage
src/lib/inference/onboard-probes.ts, test/helpers/onboard-smoke-verifier-harness.ts, test/onboard-smoke-verifier.test.ts
Skips matching duplicate smoke probes, invalidates the cache after probe failure, and tests reuse, zero-probe behavior, and unsafe cache priming.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
  participant SelectionValidation
  participant OnboardInferenceCapabilityCache
  participant VerifyOnboardInferenceSmoke
  participant SmokeProbe
  SelectionValidation->>OnboardInferenceCapabilityCache: Record successful Chat Completions validation
  VerifyOnboardInferenceSmoke->>OnboardInferenceCapabilityCache: Consume matching validation
  OnboardInferenceCapabilityCache-->>VerifyOnboardInferenceSmoke: Return reusable result
  VerifyOnboardInferenceSmoke->>VerifyOnboardInferenceSmoke: Skip duplicate smoke probe
  VerifyOnboardInferenceSmoke->>SmokeProbe: Run probe when no reusable result exists
  SmokeProbe-->>OnboardInferenceCapabilityCache: Invalidate after probe failure
Loading

Possibly related PRs

  • NVIDIA/NemoClaw#3603: Adds the smoke-probe flow that this PR extends with capability-cache reuse and invalidation.
  • NVIDIA/NemoClaw#4289: Updates the overlapping provider-inference setup options path with a separate inference option.

Suggested labels: feature, integration: hermes, NV QA

Suggested reviewers: ericksoa, cv, jyaunches

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% 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 is concise and matches the main change: reusing selected chat capability via an inference cache.
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.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@github-actions

github-actions Bot commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

E2E Advisor Recommendation

Required E2E: cloud-onboard, inference-routing, network-policy, onboard-repair, onboard-resume
Optional E2E: None

Dispatch hint: cloud-onboard,inference-routing,network-policy,onboard-repair,onboard-resume

Workflow run

Full advisor summary

E2E Recommendation Advisor

Base: target/main
Head: HEAD
Confidence: high

Required E2E

  • cloud-onboard: Validate clean hosted onboarding with the changed provider-selection, inference setup, route verification, and smoke-check flow.
  • inference-routing: Validate that inference routes remain usable when selection validation and onboarding smoke verification share capability state.
  • network-policy: Validate intended inference connectivity and policy isolation, including the changed handling of pinned and security-sensitive probe paths.
  • onboard-repair: Validate repair convergence after provider/inference setup failures invalidate transient validation state.
  • onboard-resume: Validate resumed onboarding preserves correct provider route behavior without persisting or incorrectly reusing one-run capability state.

Optional E2E

  • None.

New E2E recommendations

  • inference-routing (medium): Existing unit and harness coverage verifies one-shot cache matching and invalidation, but the selected-provider live flow should explicitly prove that an eligible validation is reused exactly once and that a retry/failure forces a fresh real probe.
    • Suggested test: Extend an existing live onboarding/inference-routing scenario with an instrumented OpenAI-compatible endpoint that records selection and smoke probes, asserting one reuse only for an identical non-sensitive route and a fresh probe after invalidation.

Dispatch hint

  • Workflow: .github/workflows/e2e.yaml
  • jobs input: cloud-onboard,inference-routing,network-policy,onboard-repair,onboard-resume

@HOYALIM
HOYALIM force-pushed the codex/inference-capability-session-cache branch from ef6a203 to 93e94c9 Compare July 12, 2026 23:12

@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-capability-cache.test.ts`:
- Around line 21-27: Remove both conditional request increments in the cache
test and assert the boolean results of takeCompletedOpenAiChat directly,
preserving the expected first and second one-shot outcomes and request counts.
🪄 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: f33d1909-75e5-4467-aeba-955caf4b8cfa

📥 Commits

Reviewing files that changed from the base of the PR and between 13bece6 and ef6a203.

📒 Files selected for processing (13)
  • src/lib/inference/onboard-probes.ts
  • src/lib/onboard/inference-capability-cache.test.ts
  • src/lib/onboard/inference-capability-cache.ts
  • src/lib/onboard/inference-providers/remote.ts
  • src/lib/onboard/inference-providers/types.ts
  • src/lib/onboard/inference-selection-validation.test.ts
  • src/lib/onboard/inference-selection-validation.ts
  • src/lib/onboard/machine/handlers/provider-inference.ts
  • src/lib/onboard/setup-inference.ts
  • src/lib/onboard/setup-nim-flow.ts
  • src/lib/onboard/setup-nim-selection.ts
  • test/helpers/onboard-smoke-verifier-harness.ts
  • test/onboard-smoke-verifier.test.ts

Comment thread src/lib/onboard/inference-capability-cache.test.ts Outdated
@wscurran wscurran added area: inference Inference routing, serving, model selection, or outputs area: onboarding Onboarding FSM, provider setup, sandbox launch, or first-run flow area: providers Inference provider integrations and provider behavior area: routing Request routing, policy routing, model selection, or fallback logic refactor PR restructures code without intended behavior change labels Jul 12, 2026
@wscurran

Copy link
Copy Markdown
Contributor

✨ Thanks for the performance work, @HOYALIM. Adding a one-shot capability cache to avoid repeated Chat Completions requests during onboarding could reduce latency. Ready for maintainer review.

@cv cv added the v0.0.82 label Jul 13, 2026
@HOYALIM
HOYALIM force-pushed the codex/inference-capability-session-cache branch from 93e94c9 to 231eca3 Compare July 13, 2026 03:01

@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.

🧹 Nitpick comments (1)
src/lib/onboard/setup-nim-flow.test.ts (1)

284-286: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Prefer a behavioral cache assertion over toBeInstanceOf.

This couples the setup-flow test to the concrete cache class without proving that the returned cache is usable or correctly propagated. Exercise its public behavior, or cover propagation at the public onboarding boundary, while keeping this test focused on observable setup results.

🤖 Prompt for 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.

In `@src/lib/onboard/setup-nim-flow.test.ts` around lines 284 - 286, Update the
assertion in the setup-flow test around resultWithoutCache to verify the
returned inferenceCapabilityCache through its public behavior rather than
checking its concrete OnboardInferenceCapabilityCache type. Exercise a
meaningful cache operation or assert propagation through the public onboarding
result, while keeping the existing observable setup-result assertions unchanged.

Source: Path instructions

🤖 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.

Nitpick comments:
In `@src/lib/onboard/setup-nim-flow.test.ts`:
- Around line 284-286: Update the assertion in the setup-flow test around
resultWithoutCache to verify the returned inferenceCapabilityCache through its
public behavior rather than checking its concrete
OnboardInferenceCapabilityCache type. Exercise a meaningful cache operation or
assert propagation through the public onboarding result, while keeping the
existing observable setup-result assertions unchanged.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 5793c17f-7c95-4fed-8fc6-0130d1475eab

📥 Commits

Reviewing files that changed from the base of the PR and between 93e94c9 and 231eca3.

📒 Files selected for processing (14)
  • src/lib/inference/onboard-probes.ts
  • src/lib/onboard/inference-capability-cache.test.ts
  • src/lib/onboard/inference-capability-cache.ts
  • src/lib/onboard/inference-providers/remote.ts
  • src/lib/onboard/inference-providers/types.ts
  • src/lib/onboard/inference-selection-validation.test.ts
  • src/lib/onboard/inference-selection-validation.ts
  • src/lib/onboard/machine/handlers/provider-inference.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-selection.ts
  • test/helpers/onboard-smoke-verifier-harness.ts
  • test/onboard-smoke-verifier.test.ts
🚧 Files skipped from review as they are similar to previous changes (13)
  • src/lib/onboard/inference-providers/types.ts
  • src/lib/inference/onboard-probes.ts
  • src/lib/onboard/inference-providers/remote.ts
  • src/lib/onboard/setup-nim-selection.ts
  • src/lib/onboard/inference-capability-cache.test.ts
  • test/onboard-smoke-verifier.test.ts
  • src/lib/onboard/setup-inference.ts
  • src/lib/onboard/machine/handlers/provider-inference.ts
  • src/lib/onboard/setup-nim-flow.ts
  • src/lib/onboard/inference-capability-cache.ts
  • src/lib/onboard/inference-selection-validation.test.ts
  • test/helpers/onboard-smoke-verifier-harness.ts
  • src/lib/onboard/inference-selection-validation.ts

@HOYALIM
HOYALIM force-pushed the codex/inference-capability-session-cache branch from 231eca3 to 6143acf Compare July 13, 2026 06:39

@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: 2

🤖 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 `@test/helpers/onboard-smoke-verifier-harness.ts`:
- Around line 94-108: Update the capability-cache priming in the invocation flow
around selectedChatCapability to use the effective endpoint, model, provider,
and authMode values from input rather than hard-coded values. Ensure
rememberCompletedOpenAiChat receives the same capability key that
verifyOnboardInferenceSmoke will use after applying ...input, so the selected
capability path exercises cache reuse.
- Around line 97-101: Update the cache priming call in the harness around
capabilityCache.rememberCompletedOpenAiChat to capture and assert its boolean
result. Fail the test harness immediately when the call returns false, ensuring
the probe mock’s successful response actually primes the cache before reuse is
tested.
🪄 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: c406b73a-5242-478e-9ec6-b0119c4d4564

📥 Commits

Reviewing files that changed from the base of the PR and between 231eca3 and 6143acf.

📒 Files selected for processing (14)
  • src/lib/inference/onboard-probes.ts
  • src/lib/onboard/inference-capability-cache.test.ts
  • src/lib/onboard/inference-capability-cache.ts
  • src/lib/onboard/inference-providers/remote.ts
  • src/lib/onboard/inference-providers/types.ts
  • src/lib/onboard/inference-selection-validation.test.ts
  • src/lib/onboard/inference-selection-validation.ts
  • src/lib/onboard/machine/handlers/provider-inference.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-selection.ts
  • test/helpers/onboard-smoke-verifier-harness.ts
  • test/onboard-smoke-verifier.test.ts
🚧 Files skipped from review as they are similar to previous changes (12)
  • src/lib/onboard/inference-capability-cache.test.ts
  • src/lib/onboard/inference-selection-validation.test.ts
  • test/onboard-smoke-verifier.test.ts
  • src/lib/onboard/setup-nim-flow.test.ts
  • src/lib/onboard/inference-selection-validation.ts
  • src/lib/onboard/inference-providers/types.ts
  • src/lib/onboard/setup-nim-selection.ts
  • src/lib/onboard/setup-inference.ts
  • src/lib/inference/onboard-probes.ts
  • src/lib/onboard/inference-providers/remote.ts
  • src/lib/onboard/setup-nim-flow.ts
  • src/lib/onboard/machine/handlers/provider-inference.ts

Comment thread test/helpers/onboard-smoke-verifier-harness.ts
Comment thread test/helpers/onboard-smoke-verifier-harness.ts Outdated
Signed-off-by: Ho Lim <subhoya@gmail.com>
@HOYALIM
HOYALIM force-pushed the codex/inference-capability-session-cache branch from 6143acf to ecd060b Compare July 13, 2026 06:50
@cv
cv enabled auto-merge (squash) July 13, 2026 07:57
@cv
cv merged commit 2c225be into NVIDIA:main Jul 13, 2026
38 checks passed
cv pushed a commit that referenced this pull request Jul 14, 2026
<!-- 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

- [#6748](#6748) ->
`docs/about/release-notes.mdx`, `docs/manage-sandboxes/lifecycle.mdx`,
and `docs/reference/commands.mdx`: Summarize non-destructive sandbox
`stop` and `start` commands.
- [#6723](#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.
- [#6749](#6749) ->
`docs/about/release-notes.mdx` and
`docs/manage-sandboxes/backup-restore.mdx`: Document destination-owned
dashboard ports for snapshot clones.
- [#6764](#6764) ->
`docs/about/release-notes.mdx`: Summarize installer handling of
route-only onboarding placeholders.
- [#6771](#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.
- [#6759](#6759) ->
`docs/about/release-notes.mdx`: Record early, actionable OpenShell
gateway-port conflict diagnostics.
- [#6753](#6753) ->
`docs/about/release-notes.mdx` and `docs/inference/set-up-ollama.mdx`:
Document truthful running and stopped Ollama menu states.
- [#6776](#6776) ->
`docs/about/release-notes.mdx`: Summarize proxy-independent loopback
readiness checks.
- [#6769](#6769) ->
`docs/about/release-notes.mdx`: Record compatible endpoint and agent
guidance when Chat Completions is unavailable.
- [#6730](#6730) ->
`docs/about/release-notes.mdx`: Summarize bounded reuse of an eligible
successful Chat Completions check.
- [#6768](#6768) ->
`docs/about/release-notes.mdx`: Record route-reservation repair during
resumed onboarding.
- [#6742](#6742) ->
`docs/about/release-notes.mdx`: Summarize pre-mutation resolution of
secret-free sandbox create intent.
- [#6721](#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.
- [#6731](#6731) ->
`docs/about/release-notes.mdx` and
`docs/network-policy/customize-network-policy.mdx`: Document runtime
rejection of catch-all custom-policy destinations.
- [#6729](#6729) ->
`docs/about/release-notes.mdx` and `docs/get-started/prerequisites.mdx`:
Record the Node.js 22.19 minimum.
- [#6735](#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.
- [#6775](#6775) ->
`docs/about/release-notes.mdx` and
`docs/resources/community-contributions.mdx`: Route independent
solutions outside canonical supported-product documentation.
- [#6740](#6740) ->
`docs/about/release-notes.mdx`: Summarize the semantic
dependency-upgrade contributor workflow.
- [#6777](#6777) ->
`docs/about/release-notes.mdx` and `docs/CONTRIBUTING.md`: Summarize the
route-safe documentation-refactor workflow.
- [#6741](#6741) ->
`docs/about/release-notes.mdx` and
`docs/security/openclaw-2026.6.10-dependency-review.md`: Summarize
reviewed npm archive verification and audit enforcement.
- [#6739](#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.
- [#6737](#6737) ->
`docs/about/release-notes.mdx`: Record removal of the messaging build
plan from final OpenClaw and Hermes image environments.
- [#6733](#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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: inference Inference routing, serving, model selection, or outputs area: onboarding Onboarding FSM, provider setup, sandbox launch, or first-run flow area: providers Inference provider integrations and provider behavior area: routing Request routing, policy routing, model selection, or fallback logic refactor PR restructures code without intended behavior change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants