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.