Skip to content

fix(inference): retire GLM 5.1 endpoint selection - #6069

Merged
cv merged 4 commits into
mainfrom
fix/glm-51-endpoint-deprecation
Jul 1, 2026
Merged

fix(inference): retire GLM 5.1 endpoint selection#6069
cv merged 4 commits into
mainfrom
fix/glm-51-endpoint-deprecation

Conversation

@ericksoa

@ericksoa ericksoa commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Summary

Removes z-ai/glm-5.1 from the NVIDIA Endpoints curated onboarding choices ahead of its provider retirement and moves direct NVIDIA inference-switch test defaults to Nemotron 3 Super. The independent Hermes Provider catalog remains unchanged, and this PR does not change Kimi models.

Changes

  • Remove GLM 5.1 from the NVIDIA Endpoints picker and update menu-selection coverage.
  • Preserve GLM 5.1 in the Hermes Provider catalog with explicit source and documentation boundary tests.
  • Require the task-fit documentation table to exactly match the curated onboarding model IDs.
  • Keep the Provider Options cells as concise provider summaries; exact catalog parity is enforced by the source-backed task-fit contract.
  • Replace direct NVIDIA inference-switch test defaults with nvidia/nemotron-3-super-120b-a12b.
  • Update inference documentation with the provider-catalog boundary and migration guidance for existing sandboxes.

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)

Quality Gates

  • Tests added or updated for changed behavior
  • Existing tests cover changed behavior — justification:
  • Tests not applicable — justification:
  • 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

  • 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)
  • Quality Gates section completed with required justifications or waivers
  • No secrets, API keys, or credentials committed
  • 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: Aaron Erickson aerickson@nvidia.com

Summary by CodeRabbit

  • Bug Fixes

    • Updated cloud model selection to remove an unavailable option and align the picker with current provider availability.
    • Clarified provider-specific model availability so existing setups can be migrated when a selected model is no longer offered.
    • Adjusted related selection flows and automated checks to match the updated model lists.
  • Documentation

    • Improved inference guidance to reflect the latest curated model options and provider-specific catalog behavior.

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
@ericksoa ericksoa self-assigned this Jun 30, 2026
@coderabbitai

coderabbitai Bot commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Removes z-ai/glm-5.1 from the NVIDIA Endpoints curated model list, keeps it in Hermes Provider, and updates docs, docs tests, prompt, onboarding, and E2E fixtures to match the revised model menus.

Changes

GLM-5.1 removal from NVIDIA Endpoints

Layer / File(s) Summary
Curated model list update
src/lib/inference/config.ts, src/lib/inference/config.test.ts
z-ai/glm-5.1 is removed from CLOUD_MODEL_OPTIONS; tests confirm its removal from the NVIDIA picker while it remains in HERMES_PROVIDER_MODEL_OPTIONS.
Documentation updates
docs/inference/inference-options.mdx
GLM-5.1 is removed from the Provider Options and Model Task-Fit Guide tables, and new text explains the catalog split and provider switching.
Docs validation tests
test/inference-options-docs.test.ts
The docs test now extracts table model IDs for exact matching and adds a check that GLM 5.1 appears only in the Hermes Provider row.
Prompt and switch fixtures
src/lib/inference/model-prompts.test.ts, test/e2e/live/hermes-inference-switch-helpers.ts, test/e2e/live/openclaw-inference-switch.test.ts
The prompt menu selection index shifts, and non-compatible-hosted switch fixtures change the fallback model to nvidia/nemotron-3-super-120b-a12b.
Onboarding selection test fixtures
test/onboard-selection.test.ts
Mocked answer indices and /v1/models payloads are updated to match the revised curated list, including swapping a fallback model id for custom/provider-model.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~15 minutes

Possibly related PRs

  • NVIDIA/NemoClaw#4769: Both PRs modify the NVIDIA Endpoints curated cloud model picker and update related config/onboarding tests.

Suggested labels

area: providers, area: e2e

Suggested reviewers

  • prekshivyas
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: retiring GLM 5.1 from inference endpoint selection.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
✨ 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/glm-51-endpoint-deprecation

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

@github-actions

Copy link
Copy Markdown
Contributor

@github-code-quality

github-code-quality Bot commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall coverage in the fix/glm-51-endpoint-... 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/glm-51-endpoint-... 6596855 +/-
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/glm-51-endpoint-... branch is 68%. Coverage data for the main branch is not yet available.

Show a code coverage summary of the most covered files.
File main fix/glm-51-endpoint-... 6596855 +/-
src/lib/shields...nsition-lock.ts 86%
src/lib/actions...dbox/rebuild.ts 80%
src/lib/actions...all/run-plan.ts 80%
src/lib/state/o...oard-session.ts 80%
src/lib/state/sandbox.ts 72%
src/lib/shields/index.ts 69%
src/lib/onboard/preflight.ts 69%
src/lib/onboard...er-gpu-patch.ts 59%
src/lib/actions...licy-channel.ts 58%
src/lib/onboard.ts 20%

Updated June 30, 2026 22:32 UTC
Code Coverage is in Public Preview. Learn more and provide us with your feedback.

@ericksoa ericksoa added area: inference Inference routing, serving, model selection, or outputs provider: nvidia NVIDIA inference endpoint, NIM, or NVIDIA provider behavior area: docs Documentation, examples, guides, or docs build bug-fix PR fixes a bug or regression labels Jun 30, 2026
@github-actions

github-actions Bot commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor (Nemotron Ultra) — Changes requested

Merge posture: Do not merge yet
Primary next action: Fix PRA-2: Source-of-truth drift prevention for Provider Options table (PRA-1); then add or justify PRA-T1.
Open items: 1 required · 2 warnings · 4 suggestions · 8 test follow-ups
Since last review: 4 prior items resolved · 0 still apply · 1 new item found

