Skip to content

fix(onboard): preserve hosted Inference Hub model IDs - #5757

Merged
cv merged 1 commit into
mainfrom
fix/hosted-inference-hub-model-id
Jun 25, 2026
Merged

fix(onboard): preserve hosted Inference Hub model IDs#5757
cv merged 1 commit into
mainfrom
fix/hosted-inference-hub-model-id

Conversation

@cv

@cv cv commented Jun 25, 2026

Copy link
Copy Markdown
Collaborator

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

  • 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

  • PR description includes the DCO sign-off declaration and every commit appears as Verified in GitHub
  • 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)

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

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.

@cv cv self-assigned this Jun 25, 2026
@coderabbitai

coderabbitai Bot commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Caution

Review failed

Pull request was closed or merged during review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 3013834a-4bfd-4b97-b1e4-ca369fc332f2

📥 Commits

Reviewing files that changed from the base of the PR and between 8823ed4 and c139356.

📒 Files selected for processing (18)
  • .github/workflows/e2e-script.yaml
  • .github/workflows/e2e-vitest-scenarios.yaml
  • .github/workflows/nightly-e2e.yaml
  • src/lib/inference/onboard-probes.test.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
  • 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
  • test/issue-5667-hosted-inference-model-namespace.test.ts
  • tools/e2e-scenarios/workflow-boundary.mts

📝 Walkthrough

Walkthrough

Hosted inference model identifiers were updated to nvidia/nvidia/nemotron-3-ultra across workflow env blocks, shared defaults, rebuild/upgrade scripts, and regression tests. Related assertions and comments were refreshed to match the provider/namespace/model convention.

Changes

Hosted inference model namespace update

Layer / File(s) Summary
Shared defaults and provider comment
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
The hosted-inference provider comment and shared TS fallback expressions now reference nvidia/nvidia/nemotron-3-ultra, and several lines were only reformatted.
Registry/session fallback scripts
test/e2e-scenario/live/upgrade-stale-sandbox-helpers.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
The stale-sandbox and rebuild scripts now use the provider-convention model string when writing registry/session metadata and post-rebuild inference defaults; one CI-compatible inference assignment keeps the same value.
Workflow env pins and validation
.github/workflows/e2e-script.yaml, .github/workflows/e2e-vitest-scenarios.yaml, .github/workflows/nightly-e2e.yaml, tools/e2e-scenarios/workflow-boundary.mts
GitHub workflow env blocks and workflow-boundary validation now pin both hosted-inference model env vars to nvidia/nvidia/nemotron-3-ultra.
Regression assertions
src/lib/inference/onboard-probes.test.ts, test/e2e-script-workflow.test.ts, test/issue-5667-hosted-inference-model-namespace.test.ts
Regression tests and workflow assertions now expect the provider-convention model string and check for absence of doubled-namespace substrings; one probe assertion was only reformatted.

Possibly related PRs

  • NVIDIA/NemoClaw#5600: Introduces the hosted-inference env contract that this PR continues to populate and validate.
  • NVIDIA/NemoClaw#5672: Updates the same hosted-inference env variables and workflow/test expectations in overlapping files.
  • NVIDIA/NemoClaw#5751: Touches the same model defaults and hosted-inference assertions in nearby workflow and test code.

Suggested labels

bug-fix, area: onboarding

Suggested reviewers

  • prekshivyas

Poem

A bunny hopped through CI snow,
And found the model paths aglow.
nvidia/nvidia twinkled bright,
In tests and scripts by rabbit light,
🐰✨ The carrots lined up just so.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly matches the main change: preserving hosted Inference Hub model IDs during onboarding and CI flows.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/hosted-inference-hub-model-id

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

@github-code-quality

github-code-quality Bot commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

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

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

TypeScript / code-coverage/cli

The overall coverage in the fix/hosted-inference... 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 fix/hosted-inference... c139356 +/-
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 25, 2026 01:42 UTC
Code Coverage is in Public Preview. Learn more and provide us with your feedback.

@github-actions

Copy link
Copy Markdown
Contributor

E2E Advisor Recommendation

Required E2E: cloud-onboard-e2e, cloud-inference-e2e, inference-routing-e2e, credential-migration-e2e, agent-turn-latency-e2e
Optional E2E: cloud-e2e, onboard-resume-e2e, onboard-repair-e2e, hermes-e2e, rebuild-openclaw-e2e, rebuild-hermes-e2e, upgrade-stale-sandbox-e2e

Dispatch hint: cloud-onboard-e2e,cloud-inference-e2e,inference-routing-e2e,credential-migration-e2e,agent-turn-latency-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 staging and workflow hosted-inference env affect full non-interactive hosted onboarding. This job exercises install.sh/onboard through the reusable e2e-script workflow with NVIDIA_INFERENCE_API_KEY staged as the compatible provider credential.
  • cloud-inference-e2e (medium): Required because the PR changes the model id used for hosted OpenAI-compatible inference. This validates the configured hosted endpoint/model can complete live inference after onboarding.
  • inference-routing-e2e (medium): Required because the changed provider/model default can affect route selection and inference.local propagation. This job validates the inference routing contract with live credentials and provider/model surfaces.
  • credential-migration-e2e (medium): Required because src/lib/onboard/providers.ts changes credential staging for NVIDIA_INFERENCE_API_KEY/NEMOCLAW_PROVIDER_KEY into COMPATIBLE_API_KEY. This validates live credential propagation into the OpenShell gateway compatible-provider route.
  • agent-turn-latency-e2e (high): Required real-assistant confidence: the new hosted compatible model namespace should support actual OpenClaw and Hermes assistant turns, not only onboarding probes or route inspection.

Optional E2E

  • cloud-e2e (high): Useful broader smoke for install → onboard → full hosted OpenClaw flow through the reusable workflow, but cloud-onboard-e2e plus cloud-inference-e2e are the targeted merge-blocking checks.
  • onboard-resume-e2e (medium): Adjacent onboarding confidence because the hosted model env for this job changed, but the PR does not modify onboard machine live-slice state transitions or resume orchestration, so the resume compatibility rule is not triggered.
  • onboard-repair-e2e (medium): Adjacent onboarding repair confidence for hosted provider staging and workflow env, but not required because no resume/repair state-machine implementation was changed.
  • hermes-e2e (high): Useful if maintainers want an additional Hermes-specific install/onboard/health/live-inference proof for the hosted compatible model namespace; agent-turn-latency-e2e already covers a real Hermes turn.
  • rebuild-openclaw-e2e (high): Optional because the OpenClaw rebuild script/default model was touched. It validates sandbox lifecycle E2E assets, but runtime rebuild code was not directly changed.
  • rebuild-hermes-e2e (high): Optional because Hermes rebuild live test assets and hosted model defaults were touched. Run if you want to validate the updated CI lifecycle coverage itself.
  • upgrade-stale-sandbox-e2e (high): Optional because the stale-sandbox upgrade E2E script/helper changed; useful to validate the updated test path, but not merge-blocking for the hosted inference provider default.

New E2E recommendations

  • None.

Dispatch hint

  • Workflow: .github/workflows/nightly-e2e.yaml
  • jobs input: cloud-onboard-e2e,cloud-inference-e2e,inference-routing-e2e,credential-migration-e2e,agent-turn-latency-e2e

@github-actions

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 the canonical Vitest scenario workflow plus shared hosted-inference fixture/defaults and multiple live Vitest helpers/tests that consume hosted inference model configuration. Because this touches shared Vitest scenario workflow/fixture surfaces rather than one isolated scenario, run the full Vitest scenario fan-out.
    • 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/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

@github-actions

github-actions Bot commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor — No blocking findings

Merge posture: No blocking advisor findings
Primary next action: Add or justify PRA-T1 and any related test follow-ups.
Open items: 0 required · 0 warnings · 0 suggestions · 3 test follow-ups

Action checklist

  • 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: Acceptance clause
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 — Verify hosted compatible inference with NVIDIA_INFERENCE_API_KEY and no explicit NEMOCLAW_MODEL stages nvidia/nvidia/nemotron-3-ultra and receives a successful OpenAI-compatible completion from https://inference-api.nvidia.com/v1.. Static and local regression coverage is strong for the changed default and workflow wiring, but the touched surfaces include workflows, hosted inference credentials, and sandbox/runtime E2E helpers. A live hosted-compatible smoke would increase confidence that the private endpoint accepts the updated default in real CI conditions.
  • PRA-T2 Runtime validation — Verify one reusable workflow lane and one direct nightly or Vitest lane export identical NEMOCLAW_MODEL and NEMOCLAW_COMPAT_MODEL values into the sandbox/provider registry.. Static and local regression coverage is strong for the changed default and workflow wiring, but the touched surfaces include workflows, hosted inference credentials, and sandbox/runtime E2E helpers. A live hosted-compatible smoke would increase confidence that the private endpoint accepts the updated default in real CI conditions.
  • PRA-T3 Acceptance clause — No deterministic linked issue clauses were provided by the validation context. — add test evidence or identify existing coverage. The validation context reports linkedIssues: []; PR body references to fix: address issue #5667 #5672 / [Ubuntu 24.04][Inference] Deep Agents onboard records model id as "nvidia/nvidia/nemotron-3-super-v3" with double "nvidia/" namespace prefix #5667 were treated as untrusted context rather than authoritative acceptance clauses.

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.

@cv
cv merged commit ae94f13 into main Jun 25, 2026
46 of 47 checks passed
@cv
cv deleted the fix/hosted-inference-hub-model-id branch June 25, 2026 01:43
@cv cv added the v0.0.68 label Jun 25, 2026
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 -->
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 -->
@wscurran wscurran added area: onboarding Onboarding FSM, provider setup, sandbox launch, or first-run flow area: providers Inference provider integrations and provider behavior bug-fix PR fixes a bug or regression provider: nvidia NVIDIA inference endpoint, NIM, or NVIDIA provider behavior labels Aug 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: onboarding Onboarding FSM, provider setup, sandbox launch, or first-run flow area: providers Inference provider integrations and provider behavior bug-fix PR fixes a bug or regression provider: nvidia NVIDIA inference endpoint, NIM, or NVIDIA provider behavior

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants