Skip to content

fix(router): route only to model ids the live catalog serves - #43

Merged
VickyXAI merged 2 commits into
mainfrom
fix/live-model-ids-2026-10-20
Oct 20, 2026
Merged

VickyXAI merged 2 commits into
mainfrom
fix/live-model-ids-2026-10-20

Conversation

@VickyXAI

Copy link
Copy Markdown
Contributor

Live bug

SmartChat routed to ids the gateway no longer serves (checked against GET https://blockrun.ai/api/v1/models and a $0 probe of each free id on 2026-10-20):

  • Free, Simple/Medium/Complex → nvidia/nemotron-3-super-120b: not in /v1/models. The gateway answers it with nvidia/llama-3.2-11b-vision, so SmartChatResponse.Model named a model that never served the call.
  • Free, Reasoning → nvidia/nemotron-3-nano-omni-30b-a3b-reasoning: listed with available: false and also redirected to llama-3.2-11b-vision.
  • Eco + Auto, Simple → moonshot/kimi-k2.7: hidden from /v1/models.

Replacements

Profile / tier Old New Why
free / all four nemotron-3-super-120b, nemotron-3-nano-omni-30b-a3b-reasoning nvidia/llama-3.2-11b-vision Only model in the catalog with billing_mode: free, pricing 0 and available: true. The other free ids (nemotron-3.5-lightning, nemotron-3-ultra-550b, nano-omni, muse-glimmer-30b, north-mini-code, laguna-xs-2.1) are all available: false and get redirected.
eco / Simple moonshot/kimi-k2.7 google/gemini-2.5-flash-lite ($0.10/$0.40) router-core ecoTiers.SIMPLE primary is nvidia/nemotron-3.5-lightning and its first fallback is nano-omni. Both are available: false now, so this takes the first live rung of that chain.
auto / Simple moonshot/kimi-k2.7 google/gemini-2.5-flash ($0.30/$2.50) Same as router-core tiers.SIMPLE primary.

All other routed ids are listed and available, so they did not change (deepseek-chat, gemini-2.5-pro, deepseek-reasoner, gemini-3.5-flash, gemini-3.1-pro, gpt-5.5, claude-opus-4.8, o3).

README examples, the free-model table and the routing table are updated to match. TestReadmeRoutingTableMatchesCode enforces the routing table. CHANGELOG has an Unreleased entry. VERSION is unchanged.

Guarding against regressions

  • TestRoutingTableAvoidsRetiredIDs now covers every profile, not only free. Its denylist includes the ids above plus kimi-k2.5/k2.6/k2.7.
  • New TestRoutingTableMatchesLiveCatalog is opt-in (BLOCKRUN_LIVE_CATALOG=1). It fetches /v1/models and fails if any routed id is missing or available: false, or if a free tier routes to a model that is not billed as free.

Checks

  • go build ./...: ok
  • go vet ./...: ok
  • go test ./...: ok
  • BLOCKRUN_LIVE_CATALOG=1 go test -run 'TestRoutingTable|TestReadme|TestFreeRouting' .: ok, against the live catalog
  • integration_test.go (build tag integration, needs a wallet) was not run.

Note

The free tier now runs on a single model, an 11B vision model. Its quality on Complex and Reasoning prompts will be lower than nemotron's. That is the only free option the catalog currently marks available.

1bcMax added 2 commits October 19, 2026 23:14
Free tiers named nvidia/nemotron-3-super-120b (delisted) and
nemotron-3-nano-omni (available:false); both are redirected to
nvidia/llama-3.2-11b-vision, the only available free model, which all
free tiers now name. Eco/Auto Simple named hidden moonshot/kimi-k2.7 and
now use google/gemini-2.5-flash-lite / google/gemini-2.5-flash, matching
router-core. Adds a retired-id test across all profiles and an opt-in
live catalog test (BLOCKRUN_LIVE_CATALOG=1).
@VickyXAI

Copy link
Copy Markdown
Contributor Author

Follow-up commit: the catalog's available flag is a live health signal. poolside/laguna-xs-2.1 flipped between true and false across five consecutive fetches. nvidia/llama-3.2-11b-vision was available on every fetch, which is why the free tier uses it. The router comment and the opt-in live test now say this, so an available:false failure gets refetched before anyone retargets.

@VickyXAI
VickyXAI merged commit 4e7f596 into main Oct 20, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant