Skip to content

fix(inference): retire unavailable Kimi K2.6 endpoint - #6475

Merged
ericksoa merged 2 commits into
mainfrom
fix/retire-kimi-k26-onboarder
Jul 8, 2026
Merged

ericksoa merged 2 commits into
mainfrom
fix/retire-kimi-k26-onboarder

Conversation

@ericksoa

@ericksoa ericksoa commented Jul 8, 2026 •

Copy link
Copy Markdown
Member

Summary

Removes moonshotai/kimi-k2.6 from NVIDIA Endpoints onboarding because its Chat Completions route now returns HTTP 404 even though NVIDIA's public featured feed and authenticated /v1/models catalog still advertise it. This PR does not add K2.7 or another replacement; a new Kimi model can be added after its production model ID and runtime route are live.

Changes

  • Remove Kimi K2.6 from the bundled NVIDIA Endpoints fallback and filter the stale live-catalog entry.
  • Preserve the independent Hermes Provider K2.6 choice and existing/custom-route OpenClaw compatibility.
  • Keep Kimi compatibility coverage hermetic while the public NVIDIA K2.6 route is unavailable.
  • Update onboarding and capability documentation to distinguish catalog metadata from runtime availability.
  • Update picker, catalog, provider-boundary, documentation, and workflow coverage for the retired choice.

Runtime Evidence

  • Public featured feed: still advertises moonshotai/kimi-k2.6.
  • Authenticated https://integrate.api.nvidia.com/v1/models: still advertises moonshotai/kimi-k2.6 and no other Kimi model.
  • Actual moonshotai/kimi-k2.6 Chat Completions request: HTTP 404.
  • Exact-main Kimi job: run 28953873907 / job 85907646487 failed onboarding with Chat Completions API: HTTP 404.
  • moonshotai/kimi-k2.7-code is absent from /v1/models and its candidate route also returns HTTP 404, so replacement support remains out of scope.

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

Advisor Follow-up Rationale

  • Connect reconciliation (PRA-1 / PRA-7): This PR changes future NVIDIA Endpoints choices only; it deliberately preserves existing sandbox and custom-route compatibility and does not alter reconciliation semantics. Generic model divergence is covered in src/lib/inference/config.test.ts, and caller-level warning plus realignment is covered in src/lib/actions/sandbox/connect-route-lifecycle.test.ts.
  • Manual Other... entry (PRA-2): NVIDIA /v1/models still advertises K2.6, so the generic catalog validator cannot truthfully reject that ID. The retired-model policy removes K2.6 from advertised and fallback choices while retaining the generic manual path. Actual Kimi availability is checked by the model-aware Chat Completions probe; the linked exact-main run demonstrates the resulting HTTP 404 before successful onboarding.
  • Open PR overlap (PRA-3): feat(inference): add OpenRouter onboarding support #6461 is still open and this head is currently mergeable against live main. If feat(inference): add OpenRouter onboarding support #6461 lands first, normal merge-order conflict resolution and exact-head revalidation apply.
  • Deny-list authority (PRA-5): src/lib/inference/nvidia-featured-models.ts already documents why repository retirement policy overrides stale catalog metadata while preserving the independent Hermes Provider catalog.
  • Hermes Provider warning: Hermes Provider is an independent, pre-existing route and model catalog that this NVIDIA Endpoints retirement intentionally leaves unchanged. The advisor identified no evidence that its K2.6 route is unavailable; adding a new provider-level runtime validation contract belongs in separate provider work.
  • Numeric picker tests: The production prompt accepts numeric menu input, so the tests intentionally exercise that user contract. Each affected test immediately asserts the exact selected model and probe target, preventing an index change from silently validating the wrong model.
  • Runtime test follow-ups: The exact-head Kimi E2E proves secret-free mock routing plus the split tool trajectory; existing health tests prove model-aware Chat Completions failures are unhealthy. The linked exact-main public run supplies the stale-catalog-success / Chat-Completions-404 negative-path evidence without adding live-secret dependency to this PR.
  • Runtime follow-up: Exact-head E2E run 28957983313 passes inference-routing, cloud-onboard, and the repaired hermetic kimi-inference-compat lane. The public negative-path evidence remains the linked exact-main HTTP 404 run.

Verification

  • PR description includes the DCO sign-off declaration and every commit appears as Verified in GitHub
  • Normal pre-commit, commit-msg, and pre-push hooks passed
  • Targeted behavior tests pass for the current change set: 164 focused config, model-prompt, featured-catalog, docs-contract, and onboarding tests
  • E2E workflow boundary tests pass: 17 tests
  • Exact-head advisor-required E2E run 28957983313 passes inference-routing, cloud-onboard, and kimi-inference-compat
  • npm run typecheck:cli, npm run source-shape:check, npm run test-size:check, and npm run validate:configs pass
  • Applicable broad gate passed — all exact-head required contexts and the standard matrix are green
  • Quality Gates section completed with required justifications or waivers — sensitive-path review remains on the normal approval path
  • No secrets, API keys, or credentials committed
  • npm run docs builds without warnings — 0 errors and 2 pre-existing warnings
  • Doc pages follow the style guide
  • New doc pages include SPDX header and frontmatter — no new pages

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

Summary by CodeRabbit

  • Bug Fixes

    • Updated model availability filtering so retired/unavailable compatibility options (including Kimi K2.6) no longer appear in onboarding prompts, improving default selection reliability.
    • Adjusted the live compatibility testing setup and mode-dependent classification to run consistently in mock mode.
    • Improved mock streaming behavior so tool calls are emitted as separate exec calls with distinct arguments.
  • Documentation

    • Refreshed inference onboarding/model task-fit guidance to clarify that runtime route validation determines current availability.
    • Updated curated model lists and platform reference links to match the latest availability rules.
  • Tests / CI

    • Updated and expanded coverage to reflect the revised availability and selection behavior.

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
@ericksoa ericksoa added bug-fix PR fixes a bug or regression provider: nvidia NVIDIA inference endpoint, NIM, or NVIDIA provider behavior area: inference Inference routing, serving, model selection, or outputs area: onboarding Onboarding FSM, provider setup, sandbox launch, or first-run flow area: docs Documentation, examples, guides, or docs build area: e2e End-to-end tests, nightly failures, or validation infrastructure area: ci CI workflows, checks, release automation, or GitHub Actions github_actions Pull requests that update GitHub Actions code v0.0.78 labels Jul 8, 2026
@coderabbitai

coderabbitai Bot commented Jul 8, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Kimi K2.6 is removed from the curated cloud model catalog and added to the NVIDIA featured-models retirement deny-list. Documentation, tests, and the live e2e workflow are updated accordingly, with Minimax M3 becoming the resulting default/selection and the e2e job switched to mock inference mode.

Changes

Kimi K2.6 retirement

