Skip to content

fix: address issue #5667 - #5672

Merged
cv merged 19 commits into
mainfrom
auto/fix-5667-ubuntu-24-04-inference-deep-agents
Jun 24, 2026
Merged

fix: address issue #5667#5672
cv merged 19 commits into
mainfrom
auto/fix-5667-ubuntu-24-04-inference-deep-agents

Conversation

@jason-ma-nv

@jason-ma-nv jason-ma-nv commented Jun 23, 2026

Copy link
Copy Markdown
Collaborator

Summary

Issue #5667: onboarding a Deep Agents / OpenAI-compatible sandbox without an explicit NEMOCLAW_MODEL recorded the model id as 'nvidia/nvidia/nemotron-3-super-v3' (doubled 'nvidia/' namespace). Root cause was the default fallback constant HOSTED_INFERENCE_MODEL in src/lib/onboard/providers.ts, which was hardcoded with a duplicated namespace segment (dev-triage hypothesis #3). When NEMOCLAW_MODEL is unset, stageHostedInferenceSourceSecretEnv() falls back to this constant and persists it into NEMOCLAW_MODEL / NEMOCLAW_COMPAT_MODEL, surfacing the doubled prefix everywhere (status, build ARG, dcode header). Fixed by changing the constant to the canonical single-prefix id 'nvidia/nemotron-3-super-v3'. Scope limited to the default constant; CI workflow YAML and e2e fixtures set NEMOCLAW_MODEL explicitly and are intentionally untouched.

Related Issue

Fixes #5667

Changes

  • Automated Claude Code fix selected by auto_fix/auto_fix_recent_issues.py.
  • See the commits on this branch for the exact file-level changes.

Type of Change

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

Verification

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

Verification details reported by automation:

  • Codex review (independent, advisory) posted as a PR comment.
  • Addressed from codex review: Addressed the reviewer's completeness findings by sweeping the doubled 'nvidia/nvidia/nemotron-3-super-v3' id to the canonical 'nvidia/nemotron-3-super-v3' everywhere it represented this model — not just the original constant. The earlier claim that CI/fixtures were 'intentionally untouched' was wrong: those defaults reintroduced the malformed id. Changed: the hosted CI exports in .github/workflows/{e2e-script,nightly-e2e,e2e-vitest-scenarios}.yaml; the e2e fixture default DEFAULT_HOSTED_INFERENCE_MODEL (test/e2e-scenario/fixtures/hosted-inference.ts) and the live-helper/shell-fixture fallbacks (agent-turn-latency-helpers, hermes-discord, hermes-slack-e2e-helpers, rebuild-hermes, upgrade-stale-sandbox-helpers, ci-compatible-inference.sh, test-rebuild-*.sh, test-upgrade-stale-sandbox.sh); the onboard-probes probe-payload test literal; and the workflow-content guard assertions in test/e2e-script-workflow.test.ts that had locked in the doubled value. Finding Change small local model to qwen3.5:9b #3 (regression test should use NEMOCLAW_PROVIDER_KEY) was rejected as incorrect: stageHostedInferenceSourceSecretEnv() — the function that records the model and was the root cause — gates exclusively on NVIDIA_INFERENCE_API_KEY (HOSTED_INFERENCE_SOURCE_ENV); NEMOCLAW_PROVIDER_KEY is a provider-credential hint used only by the Model Router / Hermes / deepagents config paths and never triggers model staging, so the test correctly exercises the real bug path. Verified: rebuilt dist and ran the issue-5667 regression test, e2e-script-workflow guard tests, onboard-probes, and hosted-inference support tests — 67 tests pass.
  • Added focused regression test test/issue-5667-hosted-inference-model-namespace.test.ts that exercises the real exported HOSTED_INFERENCE_MODEL constant and the real stageHostedInferenceSourceSecretEnv() staging path (no mocking of the unit under test).
  • Built dist from the unfixed source and confirmed the new test fails red: NEMOCLAW_MODEL staged as 'nvidia/nvidia/nemotron-3-super-v3'.
  • Applied the one-line fix to src/lib/onboard/providers.ts, rebuilt dist, and confirmed the test passes green (2/2).
  • Ran related suites (credential-exposure, onboard-selection, onboard-probes, e2e-script-workflow) — 129 tests pass — confirming no regression and that the explicitly-overridden CI workflow values are unaffected.
  • npm install --ignore-scripts
  • npm run build:cli
  • ./node_modules/.bin/vitest run test/issue-5667-hosted-inference-model-namespace.test.ts --project cli
  • ./node_modules/.bin/vitest run test/credential-exposure.test.ts test/onboard-selection.test.ts src/lib/inference/onboard-probes.test.ts test/issue-5667-hosted-inference-model-namespace.test.ts
  • ./node_modules/.bin/vitest run test/e2e-script-workflow.test.ts

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

Summary by CodeRabbit

  • Bug Fixes
    • Corrected hosted-inference Nemotron model identifiers to consistently use the proper single-prefix format (removing duplicated nvidia/nvidia/) across onboarding, live scenarios, and CI/E2E workflows.
    • Improved Deep Agents hosted-inference staging by adding a safe fallback for provider-key handling.
  • Tests
    • Updated E2E/workflow expectations and fixtures to match the corrected model identifiers.
    • Added/adjusted regression tests to prevent duplicated model namespaces and verify Deep Agents staging behavior.
  • Documentation
    • Fixed the Model Router pool example for Nemotron-3 Nano.
  • Security/Quality
    • Expanded secret redaction and direct-credential-env checks to include NEMOCLAW_PROVIDER_KEY.

jason-ma-nv and others added 2 commits June 23, 2026 19:49
…erence model

The HOSTED_INFERENCE_MODEL fallback used when onboarding an OpenAI-compatible
endpoint without an explicit NEMOCLAW_MODEL was hardcoded as
"nvidia/nvidia/nemotron-3-super-v3", a doubled "nvidia/" namespace segment.
This malformed id was persisted into NEMOCLAW_MODEL/NEMOCLAW_COMPAT_MODEL and
surfaced in status output, the sandbox image build ARG, and the dcode runtime
header. Standard NIM model ids carry exactly one namespace segment, so this
fixes the constant to the canonical "nvidia/nemotron-3-super-v3".

Adds a regression test exercising the real HOSTED_INFERENCE_MODEL constant and
stageHostedInferenceSourceSecretEnv() staging path.

Fixes #5667

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ults

The #5667 fix corrected the HOSTED_INFERENCE_MODEL fallback constant but left
the malformed "nvidia/nvidia/nemotron-3-super-v3" id throughout the e2e
infrastructure, where CI exports, fixture/helper defaults, and shell fixtures
reintroduced the doubled namespace prefix against the real
inference-api.nvidia.com endpoint.

Sweeps every occurrence of the doubled id to the canonical single-prefix
"nvidia/nemotron-3-super-v3":
- hosted CI inference exports in e2e-script.yaml, nightly-e2e.yaml, and
  e2e-vitest-scenarios.yaml
- the e2e fixture default DEFAULT_HOSTED_INFERENCE_MODEL and the live-helper /
  shell-fixture fallbacks (agent-turn-latency, hermes-discord, hermes-slack,
  rebuild-hermes, upgrade-stale-sandbox, ci-compatible-inference.sh,
  test-rebuild-*.sh, test-upgrade-stale-sandbox.sh)
- the onboard-probes probe-payload test literal
- the workflow-content guard assertions in e2e-script-workflow.test.ts that
  had locked in the doubled value