Action checklist

  • PRA-2 Fix: Source-of-truth drift prevention for Provider Options table (PRA-1) in docs/inference/inference-options.mdx:108
  • PRA-1 Resolve or justify: Source-of-truth review needed: Provider Options table in docs/inference/inference-options.mdx
  • PRA-3 Resolve or justify: Security Category 8 WARNING: No negative security test coverage for catalog changes (pre-existing) in test/inference-options-docs.test.ts:1
  • 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: Runtime validation
  • PRA-T5 Add or justify test follow-up: Provider Options table full cross-reference test (PRA-3)
  • PRA-T6 Add or justify test follow-up: Runtime/integration validation for catalog removal behavior
  • PRA-T7 Add or justify test follow-up: Negative test: malformed/injection model IDs rejected by validation
  • PRA-T8 Add or justify test follow-up: Ternary config knob USE_COMPATIBLE_HOSTED justified by CI matrix — keep (PRA-5)
  • PRA-4 In-scope improvement: Provider Options table full cross-reference test (PRA-3) in test/inference-options-docs.test.ts:80
  • PRA-5 In-scope improvement: Runtime/integration validation for catalog removal behavior in src/lib/inference/config.test.ts:55
  • PRA-6 In-scope improvement: Negative test: malformed/injection model IDs rejected by validation in src/lib/inference/config.test.ts:55
  • PRA-7 In-scope improvement: Ternary config knob USE_COMPATIBLE_HOSTED justified by CI matrix — keep (PRA-5) in test/e2e/live/hermes-inference-switch-helpers.ts:37

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 architecture docs/inference/inference-options.mdx:108 Either (a) add a test that parses the Provider Options table and asserts curated model cells match config.ts arrays for each provider, (b) generate the Provider Options table from config.ts at build time, or (c) explicitly justify deferral with rationale that Task-Fit Guide is the authoritative list and Provider Options is a non-authoritative summary.
PRA-3 Resolve/justify security test/inference-options-docs.test.ts:1 No action needed in this PR. Consider adding security-negative tests in a follow-up if catalog mutation becomes a configurable surface.
PRA-4 Improvement tests test/inference-options-docs.test.ts:80 Optional: extend cross-reference test to parse Provider Options table and assert curated model lists match config.ts arrays. Can be deferred to follow-up with rationale that Provider Options is a non-authoritative summary.
PRA-5 Improvement tests src/lib/inference/config.test.ts:55 Add or identify targeted integration test for: (a) onboarding with updated NVIDIA catalog (GLM 5.1 absent), (b) inference switch from retired model to Nemotron 3 Super, (c) existing sandbox migration via Switch Inference Providers.
PRA-6 Improvement tests src/lib/inference/config.test.ts:55 Add unit test in config.test.ts or model-prompts.test.ts asserting malformed model IDs are rejected or sanitized before validation call.
PRA-7 Improvement tests test/e2e/live/hermes-inference-switch-helpers.ts:37 No change. Keep ternary; it serves real CI matrix testing (30+ jobs in e2e.yaml set NEMOCLAW_E2E_USE_HOSTED_INFERENCE=1).

🚨 Required before merge

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

PRA-2 Required — Source-of-truth drift prevention for Provider Options table (PRA-1)

  • Location: docs/inference/inference-options.mdx:108
  • Category: architecture
  • Problem: Provider Options table 'Curated models' column is a markdown summary that can drift from the authoritative CLOUD_MODEL_OPTIONS and HERMES_PROVIDER_MODEL_OPTIONS arrays in config.ts. Only GLM 5.1 scoping is tested; full cross-reference is not automated. The Note documents the boundary but does not prevent drift.
  • Impact: User-facing Provider Options table may show stale curated models, creating confusion during onboarding. Task-Fit Guide (authoritative) is exact-match tested, but Provider Options is not.
  • Required action: Either (a) add a test that parses the Provider Options table and asserts curated model cells match config.ts arrays for each provider, (b) generate the Provider Options table from config.ts at build time, or (c) explicitly justify deferral with rationale that Task-Fit Guide is the authoritative list and Provider Options is a non-authoritative summary.
  • Expected follow-up: Fix before merge or get explicit maintainer override.
  • Verification: Check test/inference-options-docs.test.ts: 'keeps GLM 5.1 scoped' only asserts GLM 5.1 presence/absence in two rows; no full cross-reference of NVIDIA row (5 models) or Hermes row (3 models) against config.ts.
  • Missing regression test: Add test: parse Provider Options table curated model cells and assert they match CLOUD_MODEL_OPTIONS (NVIDIA) and HERMES_PROVIDER_MODEL_OPTIONS (Hermes) arrays.
  • Done when: The required change is committed and verification passes: Check test/inference-options-docs.test.ts: 'keeps GLM 5.1 scoped' only asserts GLM 5.1 presence/absence in two rows; no full cross-reference of NVIDIA row (5 models) or Hermes row (3 models) against config.ts.
  • Evidence: Diff shows Note added at lines 108-110 documenting boundary; test/inference-options-docs.test.ts has GLM 5.1 scoping test but no full cross-reference.
Review findings by urgency: 1 required fix, 2 items to resolve/justify, 4 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: Provider Options table in docs/inference/inference-options.mdx

  • 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: GLM 5.1 scoping test exists (asserts NVIDIA row lacks GLM-5.1, Hermes row contains it). Full cross-reference test does not exist.
  • 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: test/inference-options-docs.test.ts: 'keeps GLM 5.1 scoped' only checks GLM 5.1 presence/absence in two rows; no full cross-reference of NVIDIA row (5 models) or Hermes row (3 models)