Layer / File(s) Summary
Retirement deny-list and config removal
src/lib/inference/nvidia-featured-models.ts, src/lib/inference/config.ts, src/lib/inference/config.test.ts
RETIRED_NVIDIA_FEATURED_MODEL_IDS now includes moonshotai/kimi-k2.6, CLOUD_MODEL_OPTIONS drops the Kimi K2.6 entry, and tests are parameterized to cover both GLM 5.1 and Kimi K2.6 retirement.
Featured-model catalog filtering and selection tests
src/lib/inference/nvidia-featured-models.test.ts
Tests updated so retired-catalog filtering excludes Kimi K2.6, catalog fetch/fallback expectations use Minimax M3, and onboarding-retry default lookups resolve to the Nemotron Ultra default.
Onboarding/prompt selection tests
src/lib/inference/model-prompts.test.ts, test/onboard-selection.test.ts
Prompt sequence indices and menu numbering are adjusted, and assertions confirm Kimi K2.6 (and GLM 5.1) are excluded while Minimax M3 is selected.
Documentation updates for catalog availability
docs/inference/inference-options.mdx, docs/inference/model-capability-audit.mdx, test/inference-options-docs.test.ts, ci/platform-matrix.json, docs/reference/platform-support.mdx
Docs remove Kimi K2.6 from curated lists, clarify that runtime route validation determines availability, mark the OpenClaw audit entry as unsupported due to an HTTP 404, and reference links are updated.
Live e2e job switched to mock mode
.github/workflows/e2e.yaml, test/e2e/live/kimi-inference-compat.test.ts, test/e2e/live/kimi-inference-compat-helpers.ts, test/e2e/support/kimi-inference-compat-helpers.test.ts
The kimi-inference-compat job runs in mock mode without NVIDIA_API_KEY, the test's inference classification string varies based on mode, the mock helper emits three tool calls, and the support test asserts the streamed SSE sequence.

Estimated code review effort: 2 (Simple) | ~15 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
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.
Title check ✅ Passed The title clearly matches the main change: retiring the unavailable Kimi K2.6 endpoint from inference onboarding.
✨ 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/retire-kimi-k26-onboarder

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

@github-code-quality

github-code-quality Bot commented Jul 8, 2026 •

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall coverage in the fix/retire-kimi-k26-... 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/retire-kimi-k26-... 12833f4 +/-
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/retire-kimi-k26-... branch is 76%. Coverage data for the main branch is not yet available.

Show a code coverage summary of the most covered files.
File main fix/retire-kimi-k26-... 12833f4 +/-
src/lib/onboard/preflight.ts — 82% —
src/lib/state/o...oard-session.ts — 82% —
src/lib/actions...all/run-plan.ts — 81% —
src/lib/actions...licy-channel.ts — 79% —
src/lib/actions...box/snapshot.ts — 79% —
src/lib/state/sandbox.ts — 75% —
src/lib/onboard...er-gpu-patch.ts — 69% —
src/lib/policy/index.ts — 65% —
src/lib/shields/index.ts — 61% —
src/lib/onboard.ts — 28% —

Updated July 08, 2026 16:25 UTC
Code Coverage is in Public Preview. Learn more and provide us with your feedback.

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Jul 8, 2026 •

Copy link
Copy Markdown
Contributor

PR Review Advisor (Nemotron Ultra) — No blocking findings

Merge posture: No blocking advisor findings
Primary next action: Resolve or justify PRA-1: Hermes Provider default model (Kimi K2.6) lacks runtime availability validation.
Open items: 0 required · 2 warnings · 3 suggestions · 1 test follow-up
Since last review: 0 prior items resolved · 0 still apply · 0 new items found

Action checklist

  • PRA-1 Resolve or justify: Hermes Provider default model (Kimi K2.6) lacks runtime availability validation in src/lib/inference/config.ts:35
  • PRA-2 Resolve or justify: Onboarding selection tests use brittle menu indices instead of model IDs in test/onboard-selection.test.ts:950
  • PRA-T1 Add or justify test follow-up: Onboarding selection tests use brittle menu indices instead of model IDs
  • PRA-3 In-scope improvement: Deny-list for retired models could benefit from proactive re-availability detection in src/lib/inference/nvidia-featured-models.ts:18
  • PRA-4 In-scope improvement: Mock streaming behavior improved to emit separate tool calls in test/e2e/live/kimi-inference-compat-helpers.ts:280
  • PRA-5 In-scope improvement: Doc-sync line reference updated from config.test.ts:120 to :208 in ci/platform-matrix.json:45

Findings index

ID Severity Category Location Required action
PRA-1 Resolve/justify correctness src/lib/inference/config.ts:35 Add a runtime validation check in Hermes onboarding or provider setup that confirms the default model is available from the Hermes Provider /models endpoint before using it as default. This is a pre-existing architecture concern, not introduced by this PR — recommend follow-up issue.
PRA-2 Resolve/justify tests test/onboard-selection.test.ts:950 Refactor tests to select by model ID/label rather than menu index, or add a helper that finds the index of a given model ID in the options array. This is local to changed test file — recommend current-PR action.
PRA-3 Improvement security src/lib/inference/nvidia-featured-models.ts:18 Consider adding a scheduled CI job or periodic check that validates deny-list entries against live NVIDIA Endpoints /models endpoint to detect when a retired model becomes available again (or a successor is named), so the deny-list can be proactively cleaned up. This is out of scope for current PR — recommend follow-up.
PRA-4 Improvement architecture test/e2e/live/kimi-inference-compat-helpers.ts:280 Good change — no action needed. Non-streaming path (sendJson) also emits separate toolCalls array (lines 318-325).
PRA-5 Improvement correctness ci/platform-matrix.json:45 Verify scripts/generate-platform-docs.py correctly extracts line numbers from source. This is a maintenance item, not a blocker.
Review findings by urgency: 0 required fixes, 2 items to resolve/justify, 3 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 — Hermes Provider default model (Kimi K2.6) lacks runtime availability validation

  • Location: src/lib/inference/config.ts:35
  • Category: correctness
  • Problem: HERMES_PROVIDER_MODEL_OPTIONS[0] remains 'moonshotai/kimi-k2.6' as default. Since NVIDIA Endpoints route is retired, verify Hermes Provider (Nous catalog) actually serves Kimi K2.6. If Hermes also loses Kimi, the default will point to a non-functional model.
  • Impact: Hermes onboarding could default to an unavailable model, causing user-facing failures until manually overridden.
  • Recommended action: Add a runtime validation check in Hermes onboarding or provider setup that confirms the default model is available from the Hermes Provider /models endpoint before using it as default. This is a pre-existing architecture concern, not introduced by this PR — recommend follow-up issue.
  • Expected follow-up: Resolve in this PR or explain why the risk is acceptable.
  • Verification: Read src/lib/inference/config.ts line 35: HERMES_PROVIDER_MODEL_OPTIONS[0] === 'moonshotai/kimi-k2.6'. Check agents/hermes/config/hermes-config.ts for how Hermes Provider models are resolved.
  • Missing regression test: No test currently validates that HERMES_PROVIDER_MODEL_OPTIONS[0] is actually servable by the Hermes Provider. Consider adding a test that probes the Hermes Provider /models endpoint (when credentials available) or a CI job that validates the default.
  • Done when: The risk is fixed or explicitly justified in the PR. Verification: Read src/lib/inference/config.ts line 35: HERMES_PROVIDER_MODEL_OPTIONS[0] === 'moonshotai/kimi-k2.6'. Check agents/hermes/config/hermes-config.ts for how Hermes Provider models are resolved.
  • Evidence: config.ts line 35 shows Kimi K2.6 as first Hermes Provider option; PR evidence shows NVIDIA Endpoints route returns HTTP 404 but Hermes Provider is independent catalog

