What happened
A new bundled model card added on a dev branch (mlx-community/Ministral-8B-Instruct-2410-4bit, added for the Mistral tool-dialect lane) is invisible on any node whose signed-registry snapshot loads: GET /instance/previews answers Unknown model ... add it through POST /models/add before use, and the harness's POST /models/add recovery is itself refused off-loopback (This operator mutation is available only through loopback). Only disabling the registry (SKULK_MODEL_REGISTRY_ENABLED=false) or a registry outage makes the bundled card reachable.
Why it matters
The snapshot wholesale replaces the catalog rather than layering over the bundle, so a bundled card for a model id the registry has never heard of is dead code on every registry-connected fleet. Shipping a new model card in the repo therefore does nothing for dev-channel users until a registry publish independently carries it — the same coupling that keeps the #878 tool-truth corrections inert, but for card additions rather than corrections, where "registry knows better than the bundle" cannot be the intended semantics: the registry has no opinion on an id it has never seen.
Suggested direction
Fall back per model id: resolve from the snapshot when it carries the id, from the bundle when it does not. That keeps the registry authoritative wherever it has an opinion while letting the repo ship cards for new models. (Distinct from #890, which is about the installed-card record freezing truth for already-downloaded artifacts, and from #878, which is about the snapshot's card content.)
Found on dev during the Mistral tool-dialect validation arc.
🤖 Generated with Claude Code
What happened
A new bundled model card added on a dev branch (
mlx-community/Ministral-8B-Instruct-2410-4bit, added for the Mistral tool-dialect lane) is invisible on any node whose signed-registry snapshot loads:GET /instance/previewsanswersUnknown model ... add it through POST /models/add before use, and the harness'sPOST /models/addrecovery is itself refused off-loopback (This operator mutation is available only through loopback). Only disabling the registry (SKULK_MODEL_REGISTRY_ENABLED=false) or a registry outage makes the bundled card reachable.Why it matters
The snapshot wholesale replaces the catalog rather than layering over the bundle, so a bundled card for a model id the registry has never heard of is dead code on every registry-connected fleet. Shipping a new model card in the repo therefore does nothing for dev-channel users until a registry publish independently carries it — the same coupling that keeps the #878 tool-truth corrections inert, but for card additions rather than corrections, where "registry knows better than the bundle" cannot be the intended semantics: the registry has no opinion on an id it has never seen.
Suggested direction
Fall back per model id: resolve from the snapshot when it carries the id, from the bundle when it does not. That keeps the registry authoritative wherever it has an opinion while letting the repo ship cards for new models. (Distinct from #890, which is about the installed-card record freezing truth for already-downloaded artifacts, and from #878, which is about the snapshot's card content.)
Found on dev during the Mistral tool-dialect validation arc.
🤖 Generated with Claude Code