Commit 778811d
authored
fix(inference): retire unavailable Kimi K2.6 endpoint (#6475)
<!-- 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`):** #6461 is still open and this head is
currently mergeable against live `main`. If #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>1 parent 7b0b318 commit 778811d
15 files changed
Lines changed: 114 additions & 48 deletions
File tree
- .github/workflows
- ci
- docs
- inference
- reference
- src/lib/inference
- test
- e2e
- live
- support
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1144 | 1144 | | |
1145 | 1145 | | |
1146 | 1146 | | |
1147 | | - | |
| 1147 | + | |
1148 | 1148 | | |
1149 | 1149 | | |
1150 | 1150 | | |
| |||
1157 | 1157 | | |
1158 | 1158 | | |
1159 | 1159 | | |
1160 | | - | |
1161 | | - | |
1162 | 1160 | | |
1163 | 1161 | | |
1164 | 1162 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
93 | 93 | | |
94 | 94 | | |
95 | 95 | | |
96 | | - | |
| 96 | + | |
97 | 97 | | |
98 | 98 | | |
99 | 99 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
54 | | - | |
| 54 | + | |
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
| |||
81 | 81 | | |
82 | 82 | | |
83 | 83 | | |
84 | | - | |
| 84 | + | |
85 | 85 | | |
86 | 86 | | |
87 | 87 | | |
| |||
110 | 110 | | |
111 | 111 | | |
112 | 112 | | |
113 | | - | |
| 113 | + | |
| 114 | + | |
114 | 115 | | |
115 | 116 | | |
116 | 117 | | |
| |||
119 | 120 | | |
120 | 121 | | |
121 | 122 | | |
122 | | - | |
123 | 123 | | |
124 | 124 | | |
125 | 125 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
81 | 81 | | |
82 | 82 | | |
83 | 83 | | |
84 | | - | |
| 84 | + | |
85 | 85 | | |
86 | 86 | | |
87 | 87 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
95 | 95 | | |
96 | 96 | | |
97 | 97 | | |
98 | | - | |
| 98 | + | |
99 | 99 | | |
100 | 100 | | |
101 | 101 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
98 | 98 | | |
99 | 99 | | |
100 | 100 | | |
101 | | - | |
102 | 101 | | |
103 | 102 | | |
104 | 103 | | |
| |||
136 | 135 | | |
137 | 136 | | |
138 | 137 | | |
139 | | - | |
140 | | - | |
141 | | - | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
142 | 144 | | |
143 | 145 | | |
144 | 146 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
58 | | - | |
59 | 58 | | |
60 | 59 | | |
61 | 60 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
37 | | - | |
| 37 | + | |
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
44 | | - | |
| 44 | + | |
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
51 | 55 | | |
52 | 56 | | |
53 | 57 | | |
54 | | - | |
| 58 | + | |
55 | 59 | | |
56 | 60 | | |
57 | 61 | | |
| |||
91 | 95 | | |
92 | 96 | | |
93 | 97 | | |
94 | | - | |
| 98 | + | |
95 | 99 | | |
96 | 100 | | |
97 | 101 | | |
| |||
101 | 105 | | |
102 | 106 | | |
103 | 107 | | |
104 | | - | |
| 108 | + | |
105 | 109 | | |
106 | 110 | | |
107 | 111 | | |
| |||
122 | 126 | | |
123 | 127 | | |
124 | 128 | | |
125 | | - | |
126 | 129 | | |
127 | 130 | | |
128 | 131 | | |
| |||
183 | 186 | | |
184 | 187 | | |
185 | 188 | | |
| 189 | + | |
186 | 190 | | |
187 | 191 | | |
188 | 192 | | |
| |||
257 | 261 | | |
258 | 262 | | |
259 | 263 | | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
260 | 267 | | |
261 | 268 | | |
262 | 269 | | |
| |||
283 | 290 | | |
284 | 291 | | |
285 | 292 | | |
286 | | - | |
| 293 | + | |
287 | 294 | | |
288 | | - | |
| 295 | + | |
289 | 296 | | |
290 | | - | |
| 297 | + | |
291 | 298 | | |
292 | 299 | | |
293 | 300 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
18 | 22 | | |
19 | 23 | | |
20 | 24 | | |
| |||
0 commit comments