refactor(code-queue): drop implicit-fallback semantics for minimax m2.7

M2.7 and M3 are two parallel configs, not a primary/fallback pair.
Per user feedback, drop the language and any code that framed M2.7 as
a rollback target for M3.

- code-queue-supervision.md, microservices.md, windows-passthrough.md:
  remove 'default/fallback' labels; spell out that M2.7 and M3 are
  parallel, no auto-fallback, switching provider model is an explicit
  ops action.
- scripts/src/code-queue.ts: modelTiers entries for M3 and M2.7 share
  the same 'simple-low-risk' risk; rename
  minimaxM2FallbackCandidate -> minimaxM27Candidate so the dry-run
  command string no longer implies fallback semantics.
- scripts/code-queue-submit-routing-contract-test.ts: drop 'fallback'
  wording in assertions and the 'model registry fallback' check label.

Refs: #189
This commit is contained in:
Codex
2026-06-01 07:05:02 +00:00
parent 8d3197b423
commit 794ae7c1e7
5 changed files with 11 additions and 11 deletions
@@ -77,11 +77,11 @@ export function runCodeQueueSubmitRoutingContract(): JsonRecord {
const modelPorts = asRecord(registry.modelPorts);
assertCondition(modelPorts["deepseek-chat"] === "opencode", "modelPorts should route deepseek-chat to OpenCode", registry);
assertCondition(modelPorts["minimax-m3"] === "opencode", "modelPorts should keep minimax-m3 on OpenCode", registry);
assertCondition(modelPorts["minimax-m2.7"] === "opencode", "modelPorts should keep minimax-m2.7 on OpenCode as fallback", registry);
assertCondition(modelPorts["minimax-m2.7"] === "opencode", "modelPorts should keep minimax-m2.7 on OpenCode", registry);
assertCondition(modelPorts["gpt-5.5"] === "codex", "modelPorts should keep default GPT on Codex", registry);
assertCondition(registry.opencodeModels.includes("deepseek-chat"), "opencodeModels should include deepseek-chat", registry);
assertCondition(registry.opencodeModels.includes("minimax-m3"), "opencodeModels should include minimax-m3", registry);
assertCondition(registry.opencodeModels.includes("minimax-m2.7"), "opencodeModels should include minimax-m2.7 as fallback", registry);
assertCondition(registry.opencodeModels.includes("minimax-m2.7"), "opencodeModels should include minimax-m2.7", registry);
assertCondition(registry.codexModels.includes("gpt-5.5"), "codexModels should include default GPT", registry);
const providerSource = codeModelProviderSourceContract({
codeModels: ["gpt-5.5", "deepseek", "minimax-m3", "minimax-m2.7"],
@@ -127,7 +127,7 @@ export function runCodeQueueSubmitRoutingContract(): JsonRecord {
"low-risk self-contained prompts recommend minimax-m3/OpenCode (new default)",
"runtime/core work recommends GPT-5.5/Codex",
"medium bounded frontend work recommends deepseek-chat/OpenCode",
"model registry maps deepseek-chat, minimax-m3, and minimax-m2.7 fallback to OpenCode and GPT-5.5 to Codex",
"model registry maps deepseek-chat, minimax-m3, and minimax-m2.7 to OpenCode and GPT-5.5 to Codex",
"model provider source contract exposes DeepSeek refs/presence without secret values",
"dry-run policy contract exposes model-tier concurrency",
"prod/restart/secret/DB work is commander-only",