fix(inference): allow keyless localhost endpoints - #7427
Conversation
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
|
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:
📝 WalkthroughWalkthroughThis change adds explicit no-auth support for exact loopback OpenAI-compatible endpoints, routes them through a protected configurable Ollama proxy, updates nullable-credential onboarding flows, expands validation coverage, and revises setup and command documentation. ChangesLoopback compatible endpoint onboarding
Estimated code review effort: 4 (Complex) | ~45 minutes Possibly related issues
Suggested labels: Suggested reviewers: Sequence Diagram(s)sequenceDiagram
participant Operator
participant Onboarding
participant compatibleEndpointGatewayRoute
participant RemoteProvider
participant OllamaAuthProxy
participant LoopbackEndpoint
Operator->>Onboarding: select compatible endpoint
Onboarding->>compatibleEndpointGatewayRoute: select authentication mode
compatibleEndpointGatewayRoute-->>Onboarding: return none for exact loopback
Onboarding->>RemoteProvider: setup with nullable upstream credential
RemoteProvider->>OllamaAuthProxy: prepare endpoint proxy
OllamaAuthProxy->>LoopbackEndpoint: forward request without upstream API key
LoopbackEndpoint-->>OllamaAuthProxy: return response
OllamaAuthProxy-->>RemoteProvider: return protected proxy credentials
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
Code Coverage OverviewLanguages: TypeScript TypeScript / code-coverage/pluginThe overall coverage in commit 6b067f4 in the TypeScript / code-coverage/cliThe overall coverage in commit 6b067f4 in the Show a code coverage summary of the most impacted files.
Updated |
|
🌿 Preview your docs: https://nvidia-preview-pr-7427.docs.buildwithfern.com/nemoclaw |
PR Review Advisor — InformationalAdvisor assessment: Informational / high confidence Model lanes
Nemotron output stays in workflow artifacts and does not change the assessment above. E2E guidanceAdvisory only. E2E / PR Gate selects and runs jobs independently. Recommended E2E: 1 optional E2E recommendation
1 warning · 0 suggestionsWarningsWarnings do not block.
|
Signed-off-by: San Dang <sdang@nvidia.com>
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
src/lib/onboard.ts (1)
3462-3472: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winSkip non-interactive credential validation for optional loopback keys.
When
compatibleApiKeyOptionalis true, this code skips recovery and prompting, but Line 3478 still unconditionally callsvalidateNonInteractiveCredential. With no credential, that validator receives""and exits, so non-interactive onboarding for a no-authcustomloopback endpoint still fails. Skip that validation when the predicate is true (or pass the predicate into the validator), and add a regression test for non-interactivehttp://localhostonboarding without a key.🤖 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.ts` around lines 3462 - 3472, The non-interactive onboarding flow still validates credentials when compatibleApiKeyOptional is true, causing no-auth loopback endpoints to fail. Update the validation call near the recovery/prompt branching in onboard so validateNonInteractiveCredential is skipped for optional loopback keys, while preserving validation for required credentials, and add a regression test covering non-interactive http://localhost onboarding without a key.
🤖 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.
Outside diff comments:
In `@src/lib/onboard.ts`:
- Around line 3462-3472: The non-interactive onboarding flow still validates
credentials when compatibleApiKeyOptional is true, causing no-auth loopback
endpoints to fail. Update the validation call near the recovery/prompt branching
in onboard so validateNonInteractiveCredential is skipped for optional loopback
keys, while preserving validation for required credentials, and add a regression
test covering non-interactive http://localhost onboarding without a key.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 6185042c-0401-45a9-b583-66ce42644c24
📒 Files selected for processing (2)
src/lib/onboard.tssrc/lib/onboard/openrouter-selection.ts
Signed-off-by: San Dang <sdang@nvidia.com>
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 `@src/lib/onboard.ts`:
- Around line 3467-3469: Update the interactive credential prompt in the
onboarding flow around ensureNamedCredential to explicitly state that pressing
Enter selects no authentication, while preserving the existing credential
validation and optional-key behavior. Add or update the onboarding boundary
coverage to assert the revised prompt text, including the no-auth choice.
🪄 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: 63b2e463-0024-4e37-96d7-c429f3c2c666
📒 Files selected for processing (4)
docs/inference/set-up-openai-compatible-endpoint.mdxsrc/lib/onboard.tssrc/lib/onboard/credential-navigation.test.tssrc/lib/onboard/credential-navigation.ts
🚧 Files skipped from review as they are similar to previous changes (1)
- docs/inference/set-up-openai-compatible-endpoint.mdx
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
There was a problem hiding this comment.
Actionable comments posted: 2
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
src/lib/onboard/inference-selection-validation.ts (1)
334-345: 🎯 Functional Correctness | 🟠 Major | 🏗️ Heavy liftAllow exact loopback endpoints through both preflight gates.
The new no-auth route is unreachable in production: both validation and setup apply
assertEndpointResolvesPublic, which rejectslocalhost,127.0.0.1, and[::1]beforeprepareCompatibleEndpointNoAuthProxycan run. The test passes because its harness resolveslocalhostto93.184.216.34.
src/lib/onboard/inference-selection-validation.ts#L334-L345: exempt only the approved exact loopback hosts from the generic public-endpoint preflight.src/lib/onboard/setup-inference.ts#L427-L427: apply the same exact-loopback exception before forwarding to remote setup.test/onboard-inference-gateway-scope.test.ts#L113-L152: override DNS resolution to return127.0.0.1and prove the proxy route still succeeds.🤖 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/inference-selection-validation.ts` around lines 334 - 345, Allow only exact loopback hosts (localhost, 127.0.0.1, and [::1]) to bypass the generic public-endpoint preflight in the validation flow around preflightCustomEndpointOrFail, and apply the identical exception in setup-inference before remote forwarding. Update test/onboard-inference-gateway-scope.test.ts lines 113-152 to override DNS resolution to 127.0.0.1 and verify the no-auth proxy route succeeds; no other private or non-approved hosts should be exempted.
🤖 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.ts`:
- Around line 3310-3334: Update the auth-mode selection in the selected.key ===
"custom" branch to hydrate the configured credential using fill-only-if-missing
semantics before computing credentialAvailable. Preserve any explicit
process.env credential value, use the stored or legacy credential only when the
environment value is absent, and pass the resulting availability into
selectCompatibleEndpointAuthMode without changing later state assignment
behavior.
In `@src/lib/onboard/inference-providers/compatible-endpoint-gateway-route.ts`:
- Around line 57-65: Update the compatible endpoint route logic to reject
missing credentials for every non-interactive endpoint; allow the
COMPATIBLE_ENDPOINT_AUTH_MODE_ENV=none alternative only when
compatibleEndpointAllowsMissingApiKey identifies a loopback URL. In
src/lib/onboard/inference-providers/compatible-endpoint-gateway-route.ts lines
57-65, preserve the api-key return for endpoints with credentials. In
src/lib/onboard/inference-providers/compatible-endpoint-gateway-route.test.ts
lines 84-95, add coverage asserting that a non-loopback endpoint with
credentialAvailable: false rejects.
---
Outside diff comments:
In `@src/lib/onboard/inference-selection-validation.ts`:
- Around line 334-345: Allow only exact loopback hosts (localhost, 127.0.0.1,
and [::1]) to bypass the generic public-endpoint preflight in the validation
flow around preflightCustomEndpointOrFail, and apply the identical exception in
setup-inference before remote forwarding. Update
test/onboard-inference-gateway-scope.test.ts lines 113-152 to override DNS
resolution to 127.0.0.1 and verify the no-auth proxy route succeeds; no other
private or non-approved hosts should be exempted.
🪄 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: 205453a2-d222-4ae2-a182-5ebb414e1cb7
📒 Files selected for processing (18)
docs/get-started/quickstart.mdxdocs/inference/set-up-openai-compatible-endpoint.mdxdocs/reference/commands.mdxscripts/ollama-auth-proxy.mtssrc/lib/inference/ollama/proxy.tssrc/lib/onboard.tssrc/lib/onboard/inference-providers/compatible-endpoint-gateway-route.test.tssrc/lib/onboard/inference-providers/compatible-endpoint-gateway-route.tssrc/lib/onboard/inference-providers/remote-openai-surface.test.tssrc/lib/onboard/inference-providers/remote.tssrc/lib/onboard/inference-providers/types.tssrc/lib/onboard/inference-selection-validation.tssrc/lib/onboard/setup-inference.tssrc/lib/onboard/setup-nim-selection.tstest/ollama-auth-proxy-handler-helpers.tstest/ollama-auth-proxy-handler.test.tstest/onboard-inference-gateway-scope.test.tstest/support/setup-inference-test-harness.ts
🚧 Files skipped from review as they are similar to previous changes (3)
- docs/get-started/quickstart.mdx
- docs/inference/set-up-openai-compatible-endpoint.mdx
- src/lib/onboard/inference-providers/remote.ts
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
<!-- markdownlint-disable MD041 --> ## Summary Add the canonical `docs/changelog/2026-07-25.mdx` release entry with the exact `## v0.0.96` heading. The entry reconciles all 90 first-parent commits since v0.0.95 with all 92 merged PRs in the live `v0.0.96` label ledger and groups the user-visible changes by operator journey. ## Changes - Add the parser-safe dated MDX changelog entry for v0.0.96 with root-absolute links to the focused user guides. - Source summary: - [#7194](#7194) -> `docs/changelog/2026-07-25.mdx`: Document persistent baseline network policy exclusions and their inspection, rebuild, and snapshot behavior. - [#7188](#7188), [#7427](#7427), and [#7546](#7546) -> `docs/changelog/2026-07-25.mdx`: Document DNS-backed HTTPS inference routing, keyless loopback endpoints, and provider-marker isolation. - [#7238](#7238) -> `docs/changelog/2026-07-25.mdx`: Document blueprint sandbox and provider identifier validation before state writes or OpenShell calls, with bounded terminal-safe rejection previews. - [#7319](#7319), [#7274](#7274), [#7528](#7528), [#7353](#7353), and [#7560](#7560) -> `docs/changelog/2026-07-25.mdx`: Document the managed default gateway service, onboarding readiness, and container-runtime identity safeguards. - [#7349](#7349), [#7498](#7498), [#7406](#7406), [#7196](#7196), [#7559](#7559), [#7421](#7421), [#7510](#7510), [#7295](#7295), and [#7565](#7565) -> `docs/changelog/2026-07-25.mdx`: Document gateway-scoped status, lifecycle diagnostics, managed MCP recovery, delete-edge safeguards, and fail-closed CLI prompt and command output. - [#7591](#7591) -> `docs/changelog/2026-07-25.mdx`: Document opt-in authenticated MCP tool-name discovery, its bounded and names-only contract, probe interaction, and rebuild requirement. - [#7305](#7305), [#7480](#7480), [#7471](#7471), [#7365](#7365), and [#7541](#7541) -> `docs/changelog/2026-07-25.mdx`: Document installer version checks, version-tag reporting, license guidance, WSL Ollama selection, and DGX Station vLLM detection. - [#7482](#7482), [#7466](#7466), [#7208](#7208), [#7434](#7434), and [#7586](#7586) -> `docs/changelog/2026-07-25.mdx`: Document Ollama resource details, reasoning precedence, Hermes onboarding behavior, and preserved managed Hermes BuildKit failures. - [#6830](#6830), [#7492](#7492), [#7563](#7563), and [#7582](#7582) -> `docs/changelog/2026-07-25.mdx`: Document the authoritative OpenClaw production lock, fixed managed-image dependencies, immutable Hermes base adoption, and Hermes image-size reduction. - [#7505](#7505), [#7530](#7530), [#7547](#7547), [#7508](#7508), [#7548](#7548), [#7549](#7549), [#7537](#7537), [#7534](#7534), [#7515](#7515), [#7511](#7511), [#7551](#7551), [#7562](#7562), [#7575](#7575), [#7496](#7496), [#7594](#7594), [#7595](#7595), and [#7599](#7599) -> `docs/changelog/2026-07-25.mdx`: Summarize release validation, transient and bounded dispatch reconciliation, exact pre-tag qualification, identity revalidation, npm-audit retry, sharding, image reuse, timeout, telemetry, and workflow-hardening changes. - Reconciled without separate changelog prose: - [#7539](#7539), [#7526](#7526), [#7507](#7507), [#7506](#7506), [#7519](#7519), [#7516](#7516), [#7396](#7396), [#7254](#7254), [#7583](#7583), [#7596](#7596), and [#7598](#7598): Test-harness or fixture-only changes. - [#7403](#7403), [#7161](#7161), [#6877](#6877), [#7531](#7531), [#7525](#7525), [#7522](#7522), [#7536](#7536), [#7552](#7552), [#7566](#7566), [#7553](#7553), [#7561](#7561), [#7577](#7577), [#7569](#7569), [#7585](#7585), [#7584](#7584), [#7592](#7592), [#7580](#7580), [#7571](#7571), [#7517](#7517), [#7589](#7589), [#7402](#7402), [#7558](#7558), [#7544](#7544), and [#7601](#7601): Dependency, internal recovery, validation, contributor-workflow, E2E optimization, telemetry, or CI trust changes with no separate user-facing release claim. - [#7556](#7556), [#7573](#7573), [#7576](#7576), and [#7578](#7578): Experimental repository-maintainer conflict automation with no canonical user documentation surface. ## 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, version headings, and published links. - [ ] 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: ## Documentation Writer Review - [x] Documentation writer subagent reviewed the completed changes - Result: `docs-updated` - Evidence: Reviewed `docs/changelog/2026-07-25.mdx` at exact head `0f5dedb47` against 90 first-parent release commits and 92 merged PRs labeled `v0.0.96`. Verified parser-safe MDX SPDX, the exact version heading, literal CLI names, writing style, skip terms, all 20 root-absolute published links, and the accepted #7591 opt-in authenticated discovery bounds. #7544, #7599, and #7601 remain internal or CI-only release-ledger entries. Changelog tests passed 6/6, the docs build passed with 0 errors and two pre-existing Fern warnings, and `npm run check:diff` plus the final diff check passed. - Agent: Codex Desktop documentation-writer subagent <!-- docs-review-head-sha: 0f5dedb --> <!-- docs-review-agents-blob-sha: be20a09 --> ## 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 test/changelog-docs.test.ts`: 6/6 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 prose-only changelog entry. - [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; the published-route check passed. - [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) — native changelog files use the required parser-safe MDX SPDX comment and no frontmatter. --- Signed-off-by: Carlos Villela <cvillela@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Persistent network policy exclusions with consistent restore/exclusion reporting across rebuilds/snapshots. * Opt-in MCP tool discovery via `mcp status --tools` with bounded, redacted authenticated traffic. * Improved HTTPS inference switching for custom endpoints and refreshed onboarding/model menu details. * Refined OpenShell gateway defaults for port `8080`, including more reliable readiness checks. * **Bug Fixes** * Prevent incorrect provider/model restoration after compatible-provider update failures. * Preserve managed MCP state after exec loss and tighten gateway/doctor status scoping. * **Tests** * Stronger, fail-closed release validation with hardened evidence/artifact handoff and bounded timeouts/retries. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com> Co-authored-by: Prekshi Vyas <prekshiv@nvidia.com>
<!-- markdownlint-disable MD041 --> ## Summary This PR corrects post-tag v0.0.96 documentation drift for exact-loopback no-auth compatible endpoints and local Ollama onboarding. It also aligns the Windows changelog link label and source-only dependency review headings with their canonical titles and writing rules. ## Changes - Distinguish OpenAI-compatible exact-loopback no-auth mode from the Anthropic-compatible non-empty placeholder requirement from #7427. - Document the Ollama menu download size, approximate VRAM requirement, and available or total GPU memory fields from #7482. - Document persisted Ollama proxy-token reuse during re-onboarding from #7620. - Match the Windows changelog link label to the target page title and remove colons from the source-only dependency review headings. ## 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 <!-- Check 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 - [x] Existing tests cover changed behavior — justification: Source tests from #7427, #7482, and #7620 protect the shipped behavior, and 21 changelog and link tests pass for this documentation diff. - [ ] 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: ## Documentation Writer Review <!-- Required for code and documentation changes after the changes and applicable validation are complete. Keep one review checkbox and one instance of each visible or hidden field. For Evidence, list changed documentation paths. For documentation-only changes, also state that the writing rules and documentation style were reviewed. For other results, explain why no documentation change is needed or why the review is blocked. For Agent, use a consistent product and surface name, such as Codex Desktop, Codex CLI, Claude Code, or Cursor. After committing all review changes, put `git rev-parse --short HEAD` and `git rev-parse --short HEAD:AGENTS.md` in the hidden metadata below. Rerun the review and refresh that metadata after any new commit. This receipt is advisory during the data-collection pilot. --> - [x] Documentation writer subagent reviewed the completed changes - Result: `docs-updated` - Evidence: Reviewed `docs/changelog/2026-07-25.mdx`, `docs/inference/custom-endpoint-security.mdx`, `docs/inference/set-up-ollama.mdx`, and `docs/security/sandbox-base-2026-07-25-dependency-review.md` against `docs/CONTRIBUTING.md` and `WRITING.md`. The exact-head review found no remaining findings. - Agent: Codex Desktop <!-- docs-review-head-sha: 5d103d9 --> <!-- docs-review-agents-blob-sha: be20a09 --> ## 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 - [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 test/check-docs-links.test.ts` passed 21 tests. - [ ] Applicable broad gate passed — `npm test` for broad runtime/test-harness changes; `npm run check` for repo-wide validation/coverage changes — not run because 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). The command passed with 0 errors and two 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: Miyoung Choi <miyoungc@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Documentation** - Clarified authentication requirements for OpenAI- and Anthropic-compatible endpoints, including options for unauthenticated local services. - Updated Ollama onboarding to show download size and VRAM needs, explain GPU memory reporting behavior, and clarify persisted proxy token reuse. - Refreshed Windows setup link text and improved sandbox dependency review heading formatting for consistency. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Miyoung Choi <miyoungc@nvidia.com> Signed-off-by: Julie Yaunches <jyaunches@nvidia.com> Co-authored-by: Julie Yaunches <jyaunches@nvidia.com>
Summary
OpenAI-compatible endpoints on exact loopback hosts now offer an explicit no-auth mode.
Real loopback API keys still work, non-loopback endpoints still require credentials, and no fabricated
Authorizationvalue reaches a no-auth upstream.Related Issue
Fixes #7424
Changes
NEMOCLAW_COMPATIBLE_AUTH_MODE=nonefor non-interactive no-auth onboarding.inference.localtraffic and strips its internalAuthorizationheader before forwarding.Type of Change
Quality Gates
Documentation Writer Review
docs-updated6b067f4b4: the documentation writer confirmed that the final change is test-only and needs no additional documentation; the three changed pages continue to cover the loopback no-auth contract. The final focused integration test, Biome, diff checks, normal hooks, and CLI type-check passed.DGX Station Hardware Evidence
Verification
Signed-off-by:line and every commit appears asVerifiedin GitHubpre-commit,commit-msg, andpre-pushhooks passed, ornpm run check:diffpassed when hooks were skipped or unavailable — normal hooks passed for PR SHA6b067f4b4.npm run test:changedpassed for the final source change at PR SHA25c595d1e; the stabilized process-level rollback test passed again at final PR SHA6b067f4b4. Coverage proves failed and abandoned replacement setup relaunches the committed token and backend. The preceding reporter change also records 28 focused integration tests, 24 E2E invocation-support tests, and an actual Vitest CLI selector reproduction withpassed=1,skipped=0.npm testfor broad runtime/test-harness changes;npm run checkfor repo-wide validation/coverage changes — command/result: not run; the change is covered by focused tests, changed tests, and type-checking.npm run docsbuilds without warnings (doc changes only) — passed with two existing Fern warnings.Signed-off-by: San Dang sdang@nvidia.com
Summary by CodeRabbit
localhost,127.0.0.1,[::1])—with interactive selection and non-interactiveNEMOCLAW_COMPATIBLE_AUTH_MODE=none.COMPATIBLE_API_KEYwhen not needed.