PRA-3 Resolve/justify — Security Category 8 WARNING: No negative security test coverage for catalog changes (pre-existing)

  • Location: test/inference-options-docs.test.ts:1
  • Category: security
  • Problem: Security review Category 8 (Security Testing) rates WARNING because no negative test cases cover SSRF via model ID injection, credential leakage via model metadata, or catalog mutation. This is a pre-existing portfolio gap — the PR introduces no new attack surface (catalog/doc update only).
  • Impact: Low — existing security test coverage unchanged; no new vectors introduced. Category 8 WARNING reflects portfolio completeness, not a regression.
  • Recommended action: No action needed in this PR. Consider adding security-negative tests in a follow-up if catalog mutation becomes a configurable surface.
  • Expected follow-up: Resolve in this PR or explain why the risk is acceptable.
  • Verification: Review security test inventory: no test asserts model IDs cannot inject URLs (e.g., 'http://internal/metadata'\), bypass network policy, or leak credentials. Current config.test.ts only validates structure.
  • Missing regression test: Add negative test: malicious model ID (e.g., 'http://internal/metadata'\) rejected by validation; model metadata never logged with credentials.
  • Done when: The risk is fixed or explicitly justified in the PR. Verification: Review security test inventory: no test asserts model IDs cannot inject URLs (e.g., 'http://internal/metadata'\), bypass network policy, or leak credentials. Current config.test.ts only validates structure.
  • Evidence: Security review Categories 1-7 PASS; Category 8 WARNING; Category 9 PASS. PR scope: catalog/doc update only — no auth, network, sandbox, or credential changes.

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

PRA-4 Improvement — Provider Options table full cross-reference test (PRA-3)

  • Location: test/inference-options-docs.test.ts:80
  • Category: tests
  • Problem: Model Task-Fit Guide table has exact-match cross-reference against curated onboarding IDs. Provider Options table 'Curated models' column only has GLM 5.1 scoping test. Full cross-reference would close the drift gap.
  • Impact: Low — Task-Fit Guide is authoritative for onboarding; Provider Options is a summary. Drift risk is lower but not zero.
  • Suggested action: Optional: extend cross-reference test to parse Provider Options table and assert curated model lists match config.ts arrays. Can be deferred to follow-up with rationale that Provider Options is a non-authoritative summary.
  • Expected follow-up: Prefer a current-PR fix when local to changed code; defer only with rationale or linked follow-up.
  • Verification: Check test/inference-options-docs.test.ts: 'keeps a per-model task-fit comparison table' does exact match via readCuratedOnboardingModelIds(); 'keeps GLM 5.1 scoped' only checks GLM 5.1 in two rows.
  • Missing regression test: Add test: parse Provider Options table curated model cells and assert they match CLOUD_MODEL_OPTIONS (NVIDIA) and HERMES_PROVIDER_MODEL_OPTIONS (Hermes) for each provider.
  • Done when: The local improvement is applied, or the PR notes why it should be deferred.
  • Evidence: inference-options.mdx Provider Options table: NVIDIA row lists 5 models, Hermes row lists 3 models. Only GLM 5.1 scoping tested.

PRA-5 Improvement — Runtime/integration validation for catalog removal behavior

  • Location: src/lib/inference/config.test.ts:55
  • Category: tests
  • Problem: Validation context flags config.ts and docs as needing behavioral runtime validation. E2E live tests exist but require credentials/CI matrix. Unit tests cover structure and prompt flow.
  • Impact: Medium — catalog changes should be validated end-to-end (provider switch with retired model, onboarding with updated list).
  • Suggested action: Add or identify targeted integration test for: (a) onboarding with updated NVIDIA catalog (GLM 5.1 absent), (b) inference switch from retired model to Nemotron 3 Super, (c) existing sandbox migration via Switch Inference Providers.
  • Expected follow-up: Prefer a current-PR fix when local to changed code; defer only with rationale or linked follow-up.
  • Verification: Run existing E2E live tests with NEMOCLAW_E2E_USE_HOSTED_INFERENCE=1 and NEMOCLAW_SWITCH_PROVIDER=nvidia-prod to verify Nemotron 3 Super default works.
  • Missing regression test: Add integration test: onboarding selects NVIDIA Endpoints, validates curated list excludes GLM 5.1, completes successfully with Nemotron 3 Super default.
  • Done when: The local improvement is applied, or the PR notes why it should be deferred.
  • Evidence: pr_review_validation_context.testDepth.verdict: 'runtime_validation_recommended' for config.ts and docs.

PRA-6 Improvement — Negative test: malformed/injection model IDs rejected by validation

  • Location: src/lib/inference/config.test.ts:55
  • Category: tests
  • Problem: Manual model entry in promptCloudModel is validated via /models endpoint probe, but no test covers injection attempts (e.g., 'http://internal/metadata', '../path', SQL-like payloads).
  • Impact: Low — pre-existing gap; manual entry is user-controlled but validated against provider catalog.
  • Suggested action: Add unit test in config.test.ts or model-prompts.test.ts asserting malformed model IDs are rejected or sanitized before validation call.
  • Expected follow-up: Prefer a current-PR fix when local to changed code; defer only with rationale or linked follow-up.
  • Verification: Check promptCloudModel in model-prompts.ts: validateNvidiaEndpointModelFn receives user input; no test asserts rejection of URL-like or path-traversal model IDs.
  • Missing regression test: Add test: promptCloudModel with model ID 'http://internal/metadata' calls validateNvidiaEndpointModelFn and rejects/errors appropriately (does not pass through to API).
  • Done when: The local improvement is applied, or the PR notes why it should be deferred.
  • Evidence: Security review Category 2 PASS (validation exists) but no negative test coverage.