PRA-2 Resolve/justify — Onboarding selection tests use brittle menu indices instead of model IDs

  • Location: test/onboard-selection.test.ts:950
  • Category: tests
  • Problem: Multiple test answer indices changed (5→4, 4→3) due to CLOUD_MODEL_OPTIONS shrinking from 4 to 3 entries. Tests select models by menu position, which is fragile if array order changes.
  • Impact: Future changes to model order could cause tests to silently validate the wrong model, reducing test reliability.
  • Recommended action: Refactor tests to select by model ID/label rather than menu index, or add a helper that finds the index of a given model ID in the options array. This is local to changed test file — recommend current-PR action.
  • Expected follow-up: Resolve in this PR or explain why the risk is acceptable.
  • Verification: Check test/onboard-selection.test.ts around lines 950-1050: answers arrays use numeric indices that correspond to menu positions (e.g., ['3'], ['4', 'custom/provider-model']).
  • Missing regression test: Tests currently work because they use TEST_NVIDIA_FEATURED_MODELS fixture matching expected order. A more robust approach would select by model ID (e.g., find index of 'minimaxai/minimax-m3' in cloudModelOptions).
  • Done when: The risk is fixed or explicitly justified in the PR. Verification: Check test/onboard-selection.test.ts around lines 950-1050: answers arrays use numeric indices that correspond to menu positions (e.g., ['3'], ['4', 'custom/provider-model']).
  • Evidence: Diff shows answer arrays changed from ['5', ...] to ['4', ...] and ['4', ...] to ['3', ...] due to CLOUD_MODEL_OPTIONS length change

💡 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-3 Improvement — Deny-list for retired models could benefit from proactive re-availability detection

  • Location: src/lib/inference/nvidia-featured-models.ts:18
  • Category: security
  • Problem: RETIRED_NVIDIA_FEATURED_MODEL_IDS correctly blocks Kimi K2.6 and GLM 5.1 from NVIDIA Endpoints onboarding menu as defense against upstream catalog lag. No automated check detects when a retired model becomes available again.
  • Impact: Deny-list entries may persist longer than necessary if NVIDIA restores a route or publishes a successor model.
  • Suggested action: Consider adding a scheduled CI job or periodic check that validates deny-list entries against live NVIDIA Endpoints /models endpoint to detect when a retired model becomes available again (or a successor is named), so the deny-list can be proactively cleaned up. This is out of scope for current PR — recommend follow-up.
  • Expected follow-up: Prefer a current-PR fix when local to changed code; defer only with rationale or linked follow-up.
  • Verification: Read src/lib/inference/nvidia-featured-models.ts lines 15-22: deny-set with comments linking to retirement PRs (fix(inference): retire GLM 5.1 endpoint selection #6069 for GLM 5.1, implicit for Kimi K2.6).
  • Missing regression test: test/inference/nvidia-featured-models.test.ts already has tests: 'filters models whose catalogs outlive their NVIDIA Endpoints routes' and 'falls back with a warning when the featured catalog has no safe selectable models' covering both retired models.
  • Done when: The local improvement is applied, or the PR notes why it should be deferred.
  • Evidence: Deny-list comment: 'Keep entries in this policy deny-list until a deliberate product change confirms that the NVIDIA chat-completions route is available again or names a live successor.'

PRA-4 Improvement — Mock streaming behavior improved to emit separate tool calls

  • Location: test/e2e/live/kimi-inference-compat-helpers.ts:280
  • Category: architecture
  • Problem: Mock behavior changed from single combined tool call (hostname; date; uptime) to three separate exec calls. This better matches real model tool-calling behavior and aligns with trajectory validator expectations in strict mock mode.
  • Impact: More realistic mock behavior improves test fidelity and catches tool-call splitting regressions.
  • Suggested action: Good change — no action needed. Non-streaming path (sendJson) also emits separate toolCalls array (lines 318-325).
  • Expected follow-up: Prefer a current-PR fix when local to changed code; defer only with rationale or linked follow-up.
  • Verification: Read test/e2e/live/kimi-inference-compat-helpers.ts lines 275-330: sendToolCall maps ['hostname','date','uptime'] to individual tool call objects with unique IDs.
  • Missing regression test: test/e2e/support/kimi-inference-compat-helpers.test.ts added 'emits separate safe exec calls from the streaming Kimi mock' test verifying streaming path. Non-streaming path covered by existing trajectory tests.
  • Done when: The local improvement is applied, or the PR notes why it should be deferred.
  • Evidence: Diff shows sendToolCall refactored to map commands array to individual tool call objects

PRA-5 Improvement — Doc-sync line reference updated from config.test.ts:120 to :208

  • Location: ci/platform-matrix.json:45
  • Category: correctness
  • Problem: Line reference updated due to test file growth. The platform-matrix-sync generator should keep these references accurate.
  • Impact: Minor — documentation reference accuracy maintenance.
  • Suggested action: Verify scripts/generate-platform-docs.py correctly extracts line numbers from source. This is a maintenance item, not a blocker.
  • Expected follow-up: Prefer a current-PR fix when local to changed code; defer only with rationale or linked follow-up.
  • Verification: Check ci/platform-matrix.json line 45 references config.test.ts:208. Run python3 scripts/generate-platform-docs.py --check to verify sync.
  • Missing regression test: The platform-matrix-sync pre-commit hook (mentioned in docs/reference/platform-support.mdx) should catch drift. No specific test needed.
  • Done when: The local improvement is applied, or the PR notes why it should be deferred.
  • Evidence: Diff shows line number change in provider notes for OpenRouter validation
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 Onboarding selection tests use brittle menu indices instead of model IDs — Refactor tests to select by model ID/label rather than menu index, or add a helper that finds the index of a given model ID in the options array. This is local to changed test file — recommend current-PR action.
Since last review details

Current findings, using the urgency labels above:

PRA-1 Resolve/justify — Hermes Provider default model (Kimi K2.6) lacks runtime availability validation

  • Location: src/lib/inference/config.ts:35
  • Category: correctness
  • Problem: HERMES_PROVIDER_MODEL_OPTIONS[0] remains 'moonshotai/kimi-k2.6' as default. Since NVIDIA Endpoints route is retired, verify Hermes Provider (Nous catalog) actually serves Kimi K2.6. If Hermes also loses Kimi, the default will point to a non-functional model.
  • Impact: Hermes onboarding could default to an unavailable model, causing user-facing failures until manually overridden.
  • Recommended action: Add a runtime validation check in Hermes onboarding or provider setup that confirms the default model is available from the Hermes Provider /models endpoint before using it as default. This is a pre-existing architecture concern, not introduced by this PR — recommend follow-up issue.
  • Expected follow-up: Resolve in this PR or explain why the risk is acceptable.
  • Verification: Read src/lib/inference/config.ts line 35: HERMES_PROVIDER_MODEL_OPTIONS[0] === 'moonshotai/kimi-k2.6'. Check agents/hermes/config/hermes-config.ts for how Hermes Provider models are resolved.
  • Missing regression test: No test currently validates that HERMES_PROVIDER_MODEL_OPTIONS[0] is actually servable by the Hermes Provider. Consider adding a test that probes the Hermes Provider /models endpoint (when credentials available) or a CI job that validates the default.
  • Done when: The risk is fixed or explicitly justified in the PR. Verification: Read src/lib/inference/config.ts line 35: HERMES_PROVIDER_MODEL_OPTIONS[0] === 'moonshotai/kimi-k2.6'. Check agents/hermes/config/hermes-config.ts for how Hermes Provider models are resolved.
  • Evidence: config.ts line 35 shows Kimi K2.6 as first Hermes Provider option; PR evidence shows NVIDIA Endpoints route returns HTTP 404 but Hermes Provider is independent catalog

PRA-2 Resolve/justify — Onboarding selection tests use brittle menu indices instead of model IDs

  • Location: test/onboard-selection.test.ts:950
  • Category: tests
  • Problem: Multiple test answer indices changed (5→4, 4→3) due to CLOUD_MODEL_OPTIONS shrinking from 4 to 3 entries. Tests select models by menu position, which is fragile if array order changes.
  • Impact: Future changes to model order could cause tests to silently validate the wrong model, reducing test reliability.
  • Recommended action: Refactor tests to select by model ID/label rather than menu index, or add a helper that finds the index of a given model ID in the options array. This is local to changed test file — recommend current-PR action.
  • Expected follow-up: Resolve in this PR or explain why the risk is acceptable.
  • Verification: Check test/onboard-selection.test.ts around lines 950-1050: answers arrays use numeric indices that correspond to menu positions (e.g., ['3'], ['4', 'custom/provider-model']).
  • Missing regression test: Tests currently work because they use TEST_NVIDIA_FEATURED_MODELS fixture matching expected order. A more robust approach would select by model ID (e.g., find index of 'minimaxai/minimax-m3' in cloudModelOptions).
  • Done when: The risk is fixed or explicitly justified in the PR. Verification: Check test/onboard-selection.test.ts around lines 950-1050: answers arrays use numeric indices that correspond to menu positions (e.g., ['3'], ['4', 'custom/provider-model']).
  • Evidence: Diff shows answer arrays changed from ['5', ...] to ['4', ...] and ['4', ...] to ['3', ...] due to CLOUD_MODEL_OPTIONS length change

PRA-3 Improvement — Deny-list for retired models could benefit from proactive re-availability detection

  • Location: src/lib/inference/nvidia-featured-models.ts:18
  • Category: security
  • Problem: RETIRED_NVIDIA_FEATURED_MODEL_IDS correctly blocks Kimi K2.6 and GLM 5.1 from NVIDIA Endpoints onboarding menu as defense against upstream catalog lag. No automated check detects when a retired model becomes available again.
  • Impact: Deny-list entries may persist longer than necessary if NVIDIA restores a route or publishes a successor model.
  • Suggested action: Consider adding a scheduled CI job or periodic check that validates deny-list entries against live NVIDIA Endpoints /models endpoint to detect when a retired model becomes available again (or a successor is named), so the deny-list can be proactively cleaned up. This is out of scope for current PR — recommend follow-up.
  • Expected follow-up: Prefer a current-PR fix when local to changed code; defer only with rationale or linked follow-up.
  • Verification: Read src/lib/inference/nvidia-featured-models.ts lines 15-22: deny-set with comments linking to retirement PRs (fix(inference): retire GLM 5.1 endpoint selection #6069 for GLM 5.1, implicit for Kimi K2.6).
  • Missing regression test: test/inference/nvidia-featured-models.test.ts already has tests: 'filters models whose catalogs outlive their NVIDIA Endpoints routes' and 'falls back with a warning when the featured catalog has no safe selectable models' covering both retired models.
  • Done when: The local improvement is applied, or the PR notes why it should be deferred.
  • Evidence: Deny-list comment: 'Keep entries in this policy deny-list until a deliberate product change confirms that the NVIDIA chat-completions route is available again or names a live successor.'

PRA-4 Improvement — Mock streaming behavior improved to emit separate tool calls

  • Location: test/e2e/live/kimi-inference-compat-helpers.ts:280
  • Category: architecture
  • Problem: Mock behavior changed from single combined tool call (hostname; date; uptime) to three separate exec calls. This better matches real model tool-calling behavior and aligns with trajectory validator expectations in strict mock mode.
  • Impact: More realistic mock behavior improves test fidelity and catches tool-call splitting regressions.
  • Suggested action: Good change — no action needed. Non-streaming path (sendJson) also emits separate toolCalls array (lines 318-325).
  • Expected follow-up: Prefer a current-PR fix when local to changed code; defer only with rationale or linked follow-up.
  • Verification: Read test/e2e/live/kimi-inference-compat-helpers.ts lines 275-330: sendToolCall maps ['hostname','date','uptime'] to individual tool call objects with unique IDs.
  • Missing regression test: test/e2e/support/kimi-inference-compat-helpers.test.ts added 'emits separate safe exec calls from the streaming Kimi mock' test verifying streaming path. Non-streaming path covered by existing trajectory tests.
  • Done when: The local improvement is applied, or the PR notes why it should be deferred.
  • Evidence: Diff shows sendToolCall refactored to map commands array to individual tool call objects

PRA-5 Improvement — Doc-sync line reference updated from config.test.ts:120 to :208

  • Location: ci/platform-matrix.json:45
  • Category: correctness
  • Problem: Line reference updated due to test file growth. The platform-matrix-sync generator should keep these references accurate.
  • Impact: Minor — documentation reference accuracy maintenance.
  • Suggested action: Verify scripts/generate-platform-docs.py correctly extracts line numbers from source. This is a maintenance item, not a blocker.
  • Expected follow-up: Prefer a current-PR fix when local to changed code; defer only with rationale or linked follow-up.
  • Verification: Check ci/platform-matrix.json line 45 references config.test.ts:208. Run python3 scripts/generate-platform-docs.py --check to verify sync.
  • Missing regression test: The platform-matrix-sync pre-commit hook (mentioned in docs/reference/platform-support.mdx) should catch drift. No specific test needed.
  • Done when: The local improvement is applied, or the PR notes why it should be deferred.
  • Evidence: Diff shows line number change in provider notes for OpenRouter validation

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 Jul 8, 2026 •

Copy link
Copy Markdown
Contributor

E2E Advisor Recommendation

Required E2E: kimi-inference-compat, inference-routing, cloud-onboard
Optional E2E: docs-validation, cloud-inference

Dispatch hint: kimi-inference-compat,inference-routing,cloud-onboard

Workflow run

Full advisor summary

E2E Recommendation Advisor

Base: origin/main
Head: HEAD
Confidence: high

Required E2E

  • kimi-inference-compat (medium): Required because the PR directly changes this E2E job and its live helper while modifying Kimi model availability semantics. It should prove the hermetic Kimi compatibility path still onboards, wires model-specific OpenClaw plugin/config, routes through inference.local, and completes the split hostname/date/uptime assistant tool-loop.
  • inference-routing (medium): Required because src/lib/inference/config.ts and the featured-model loader sit on the provider-selection and managed-route boundary. This PR changes NVIDIA model selection policy, so the PR-safe routing job should verify route registration, failure classification, cleanup, and credential-boundary behavior remain intact.
  • cloud-onboard (high): Required because the cloud model catalog and hosted onboarding choices changed. The full hosted onboarding path should still install, onboard a healthy sandbox, and validate inference.local with live NVIDIA-hosted inference after the curated/fallback model list change.

Optional E2E

  • docs-validation (low): Useful because the PR changes generated provider/support docs and ci/platform-matrix.json. This catches broken rendered-doc sync or documentation validation drift, but it is not the primary runtime-risk coverage.
  • cloud-inference (high): Optional additional confidence for the hosted inference.local path after model-catalog changes; it performs a live sandbox chat completion and filesystem checks but does not specifically exercise the NVIDIA Endpoints picker retirement behavior.

New E2E recommendations

  • NVIDIA Endpoints model catalog retirement (medium): Existing E2E coverage does not explicitly exercise the live NVIDIA featured-model catalog and interactive model picker to prove retired catalog entries such as moonshotai/kimi-k2.6 are filtered and cannot become the default when the upstream catalog still advertises them.
    • Suggested test: Add a PR-safe or scheduled E2E slice that stubs or records the NVIDIA featured catalog during hosted onboarding, verifies retired IDs are absent from the rendered picker, and confirms fallback/default selection remains on a live supported model.
  • live retired-route detection (low): Changing kimi-inference-compat to mock mode preserves compatibility behavior but removes live signal for whether NVIDIA's public Kimi route has returned or regressed differently from the catalog.
    • Suggested test: Add a non-blocking scheduled/manual live route-retirement audit that probes retired NVIDIA Endpoints model IDs separately from PR-required compatibility tests and records whether the model is unavailable, restored, or renamed.

Dispatch hint

  • Workflow: .github/workflows/e2e.yaml
  • jobs input: kimi-inference-compat,inference-routing,cloud-onboard

@github-actions

github-actions Bot commented Jul 8, 2026 •

Copy link
Copy Markdown
Contributor

E2E Target Recommendation

Required E2E targets: kimi-inference-compat, ubuntu-repo-cloud-openclaw
Optional E2E targets: None

Dispatch required E2E targets:

  • gh workflow run e2e.yaml --ref <pr-head-ref> --field jobs=kimi-inference-compat
  • gh workflow run e2e.yaml --ref <pr-head-ref> --field targets=ubuntu-repo-cloud-openclaw

Workflow run

Full E2E target advisor summary

E2E Target Advisor

Base: origin/main
Head: HEAD
Confidence: high

Required E2E targets

  • kimi-inference-compat: Focused free-standing E2E job wired for changed live test test/e2e/live/kimi-inference-compat.test.ts.
    • Dispatch: gh workflow run e2e.yaml --ref <pr-head-ref> --field jobs=kimi-inference-compat
  • ubuntu-repo-cloud-openclaw: The PR changes NVIDIA Endpoints cloud model selection and featured-model filtering used by OpenClaw onboarding; this live-supported target exercises the primary Ubuntu cloud OpenClaw onboarding and inference path.
    • Dispatch: gh workflow run e2e.yaml --ref <pr-head-ref> --field targets=ubuntu-repo-cloud-openclaw

Optional E2E targets

  • None.

Relevant changed files

  • .github/workflows/e2e.yaml
  • src/lib/inference/config.ts
  • src/lib/inference/nvidia-featured-models.ts
  • test/e2e/live/kimi-inference-compat-helpers.ts
  • test/e2e/live/kimi-inference-compat.test.ts
  • test/e2e/support/kimi-inference-compat-helpers.test.ts

@github-actions

github-actions Bot commented Jul 8, 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
Top item: No actionable code-review findings

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: Runtime validation
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 — Exercise a manual NVIDIA Endpoints `Other...` selection of `moonshotai/kimi-k2.6` where `/models` succeeds but the Chat Completions probe returns HTTP 404, and assert onboarding returns the model-retry path rather than creating a sandbox with the retired route.. Unit and support tests strongly cover the changed parser, picker, docs, workflow-mode, secret-scoping, and mock tool-call behavior. Because the changed surfaces include GitHub Actions, onboarding, OpenShell-managed inference routing, and sandbox E2E helpers, runtime validation remains useful for confidence even though no blocking coverage gap was found in the diff.
  • PRA-T2 Runtime validation — Exercise the Kimi mock workflow path and assert no `NVIDIA_API_KEY` or `NVIDIA_INFERENCE_API_KEY` is present in the agent command environment while plugin config and split `hostname`, `date`, `uptime` trajectory checks still pass.. Unit and support tests strongly cover the changed parser, picker, docs, workflow-mode, secret-scoping, and mock tool-call behavior. Because the changed surfaces include GitHub Actions, onboarding, OpenShell-managed inference routing, and sandbox E2E helpers, runtime validation remains useful for confidence even though no blocking coverage gap was found in the diff.
  • PRA-T3 Runtime validation — Exercise `probeRemoteProviderHealth("nvidia-prod", { model: "moonshotai/kimi-k2.6" })` with a mocked HTTP 404 Chat Completions response and assert the status is unhealthy even if provider-level `/models` reachability would be successful.. Unit and support tests strongly cover the changed parser, picker, docs, workflow-mode, secret-scoping, and mock tool-call behavior. Because the changed surfaces include GitHub Actions, onboarding, OpenShell-managed inference routing, and sandbox E2E helpers, runtime validation remains useful for confidence even though no blocking coverage gap was found in the diff.

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 Jul 8, 2026

Copy link
Copy Markdown
Contributor

E2E Target Results — ❌ Some jobs failed

Run: 28957358603
Workflow ref: fix/retire-kimi-k26-onboarder
Requested targets: (default — all supported)
Requested jobs: kimi-inference-compat
Summary: 0 passed, 1 failed, 0 cancelled, 0 skipped

Job Result
kimi-inference-compat ❌ failure

Failed jobs: kimi-inference-compat. Check run artifacts for logs.

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

E2E Target Results — ✅ All requested jobs passed

Run: 28957580480
Workflow ref: fix/retire-kimi-k26-onboarder
Requested targets: (default — all supported)
Requested jobs: inference-routing,cloud-onboard
Summary: 2 passed, 0 failed, 0 cancelled, 0 skipped

Job Result
cloud-onboard ✅ success
inference-routing ✅ success

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

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

E2E Target Results — ✅ All requested jobs passed

Run: 28957983313
Workflow ref: fix/retire-kimi-k26-onboarder
Requested targets: (default — all supported)
Requested jobs: inference-routing,cloud-onboard,kimi-inference-compat
Summary: 3 passed, 0 failed, 0 cancelled, 0 skipped

Job Result
cloud-onboard ✅ success
inference-routing ✅ success
kimi-inference-compat ✅ success

@cv cv left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Reviewed exact head 12833f4 with the focused security/provider-boundary pass. Kimi K2.6 is removed only from NVIDIA Endpoints discovery while Hermes/custom-route compatibility remains explicit; the workflow removes the live NVIDIA secret and retains hermetic end-to-end plugin/tool-call validation. Catalog, manual-entry, onboarding, docs, reconciliation, safe fixed-argv mock execution, and E2E helper behavior are covered. All 59 checks are green, DCO and both commits are Verified, CodeRabbit is clear, and both exact-head advisors recommend merge_as_is.

@ericksoa ericksoa added v0.0.77 and removed v0.0.78 labels Jul 8, 2026
@ericksoa ericksoa added v0.0.78 and removed v0.0.77 labels Jul 8, 2026
@ericksoa
ericksoa merged commit 778811d into main Jul 8, 2026
138 of 139 checks passed
@ericksoa
ericksoa deleted the fix/retire-kimi-k26-onboarder branch July 8, 2026 17:41
@cjagwani cjagwani mentioned this pull request Jul 9, 2026
9 of 21 tasks
cv pushed a commit that referenced this pull request Jul 9, 2026
<!-- markdownlint-disable MD041 -->
## Summary

Prepares the user documentation for NemoClaw v0.0.78 by replacing the
unreleased section with release highlights and synchronizing the
affected inference, lifecycle, messaging, and CLI reference pages with
merged behavior.

## Changes

- Publish the v0.0.78 release-notes section with links to the most
specific user guides for each shipped behavior.
- Document authoritative Deep Agents route health, Nemotron Ultra
profile behavior, and Hermes compatible-endpoint context metadata.
- Document forced rebuild recovery after total backup failure and the
ownership-safe tunnel/full-stop behavior.
- Keep command examples and shared agent variants aligned with the
current OpenClaw, Hermes, and Deep Agents interfaces.

Source mapping:

- [#3787](#3787) ->
`docs/about/release-notes.mdx`: Record reliable workspace template
seeding during sandbox startup.
- [#4960](#4960) ->
`docs/about/release-notes.mdx`: Record safer detection of rewritten
OpenClaw gateway processes.
- [#5676](#5676) ->
`docs/about/release-notes.mdx`: Record warning-tolerant agent-list JSON
handling.
- [#5857](#5857) ->
`docs/about/release-notes.mdx`: Record synchronization of explicit
OpenClaw main-agent model state.
- [#5929](#5929) ->
`docs/about/release-notes.mdx`: Record copyable SSH port-forward
guidance for remote dashboards.
- [#6068](#6068) ->
`docs/about/release-notes.mdx`: Record custom-image plugin provenance
reconciliation.
- [#6116](#6116) ->
`docs/about/release-notes.mdx`: Record live-loopback dashboard-forward
recovery.
- [#6122](#6122) ->
`docs/about/release-notes.mdx`: Announce validated, round-trippable
policy YAML output.
- [#6211](#6211) ->
`docs/manage-sandboxes/lifecycle.mdx`, `docs/reference/commands.mdx`,
`docs/about/release-notes.mdx`: Explain the explicit no-backup `rebuild
--force` recovery boundary.
- [#6283](#6283) ->
`docs/about/release-notes.mdx`: Record Hermes WebUI port alignment.
- [#6293](#6293) ->
`docs/inference/switch-inference-providers.mdx`,
`docs/about/release-notes.mdx`: Document compatible-endpoint
context-length probing for Hermes.
- [#6320](#6320) ->
`docs/about/release-notes.mdx`: Record bounded gateway-recovery waits.
- [#6377](#6377) ->
`docs/reference/commands.mdx`, `docs/about/release-notes.mdx`: Explain
rebuild diagnostics and prepared MCP-destroy recovery.
- [#6412](#6412) ->
`docs/get-started/quickstart-langchain-deepagents-code.mdx`,
`docs/about/release-notes.mdx`: Document authoritative agent-visible
inference route health.
- [#6421](#6421) ->
`docs/about/release-notes.mdx`: Record the longer quiet-pull window for
managed vLLM images.
- [#6431](#6431) ->
`docs/inference/model-capability-audit.mdx`,
`docs/about/release-notes.mdx`: Document the version-pinned Nemotron
Ultra profile plugin.
- [#6439](#6439) ->
`docs/about/release-notes.mdx`: Summarize the authenticated, pinned
credential-capture helper boundary.
- [#6450](#6450) ->
`docs/manage-sandboxes/messaging-channels.mdx`,
`docs/reference/commands.mdx`, `docs/about/release-notes.mdx`: Document
host-forward cleanup and ownership-safe gateway-port release.
- [#6474](#6474) ->
`docs/manage-sandboxes/messaging-channels.mdx`,
`docs/about/release-notes.mdx`: Record composable OpenClaw messaging
runtime loaders.
- [#6475](#6475) ->
`docs/about/release-notes.mdx`: Record removal of the unavailable Kimi
K2.6 production endpoint option.
- [#6480](#6480) ->
`docs/about/release-notes.mdx`: Record stderr routing for the plugin
registration banner.
- [#6481](#6481) ->
`docs/about/release-notes.mdx`: Record post-pull Ollama model discovery
checks.
- [#6482](#6482) ->
`docs/about/release-notes.mdx`: Record Ollama model warm-up after daemon
restart.
- [#6486](#6486) ->
`docs/about/release-notes.mdx`: Publish the opt-in, thread-scoped Deep
Agents auto-approval boundary.
- [#6490](#6490) ->
`docs/about/release-notes.mdx`: Record diagnostics for custom images
missing the managed runtime.
- [#6494](#6494) ->
`docs/inference/model-capability-audit.mdx`,
`docs/about/release-notes.mdx`: Document nonempty tool-call content
preservation and placeholder rejection.
- [#6497](#6497) ->
`docs/get-started/quickstart-langchain-deepagents-code.mdx`,
`docs/about/release-notes.mdx`: Document isolated Deep Agents
route-probe output.
- [#6506](#6506) ->
`docs/get-started/quickstart-langchain-deepagents-code.mdx`,
`docs/about/release-notes.mdx`: Document observability-preserving
managed route probes.
- [#6508](#6508) ->
`docs/about/release-notes.mdx`: Link the new extension taxonomy and
SDK-readiness reference from the release summary.

Release-source verification: GitHub reports all 29 cited source PRs as
merged with base `main`, and every merge commit is an ancestor of
`origin/main` at `17bf9a6a9688b3b1d69cf4b37d3f23110acb055e`. No
source-mapping mismatches were found.

## 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 exactly one tests line and one docs line. Check other lines
when applicable. Add every requested justification or approval
reference. -->
- [ ] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [x] Tests not applicable — justification: Documentation-only
release-prep changes; `npm run docs` validates variants, routes, and
Fern content.
- [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 applicable item only when supported by the requested
evidence. Run targeted tests once per relevant change set and rerun
after later edits or hook autofixes that can affect the tested behavior.
Do not rerun hook-covered checks. -->
- [x] PR description includes the DCO sign-off declaration and every
commit appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — command/result or justification: Tests
are not applicable to this documentation-only change set.
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result:
- [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) — exited
0 with zero errors; Fern reported the existing unauthenticated
redirect-check and light-mode contrast warnings.
- [x] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

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

---------

Signed-off-by: cjagwani <cjagwani@nvidia.com>
Hadar301 pushed a commit to Hadar301/NemoClaw-OpenShift that referenced this pull request Jul 12, 2026
<!-- markdownlint-disable MD041 -->
## Summary
Removes `moonshotai/kimi-k2.6` from NVIDIA Endpoints onboarding because
its Chat Completions route now returns HTTP 404 even though NVIDIA's
public featured feed and authenticated `/v1/models` catalog still
advertise it. This PR does not add K2.7 or another replacement; a new
Kimi model can be added after its production model ID and runtime route
are live.

## Changes
- Remove Kimi K2.6 from the bundled NVIDIA Endpoints fallback and filter
the stale live-catalog entry.
- Preserve the independent Hermes Provider K2.6 choice and
existing/custom-route OpenClaw compatibility.
- Keep Kimi compatibility coverage hermetic while the public NVIDIA K2.6
route is unavailable.
- Update onboarding and capability documentation to distinguish catalog
metadata from runtime availability.
- Update picker, catalog, provider-boundary, documentation, and workflow
coverage for the retired choice.

## Runtime Evidence
- Public featured feed: still advertises `moonshotai/kimi-k2.6`.
- Authenticated `https://integrate.api.nvidia.com/v1/models`: still
advertises `moonshotai/kimi-k2.6` and no other Kimi model.
- Actual `moonshotai/kimi-k2.6` Chat Completions request: HTTP 404.
- Exact-main Kimi job: [run 28953873907 / job
85907646487](https://github.com/NVIDIA/NemoClaw/actions/runs/28953873907/job/85907646487)
failed onboarding with `Chat Completions API: HTTP 404`.
- `moonshotai/kimi-k2.7-code` is absent from `/v1/models` and its
candidate route also returns HTTP 404, so replacement support remains
out of scope.

## 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 sample changes)

## Quality Gates
- [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:

## Advisor Follow-up Rationale
- **Connect reconciliation (`PRA-1` / `PRA-7`):** This PR changes future
NVIDIA Endpoints choices only; it deliberately preserves existing
sandbox and custom-route compatibility and does not alter reconciliation
semantics. Generic model divergence is covered in
`src/lib/inference/config.test.ts`, and caller-level warning plus
realignment is covered in
`src/lib/actions/sandbox/connect-route-lifecycle.test.ts`.
- **Manual `Other...` entry (`PRA-2`):** NVIDIA `/v1/models` still
advertises K2.6, so the generic catalog validator cannot truthfully
reject that ID. The retired-model policy removes K2.6 from advertised
and fallback choices while retaining the generic manual path. Actual
Kimi availability is checked by the model-aware Chat Completions probe;
the linked exact-main run demonstrates the resulting HTTP 404 before
successful onboarding.
- **Open PR overlap (`PRA-3`):** NVIDIA#6461 is still open and this head is
currently mergeable against live `main`. If NVIDIA#6461 lands first, normal
merge-order conflict resolution and exact-head revalidation apply.
- **Deny-list authority (`PRA-5`):**
`src/lib/inference/nvidia-featured-models.ts` already documents why
repository retirement policy overrides stale catalog metadata while
preserving the independent Hermes Provider catalog.
- **Hermes Provider warning:** Hermes Provider is an independent,
pre-existing route and model catalog that this NVIDIA Endpoints
retirement intentionally leaves unchanged. The advisor identified no
evidence that its K2.6 route is unavailable; adding a new provider-level
runtime validation contract belongs in separate provider work.
- **Numeric picker tests:** The production prompt accepts numeric menu
input, so the tests intentionally exercise that user contract. Each
affected test immediately asserts the exact selected model and probe
target, preventing an index change from silently validating the wrong
model.
- **Runtime test follow-ups:** The exact-head Kimi E2E proves
secret-free mock routing plus the split tool trajectory; existing health
tests prove model-aware Chat Completions failures are unhealthy. The
linked exact-main public run supplies the stale-catalog-success /
Chat-Completions-404 negative-path evidence without adding live-secret
dependency to this PR.
- **Runtime follow-up:** Exact-head E2E run
[28957983313](https://github.com/NVIDIA/NemoClaw/actions/runs/28957983313)
passes `inference-routing`, `cloud-onboard`, and the repaired hermetic
`kimi-inference-compat` lane. The public negative-path evidence remains
the linked exact-main HTTP 404 run.

## Verification
- [x] PR description includes the DCO sign-off declaration and every
commit appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed
- [x] Targeted behavior tests pass for the current change set: 164
focused config, model-prompt, featured-catalog, docs-contract, and
onboarding tests
- [x] E2E workflow boundary tests pass: 17 tests
- [x] Exact-head advisor-required E2E run
[28957983313](https://github.com/NVIDIA/NemoClaw/actions/runs/28957983313)
passes `inference-routing`, `cloud-onboard`, and `kimi-inference-compat`
- [x] `npm run typecheck:cli`, `npm run source-shape:check`, `npm run
test-size:check`, and `npm run validate:configs` pass
- [x] Applicable broad gate passed — all exact-head required contexts
and the standard matrix are green
- [ ] Quality Gates section completed with required justifications or
waivers — sensitive-path review remains on the normal approval path
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings — 0 errors and 2
pre-existing warnings
- [x] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
- [ ] New doc pages include SPDX header and frontmatter — no new pages

---
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 model availability filtering so retired/unavailable
compatibility options (including Kimi K2.6) no longer appear in
onboarding prompts, improving default selection reliability.
* Adjusted the live compatibility testing setup and mode-dependent
classification to run consistently in mock mode.
* Improved mock streaming behavior so tool calls are emitted as separate
`exec` calls with distinct arguments.

* **Documentation**
* Refreshed inference onboarding/model task-fit guidance to clarify that
runtime route validation determines current availability.
* Updated curated model lists and platform reference links to match the
latest availability rules.

* **Tests / CI**
* Updated and expanded coverage to reflect the revised availability and
selection behavior.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Hadar301 pushed a commit to Hadar301/NemoClaw-OpenShift that referenced this pull request Jul 12, 2026
<!-- markdownlint-disable MD041 -->
## Summary

Prepares the user documentation for NemoClaw v0.0.78 by replacing the
unreleased section with release highlights and synchronizing the
affected inference, lifecycle, messaging, and CLI reference pages with
merged behavior.

## Changes

- Publish the v0.0.78 release-notes section with links to the most
specific user guides for each shipped behavior.
- Document authoritative Deep Agents route health, Nemotron Ultra
profile behavior, and Hermes compatible-endpoint context metadata.
- Document forced rebuild recovery after total backup failure and the
ownership-safe tunnel/full-stop behavior.
- Keep command examples and shared agent variants aligned with the
current OpenClaw, Hermes, and Deep Agents interfaces.

Source mapping:

- [NVIDIA#3787](NVIDIA#3787) ->
`docs/about/release-notes.mdx`: Record reliable workspace template
seeding during sandbox startup.
- [NVIDIA#4960](NVIDIA#4960) ->
`docs/about/release-notes.mdx`: Record safer detection of rewritten
OpenClaw gateway processes.
- [NVIDIA#5676](NVIDIA#5676) ->
`docs/about/release-notes.mdx`: Record warning-tolerant agent-list JSON
handling.
- [NVIDIA#5857](NVIDIA#5857) ->
`docs/about/release-notes.mdx`: Record synchronization of explicit
OpenClaw main-agent model state.
- [NVIDIA#5929](NVIDIA#5929) ->
`docs/about/release-notes.mdx`: Record copyable SSH port-forward
guidance for remote dashboards.
- [NVIDIA#6068](NVIDIA#6068) ->
`docs/about/release-notes.mdx`: Record custom-image plugin provenance
reconciliation.
- [NVIDIA#6116](NVIDIA#6116) ->
`docs/about/release-notes.mdx`: Record live-loopback dashboard-forward
recovery.
- [NVIDIA#6122](NVIDIA#6122) ->
`docs/about/release-notes.mdx`: Announce validated, round-trippable
policy YAML output.
- [NVIDIA#6211](NVIDIA#6211) ->
`docs/manage-sandboxes/lifecycle.mdx`, `docs/reference/commands.mdx`,
`docs/about/release-notes.mdx`: Explain the explicit no-backup `rebuild
--force` recovery boundary.
- [NVIDIA#6283](NVIDIA#6283) ->
`docs/about/release-notes.mdx`: Record Hermes WebUI port alignment.
- [NVIDIA#6293](NVIDIA#6293) ->
`docs/inference/switch-inference-providers.mdx`,
`docs/about/release-notes.mdx`: Document compatible-endpoint
context-length probing for Hermes.
- [NVIDIA#6320](NVIDIA#6320) ->
`docs/about/release-notes.mdx`: Record bounded gateway-recovery waits.
- [NVIDIA#6377](NVIDIA#6377) ->
`docs/reference/commands.mdx`, `docs/about/release-notes.mdx`: Explain
rebuild diagnostics and prepared MCP-destroy recovery.
- [NVIDIA#6412](NVIDIA#6412) ->
`docs/get-started/quickstart-langchain-deepagents-code.mdx`,
`docs/about/release-notes.mdx`: Document authoritative agent-visible
inference route health.
- [NVIDIA#6421](NVIDIA#6421) ->
`docs/about/release-notes.mdx`: Record the longer quiet-pull window for
managed vLLM images.
- [NVIDIA#6431](NVIDIA#6431) ->
`docs/inference/model-capability-audit.mdx`,
`docs/about/release-notes.mdx`: Document the version-pinned Nemotron
Ultra profile plugin.
- [NVIDIA#6439](NVIDIA#6439) ->
`docs/about/release-notes.mdx`: Summarize the authenticated, pinned
credential-capture helper boundary.
- [NVIDIA#6450](NVIDIA#6450) ->
`docs/manage-sandboxes/messaging-channels.mdx`,
`docs/reference/commands.mdx`, `docs/about/release-notes.mdx`: Document
host-forward cleanup and ownership-safe gateway-port release.
- [NVIDIA#6474](NVIDIA#6474) ->
`docs/manage-sandboxes/messaging-channels.mdx`,
`docs/about/release-notes.mdx`: Record composable OpenClaw messaging
runtime loaders.
- [NVIDIA#6475](NVIDIA#6475) ->
`docs/about/release-notes.mdx`: Record removal of the unavailable Kimi
K2.6 production endpoint option.
- [NVIDIA#6480](NVIDIA#6480) ->
`docs/about/release-notes.mdx`: Record stderr routing for the plugin
registration banner.
- [NVIDIA#6481](NVIDIA#6481) ->
`docs/about/release-notes.mdx`: Record post-pull Ollama model discovery
checks.
- [NVIDIA#6482](NVIDIA#6482) ->
`docs/about/release-notes.mdx`: Record Ollama model warm-up after daemon
restart.
- [NVIDIA#6486](NVIDIA#6486) ->
`docs/about/release-notes.mdx`: Publish the opt-in, thread-scoped Deep
Agents auto-approval boundary.
- [NVIDIA#6490](NVIDIA#6490) ->
`docs/about/release-notes.mdx`: Record diagnostics for custom images
missing the managed runtime.
- [NVIDIA#6494](NVIDIA#6494) ->
`docs/inference/model-capability-audit.mdx`,
`docs/about/release-notes.mdx`: Document nonempty tool-call content
preservation and placeholder rejection.
- [NVIDIA#6497](NVIDIA#6497) ->
`docs/get-started/quickstart-langchain-deepagents-code.mdx`,
`docs/about/release-notes.mdx`: Document isolated Deep Agents
route-probe output.
- [NVIDIA#6506](NVIDIA#6506) ->
`docs/get-started/quickstart-langchain-deepagents-code.mdx`,
`docs/about/release-notes.mdx`: Document observability-preserving
managed route probes.
- [NVIDIA#6508](NVIDIA#6508) ->
`docs/about/release-notes.mdx`: Link the new extension taxonomy and
SDK-readiness reference from the release summary.

Release-source verification: GitHub reports all 29 cited source PRs as
merged with base `main`, and every merge commit is an ancestor of
`origin/main` at `17bf9a6a9688b3b1d69cf4b37d3f23110acb055e`. No
source-mapping mismatches were found.

## 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 exactly one tests line and one docs line. Check other lines
when applicable. Add every requested justification or approval
reference. -->
- [ ] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [x] Tests not applicable — justification: Documentation-only
release-prep changes; `npm run docs` validates variants, routes, and
Fern content.
- [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 applicable item only when supported by the requested
evidence. Run targeted tests once per relevant change set and rerun
after later edits or hook autofixes that can affect the tested behavior.
Do not rerun hook-covered checks. -->
- [x] PR description includes the DCO sign-off declaration and every
commit appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — command/result or justification: Tests
are not applicable to this documentation-only change set.
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result:
- [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) — exited
0 with zero errors; Fern reported the existing unauthenticated
redirect-check and light-mode contrast warnings.
- [x] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

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

---------

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

Labels

area: ci CI workflows, checks, release automation, or GitHub Actions area: docs Documentation, examples, guides, or docs build area: e2e End-to-end tests, nightly failures, or validation infrastructure area: inference Inference routing, serving, model selection, or outputs area: onboarding Onboarding FSM, provider setup, sandbox launch, or first-run flow bug-fix PR fixes a bug or regression github_actions Pull requests that update GitHub Actions code 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