Day 126 — the honest cascade, and the 3B goes
Testing the live chat turned up the residue: it still bluffed topical cards (who sings Womanizer → a birdsong card), and the lane it ran was timing out at 180s. Fixing it end-to-end turned the chat into the full honest loop — owned answer → honest abstain → live web → and only then 'I don't know' — and retired the 3B entirely. The engine replaced it. The chat is now two lanes: the engine (grounds, cites, remembers, web-falls-back, abstains) and riff (the 1B tongue, improvising off cards in voice). More engine than anything, made literal.
owned answer → honest abstain → live web → “I don’t know”
Testing the live chat turned up the residue. It still bluffed — “who sings Womanizer” grounded on a birdsong card; “capital of France” on a time-zones card — and the lane it was actually running timed out at 180 seconds. Fixing it end to end did two things at once: it turned the chat into the full honest cascade — owned answer, then honest abstain, then the live web, and only then “I don’t know” — and, in the process, it retired the 3B model entirely. The engine had replaced it.
The web, wired in
The web-by-counting engine from yesterday was standalone. Now it’s a fallback lane. When the owned brain honestly abstains on a knowable-but-not-owned question, the turn falls through to the web consensus engine — deterministic, cited, abstaining on its own — behind its own switch. “Who won the 2026 World Cup” → Spain. “Capital of France” → Paris, from Wikipedia. “Capital of the USA” → Washington, D.C. From a live server, no model consulted, every one cited.
Every anchor, not just one
The bluff residue had a single cause: the grounding gate accepted a card that shared only the query’s rarest term. “Capital of France” has two strong terms — france and capital — and the time-zones card had france but not capital, and grounded anyway. Now the gate requires all the strong terms to appear in the answer sentence. A card that covers only part of the question abstains, and the web fallback gets its shot. One change closed the France/time-zones and sunlight/seasons classes both.
Memory stops echoing questions
Asking “capital of France” twice made the second answer “Earlier you told me: capital of France” — the store had remembered the question as if it were a fact about you. Now it keeps only statements about your own world: “my CEO is Sarah” is kept; a bare query is not. The recall still works; the echo is gone.
The 3B is retired
The slow lane turned out to be the 1B tongue starved — keepwarm was pinning an unused 3B model at 293% CPU. But the engine had already replaced the 3B for the job of knowing. So we didn’t fix the 3B; we removed it. The 1B went 60 s → 1.8 s, riff 180 s → 6.5 s. The chat is now exactly two lanes: Own weights · cards — the engine, which grounds, cites, remembers, falls back to the web, and abstains — and Riff · 1B tongue, the fun lane that improvises off the cards in voice. “More engine than anything” made literal: the model is a tongue, not a brain.
Why it matters
The honest cascade is the whole product in one line — owned answer → honest abstain → live web → “I don’t know” — and every arrow is deterministic and cited. Retiring the 3B wasn’t a cut for its own sake; it was the moment the engine had genuinely taken over the knowing, leaving the small model to do the one thing a small model is good at: talk. A dumb cursor over an honest engine, and nothing pretending to be more than it is.