PRA-7 Improvement — Ternary config knob USE_COMPATIBLE_HOSTED justified by CI matrix — keep (PRA-5)

  • Location: test/e2e/live/hermes-inference-switch-helpers.ts:37
  • Category: tests
  • Problem: Ternary (USE_COMPATIBLE_HOSTED ? DEFAULT_COMPAT_MODEL : 'nvidia/nemotron-3-super-120b-a12b') appears in two E2E helper files. Simplification signal flagged as single-use but CI matrix testing justifies it.
  • Impact: None — current design correct for CI matrix testing between compatible-endpoint and nvidia-prod paths.
  • Suggested action: No change. Keep ternary; it serves real CI matrix testing (30+ jobs in e2e.yaml set NEMOCLAW_E2E_USE_HOSTED_INFERENCE=1).
  • Expected follow-up: Prefer a current-PR fix when local to changed code; defer only with rationale or linked follow-up.
  • Verification: grep -r USE_COMPATIBLE_HOSTED in .github/workflows/ and test/e2e/live/ — used to switch provider path in CI matrix.
  • Missing regression test: N/A — existing E2E tests cover both variants.
  • Done when: The local improvement is applied, or the PR notes why it should be deferred.
  • Evidence: 30+ workflow jobs in .github/workflows/e2e.yaml set NEMOCLAW_E2E_USE_HOSTED_INFERENCE=1 for matrix testing.
Simplification opportunities: 1 possible cut, net -2 lines possible

These are safe simplification checks only. Do not remove validation, security controls, data-loss prevention, or required tests.

  • PRA-7 shrink (test/e2e/live/hermes-inference-switch-helpers.ts:37): Ternary expression duplicated in hermes-inference-switch-helpers.ts:37 and openclaw-inference-switch.test.ts:47
    • Replacement: Extract to shared constant in test/e2e/live/fixtures/hosted-inference.ts or similar fixture
    • Net: -2 lines
    • Safety boundary: Must preserve CI matrix behavior: NEMOCLAW_E2E_USE_HOSTED_INFERENCE=1 selects compatible-endpoint path with DEFAULT_COMPAT_MODEL; unset selects nvidia-prod with Nemotron 3 Super.
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 — Integration test: onboarding selects NVIDIA Endpoints, validates curated list excludes GLM 5.1, completes with Nemotron 3 Super default. Config and docs changes affect onboarding behavior and provider switching. Unit tests cover structure and prompt flow; integration boundary tested via onboard-selection mocks. E2E live tests exist but require credentials/CI matrix. Targeted runtime validation for catalog removal behavior recommended.
  • PRA-T2 Runtime validation — Integration test: inference switch from retired model (GLM 5.1) to Nemotron 3 Super via nemoclaw inference set. Config and docs changes affect onboarding behavior and provider switching. Unit tests cover structure and prompt flow; integration boundary tested via onboard-selection mocks. E2E live tests exist but require credentials/CI matrix. Targeted runtime validation for catalog removal behavior recommended.
  • PRA-T3 Runtime validation — Integration test: existing sandbox migration via Switch Inference Providers command documented in Note. Config and docs changes affect onboarding behavior and provider switching. Unit tests cover structure and prompt flow; integration boundary tested via onboard-selection mocks. E2E live tests exist but require credentials/CI matrix. Targeted runtime validation for catalog removal behavior recommended.
  • PRA-T4 Runtime validation — Negative test: malformed model IDs (URL-like, path-traversal) rejected/sanitized before validation call. Config and docs changes affect onboarding behavior and provider switching. Unit tests cover structure and prompt flow; integration boundary tested via onboard-selection mocks. E2E live tests exist but require credentials/CI matrix. Targeted runtime validation for catalog removal behavior recommended.
  • PRA-T5 Provider Options table full cross-reference test (PRA-3) — Optional: extend cross-reference test to parse Provider Options table and assert curated model lists match config.ts arrays. Can be deferred to follow-up with rationale that Provider Options is a non-authoritative summary.
  • PRA-T6 Runtime/integration validation for catalog removal behavior — Add or identify targeted integration test for: (a) onboarding with updated NVIDIA catalog (GLM 5.1 absent), (b) inference switch from retired model to Nemotron 3 Super, (c) existing sandbox migration via Switch Inference Providers.
  • PRA-T7 Negative test: malformed/injection model IDs rejected by validation — Add unit test in config.test.ts or model-prompts.test.ts asserting malformed model IDs are rejected or sanitized before validation call.
  • PRA-T8 Ternary config knob USE_COMPATIBLE_HOSTED justified by CI matrix — keep (PRA-5) — No change. Keep ternary; it serves real CI matrix testing (30+ jobs in e2e.yaml set NEMOCLAW_E2E_USE_HOSTED_INFERENCE=1).
Since last review details

Current findings, using the urgency labels above:

PRA-1 Resolve/justify — Source-of-truth review needed: Provider Options table in docs/inference/inference-options.mdx

  • 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: GLM 5.1 scoping test exists (asserts NVIDIA row lacks GLM-5.1, Hermes row contains it). Full cross-reference test does not exist.
  • 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: test/inference-options-docs.test.ts: 'keeps GLM 5.1 scoped' only checks GLM 5.1 presence/absence in two rows; no full cross-reference of NVIDIA row (5 models) or Hermes row (3 models)

