feat(plugins): catch code-mode drift between catalogs shipping the same model (#115183)

* feat(plugins): catch code-mode drift between catalogs sharing one model

Adds a contract test that groups bundled catalog rows by shared upstream
model and requires every row in a group to declare compat.codeMode once any
sibling does. Rows sharing a model id group automatically; rows under
different ids opt in with the new manifest-only `upstreamModel` marker.

Moves the kimi catalog into its manifest so the scan can see it, and records
the tier reseller catalogs were silently missing as explicit "capable".

* docs: regenerate docs map for the shared-model code-mode section
This commit is contained in:
Peter Steinberger
2026-07-28 08:52:21 -04:00
committed by GitHub
parent 4eab19a25d
commit 99ec30b44b
19 changed files with 393 additions and 128 deletions
+8 -4
View File
@@ -52,7 +52,8 @@
"compat": {
"supportsUsageInStreaming": true,
"supportsReasoningEffort": true,
"maxTokensField": "max_tokens"
"maxTokensField": "max_tokens",
"codeMode": "capable"
}
},
{
@@ -77,7 +78,8 @@
"compat": {
"supportsUsageInStreaming": true,
"supportsReasoningEffort": true,
"maxTokensField": "max_tokens"
"maxTokensField": "max_tokens",
"codeMode": "capable"
},
"status": "deprecated",
"replacedBy": "claude-opus-5"
@@ -133,7 +135,8 @@
"xhigh",
"max"
],
"maxTokensField": "max_tokens"
"maxTokensField": "max_tokens",
"codeMode": "capable"
}
},
{
@@ -179,7 +182,8 @@
"compat": {
"supportsUsageInStreaming": true,
"supportsReasoningEffort": true,
"maxTokensField": "max_tokens"
"maxTokensField": "max_tokens",
"codeMode": "capable"
},
"status": "deprecated",
"replacedBy": "gpt-5.6-sol"