Skip to content

docs(routing): describe the router that actually ships - #50

Merged
VickyXAI merged 1 commit into
mainfrom
docs/router-core-refresh
Aug 19, 2026
Merged

docs(routing): describe the router that actually ships#50
VickyXAI merged 1 commit into
mainfrom
docs/router-core-refresh

Conversation

@VickyXAI

Copy link
Copy Markdown
Contributor

The routing pages described the pre-portfolio router. Everything factual in this PR is read out of the shipped router-core config at 18bf4ab rather than retyped.

What was wrong

claim doc said reality
Scoring dimensions 14 15negationComplexity (0.01) was missing from the table entirely
Decision pipeline ends at capability filtering task classification + portfolio ranking come after it
Capability filters 3 4 — requested output length is a hard constraint too
SIMPLE primary (auto) moonshot/kimi-k2.7 google/gemini-2.5-flash
MEDIUM primary google/gemini-3.5-flash moonshot/kimi-k2.7
REASONING primary deepseek/deepseek-reasoner xai/grok-4-1-fast-reasoning
COMPLEX fallback chain 8 models, several no longer in it the current 11
Free tier "10 models" 5 — NVIDIA EOL'd the rest
TS example free model nvidia/qwen3-next-80b-a3b-instruct EOL'd (410)

The tier table also implied the primary is the answer. It isn't any more: the portfolio ranks every capability-eligible candidate against per-task evidence, so a tool-calling turn and a proof in the same tier resolve to different models. That's now stated.

Numbers are pinned now

Dimensions, tiers, free-model count and the savings figure are wrapped in brand-numbers markers, so sync-brand-numbers.mjs --check fails when they drift instead of letting them sit wrong for months. brand-numbers.json already carried the correct values (dimensions: 15, free: 5) — the prose just wasn't reading from it. Keys in use went 4 → 7.

Python SDK page

Also picks up the 1.12.0 surface: route() for a decision without a call, smart_chat_completion() for message lists (where tools / response_format / transcript size actually drive the decision), the blockrun/auto virtual ids, the routing metadata now on the decision (task_type, method, candidates, candidate_scores), and the fact that all four clients — Base and Solana, sync and async — route identically.

Touched franklin.md, sdks/typescript.md and sdks/xrpl.md only where they repeated the "14-dimension" claim.

node scripts/sync-brand-numbers.mjs --check passes.

…umbers to brand-numbers.json

The routing pages still described the pre-portfolio router: 14 scoring
dimensions (there are 15), a pipeline that ends at capability filtering (the V3
portfolio ranks candidates after it), and a tier table whose SIMPLE, MEDIUM and
REASONING primaries had all moved. The COMPLEX fallback example listed models
that are no longer in that chain, and the free tier was described as 10 models
when NVIDIA's EOL sweep left 5.

Everything factual here is read out of the shipped router-core config at
18bf4ab rather than retyped, and the counts that rot — dimensions, tiers, free
models, savings — are now wrapped in brand-numbers markers so CI fails when
they drift again instead of letting them sit wrong for months.

The Python SDK page also gains the 1.12.0 surface: route() for a decision
without a call, smart_chat_completion() for message lists, the blockrun/auto
virtual ids, the routing metadata on the decision (task_type, method,
candidates, candidate_scores), and the note that all four clients — Base and
Solana, sync and async — route identically.
@VickyXAI
VickyXAI merged commit 188c846 into main Aug 19, 2026
1 check passed
@VickyXAI
VickyXAI deleted the docs/router-core-refresh branch August 19, 2026 04:35
VickyXAI added a commit that referenced this pull request Aug 19, 2026
… on the page (#52)

#50 added 12 `<!-- br:x -->N<!-- /br:x -->` markers across 5 docs files. Markers
are inert only where something renders markdown as HTML and drops comments.
This tree is the exception: blockrun's docs renderer ESCAPES the comment onto
the page, so a reader sees the literal `<!-- br:models.free -->`.

blockrun asserts this — brand-numbers.docs.test.ts's "carries no br: markers —
this renderer escapes them into view". It went unnoticed because blockrun
consumes this repo as a SUBMODULE PINNED to an older commit, so #50 could sit
on main perfectly green while being unshippable. It only turned red when a
pointer bump pulled it in (blockrun#397, the GLM-5.3 launch).

Stripping the wrapper leaves the value, which is exactly what the guard wants:
docs/ keeps plain numbers and the TEST is what catches staleness. Same trade
already made for public/*.md, llms.txt, package.json descriptions and shields
badges, none of which markers can reach either.

Co-authored-by: 1bcMax <viewitter@gmail.com>
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