PRA-2 Required — Source-of-truth drift prevention for Provider Options table (PRA-1)

  • Location: docs/inference/inference-options.mdx:108
  • Category: architecture
  • Problem: Provider Options table 'Curated models' column is a markdown summary that can drift from the authoritative CLOUD_MODEL_OPTIONS and HERMES_PROVIDER_MODEL_OPTIONS arrays in config.ts. Only GLM 5.1 scoping is tested; full cross-reference is not automated. The Note documents the boundary but does not prevent drift.
  • Impact: User-facing Provider Options table may show stale curated models, creating confusion during onboarding. Task-Fit Guide (authoritative) is exact-match tested, but Provider Options is not.
  • Required action: Either (a) add a test that parses the Provider Options table and asserts curated model cells match config.ts arrays for each provider, (b) generate the Provider Options table from config.ts at build time, or (c) explicitly justify deferral with rationale that Task-Fit Guide is the authoritative list and Provider Options is a non-authoritative summary.
  • Expected follow-up: Fix before merge or get explicit maintainer override.
  • Verification: Check test/inference-options-docs.test.ts: 'keeps GLM 5.1 scoped' only asserts GLM 5.1 presence/absence in two rows; no full cross-reference of NVIDIA row (5 models) or Hermes row (3 models) against config.ts.
  • Missing regression test: Add test: parse Provider Options table curated model cells and assert they match CLOUD_MODEL_OPTIONS (NVIDIA) and HERMES_PROVIDER_MODEL_OPTIONS (Hermes) arrays.
  • Done when: The required change is committed and verification passes: Check test/inference-options-docs.test.ts: 'keeps GLM 5.1 scoped' only asserts GLM 5.1 presence/absence in two rows; no full cross-reference of NVIDIA row (5 models) or Hermes row (3 models) against config.ts.
  • Evidence: Diff shows Note added at lines 108-110 documenting boundary; test/inference-options-docs.test.ts has GLM 5.1 scoping test but no full cross-reference.

PRA-3 Resolve/justify — Security Category 8 WARNING: No negative security test coverage for catalog changes (pre-existing)

  • Location: test/inference-options-docs.test.ts:1
  • Category: security
  • Problem: Security review Category 8 (Security Testing) rates WARNING because no negative test cases cover SSRF via model ID injection, credential leakage via model metadata, or catalog mutation. This is a pre-existing portfolio gap — the PR introduces no new attack surface (catalog/doc update only).
  • Impact: Low — existing security test coverage unchanged; no new vectors introduced. Category 8 WARNING reflects portfolio completeness, not a regression.
  • Recommended action: No action needed in this PR. Consider adding security-negative tests in a follow-up if catalog mutation becomes a configurable surface.
  • Expected follow-up: Resolve in this PR or explain why the risk is acceptable.
  • Verification: Review security test inventory: no test asserts model IDs cannot inject URLs (e.g., 'http://internal/metadata'\), bypass network policy, or leak credentials. Current config.test.ts only validates structure.
  • Missing regression test: Add negative test: malicious model ID (e.g., 'http://internal/metadata'\) rejected by validation; model metadata never logged with credentials.
  • Done when: The risk is fixed or explicitly justified in the PR. Verification: Review security test inventory: no test asserts model IDs cannot inject URLs (e.g., 'http://internal/metadata'\), bypass network policy, or leak credentials. Current config.test.ts only validates structure.
  • Evidence: Security review Categories 1-7 PASS; Category 8 WARNING; Category 9 PASS. PR scope: catalog/doc update only — no auth, network, sandbox, or credential changes.

PRA-4 Improvement — Provider Options table full cross-reference test (PRA-3)

  • Location: test/inference-options-docs.test.ts:80
  • Category: tests
  • Problem: Model Task-Fit Guide table has exact-match cross-reference against curated onboarding IDs. Provider Options table 'Curated models' column only has GLM 5.1 scoping test. Full cross-reference would close the drift gap.
  • Impact: Low — Task-Fit Guide is authoritative for onboarding; Provider Options is a summary. Drift risk is lower but not zero.
  • Suggested action: Optional: extend cross-reference test to parse Provider Options table and assert curated model lists match config.ts arrays. Can be deferred to follow-up with rationale that Provider Options is a non-authoritative summary.
  • Expected follow-up: Prefer a current-PR fix when local to changed code; defer only with rationale or linked follow-up.
  • Verification: Check test/inference-options-docs.test.ts: 'keeps a per-model task-fit comparison table' does exact match via readCuratedOnboardingModelIds(); 'keeps GLM 5.1 scoped' only checks GLM 5.1 in two rows.
  • Missing regression test: Add test: parse Provider Options table curated model cells and assert they match CLOUD_MODEL_OPTIONS (NVIDIA) and HERMES_PROVIDER_MODEL_OPTIONS (Hermes) for each provider.
  • Done when: The local improvement is applied, or the PR notes why it should be deferred.
  • Evidence: inference-options.mdx Provider Options table: NVIDIA row lists 5 models, Hermes row lists 3 models. Only GLM 5.1 scoping tested.

PRA-5 Improvement — Runtime/integration validation for catalog removal behavior

  • Location: src/lib/inference/config.test.ts:55
  • Category: tests
  • Problem: Validation context flags config.ts and docs as needing behavioral runtime validation. E2E live tests exist but require credentials/CI matrix. Unit tests cover structure and prompt flow.
  • Impact: Medium — catalog changes should be validated end-to-end (provider switch with retired model, onboarding with updated list).
  • Suggested action: Add or identify targeted integration test for: (a) onboarding with updated NVIDIA catalog (GLM 5.1 absent), (b) inference switch from retired model to Nemotron 3 Super, (c) existing sandbox migration via Switch Inference Providers.
  • Expected follow-up: Prefer a current-PR fix when local to changed code; defer only with rationale or linked follow-up.
  • Verification: Run existing E2E live tests with NEMOCLAW_E2E_USE_HOSTED_INFERENCE=1 and NEMOCLAW_SWITCH_PROVIDER=nvidia-prod to verify Nemotron 3 Super default works.
  • Missing regression test: Add integration test: onboarding selects NVIDIA Endpoints, validates curated list excludes GLM 5.1, completes successfully with Nemotron 3 Super default.
  • Done when: The local improvement is applied, or the PR notes why it should be deferred.
  • Evidence: pr_review_validation_context.testDepth.verdict: 'runtime_validation_recommended' for config.ts and docs.

PRA-6 Improvement — Negative test: malformed/injection model IDs rejected by validation

  • Location: src/lib/inference/config.test.ts:55
  • Category: tests
  • Problem: Manual model entry in promptCloudModel is validated via /models endpoint probe, but no test covers injection attempts (e.g., 'http://internal/metadata', '../path', SQL-like payloads).
  • Impact: Low — pre-existing gap; manual entry is user-controlled but validated against provider catalog.
  • Suggested action: Add unit test in config.test.ts or model-prompts.test.ts asserting malformed model IDs are rejected or sanitized before validation call.
  • Expected follow-up: Prefer a current-PR fix when local to changed code; defer only with rationale or linked follow-up.
  • Verification: Check promptCloudModel in model-prompts.ts: validateNvidiaEndpointModelFn receives user input; no test asserts rejection of URL-like or path-traversal model IDs.
  • Missing regression test: Add test: promptCloudModel with model ID 'http://internal/metadata' calls validateNvidiaEndpointModelFn and rejects/errors appropriately (does not pass through to API).
  • Done when: The local improvement is applied, or the PR notes why it should be deferred.
  • Evidence: Security review Category 2 PASS (validation exists) but no negative test coverage.

PRA-7 Improvement — Ternary config knob USE_COMPATIBLE_HOSTED justified by CI matrix — keep (PRA-5)

  • Location: test/e2e/live/hermes-inference-switch-helpers.ts:37
  • Category: tests
  • Problem: Ternary (USE_COMPATIBLE_HOSTED ? DEFAULT_COMPAT_MODEL : 'nvidia/nemotron-3-super-120b-a12b') appears in two E2E helper files. Simplification signal flagged as single-use but CI matrix testing justifies it.
  • Impact: None — current design correct for CI matrix testing between compatible-endpoint and nvidia-prod paths.
  • Suggested action: No change. Keep ternary; it serves real CI matrix testing (30+ jobs in e2e.yaml set NEMOCLAW_E2E_USE_HOSTED_INFERENCE=1).
  • Expected follow-up: Prefer a current-PR fix when local to changed code; defer only with rationale or linked follow-up.
  • Verification: grep -r USE_COMPATIBLE_HOSTED in .github/workflows/ and test/e2e/live/ — used to switch provider path in CI matrix.
  • Missing regression test: N/A — existing E2E tests cover both variants.
  • Done when: The local improvement is applied, or the PR notes why it should be deferred.
  • Evidence: 30+ workflow jobs in .github/workflows/e2e.yaml set NEMOCLAW_E2E_USE_HOSTED_INFERENCE=1 for matrix testing.

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 30, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor — No blocking findings

Merge posture: No blocking advisor findings
Primary next action: No advisor follow-up required beyond maintainer review.
Open items: 0 required · 0 warnings · 0 suggestions · 0 test follow-ups
Since last review: 0 prior items resolved · 0 still apply · 0 new items found

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 30, 2026

Copy link
Copy Markdown
Contributor

E2E Advisor Recommendation

Required E2E: cloud-onboard, openclaw-inference-switch, hermes-inference-switch
Optional E2E: cloud-inference, inference-routing

Dispatch hint: cloud-onboard,openclaw-inference-switch,hermes-inference-switch

Workflow run

Full advisor summary

E2E Recommendation Advisor

Base: origin/main
Head: HEAD
Confidence: high

Required E2E

  • cloud-onboard (high): Required because the source change alters the NVIDIA Endpoints curated model list shown during hosted onboarding. This job validates the full cloud onboarding flow with real OpenShell/sandbox setup and hosted inference credentials.
  • openclaw-inference-switch (high): Required because the PR directly changes the OpenClaw live inference-switch test defaults and the underlying provider/model catalog. This job validates switching a running OpenClaw sandbox route and confirms inference.local plus a real OpenClaw agent turn.
  • hermes-inference-switch (high): Required because the PR directly changes Hermes inference-switch helper defaults and intentionally keeps GLM available only through the Hermes Provider catalog. This job validates Hermes route switching and real Hermes assistant behavior across the hosted/compatible provider boundary.

Optional E2E

  • cloud-inference (medium): Useful adjacent confidence for hosted inference routing through a live sandbox after changing hosted model catalog configuration, but the required cloud-onboard and inference-switch jobs cover the main user-facing paths.
  • inference-routing (medium): Useful lower-cost route-state coverage for inference.local/gateway behavior adjacent to src/lib/inference/config.ts, though this PR primarily changes curated picker entries rather than route reconciliation logic.

New E2E recommendations

  • None.

Dispatch hint

  • Workflow: .github/workflows/e2e.yaml
  • jobs input: cloud-onboard,openclaw-inference-switch,hermes-inference-switch

@github-actions

github-actions Bot commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

E2E Target Recommendation

Required E2E targets: openclaw-inference-switch, hermes-inference-switch
Optional E2E targets: None

Dispatch required E2E targets:

  • gh workflow run e2e.yaml --ref <pr-head-ref> --field jobs=openclaw-inference-switch
  • gh workflow run e2e.yaml --ref <pr-head-ref> --field jobs=hermes-inference-switch

Workflow run

Full E2E target advisor summary

E2E Target Advisor

Base: origin/main
Head: HEAD
Confidence: high

Required E2E targets

  • openclaw-inference-switch: Focused free-standing E2E job wired for changed live test test/e2e/live/openclaw-inference-switch.test.ts.
    • Dispatch: gh workflow run e2e.yaml --ref <pr-head-ref> --field jobs=openclaw-inference-switch
  • hermes-inference-switch: The PR changes the Hermes inference-switch helper used by the wired Hermes live inference-switch job, including the default switch model path. Run the corresponding free-standing job in e2e.yaml.
    • Dispatch: gh workflow run e2e.yaml --ref <pr-head-ref> --field jobs=hermes-inference-switch

