# Routing with the resident model, re-measured Date: 2026-08-05. Vikunja #320 items 2 and 3. Fixture: `internal/router/eval/ru_routing_v1.json`, now **91 cases** (76 ru, 15 en). Model: Qwen3-1.7B-UD-Q4_K_XL, llama-server on the host at 127.0.0.1:8899. Harness: `TestLLMRouterBaseline`, `make eval-models`. ## How the block was cleared Item 2 was blocked because the resident llama-server binds `--host 127.0.0.1 --port 0` inside `maven-mavend-1`. The port is kernel-assigned, scraped from stderr and never published, so no `go test` on the host can reach it. The task listed three ways out. This run took the first: a **second** llama-server on the same gguf, on a fixed host port. The Vega takes the second copy of a 1.7B without complaint. ## The numbers | configuration | full | intent-only | p50 | p95 | |---|---|---|---|---| | llm-only | 34/91 (37.4%) | 61.5% | 1.24s | 1.65s | | cascade + llm + hash fallback | 69/91 (75.8%) | 80.2% | 1.19s | 1.65s | By language, through the cascade: ru 57/76, en 12/15. Clarify: 3 false, 1 missed. No errors. Six slots deferred to the daemon. For comparison, the figures that stood in CLAUDE.md were 72.7% full and 77.9% intent-only, measured on 77 cases. The fixture has grown by 14 cases since, so this is a new baseline rather than a movement. ## llm-only is low for a reason that is not routing 37.4% full against 61.5% intent-only is the gap, and it is almost entirely slots. Every reminder case fails with "no time slot, want one". The model routes `reminder` correctly and leaves the time to the daemon, which is what the contract asks of it. The cascade fills those slots. That is why the same model scores 38 points higher inside it. Three cases errored in the llm-only arm and none in the cascade, which is the fallback working as designed. ## Item 3: latency Router p50 1.19s, p95 1.65s, max 1.79s through the cascade. The one earlier data point in the task, roughly 6s wall clock for `привет` through `POST /api/chat`, was the whole path and not the router. It is not comparable and should not be quoted as a routing number. These numbers are the homesrv floor. With the workstation up, routing completes against gemma-4-12b at p50 329ms, measured separately in `docs/evals/2026-08-02-workstation-gemma4-12b.md`. ## What still misses The confusion is concentrated in one direction: `query→fact ×4`, `query→note ×3`, `query→system ×3`. A question about his own rows that carries no interrogative reads as a statement to the model. Ten of the twenty-two failures are that shape, including "я сегодня вообще пил воду" and "чем я занимался в среду". This is the case V-546's three-head classifier is aimed at. The two `разбуди меня` cases clarify at 0.300 instead of routing `reminder`. ## Item 4 is still not run Killing the resident llama-server to confirm the classifier floor needs a permission this session does not have. The test is otherwise ready. It now has a second half. With the workstation up, killing the resident server should still complete a turn through `modelSeam`. Only killing both proves the classifier answers.