mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-08-28 05:27:41 +00:00
Splitting on the first colon in FromStr broke bare model IDs that legitimately contain one. A reference like "llama3:8b" parsed as provider "llama3" selector "8b", and since "llama3" is not a provider the lookup failed instead of passing the ID through to the pinned provider. Verified against origin/main: canonical_session_model with "future-model:latest" pinned to openrouter returned the passthrough before and a 400 after. This is not fixable by choosing a different separator. Bedrock inference-profile ARNs contain both colons and slashes, and docs/public/integrations/bedrock.mdx tells users to put arbitrary inference-profile IDs in api_id. Only the registry can tell a provider prefix from a model ID that happens to contain the separator. FromStr now leaves colon-bearing tokens bare, and ModelRef::qualify promotes only those whose prefix names a known provider. resolve() applies it, so the fallback path is covered; sessions.rs applies it before its own match so it keeps its tailored ambiguity messages. ModelRegistry is now implemented for Catalog in fabro-types, replacing the CatalogModelRegistry wrapper that existed only in start.rs, so both call sites share one registry view. Covered by regression tests at both surfaces, plus qualify unit tests for ollama tags and Bedrock ARNs. The pre-existing passthrough test canonical_session_model_preserves_unknown_passthrough_on_selected_provider passes again. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| client-sdks.mdx | ||
| fabro-api.yaml | ||
| overview.mdx | ||