The regression test continues to gate on NVIDIA_INFERENCE_API_KEY, which is the
sole trigger for stageHostedInferenceSourceSecretEnv() (the model-recording
path that caused #5667); NEMOCLAW_PROVIDER_KEY is unrelated to model staging.

Refs #5667

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@jason-ma-nv jason-ma-nv self-assigned this Jun 23, 2026
@jason-ma-nv

Copy link
Copy Markdown
Collaborator Author

Codex review (automated, advisory)

  • [medium] .github/workflows/e2e-script.yaml:232 — Hosted inference workflows still export NEMOCLAW_MODEL=nvidia/nvidia/..., bypassing the fixed fallback and still persisting the malformed id.
  • [medium] test/e2e-scenario/fixtures/hosted-inference.ts:9 — The hosted inference fixture default remains doubled, so live scenario tests can keep exercising the bad value.
  • [low] test/issue-5667-hosted-inference-model-namespace.test.ts:59 — The regression test uses NVIDIA_INFERENCE_API_KEY, but the reported command uses NEMOCLAW_PROVIDER_KEY; it should cover the actual Deep Agents compatible-endpoint path.

Verdict: Partial fix; the core fallback constant is corrected, but other defaults still reintroduce the doubled model id.

Addressed in this PR

Addressed the reviewer's completeness findings by sweeping the doubled 'nvidia/nvidia/nemotron-3-super-v3' id to the canonical 'nvidia/nemotron-3-super-v3' everywhere it represented this model — not just the original constant. The earlier claim that CI/fixtures were 'intentionally untouched' was wrong: those defaults reintroduced the malformed id. Changed: the hosted CI exports in .github/workflows/{e2e-script,nightly-e2e,e2e-vitest-scenarios}.yaml; the e2e fixture default DEFAULT_HOSTED_INFERENCE_MODEL (test/e2e-scenario/fixtures/hosted-inference.ts) and the live-helper/shell-fixture fallbacks (agent-turn-latency-helpers, hermes-discord, hermes-slack-e2e-helpers, rebuild-hermes, upgrade-stale-sandbox-helpers, ci-compatible-inference.sh, test-rebuild-*.sh, test-upgrade-stale-sandbox.sh); the onboard-probes probe-payload test literal; and the workflow-content guard assertions in test/e2e-script-workflow.test.ts that had locked in the doubled value. Finding #3 (regression test should use NEMOCLAW_PROVIDER_KEY) was rejected as incorrect: stageHostedInferenceSourceSecretEnv() — the function that records the model and was the root cause — gates exclusively on NVIDIA_INFERENCE_API_KEY (HOSTED_INFERENCE_SOURCE_ENV); NEMOCLAW_PROVIDER_KEY is a provider-credential hint used only by the Model Router / Hermes / deepagents config paths and never triggers model staging, so the test correctly exercises the real bug path. Verified: rebuilt dist and ran the issue-5667 regression test, e2e-script-workflow guard tests, onboard-probes, and hosted-inference support tests — 67 tests pass.

@coderabbitai

coderabbitai Bot commented Jun 23, 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

Corrects a duplicated nvidia/ namespace prefix in the Nemotron model identifier. The canonical nvidia/nemotron-3-super-v3 replaces nvidia/nvidia/nemotron-3-super-v3 in the source constant HOSTED_INFERENCE_MODEL, all CI workflow environment variables, E2E test helpers, shell scripts, and fixture defaults. Additionally, the hosted-inference staging logic now supports fallback to NEMOCLAW_PROVIDER_KEY for Deep Agents provider authentication. A new regression test for issue #5667 is added to verify the fix.

Changes

Model ID Namespace Fix and Deep Agents Support

Layer / File(s) Summary
Source constant, helper definitions, and probe test correction
src/lib/onboard/providers.ts, src/lib/inference/onboard-probes.test.ts
Defines HOSTED_INFERENCE_MODEL as nvidia/nemotron-3-super-v3, introduces HOSTED_INFERENCE_PROVIDER_KEY_ENV and PROVIDER_KEY_ROUTE_VALUES for credential classification, and corrects the hosted-inference probe payload test to assert the canonical model identifier.
Deep Agents provider-key fallback in staging logic
src/lib/onboard/providers.ts
Updates stageHostedInferenceSourceSecretEnv() to fall back to NEMOCLAW_PROVIDER_KEY when NEMOCLAW_AGENT is langchain-deepagents-code and NVIDIA_INFERENCE_API_KEY is absent, with credential filtering via isHostedInferenceProviderKeyCredentialCandidate().
Security classification for NEMOCLAW_PROVIDER_KEY
src/lib/security/redact.ts, scripts/checks/direct-credential-env.ts, src/lib/onboard.ts
Adds NEMOCLAW_PROVIDER_KEY to redaction sensitive-keys and direct-credential-env check lists; documents credential-compatibility bridge behavior in provider routing flows via inline comments.
Unit test coverage for Deep Agents and provider-key scenarios
src/lib/onboard/providers.test.ts
Expands test environment isolation to preserve NEMOCLAW_AGENT and NEMOCLAW_PROVIDER_KEY; adds three test cases verifying Deep Agents + provider-key triggers staging, and provider-key alone does not.
Regression test for issue #5667
test/issue-5667-hosted-inference-model-namespace.test.ts
New Vitest module that loads the built dist providers exports, implements environment isolation, asserts HOSTED_INFERENCE_MODEL equals nvidia/nemotron-3-super-v3, and validates staging behavior across inference-hub and Deep Agents scenarios.
CI workflow environment variable corrections
.github/workflows/e2e-script.yaml, .github/workflows/e2e-vitest-scenarios.yaml, .github/workflows/nightly-e2e.yaml
Updates NEMOCLAW_MODEL and NEMOCLAW_COMPAT_MODEL across all affected jobs and steps in all three workflow files.
E2E test fixtures and live scenario helpers
test/e2e-scenario/fixtures/hosted-inference.ts, test/e2e-scenario/live/agent-turn-latency-helpers.ts, test/e2e-scenario/live/hermes-discord.test.ts, test/e2e-scenario/live/hermes-slack-e2e-helpers.ts, test/e2e-scenario/live/rebuild-hermes.test.ts, test/e2e-scenario/live/upgrade-stale-sandbox-helpers.ts
Updates fixture defaults and live scenario environment configurations to use the corrected model identifier.
E2E shell scripts and workflow contract validation
test/e2e-script-workflow.test.ts, test/e2e/lib/ci-compatible-inference.sh, test/e2e/test-rebuild-hermes.sh, test/e2e/test-rebuild-openclaw.sh, test/e2e/test-upgrade-stale-sandbox.sh, tools/e2e-scenarios/workflow-boundary.mts
Updates fallback model defaults in shell test scripts and workflow contract assertions to expect the corrected single-prefix model.
Direct-credential-env and secret-redaction test updates
test/no-direct-credential-env.test.ts, test/secret-redaction.test.ts
Flags NEMOCLAW_PROVIDER_KEY as a credential (removing from allows, adding two flag cases); adds redaction verification for NEMOCLAW_PROVIDER_KEY assignments.
Documentation example correction
docs/inference/inference-options.mdx
Corrects the Model Router example YAML by removing the duplicated nvidia path segment in the nano model's litellm_model.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

🐇 A bunny found a path gone wrong,
nvidia/nvidia/ — twice too long!
One prefix cut, the route made right,
Deep Agents now hop with fallback light,
Workflows, scripts, all aligned in sight! 🥕

Possibly related issues

  • Fixes #5667: The PR directly addresses the duplicated model namespace prefix problem (nvidia/nvidia/nvidia/) reported in issue #5667 across source code (especially src/lib/onboard/providers.ts's hosted-inference handling for Deep Agents), tests, workflows, and e2e scripts, with a dedicated regression test file explicitly validating the fix.

Suggested reviewers

  • cv
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 8.33% 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: address issue #5667' accurately references the issue being fixed and conveys the primary purpose of the changeset.
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 unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch auto/fix-5667-ubuntu-24-04-inference-deep-agents

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

@github-code-quality

github-code-quality Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall coverage in the auto/fix-5667-ubuntu... 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 auto/fix-5667-ubuntu... e2f4fc9 +/-
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 auto/fix-5667-ubuntu... branch is 47%. Coverage data for the main branch is not yet available.

Show a code coverage summary of the most covered files.
File main auto/fix-5667-ubuntu... e2f4fc9 +/-
src/lib/state/o...oard-session.ts 91%
src/lib/inference/local.ts 76%
src/lib/sandbox/config.ts 72%
src/lib/actions...dbox/rebuild.ts 70%
src/lib/onboard/preflight.ts 64%
src/lib/actions...licy-channel.ts 60%
src/lib/state/sandbox.ts 55%
src/lib/onboard...er-gpu-patch.ts 50%
src/lib/policy/index.ts 49%
src/lib/onboard.ts 19%

Updated June 24, 2026 23:20 UTC
Code Coverage is in Public Preview. Learn more and provide us with your feedback.

@github-actions

github-actions Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

E2E Advisor Recommendation

Required E2E: cloud-onboard-e2e, cloud-inference-e2e, credential-migration-e2e, credential-sanitization-e2e, runtime-overrides-e2e
Optional E2E: onboard-resume-e2e, onboard-repair-e2e, launchable-smoke-e2e, rebuild-hermes-e2e

Dispatch hint: cloud-onboard-e2e,cloud-inference-e2e,credential-migration-e2e,credential-sanitization-e2e,runtime-overrides-e2e

Workflow run

Full advisor summary

E2E Recommendation Advisor

Base: origin/main
Head: HEAD
Confidence: high

Required E2E

  • cloud-onboard-e2e (high): Required because provider selection, hosted inference defaults, and non-interactive credential staging are runtime onboarding paths. This job exercises the full hosted onboarding/install flow with the reusable hosted CI inference environment.
  • cloud-inference-e2e (medium): Required because the model namespace and hosted OpenAI-compatible endpoint routing changed. This validates that a real sandbox can route inference through the hosted provider using the canonical single-prefix model ID.
  • credential-migration-e2e (medium): Required because the PR changes provider credential staging and fallback handling. This job validates live credential migration into the OpenShell gateway and the compatible-provider route that uses NVIDIA_INFERENCE_API_KEY as COMPATIBLE_API_KEY.
  • credential-sanitization-e2e (medium): Required because NEMOCLAW_PROVIDER_KEY is now a sensitive credential-bearing env var and redaction logic changed. This validates the sandbox/log credential sanitization boundary after a real hosted onboarding bootstrap.
  • runtime-overrides-e2e (medium): Required because the PR changes NEMOCLAW_MODEL, NEMOCLAW_COMPAT_MODEL, NEMOCLAW_PROVIDER_KEY, and compatible-provider environment behavior. This validates that runtime override env handling still reaches the onboarded sandbox correctly.

Optional E2E

  • onboard-resume-e2e (medium): Useful adjacent confidence because the PR touches src/lib/onboard.ts and the hosted env used by the resume job, but it does not appear to change the resume machine live-slice orchestration or session bootstrap paths that would make this mandatory.
  • onboard-repair-e2e (medium): Useful adjacent confidence for hosted onboarding repair with the updated model namespace and provider credential fallback, especially because the workflow env for this job changed.
  • launchable-smoke-e2e (medium): Optional install-flow smoke coverage because the reusable hosted CI inference environment in e2e-script.yaml changed and launchable-smoke consumes that hosted setup.
  • rebuild-hermes-e2e (high): Optional self-validation for edited Hermes rebuild E2E scripts/helpers and the hosted model env used by the migrated Hermes rebuild coverage.

New E2E recommendations

  • Deep Agents hosted inference provider-key compatibility (high): The PR adds/changes a specific non-interactive Deep Agents path where NEMOCLAW_PROVIDER_KEY is treated as a hosted compatible endpoint credential and stages COMPATIBLE_API_KEY plus the default hosted model. Existing coverage appears to be unit/integration-level; a live E2E would protect the external automation contract.
    • Suggested test: deepagents-hosted-provider-key-e2e

Dispatch hint

  • Workflow: .github/workflows/nightly-e2e.yaml
  • jobs input: cloud-onboard-e2e,cloud-inference-e2e,credential-migration-e2e,credential-sanitization-e2e,runtime-overrides-e2e

@github-actions

github-actions Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor — Blocked

Merge posture: Do not merge until addressed
Primary next action: Fix PRA-2: Prove the hosted Inference Hub model ID source of truth before changing defaults; then add or justify PRA-T1.
Open items: 1 required · 1 warning · 0 suggestions · 8 test follow-ups
Since last review: 0 prior items resolved · 2 still apply · 0 new items found

Action checklist

  • PRA-2 Fix: Prove the hosted Inference Hub model ID source of truth before changing defaults in src/lib/onboard/providers.ts:31
  • PRA-1 Resolve or justify: Source-of-truth review needed: Hosted Inference Hub model namespace default
  • PRA-T1 Add or justify test follow-up: Runtime validation
  • PRA-T2 Add or justify test follow-up: Runtime validation
  • PRA-T3 Add or justify test follow-up: Runtime validation
  • PRA-T4 Add or justify test follow-up: Acceptance clause
  • PRA-T5 Add or justify test follow-up: Acceptance clause
  • PRA-T6 Add or justify test follow-up: Acceptance clause
  • PRA-T7 Add or justify test follow-up: Acceptance clause
  • PRA-T8 Add or justify test follow-up: Acceptance clause

Findings index

ID Severity Category Location Required action
PRA-1 Resolve/justify architecture Identify the invalid state, source boundary, source-fix constraint, regression test, and removal condition before merging the localized behavior.
PRA-2 Required acceptance src/lib/onboard/providers.ts:31 Before merge, either restore the provider-convention model IDs for hosted Inference Hub paths or add authoritative checked-in evidence that `https://inference-api.nvidia.com/v1\` accepts `nvidia/nemotron-3-ultra` for the repo-secret compatible endpoint flow. Suitable evidence would be a provider-contract fixture/catalog from the documented Inference Hub API or a focused guarded live contract test for the repo secret path.

🚨 Required before merge

Address these before merging unless a maintainer explicitly overrides the advisor with rationale.

PRA-2 Required — Prove the hosted Inference Hub model ID source of truth before changing defaults

  • Location: src/lib/onboard/providers.ts:31
  • Category: acceptance
  • Problem: The PR continues to set the hosted-compatible default to `nvidia/nemotron-3-ultra` and sweeps CI/live fixtures to the same single-prefix form. That may satisfy the original issue body's expectation, but it still contradicts the linked issue closure comments stating that `nvidia/nvidia/nemotron-3-super-v3` is the NVIDIA Inference Hub `<provider>/<namespace>/<model>` convention and that no NemoClaw change is required. The new tests prove local staging and propagation through fake curl/status/Dockerfile/dcode paths, but they do not prove that the real `https://inference-api.nvidia.com/v1\` contract accepts the single-prefix model on the changed hosted-compatible paths.
  • Impact: If the linked comments are correct, secret-backed hosted CI lanes and Deep Agents hosted-compatible onboarding will stage a model ID that the real Inference Hub rejects, while the new local tests still pass because they mock or fake the provider boundary.
  • Required action: Before merge, either restore the provider-convention model IDs for hosted Inference Hub paths or add authoritative checked-in evidence that `https://inference-api.nvidia.com/v1\` accepts `nvidia/nemotron-3-ultra` for the repo-secret compatible endpoint flow. Suitable evidence would be a provider-contract fixture/catalog from the documented Inference Hub API or a focused guarded live contract test for the repo secret path.
  • Expected follow-up: Fix before merge or get explicit maintainer override.
  • Verification: Read linked issue comments 4787653507 and 4787653714, then compare them with `HOSTED_INFERENCE_MODEL = "nvidia/nemotron-3-ultra"` in `src/lib/onboard/providers.ts`, the hosted CI exports in `.github/workflows/e2e-script.yaml` and `.github/workflows/nightly-e2e.yaml`, and `NEMOCLAW_E2E_COMPATIBLE_INFERENCE_MODEL_DEFAULT` in `test/e2e/lib/ci-compatible-inference.sh`.
  • Missing regression test: Add or identify a provider-contract regression proving that `COMPATIBLE_API_KEY` with `NEMOCLAW_ENDPOINT_URL=https://inference-api.nvidia.com/v1\` and `NEMOCLAW_MODEL=nvidia/nemotron-3-ultra` succeeds against `/v1/chat/completions`, or replace the single-prefix assertions with tests tied to an authoritative Inference Hub `<provider>/<namespace>/<model>` catalog/contract.
  • Done when: The required change is committed and verification passes: Read linked issue comments 4787653507 and 4787653714, then compare them with `HOSTED_INFERENCE_MODEL = "nvidia/nemotron-3-ultra"` in `src/lib/onboard/providers.ts`, the hosted CI exports in `.github/workflows/e2e-script.yaml` and `.github/workflows/nightly-e2e.yaml`, and `NEMOCLAW_E2E_COMPATIBLE_INFERENCE_MODEL_DEFAULT` in `test/e2e/lib/ci-compatible-inference.sh`.
  • Evidence: Issue comment 4787653507 says: “The double-namespace model id (`openai/openai/gpt-5.4` / `nvidia/nvidia/nemotron-3-super-v3`) is the NVIDIA Inference Hub naming convention: `<provider>/<namespace>/<model>` ... No action required on the NemoClaw side.” Issue comment 4787653714 says: “Not a NemoClaw defect — Inference Hub model-id convention is the documented `<provider>/<namespace>/<model>` triple.” The diff sets `HOSTED_INFERENCE_MODEL = "nvidia/nemotron-3-ultra"` and updates workflow/fixture defaults to that single-prefix form.
Review findings by urgency: 1 required fix, 1 item to resolve/justify, 0 in-scope improvements

⚠️ Resolve or justify before merge

Investigate these in the current review; either fix them, explain why they are not applicable, or document the accepted risk.

PRA-1 Resolve/justify — Source-of-truth review needed: Hosted Inference Hub model namespace default

  • Location: not file-specific
  • Category: architecture
  • Problem: The advisor marked localized patch analysis as needs_followup.
  • Impact: A localized workaround can preserve or hide an invalid state when the source boundary is unclear.
  • Recommended action: Identify the invalid state, source boundary, source-fix constraint, regression test, and removal condition before merging the localized behavior.
  • Expected follow-up: Resolve in this PR or explain why the risk is acceptable.
  • Verification: Inspect the localized patch and source-of-truth review fields for a concrete invalid state, source boundary, source-fix constraint, regression test, and removal condition.
  • Missing regression test: Current regressions prove local staging and propagation only; they do not prove the real provider accepts the single-prefix model.
  • Done when: The risk is fixed or explicitly justified in the PR. Verification: Inspect the localized patch and source-of-truth review fields for a concrete invalid state, source boundary, source-fix constraint, regression test, and removal condition.
  • Evidence: `HOSTED_INFERENCE_MODEL` is `nvidia/nemotron-3-ultra`, while issue comments 4787653507 and 4787653714 state the triple namespace is documented Inference Hub behavior.

💡 In-scope improvements

These are lower-risk, not throwaway. Prefer fixing them in this PR when they are local to changed code; defer only with rationale or a linked follow-up.

  • None.
Test follow-ups to resolve or justify

If these cover changed behavior, prefer adding them in this PR; otherwise state why existing coverage is enough or link the follow-up.

  • PRA-T1 Runtime validation — Provider contract: `COMPATIBLE_API_KEY` with `NEMOCLAW_ENDPOINT_URL=https://inference-api.nvidia.com/v1\` accepts `NEMOCLAW_MODEL=nvidia/nemotron-3-ultra` on `/v1/chat/completions`.. The PR has strong local unit/integration-style coverage for env staging, selector rejection, redaction, workflow text, status rendering, Dockerfile patching, generated Deep Agents config, and fake dcode output. The remaining high-risk behavior is the external hosted Inference Hub model contract, which the current fake curl/provider tests cannot validate.
  • PRA-T2 Runtime validation — Deep Agents hosted-compatible onboarding with `NEMOCLAW_PROVIDER_KEY` and no `NEMOCLAW_MODEL` records the provider-accepted model consistently in status, Dockerfile ARG, generated Deep Agents config, and dcode runtime header.. The PR has strong local unit/integration-style coverage for env staging, selector rejection, redaction, workflow text, status rendering, Dockerfile patching, generated Deep Agents config, and fake dcode output. The remaining high-risk behavior is the external hosted Inference Hub model contract, which the current fake curl/provider tests cannot validate.
  • PRA-T3 Runtime validation — If Inference Hub requires `<provider>/<namespace>/<model>`, assert the triple-form default and verify NemoClaw preserves that provider-accepted ID instead of normalizing it away.. The PR has strong local unit/integration-style coverage for env staging, selector rejection, redaction, workflow text, status rendering, Dockerfile patching, generated Deep Agents config, and fake dcode output. The remaining high-risk behavior is the external hosted Inference Hub model contract, which the current fake curl/provider tests cannot validate.
  • PRA-T4 Acceptance clause — After onboarding a LangChain Deep Agents Code sandbox against an OpenAI-compatible inference endpoint, the model id recorded by NemoClaw is `nvidia/nvidia/nemotron-3-super-v3` — two consecutive `nvidia/` namespace segments. — add test evidence or identify existing coverage. `test/issue-5667-hosted-inference-model-namespace.test.ts` reproduces Deep Agents setupNim staging and asserts the local result uses `nvidia/nemotron-3-ultra`, but it uses fake curl/provider boundaries rather than proving the real Inference Hub contract.
  • PRA-T5 Acceptance clause — This doubled prefix appears in `nemoclaw <sandbox> status`, in the sandbox image build ARG (`NEMOCLAW_MODEL=nvidia/nvidia/nemotron-3-super-v3`), and in the runtime logs / dcode output. — add test evidence or identify existing coverage. The new issue regression checks a status snapshot, patched Dockerfile ARG, generated Deep Agents config, and fake dcode wrapper output for `nvidia/nemotron-3-ultra`; it does not validate a live sandbox against the hosted provider.
  • PRA-T6 Acceptance clause — Standard NemoClaw / NIM model ids use exactly one namespace segment (e.g. `nvidia/nv-embedqa-mistral-7b-v2`), so the double prefix is suspicious — either NemoClaw is prepending an extra `nvidia/` on top of an already-prefixed model id returned by the endpoint, or the upstream OpenAI-compatible endpoint is returning it that way and NemoClaw is not normalizing. — add test evidence or identify existing coverage. The PR assumes the single-prefix form is canonical, but linked issue comments later state the triple-form namespace is documented Inference Hub behavior. No checked-in provider catalog or live contract evidence reconciles those claims.
  • PRA-T7 Acceptance clause — Possible causes (dev triage): Inference Hub returns the model id as `nvidia/nemotron-3-super-v3` and NemoClaw prepends an additional `nvidia/` namespace when storing. — add test evidence or identify existing coverage. The diff does not show NemoClaw prepending `nvidia/`; it changes constants/defaults and propagation tests. The external return value from Inference Hub is not proven.
  • PRA-T8 Acceptance clause — Possible causes (dev triage): The upstream OpenAI-compatible endpoint returns it as `nvidia/nvidia/nemotron-3-super-v3` and NemoClaw does not normalize. — add test evidence or identify existing coverage. The PR does not include provider-returned model catalog evidence. Linked comments claim the triple namespace is the provider convention.
Since last review details

Current findings, using the urgency labels above:

PRA-1 Resolve/justify — Source-of-truth review needed: Hosted Inference Hub model namespace default

  • Location: not file-specific
  • Category: architecture
  • Problem: The advisor marked localized patch analysis as needs_followup.
  • Impact: A localized workaround can preserve or hide an invalid state when the source boundary is unclear.
  • Recommended action: Identify the invalid state, source boundary, source-fix constraint, regression test, and removal condition before merging the localized behavior.
  • Expected follow-up: Resolve in this PR or explain why the risk is acceptable.
  • Verification: Inspect the localized patch and source-of-truth review fields for a concrete invalid state, source boundary, source-fix constraint, regression test, and removal condition.
  • Missing regression test: Current regressions prove local staging and propagation only; they do not prove the real provider accepts the single-prefix model.
  • Done when: The risk is fixed or explicitly justified in the PR. Verification: Inspect the localized patch and source-of-truth review fields for a concrete invalid state, source boundary, source-fix constraint, regression test, and removal condition.
  • Evidence: `HOSTED_INFERENCE_MODEL` is `nvidia/nemotron-3-ultra`, while issue comments 4787653507 and 4787653714 state the triple namespace is documented Inference Hub behavior.

PRA-2 Required — Prove the hosted Inference Hub model ID source of truth before changing defaults

  • Location: src/lib/onboard/providers.ts:31
  • Category: acceptance
  • Problem: The PR continues to set the hosted-compatible default to `nvidia/nemotron-3-ultra` and sweeps CI/live fixtures to the same single-prefix form. That may satisfy the original issue body's expectation, but it still contradicts the linked issue closure comments stating that `nvidia/nvidia/nemotron-3-super-v3` is the NVIDIA Inference Hub `<provider>/<namespace>/<model>` convention and that no NemoClaw change is required. The new tests prove local staging and propagation through fake curl/status/Dockerfile/dcode paths, but they do not prove that the real `https://inference-api.nvidia.com/v1\` contract accepts the single-prefix model on the changed hosted-compatible paths.
  • Impact: If the linked comments are correct, secret-backed hosted CI lanes and Deep Agents hosted-compatible onboarding will stage a model ID that the real Inference Hub rejects, while the new local tests still pass because they mock or fake the provider boundary.
  • Required action: Before merge, either restore the provider-convention model IDs for hosted Inference Hub paths or add authoritative checked-in evidence that `https://inference-api.nvidia.com/v1\` accepts `nvidia/nemotron-3-ultra` for the repo-secret compatible endpoint flow. Suitable evidence would be a provider-contract fixture/catalog from the documented Inference Hub API or a focused guarded live contract test for the repo secret path.
  • Expected follow-up: Fix before merge or get explicit maintainer override.
  • Verification: Read linked issue comments 4787653507 and 4787653714, then compare them with `HOSTED_INFERENCE_MODEL = "nvidia/nemotron-3-ultra"` in `src/lib/onboard/providers.ts`, the hosted CI exports in `.github/workflows/e2e-script.yaml` and `.github/workflows/nightly-e2e.yaml`, and `NEMOCLAW_E2E_COMPATIBLE_INFERENCE_MODEL_DEFAULT` in `test/e2e/lib/ci-compatible-inference.sh`.
  • Missing regression test: Add or identify a provider-contract regression proving that `COMPATIBLE_API_KEY` with `NEMOCLAW_ENDPOINT_URL=https://inference-api.nvidia.com/v1\` and `NEMOCLAW_MODEL=nvidia/nemotron-3-ultra` succeeds against `/v1/chat/completions`, or replace the single-prefix assertions with tests tied to an authoritative Inference Hub `<provider>/<namespace>/<model>` catalog/contract.
  • Done when: The required change is committed and verification passes: Read linked issue comments 4787653507 and 4787653714, then compare them with `HOSTED_INFERENCE_MODEL = "nvidia/nemotron-3-ultra"` in `src/lib/onboard/providers.ts`, the hosted CI exports in `.github/workflows/e2e-script.yaml` and `.github/workflows/nightly-e2e.yaml`, and `NEMOCLAW_E2E_COMPATIBLE_INFERENCE_MODEL_DEFAULT` in `test/e2e/lib/ci-compatible-inference.sh`.
  • Evidence: Issue comment 4787653507 says: “The double-namespace model id (`openai/openai/gpt-5.4` / `nvidia/nvidia/nemotron-3-super-v3`) is the NVIDIA Inference Hub naming convention: `<provider>/<namespace>/<model>` ... No action required on the NemoClaw side.” Issue comment 4787653714 says: “Not a NemoClaw defect — Inference Hub model-id convention is the documented `<provider>/<namespace>/<model>` triple.” The diff sets `HOSTED_INFERENCE_MODEL = "nvidia/nemotron-3-ultra"` and updates workflow/fixture defaults to that single-prefix form.

Workflow run details

This is an automated, non-binding review; it still expects maintainers and agents to respond to each required or warning item. Treat suggestions as current-PR improvements when they touch changed code; defer only with maintainer rationale or a linked follow-up. A human maintainer must make the final merge decision.

@github-actions

github-actions Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Recommendation

Required Vitest E2E scenarios: hermes-discord-vitest, rebuild-hermes-stale-base-vitest, rebuild-hermes-vitest, e2e-scenarios-all
Optional Vitest E2E scenarios: None

Dispatch required Vitest E2E scenarios:

  • gh workflow run e2e-vitest-scenarios.yaml --ref <pr-head-ref> --field jobs=hermes-discord-vitest
  • gh workflow run e2e-vitest-scenarios.yaml --ref <pr-head-ref> --field jobs=rebuild-hermes-stale-base-vitest
  • gh workflow run e2e-vitest-scenarios.yaml --ref <pr-head-ref> --field jobs=rebuild-hermes-vitest
  • gh workflow run e2e-vitest-scenarios.yaml --ref <pr-head-ref>

Workflow run

Full Vitest E2E advisor summary

Vitest E2E Scenario Advisor

Base: origin/main
Head: HEAD
Confidence: high

Required Vitest E2E scenarios

  • hermes-discord-vitest: Focused free-standing Vitest job wired for changed live test test/e2e-scenario/live/hermes-discord.test.ts.
    • Dispatch: gh workflow run e2e-vitest-scenarios.yaml --ref <pr-head-ref> --field jobs=hermes-discord-vitest
  • rebuild-hermes-stale-base-vitest: Focused free-standing Vitest job wired for changed live test test/e2e-scenario/live/rebuild-hermes.test.ts.
    • Dispatch: gh workflow run e2e-vitest-scenarios.yaml --ref <pr-head-ref> --field jobs=rebuild-hermes-stale-base-vitest
  • rebuild-hermes-vitest: Focused free-standing Vitest job wired for changed live test test/e2e-scenario/live/rebuild-hermes.test.ts.
    • Dispatch: gh workflow run e2e-vitest-scenarios.yaml --ref <pr-head-ref> --field jobs=rebuild-hermes-vitest
  • e2e-scenarios-all: The PR changes shared Vitest scenario fixture code in test/e2e-scenario/fixtures/hosted-inference.ts, multiple live Vitest scenario helpers/tests, and the canonical Vitest scenario workflow. Shared fixture and workflow-surface changes require the full Vitest scenario fan-out so all live-supported registry scenarios and free-standing Vitest jobs exercise the hosted inference model/provider contract updates.
    • Dispatch: gh workflow run e2e-vitest-scenarios.yaml --ref <pr-head-ref>

Optional Vitest E2E scenarios

  • None.

Relevant changed files

  • .github/workflows/e2e-vitest-scenarios.yaml
  • src/lib/onboard.ts
  • src/lib/onboard/provider-key-bridge.ts
  • src/lib/onboard/providers.ts
  • test/e2e-scenario/fixtures/hosted-inference.ts
  • test/e2e-scenario/live/agent-turn-latency-helpers.ts
  • test/e2e-scenario/live/hermes-discord.test.ts
  • test/e2e-scenario/live/hermes-slack-e2e-helpers.ts
  • test/e2e-scenario/live/rebuild-hermes.test.ts
  • test/e2e-scenario/live/upgrade-stale-sandbox-helpers.ts
  • tools/e2e-scenarios/workflow-boundary.mts

…inear

The #5667 namespace fix swept the doubled "nvidia/nvidia/nemotron-3-super-v3"
default to the canonical "nvidia/nemotron-3-super-v3" but left two CI gates red:

- tools/e2e-scenarios/workflow-boundary.mts still pinned the rebuild-hermes
  vitest jobs to the doubled id, so validateE2eVitestScenariosWorkflowBoundary()
  reported 4 violations (cli-test-shards shard 2).
- the new regression test's env teardown used an if/else, tripping the
  codebase-growth-guardrails 'changed test files must not add if statements' gate.

Align the workflow-boundary pins with the swept jobs, rewrite the teardown as a
wholesale env snapshot/restore (no conditional), and apply the Biome formatting
the auto-commit skipped on the live hermes e2e fixtures.

Refs #5667

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Jason Ma <jama@nvidia.com>
@jason-ma-nv

Copy link
Copy Markdown
Collaborator Author

Follow-up: completed the single-prefix sweep and turned CI green

The core fix is correct — HOSTED_INFERENCE_MODEL in src/lib/onboard/providers.ts is the sole src/ source of the doubled nvidia/nvidia/nemotron-3-super-v3 id, and the new regression test confirms both the default constant and the staged-env path never contain nvidia/nvidia/.

CI was fully red, though, because the sweep was incomplete and the auto-commit skipped formatting. Pushed one commit (3608e6795, verified) addressing all three real failures:

CI gate Root cause Fix
cli-test-shards (2) tools/e2e-scenarios/workflow-boundary.mts still pinned the rebuild-hermes-vitest / rebuild-hermes-stale-base-vitest jobs to the doubled id, so validateE2eVitestScenariosWorkflowBoundary() reported 4 violations Aligned both pins (NEMOCLAW_MODEL, NEMOCLAW_COMPAT_MODEL) to the swept single-prefix id
codebase-growth-guardrails The new regression test's env teardown used if/else, tripping "changed test files must not add if statements" (14 vs 13 at base) Rewrote teardown as a wholesale env snapshot/restore — no conditional
static-checks The auto-commit skipped Biome formatting on two live hermes e2e fixtures Applied formatting (hermes-slack-e2e-helpers.ts, rebuild-hermes.test.ts)

The cli-tests / checks roll-ups were just cascading off those. Final state: all shards pass, static-checks / codebase-growth-guardrails / cli-tests green, 0 failing checks.

One thing to confirm separately: the completed sweep aligns the live e2e model pins to the single-prefix id on the assumption that inference-api.nvidia.com serves nvidia/nemotron-3-super-v3. Those jobs only run on manual dispatch (not gating this PR), so if the hosted endpoint actually serves the doubled id, those pins should be revisited.

🤖 Generated with Claude Code

@wscurran wscurran added area: onboarding Onboarding FSM, provider setup, sandbox launch, or first-run flow bug-fix PR fixes a bug or regression labels Jun 23, 2026
@wscurran

Copy link
Copy Markdown
Contributor

@jyaunches
jyaunches requested a review from cv June 23, 2026 16:54
@cv
cv removed the request for review from jyaunches June 23, 2026 16:54
@jyaunches jyaunches assigned cv and unassigned jyaunches Jun 23, 2026
@wscurran wscurran added the integration: dcode LangChain Deep Code integration behavior label Jun 23, 2026
@github-actions

Copy link
Copy Markdown
Contributor

@jyaunches jyaunches added v0.0.68 and removed v0.0.67 labels Jun 24, 2026
@cv
cv merged commit 2bbc591 into main Jun 24, 2026
42 checks passed
@cv
cv deleted the auto/fix-5667-ubuntu-24-04-inference-deep-agents branch June 24, 2026 23:21
cv added a commit that referenced this pull request Jun 25, 2026
## Summary
Preserves the provider/namespace/model ID convention for the private
CI-compatible `https://inference-api.nvidia.com/v1` endpoint. This
follow-up keeps the public NVIDIA provider catalog separate from the
custom OpenAI-compatible Inference Hub path used by CI.

## Related Issue
Follow-up to #5672 / #5667.

## Changes
- Restores hosted-compatible CI defaults to
`nvidia/nvidia/nemotron-3-ultra` across workflow env, E2E fixtures, and
shell helpers.
- Documents in `src/lib/onboard/providers.ts` that the private
`inference-api.nvidia.com` endpoint uses provider/namespace/model IDs
and is staged as a custom compatible provider.
- Updates hosted inference regression tests to assert the
provider-convention ID is preserved end-to-end instead of normalized.

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

## Verification
- [x] PR description includes the DCO sign-off declaration and every
commit appears as `Verified` in GitHub
- [x] Git hooks passed during commit and push, or `npx prek run
--from-ref main --to-ref HEAD` passes
- [x] Targeted tests pass for changed behavior
- [ ] Full `npm test` passes (broad runtime changes only)
- [x] Tests added or updated for new or changed behavior
- [x] 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](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

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

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

## Summary by CodeRabbit

* **Bug Fixes**
* Updated hosted inference and E2E scenarios to use the correct model
identifier consistently.
* Improved fallback behavior so tests and workflows resolve the same
hosted model across CI, rebuild, and upgrade flows.
* Added coverage for the provider-style model naming to prevent
namespace mismatches.

* **Documentation**
* Clarified the model naming convention used for hosted inference in the
onboarding flow.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
jyaunches added a commit that referenced this pull request Jun 25, 2026
## Summary
Restore issue #5800 parity package `P0-A` for merged bash-suite
inference-helper deltas only.

This is a focused support-test parity PR: the helper/product behavior
already exists on `main`; this adds missing Vitest assertions so shell
retirement keeps the hosted/hermetic inference contracts covered.

## Related Issues
Refs #5800
Refs #5098
Refs #5373
Refs #5374
Refs #5385
Refs #5395
Refs #5399
Refs #5400
Refs #5411
Refs #5751
Refs #5672
Refs #5757

## Scope gate
- Package: `P0-A — Hosted/hermetic inference helper parity`
- Included PRs all merged and touched `test/e2e`: yes
- Out of scope: unmerged/non-bash PRs; product cleanup; shell lane
retirement / PR #5756 cleanup

## Parity map
| ID | Source PR | Contract | Inference classification | Vitest
assertion / waiver | Status |
| --- | --- | --- | --- | --- | --- |
| A1 | #5373 | Fake OpenAI-compatible helper supports `/models`, chat
completions, responses API, auth checking, and request capture. |
`hermetic-default` |
`test/e2e-scenario/support-tests/hosted-inference.test.ts` starts
`startFakeOpenAiCompatibleServer` and asserts
models/chat/responses/request log behavior. | covered |
| A2 | #5374, #5385, #5395 | Hosted CI inference stages
`NVIDIA_INFERENCE_API_KEY` as `COMPATIBLE_API_KEY`, routes as
`custom`/`compatible-endpoint`, and prefers `openai-completions`. |
`hosted-compatible capable` | Existing workflow/helper assertions plus
new shell helper staging assertion in `hosted-inference.test.ts`. |
covered |
| A3 | #5399, #5751, #5672, #5757 | Hosted model default remains the
Inference Hub provider/namespace/model ID
`nvidia/nvidia/nemotron-3-ultra`; explicit `NEMOCLAW_MODEL` takes
precedence over `NEMOCLAW_COMPAT_MODEL`, which takes precedence over
helper options/default. | `hosted-compatible capable` | New
`requireHostedInferenceConfig` model precedence/default assertion;
existing workflow/model namespace tests remain green. | covered |
| A4 | #5400, #5411 | Hosted reachability probe is bounded and low-cost:
no `/models`, chat completions, auth header, or bearer token spend. |
`hosted-compatible capable` | Existing probe tests retained and
revalidated. | covered |
| A5 | #5385 | Public NVIDIA/nvapi shell mode remains distinct from
hosted-compatible mode and is not restaged as compatible inference. |
`public-nvidia required` | New shell helper assertion checks `nvapi-*` +
`cloud` keeps `nvidia-prod`, leaves `COMPATIBLE_API_KEY` unset. |
covered |

## Inference mode support
- Default mode for touched live targets: none touched; this PR only
changes support tests.
- Real inference support preserved: yes, by asserting hosted-compatible
and public-NVIDIA helper boundaries without invoking real inference.
- Modes validated in this PR: hermetic fake endpoint and shell helper
mocked hosted-compatible/public boundary.
- If not validated with real inference: not required; no live target or
hosted secret path changed.

## Validation
- [x] `npx vitest run --project e2e-vitest-support
test/e2e-scenario/support-tests/hosted-inference.test.ts`
- [x] `npx vitest run test/e2e-script-workflow.test.ts
test/issue-5667-hosted-inference-model-namespace.test.ts
src/lib/inference/onboard-probes.test.ts
src/lib/onboard/providers.test.ts`
- [x] `git diff --check`
- [ ] hosted/public selective E2E workflow, if required by
classification: not required; support-test-only PR, no live/workflow
behavior changed.

## Follow-ups / waivers
- Pre-push full `Test (CLI)` / `Test (plugin)` hooks were not clean on
local macOS after the commit: CLI run hit existing macOS/stat/OOM-style
failures; plugin run could not import package `json5`. Focused target
tests above passed.


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

* **Tests**
* Expanded end-to-end coverage for hosted inference compatibility and
model ID/model precedence behavior.
* Added validations for environment variable staging rules and shell
mode behavior across NVAPI key scenarios.
* Introduced a fake OpenAI-compatible server and added contract checks
for `/models`, auth-required flows, and streamed responses on
chat/response endpoints, including cleanup after runs.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
@miyoungc miyoungc mentioned this pull request Jun 25, 2026
21 tasks
cv pushed a commit that referenced this pull request Jun 25, 2026
<!-- markdownlint-disable MD041 -->
## Summary
Refreshes the v0.0.68 docs with release notes, Microsoft Teams messaging
guidance, and generated support-matrix coverage.
Also corrects the Hermes generated command reference so `sessions
export` examples match Hermes-only behavior while keeping the shared
command heading compatible with CLI parity checks.

## Changes
- #5585 -> `docs/manage-sandboxes/messaging-channels.mdx`,
`docs/reference/platform-support.mdx`: Documents experimental Microsoft
Teams channel setup, Bot Framework credentials, webhook forwarding,
local `MSTEAMS_PORT` conflicts, and the generated integration support
row.
- #5526 -> `docs/reference/commands.mdx`,
`docs/reference/commands-nemohermes.mdx`: Keeps Hermes `sessions export`
examples on the supported single-JSONL export path while preserving the
canonical shared CLI heading.
- #5044 -> `docs/about/release-notes.mdx`: Adds v0.0.68 release-note
coverage for installer onboarding failure propagation.
- #5641 -> `docs/about/release-notes.mdx`: Adds v0.0.68 release-note
coverage for fresh recovery after pre-sandbox installer interruption.
- #5673 -> `docs/about/release-notes.mdx`: Adds v0.0.68 release-note
coverage for explicit deny-all messaging manifests.
- #5743 -> `docs/about/release-notes.mdx`: Adds v0.0.68 release-note
coverage for unsupported-agent channel-add rejection.
- #5252 -> `docs/about/release-notes.mdx`: Adds v0.0.68 release-note
coverage for Hermes `gateway-token` dashboard guidance.
- #5659 -> `docs/about/release-notes.mdx`: Adds v0.0.68 release-note
coverage for local OpenClaw `agent` wrapper help.
- #5661 -> `docs/about/release-notes.mdx`: Adds v0.0.68 release-note
coverage for default extra-agent paths.
- #5669 -> `docs/about/release-notes.mdx`: Adds v0.0.68 release-note
coverage for Deep Agents Code branding.
- #5672 -> `docs/about/release-notes.mdx`: Adds v0.0.68 release-note
coverage for hosted-compatible default model ID preservation.
- #5725 -> `docs/about/release-notes.mdx`: Adds v0.0.68 release-note
coverage for Deep Agents Code sandbox liveness.
- #5644 -> `docs/about/release-notes.mdx`: Adds v0.0.68 release-note
coverage for DGX Spark managed-vLLM express install defaults.
- #5712 -> `docs/about/release-notes.mdx`,
`docs/reference/platform-support.mdx`: Adds v0.0.68 release-note
coverage for the canonical support matrix and updates the matrix source
with Teams.

## 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 all that apply. For any "covered by existing tests", "not
applicable", or waiver entry, add a brief justification on the same line
or in the Changes section. -->
- [ ] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [x] Tests not applicable — justification: docs-only release refresh;
no runtime code changed.
- [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 item you ran and confirmed. Leave unchecked items you
skipped. Doc-only changes do not require npm test unless you ran it. -->
- [x] PR description includes the DCO sign-off declaration and every
commit appears as `Verified` in GitHub
- [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)
- [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) — `npm
run docs` passed with 0 errors; Fern reported the existing light-mode
accent contrast warning.
- [x] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

Additional verification:
- `python3 scripts/generate-platform-docs.py --check` passed.
- `npm run docs:sync-agent-variants` passed.
- `bash test/e2e/e2e-cloud-experimental/check-docs.sh --only-cli`
passed.
- `npm run docs` passed with 0 errors and one Fern theme warning:
light-mode accent contrast ratio is 2.41:1 and should be at least 3:1.
- `npm run build:cli` refreshed local untracked `dist/` artifacts after
rebase; no tracked files changed.
- `npm run typecheck:cli` passed.
- Normal commit and push hooks passed after the local CLI rebuild.

---
<!-- 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

* **New Features**
* Added **Microsoft Teams** as an experimental messaging channel,
including manifest-first onboarding, local port routing/conflict
handling, sandbox delivery controls, and policy preset support.

* **Documentation**
* Expanded messaging-channel setup for Teams (prerequisites,
credential/webhook setup, wizard flow, and add/remove commands).
* Updated reference docs for **agent-specific** session export examples
(OpenClaw vs Hermes).
* Refreshed platform support guidance and added the latest release-notes
entry.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Hadar301 pushed a commit to Hadar301/NemoClaw-OpenShift that referenced this pull request Jul 12, 2026
## Summary
Issue NVIDIA#5667: onboarding a Deep Agents / OpenAI-compatible sandbox
without an explicit NEMOCLAW_MODEL recorded the model id as
'nvidia/nvidia/nemotron-3-super-v3' (doubled 'nvidia/' namespace). Root
cause was the default fallback constant HOSTED_INFERENCE_MODEL in
src/lib/onboard/providers.ts, which was hardcoded with a duplicated
namespace segment (dev-triage hypothesis NVIDIA#3). When NEMOCLAW_MODEL is
unset, stageHostedInferenceSourceSecretEnv() falls back to this constant
and persists it into NEMOCLAW_MODEL / NEMOCLAW_COMPAT_MODEL, surfacing
the doubled prefix everywhere (status, build ARG, dcode header). Fixed
by changing the constant to the canonical single-prefix id
'nvidia/nemotron-3-super-v3'. Scope limited to the default constant; CI
workflow YAML and e2e fixtures set NEMOCLAW_MODEL explicitly and are
intentionally untouched.

## Related Issue
Fixes NVIDIA#5667

## Changes
- Automated Claude Code fix selected by
`auto_fix/auto_fix_recent_issues.py`.
- See the commits on this branch for the exact file-level changes.

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

## Verification
<!-- Check each item you ran and confirmed. Leave unchecked items you
skipped. Doc-only changes do not require npm test unless you ran it. -->
- [ ] 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](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 details reported by automation:
- Codex review (independent, advisory) posted as a PR comment.
- Addressed from codex review: Addressed the reviewer's completeness
findings by sweeping the doubled 'nvidia/nvidia/nemotron-3-super-v3' id
to the canonical 'nvidia/nemotron-3-super-v3' everywhere it represented
this model — not just the original constant. The earlier claim that
CI/fixtures were 'intentionally untouched' was wrong: those defaults
reintroduced the malformed id. Changed: the hosted CI exports in
.github/workflows/{e2e-script,nightly-e2e,e2e-vitest-scenarios}.yaml;
the e2e fixture default DEFAULT_HOSTED_INFERENCE_MODEL
(test/e2e-scenario/fixtures/hosted-inference.ts) and the
live-helper/shell-fixture fallbacks (agent-turn-latency-helpers,
hermes-discord, hermes-slack-e2e-helpers, rebuild-hermes,
upgrade-stale-sandbox-helpers, ci-compatible-inference.sh,
test-rebuild-*.sh, test-upgrade-stale-sandbox.sh); the onboard-probes
probe-payload test literal; and the workflow-content guard assertions in
test/e2e-script-workflow.test.ts that had locked in the doubled value.
Finding NVIDIA#3 (regression test should use NEMOCLAW_PROVIDER_KEY) was
rejected as incorrect: stageHostedInferenceSourceSecretEnv() — the
function that records the model and was the root cause — gates
exclusively on NVIDIA_INFERENCE_API_KEY (HOSTED_INFERENCE_SOURCE_ENV);
NEMOCLAW_PROVIDER_KEY is a provider-credential hint used only by the
Model Router / Hermes / deepagents config paths and never triggers model
staging, so the test correctly exercises the real bug path. Verified:
rebuilt dist and ran the issue-5667 regression test, e2e-script-workflow
guard tests, onboard-probes, and hosted-inference support tests — 67
tests pass.
- Added focused regression test
test/issue-5667-hosted-inference-model-namespace.test.ts that exercises
the real exported HOSTED_INFERENCE_MODEL constant and the real
stageHostedInferenceSourceSecretEnv() staging path (no mocking of the
unit under test).
- Built dist from the unfixed source and confirmed the new test fails
red: NEMOCLAW_MODEL staged as 'nvidia/nvidia/nemotron-3-super-v3'.
- Applied the one-line fix to src/lib/onboard/providers.ts, rebuilt
dist, and confirmed the test passes green (2/2).
- Ran related suites (credential-exposure, onboard-selection,
onboard-probes, e2e-script-workflow) — 129 tests pass — confirming no
regression and that the explicitly-overridden CI workflow values are
unaffected.
- `npm install --ignore-scripts`
- `npm run build:cli`
- `./node_modules/.bin/vitest run
test/issue-5667-hosted-inference-model-namespace.test.ts --project cli`
- `./node_modules/.bin/vitest run test/credential-exposure.test.ts
test/onboard-selection.test.ts src/lib/inference/onboard-probes.test.ts
test/issue-5667-hosted-inference-model-namespace.test.ts`
- `./node_modules/.bin/vitest run test/e2e-script-workflow.test.ts`

---
<!-- DCO sign-off required by CI. Run: git config user.name && git
config user.email -->
Signed-off-by: Jason Ma <jama@nvidia.com>


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

* **Bug Fixes**
* Corrected hosted-inference Nemotron model identifiers to consistently
use the proper single-prefix format (removing duplicated
`nvidia/nvidia/`) across onboarding, live scenarios, and CI/E2E
workflows.
* Improved Deep Agents hosted-inference staging by adding a safe
fallback for provider-key handling.
* **Tests**
* Updated E2E/workflow expectations and fixtures to match the corrected
model identifiers.
* Added/adjusted regression tests to prevent duplicated model namespaces
and verify Deep Agents staging behavior.
* **Documentation**
  * Fixed the Model Router pool example for Nemotron-3 Nano.
* **Security/Quality**
* Expanded secret redaction and direct-credential-env checks to include
`NEMOCLAW_PROVIDER_KEY`.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Jason Ma <jama@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Carlos Villela <cvillela@nvidia.com>
Hadar301 pushed a commit to Hadar301/NemoClaw-OpenShift that referenced this pull request Jul 12, 2026
## Summary
Preserves the provider/namespace/model ID convention for the private
CI-compatible `https://inference-api.nvidia.com/v1` endpoint. This
follow-up keeps the public NVIDIA provider catalog separate from the
custom OpenAI-compatible Inference Hub path used by CI.

## Related Issue
Follow-up to NVIDIA#5672 / NVIDIA#5667.

## Changes
- Restores hosted-compatible CI defaults to
`nvidia/nvidia/nemotron-3-ultra` across workflow env, E2E fixtures, and
shell helpers.
- Documents in `src/lib/onboard/providers.ts` that the private
`inference-api.nvidia.com` endpoint uses provider/namespace/model IDs
and is staged as a custom compatible provider.
- Updates hosted inference regression tests to assert the
provider-convention ID is preserved end-to-end instead of normalized.

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

## Verification
- [x] PR description includes the DCO sign-off declaration and every
commit appears as `Verified` in GitHub
- [x] Git hooks passed during commit and push, or `npx prek run
--from-ref main --to-ref HEAD` passes
- [x] Targeted tests pass for changed behavior
- [ ] Full `npm test` passes (broad runtime changes only)
- [x] Tests added or updated for new or changed behavior
- [x] 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](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

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

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

## Summary by CodeRabbit

* **Bug Fixes**
* Updated hosted inference and E2E scenarios to use the correct model
identifier consistently.
* Improved fallback behavior so tests and workflows resolve the same
hosted model across CI, rebuild, and upgrade flows.
* Added coverage for the provider-style model naming to prevent
namespace mismatches.

* **Documentation**
* Clarified the model naming convention used for hosted inference in the
onboarding flow.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Hadar301 pushed a commit to Hadar301/NemoClaw-OpenShift that referenced this pull request Jul 12, 2026
## Summary
Restore issue NVIDIA#5800 parity package `P0-A` for merged bash-suite
inference-helper deltas only.

This is a focused support-test parity PR: the helper/product behavior
already exists on `main`; this adds missing Vitest assertions so shell
retirement keeps the hosted/hermetic inference contracts covered.

## Related Issues
Refs NVIDIA#5800
Refs NVIDIA#5098
Refs NVIDIA#5373
Refs NVIDIA#5374
Refs NVIDIA#5385
Refs NVIDIA#5395
Refs NVIDIA#5399
Refs NVIDIA#5400
Refs NVIDIA#5411
Refs NVIDIA#5751
Refs NVIDIA#5672
Refs NVIDIA#5757

## Scope gate
- Package: `P0-A — Hosted/hermetic inference helper parity`
- Included PRs all merged and touched `test/e2e`: yes
- Out of scope: unmerged/non-bash PRs; product cleanup; shell lane
retirement / PR NVIDIA#5756 cleanup

## Parity map
| ID | Source PR | Contract | Inference classification | Vitest
assertion / waiver | Status |
| --- | --- | --- | --- | --- | --- |
| A1 | NVIDIA#5373 | Fake OpenAI-compatible helper supports `/models`, chat
completions, responses API, auth checking, and request capture. |
`hermetic-default` |
`test/e2e-scenario/support-tests/hosted-inference.test.ts` starts
`startFakeOpenAiCompatibleServer` and asserts
models/chat/responses/request log behavior. | covered |
| A2 | NVIDIA#5374, NVIDIA#5385, NVIDIA#5395 | Hosted CI inference stages
`NVIDIA_INFERENCE_API_KEY` as `COMPATIBLE_API_KEY`, routes as
`custom`/`compatible-endpoint`, and prefers `openai-completions`. |
`hosted-compatible capable` | Existing workflow/helper assertions plus
new shell helper staging assertion in `hosted-inference.test.ts`. |
covered |
| A3 | NVIDIA#5399, NVIDIA#5751, NVIDIA#5672, NVIDIA#5757 | Hosted model default remains the
Inference Hub provider/namespace/model ID
`nvidia/nvidia/nemotron-3-ultra`; explicit `NEMOCLAW_MODEL` takes
precedence over `NEMOCLAW_COMPAT_MODEL`, which takes precedence over
helper options/default. | `hosted-compatible capable` | New
`requireHostedInferenceConfig` model precedence/default assertion;
existing workflow/model namespace tests remain green. | covered |
| A4 | NVIDIA#5400, NVIDIA#5411 | Hosted reachability probe is bounded and low-cost:
no `/models`, chat completions, auth header, or bearer token spend. |
`hosted-compatible capable` | Existing probe tests retained and
revalidated. | covered |
| A5 | NVIDIA#5385 | Public NVIDIA/nvapi shell mode remains distinct from
hosted-compatible mode and is not restaged as compatible inference. |
`public-nvidia required` | New shell helper assertion checks `nvapi-*` +
`cloud` keeps `nvidia-prod`, leaves `COMPATIBLE_API_KEY` unset. |
covered |

## Inference mode support
- Default mode for touched live targets: none touched; this PR only
changes support tests.
- Real inference support preserved: yes, by asserting hosted-compatible
and public-NVIDIA helper boundaries without invoking real inference.
- Modes validated in this PR: hermetic fake endpoint and shell helper
mocked hosted-compatible/public boundary.
- If not validated with real inference: not required; no live target or
hosted secret path changed.

## Validation
- [x] `npx vitest run --project e2e-vitest-support
test/e2e-scenario/support-tests/hosted-inference.test.ts`
- [x] `npx vitest run test/e2e-script-workflow.test.ts
test/issue-5667-hosted-inference-model-namespace.test.ts
src/lib/inference/onboard-probes.test.ts
src/lib/onboard/providers.test.ts`
- [x] `git diff --check`
- [ ] hosted/public selective E2E workflow, if required by
classification: not required; support-test-only PR, no live/workflow
behavior changed.

## Follow-ups / waivers
- Pre-push full `Test (CLI)` / `Test (plugin)` hooks were not clean on
local macOS after the commit: CLI run hit existing macOS/stat/OOM-style
failures; plugin run could not import package `json5`. Focused target
tests above passed.


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

* **Tests**
* Expanded end-to-end coverage for hosted inference compatibility and
model ID/model precedence behavior.
* Added validations for environment variable staging rules and shell
mode behavior across NVAPI key scenarios.
* Introduced a fake OpenAI-compatible server and added contract checks
for `/models`, auth-required flows, and streamed responses on
chat/response endpoints, including cleanup after runs.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Hadar301 pushed a commit to Hadar301/NemoClaw-OpenShift that referenced this pull request Jul 12, 2026
<!-- markdownlint-disable MD041 -->
## Summary
Refreshes the v0.0.68 docs with release notes, Microsoft Teams messaging
guidance, and generated support-matrix coverage.
Also corrects the Hermes generated command reference so `sessions
export` examples match Hermes-only behavior while keeping the shared
command heading compatible with CLI parity checks.

## Changes
- NVIDIA#5585 -> `docs/manage-sandboxes/messaging-channels.mdx`,
`docs/reference/platform-support.mdx`: Documents experimental Microsoft
Teams channel setup, Bot Framework credentials, webhook forwarding,
local `MSTEAMS_PORT` conflicts, and the generated integration support
row.
- NVIDIA#5526 -> `docs/reference/commands.mdx`,
`docs/reference/commands-nemohermes.mdx`: Keeps Hermes `sessions export`
examples on the supported single-JSONL export path while preserving the
canonical shared CLI heading.
- NVIDIA#5044 -> `docs/about/release-notes.mdx`: Adds v0.0.68 release-note
coverage for installer onboarding failure propagation.
- NVIDIA#5641 -> `docs/about/release-notes.mdx`: Adds v0.0.68 release-note
coverage for fresh recovery after pre-sandbox installer interruption.
- NVIDIA#5673 -> `docs/about/release-notes.mdx`: Adds v0.0.68 release-note
coverage for explicit deny-all messaging manifests.
- NVIDIA#5743 -> `docs/about/release-notes.mdx`: Adds v0.0.68 release-note
coverage for unsupported-agent channel-add rejection.
- NVIDIA#5252 -> `docs/about/release-notes.mdx`: Adds v0.0.68 release-note
coverage for Hermes `gateway-token` dashboard guidance.
- NVIDIA#5659 -> `docs/about/release-notes.mdx`: Adds v0.0.68 release-note
coverage for local OpenClaw `agent` wrapper help.
- NVIDIA#5661 -> `docs/about/release-notes.mdx`: Adds v0.0.68 release-note
coverage for default extra-agent paths.
- NVIDIA#5669 -> `docs/about/release-notes.mdx`: Adds v0.0.68 release-note
coverage for Deep Agents Code branding.
- NVIDIA#5672 -> `docs/about/release-notes.mdx`: Adds v0.0.68 release-note
coverage for hosted-compatible default model ID preservation.
- NVIDIA#5725 -> `docs/about/release-notes.mdx`: Adds v0.0.68 release-note
coverage for Deep Agents Code sandbox liveness.
- NVIDIA#5644 -> `docs/about/release-notes.mdx`: Adds v0.0.68 release-note
coverage for DGX Spark managed-vLLM express install defaults.
- NVIDIA#5712 -> `docs/about/release-notes.mdx`,
`docs/reference/platform-support.mdx`: Adds v0.0.68 release-note
coverage for the canonical support matrix and updates the matrix source
with Teams.

## 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 all that apply. For any "covered by existing tests", "not
applicable", or waiver entry, add a brief justification on the same line
or in the Changes section. -->
- [ ] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [x] Tests not applicable — justification: docs-only release refresh;
no runtime code changed.
- [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 item you ran and confirmed. Leave unchecked items you
skipped. Doc-only changes do not require npm test unless you ran it. -->
- [x] PR description includes the DCO sign-off declaration and every
commit appears as `Verified` in GitHub
- [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)
- [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) — `npm
run docs` passed with 0 errors; Fern reported the existing light-mode
accent contrast warning.
- [x] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

Additional verification:
- `python3 scripts/generate-platform-docs.py --check` passed.
- `npm run docs:sync-agent-variants` passed.
- `bash test/e2e/e2e-cloud-experimental/check-docs.sh --only-cli`
passed.
- `npm run docs` passed with 0 errors and one Fern theme warning:
light-mode accent contrast ratio is 2.41:1 and should be at least 3:1.
- `npm run build:cli` refreshed local untracked `dist/` artifacts after
rebase; no tracked files changed.
- `npm run typecheck:cli` passed.
- Normal commit and push hooks passed after the local CLI rebuild.

---
<!-- 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

* **New Features**
* Added **Microsoft Teams** as an experimental messaging channel,
including manifest-first onboarding, local port routing/conflict
handling, sandbox delivery controls, and policy preset support.

* **Documentation**
* Expanded messaging-channel setup for Teams (prerequisites,
credential/webhook setup, wizard flow, and add/remove commands).
* Updated reference docs for **agent-specific** session export examples
(OpenClaw vs Hermes).
* Refreshed platform support guidance and added the latest release-notes
entry.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
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 integration: dcode LangChain Deep Code integration behavior

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Ubuntu 24.04][Inference] Deep Agents onboard records model id as "nvidia/nvidia/nemotron-3-super-v3" with double "nvidia/" namespace prefix

4 participants