Optional E2E targets

  • None.

Relevant changed files

  • src/lib/inference/config.ts
  • test/e2e/live/hermes-inference-switch-helpers.ts
  • test/e2e/live/openclaw-inference-switch.test.ts

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
docs/inference/inference-options.mdx (1)

77-80: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Consider wrapping the migration guidance in a Fern <Note> callout.

This paragraph warns users about catalog divergence and sandbox migration — exactly the kind of content the Fern callout components are meant for, rather than a plain paragraph.

As per coding guidelines, "Use Fern callout components such as <Note>, <Tip>, and <Warning> for callouts in MDX pages."

📝 Proposed callout wrapping
-NVIDIA Endpoints and Hermes Provider use independent model catalogs, so a model can remain available through one provider after it leaves the other's curated list.
-Curated-list updates affect new onboarding choices and do not rewrite existing sandbox configurations.
-Use [Switch Inference Providers](switch-inference-providers) to move an existing sandbox before its configured model becomes unavailable.
+<Note>
+NVIDIA Endpoints and Hermes Provider use independent model catalogs, so a model can remain available through one provider after it leaves the other's curated list.
+Curated-list updates affect new onboarding choices and do not rewrite existing sandbox configurations.
+Use [Switch Inference Providers](switch-inference-providers) to move an existing sandbox before its configured model becomes unavailable.
+</Note>
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/inference/inference-options.mdx` around lines 77 - 80, The migration
guidance in the inference options docs is currently a plain paragraph, but it
should be presented as a Fern callout. Wrap the catalog-divergence and
sandbox-migration text in a `<Note>` component in the inference options MDX
content, keeping the existing guidance and link to Switch Inference Providers
intact so the warning is visually emphasized and consistent with the docs
pattern.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@docs/inference/inference-options.mdx`:
- Around line 77-80: The migration guidance in the inference options docs is
currently a plain paragraph, but it should be presented as a Fern callout. Wrap
the catalog-divergence and sandbox-migration text in a `<Note>` component in the
inference options MDX content, keeping the existing guidance and link to Switch
Inference Providers intact so the warning is visually emphasized and consistent
with the docs pattern.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 2cc33b37-cbec-4886-900f-1bf848fa2284

📥 Commits

Reviewing files that changed from the base of the PR and between 0fa8297 and 3444e7e.

📒 Files selected for processing (7)
  • docs/inference/inference-options.mdx
  • src/lib/inference/config.test.ts
  • src/lib/inference/config.ts
  • src/lib/inference/model-prompts.test.ts
  • test/e2e/live/hermes-inference-switch-helpers.ts
  • test/e2e/live/openclaw-inference-switch.test.ts
  • test/onboard-selection.test.ts
💤 Files with no reviewable changes (1)
  • src/lib/inference/config.ts

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
test/inference-options-docs.test.ts (1)

131-143: 📐 Maintainability & Code Quality | 🔵 Trivial

Minor duplication: split the section once.

section.split("\n") is computed twice (Lines 138-139) to find each row. Could be hoisted into a single array for both lookups.

♻️ Proposed refactor
-    const nvidiaRow = section.split("\n").find((line) => line.startsWith("| NVIDIA Endpoints |"));
-    const hermesRow = section.split("\n").find((line) => line.startsWith("| Hermes Provider |"));
+    const lines = section.split("\n");
+    const nvidiaRow = lines.find((line) => line.startsWith("| NVIDIA Endpoints |"));
+    const hermesRow = lines.find((line) => line.startsWith("| Hermes Provider |"));

The test logic itself correctly enforces the provider-boundary contract (GLM 5.1 excluded from NVIDIA row, present in Hermes row).

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@test/inference-options-docs.test.ts` around lines 131 - 143, The test in
inference-options-docs.test.ts repeats the same section split twice while
locating the NVIDIA Endpoints and Hermes Provider rows. Hoist the result of
section.split("\n") into a single local array in the GLM 5.1 provider-boundary
test, then reuse it for both row lookups so the assertions stay the same but the
parsing is done once.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@test/inference-options-docs.test.ts`:
- Around line 131-143: The test in inference-options-docs.test.ts repeats the
same section split twice while locating the NVIDIA Endpoints and Hermes Provider
rows. Hoist the result of section.split("\n") into a single local array in the
GLM 5.1 provider-boundary test, then reuse it for both row lookups so the
assertions stay the same but the parsing is done once.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 580da245-b1c6-4a3f-b5f9-9a556cdfefcf

📥 Commits

Reviewing files that changed from the base of the PR and between 3444e7e and 6bdf553.

📒 Files selected for processing (1)
  • test/inference-options-docs.test.ts

@ericksoa

Copy link
Copy Markdown
Contributor Author

