MiniMax Code 3.1.0 checks a SubAgent's model against /^[^/\s]+\/[^/\s]+$/
(uQn in @minimax-ai/code's chunk-2XPMNZVR.js), and magpie wrote its models
under custom_provider.magpie by catalog id, so
custom_provider:magpie/bb-codex/gpt-6.1-sol was refused
(AGENT_CONFIG_INVALID).
- The writer keys each model by its catalog id with "~" for each slash
(bb-codex~gpt-6.1-sol, provider.FlatID), when exactly one served id
spells that way (provider.Flattened); else it keeps the slashed id.
- The gateway takes such an id back to that one provider's model or group
in validateModel and unprefixed (unflat / provider.Unflat): only an id
with "~", no slash, that resolves as nothing else; two ids spelled alike
are neither. Never a bare-name first hit. Key limits, middleware and
usage see the catalog id, so a key held to bb-codex/* is refused
other~gpt-6.1-sol on every route, count_tokens too.
- A config an older magpie wrote moves on the next sync: the user's keys on
a model go to its new key, defaultModel, defaultLightModel and
memory.captureModel/consolidationModel follow, and the slashed key stays
with enabled: false, so a session begun on it still resumes (checked
with mcode exec --continue). Get still reads magpie/<catalog id>, and
Disconnect still puts back the stashed default and variant.
Other agents: no installed agent bundle here (cline, command-code,
qwen-code, deepseek, pi, omp, codebuff, openclaw) has this regex; native
agents were not checked.
Verified:
- go test -tags nogui ./internal/agent ./internal/gateway ./internal/provider
(temp HOME), gofmt -l, go vet darwin/linux/windows.
- New TestMiniMaxCodeOneSlash uses the reporter's regex and ids;
TestFlatModelIDsReachTheirProvider has two providers serving
gpt-6.1-sol. Breaking unflat, mcodeKey, the key carry-over, the legacy
enabled:false and the ref rewrite each turned the tests red.
- Real run: built magpie serve in a temp HOME on 47812, two fake upstreams;
`magpie mcode magpie/other/gpt-6.1-sol` wrote other~gpt-6.1-sol; real
mcode 0.6.5 exec reached other's upstream with gpt-6.1-sol (usage:
other/gpt-6.1-sol); its agent loader accepted an agent.md with
custom_provider:magpie/other~gpt-6.1-sol and refused the two-slash one;
`magpie mcode default` put minimax/MiniMax-M2.7 back.