Maintainer disposition for all PR Review Advisor feedback on head 0298bf3a145d85f448226aa32896ab433c8da7ff:

  • GPT-5.5 advisor: acknowledged; it reports 0 required items, warnings, suggestions, or test follow-ups.
  • PRA-1 / PRA-3 / PRA-T2 / PRA-T4 — justified, no further change. The invalid state addressed here was GLM 5.1 appearing as a curated NVIDIA onboarding choice after its provider retirement. The behavioral sources of truth are CLOUD_MODEL_OPTIONS and the independent HERMES_PROVIDER_MODEL_OPTIONS; live availability remains authoritative in each provider catalog. test/inference-options-docs.test.ts now requires the complete Model Task-Fit inventory to exactly equal the source-backed curated onboarding IDs, while its provider-row contract specifically prevents GLM 5.1 from drifting back under NVIDIA and preserves it under Hermes. The Provider Options cells are intentionally abbreviated, human-readable summaries (the Hermes cell explicitly says “such as”), so exact-matching those cells to the full arrays would incorrectly require reproducing the roughly 30-entry Hermes catalog there. If that table is later converted into a complete canonical inventory, an exact provider-cell cross-reference should replace the scoped assertion; it is not the contract of this PR.
  • PRA-2 — justified, no security change required. This PR removes one static option and does not change endpoint construction, credentials, network policy, or user-controlled catalog mutation. NVIDIA model validation always fetches the fixed BUILD_ENDPOINT_URL + /models destination and exact-compares the candidate against returned IDs; a URL-shaped model string is never dereferenced. Existing isSafeModelId negative tests continue to reject shell metacharacters. Additional SSRF/credential tests would become relevant if catalog mutation or model metadata ever becomes a configurable destination, not for this static deletion.
  • PRA-T1 — covered. Targeted validation passed for the source picker/config contract, prompt indices, onboarding selection/manual validation, exact docs inventory, and Hermes switch command shape: 58 CLI tests, 5 focused integration/docs tests, and 10 E2E-support tests, plus npm run build:cli, npm run typecheck:cli, and npm run docs. Current-head GitHub checks are also settled with no failures.
  • PRA-4 — accepted and complete. The independent-catalog and existing-sandbox migration guidance is retained in a Fern <Note> and links to the provider-switch procedure.
  • PRA-5 / PRA-T3 — keep as reviewed. NEMOCLAW_E2E_USE_HOSTED_INFERENCE selects real compatible-endpoint versus nvidia-prod test paths and is set throughout the E2E workflow matrix; removing the ternary would collapse that coverage.
  • PRA-6 — monitor, no extraction now. The four-line test is a focused source-boundary assertion in the existing inference config suite. Splitting it out would add indirection without reducing risk; future material growth can trigger extraction.

All advisor IDs and test follow-ups are therefore addressed or explicitly justified. There are no required advisor fixes remaining.

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
@ericksoa

Copy link
Copy Markdown
Contributor Author

Current-head maintainer disposition for the advisor findings on 6596855e43a0aa54b5b8c231fc9d133b28233ce8:

The only change since the full prior disposition is the CodeRabbit-requested test refactor that reuses section.split("\n"); it does not change behavior or documentation.

  • PRA-1 / PRA-2 / PRA-4 / PRA-T5 — explicitly justified; no further source change. The Provider Options cells are intentionally non-authoritative summaries (the Hermes cell says “such as” and abbreviates a much larger catalog). Exact-matching those cells to the complete provider arrays would change that documentation contract. The exact, source-backed curated NVIDIA inventory remains enforced by the Model Task-Fit contract, while the provider-boundary test specifically prevents GLM 5.1 from returning to the NVIDIA summary and preserves its Hermes scope.
  • PRA-3 — justified, no current-PR action. As the advisor notes, this is a pre-existing portfolio warning and the PR adds no catalog mutation, endpoint destination, credential, or network-policy surface.
  • PRA-5 / PRA-T1 / PRA-T2 / PRA-T3 / PRA-T6 — justified. Existing source, prompt, onboarding-selection, and command-shape tests cover the changed contract. Live-provider confidence belongs to the E2E advisor’s selective targets rather than another duplicate source test.
  • PRA-6 / PRA-T4 / PRA-T7 — justified as out of scope. Manual IDs already go through exact provider-catalog validation and existing safe-ID coverage; this static catalog deletion does not create the proposed malformed-ID surface.
  • PRA-7 / PRA-T8 — retain as reviewed. The ternary preserves the two CI inference-provider paths.

All current-head required and warning items are therefore explicitly resolved or justified.

@cv
cv merged commit 96aacaa into main Jul 1, 2026
51 checks passed
@cv
cv deleted the fix/glm-51-endpoint-deprecation branch July 1, 2026 17:00
Hadar301 pushed a commit to Hadar301/NemoClaw-OpenShift that referenced this pull request Jul 12, 2026
<!-- markdownlint-disable MD041 -->
## Summary
Removes `z-ai/glm-5.1` from the NVIDIA Endpoints curated onboarding
choices ahead of its provider retirement and moves direct NVIDIA
inference-switch test defaults to Nemotron 3 Super. The independent
Hermes Provider catalog remains unchanged, and this PR does not change
Kimi models.

## Changes
- Remove GLM 5.1 from the NVIDIA Endpoints picker and update
menu-selection coverage.
- Preserve GLM 5.1 in the Hermes Provider catalog with explicit source
and documentation boundary tests.
- Require the task-fit documentation table to exactly match the curated
onboarding model IDs.
- Keep the Provider Options cells as concise provider summaries; exact
catalog parity is enforced by the source-backed task-fit contract.
- Replace direct NVIDIA inference-switch test defaults with
`nvidia/nemotron-3-super-120b-a12b`.
- Update inference documentation with the provider-catalog boundary and
migration guidance for existing sandboxes.

## Type of Change

- [ ] Code change (feature, bug fix, or refactor)
- [x] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] 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. -->
- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [x] Docs updated for user-facing behavior changes
- [ ] Docs not applicable — justification:
- [x] 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
- [x] 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)
- [x] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
<!-- DCO sign-off is required in this PR description, and every commit
must appear as Verified in GitHub. Run: git config user.name && git
config user.email -->
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>


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

## Summary by CodeRabbit

* **Bug Fixes**
* Updated cloud model selection to remove an unavailable option and
align the picker with current provider availability.
* Clarified provider-specific model availability so existing setups can
be migrated when a selected model is no longer offered.
* Adjusted related selection flows and automated checks to match the
updated model lists.

* **Documentation**
* Improved inference guidance to reflect the latest curated model
options and provider-specific catalog behavior.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: docs Documentation, examples, guides, or docs build area: inference Inference routing, serving, model selection, or outputs 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.

3 participants