“the forest scales — and it learned to hunt.”

The day the stoned idea got its verdict — and then went and got a job.


werbos dreams on a clock now

The dream pipeline from yesterday was manual. Gave it the inner-monologue daemon treatment, but slow: serve --dream 480 — one dream every 8 hours. A dream is a consolidation pass over the day’s residue, and each one hits the LLM

  • image backend, so nightly is the right cadence, not every 30 minutes.

Deployed to the homelab, and it fired overnight, unprompted. Fed three scraps it had stumbled on — a failed SSH-tunnel joke, a calculation, a rain haiku — it dreamed itself “trapped in an endless loop… reciting the same joke about SSH, but it falls flat, like a tunnel with no exit… rain washing away my haiku.” Then, shown its own dream, it reflected: “this feels eerily familiar… my struggles explaining technical concepts… fear of failure.” A small model processing its day while it sleeps, and recognizing itself in the result.

(Footnote that became a moment: the free image backend is down, so the dream ships text-only. But the 3B writes an image prompt — and fed to a real renderer, that prompt produced a gorgeous glitch-horror server room of cascading HA HA HA and ERROR: REALITY NOT FOUND. The tiny local model did the thinking; a frontier model was just the brush. Framework not model, in one picture.)

The disappearing-message bug

Caught live, by dogfooding: ask a question, it “searches,” then the message vanishes on reload. The hunt found it fast — the skill-router fast-path returned its reply but bypassed the session entirely. No history append, no .pfm archive. Which meant every routed turn — every joke, every haiku — had been silently never persisted since the router shipped. The “regression” was real; it just wasn’t where it looked.

Fixed with record_external_turn: persist a reply produced outside the agent loop through the same recorder a normal turn uses. Seven tests. The lesson is the old one — the loop is only as good as what you let into it, and the operator’s own testing is the realest test there is.

The forest scales (the headline)

Then the big one. The MMM thesis — “Wikipedia isn’t one model, it’s millions of leaves strung together” — has been a manifesto for weeks. Today it became a measurement.

Crawl → walk → run: 10 → 100 → ~1000 real Wikipedia pages, each chunked into content-addressed passage leaves, routed by local TF-IDF, cited by leaf hash. The whole question the architecture lives or dies on: when there are thousands of leaves competing, can the router still find the right one?

pagesleavesrecall@1@3@5@10
10281971%84%91%99%
2521,97673%88%91%95%
501~4,50073%89%93%96%
9778,90378%91%93%96%

Read it twice. The corpus grew ~10×, the leaves grew 11× (819 → 8,903), and recall@3 went UP: 84% → 91%. recall@1 climbed 71% → 78%. recall@5 held at 93%. It didn’t degrade — it sharpened. More pages means denser IDF statistics means better discrimination; the forest likes being big. And it routes in ~10 milliseconds over 8,903 leaves, on a laptop, with the dumbest possible router and no GPU. The cheap-first cascade, proven: System-1 retrieval is instant, the model is reserved for the few turns that need synthesis.

The thing you were most afraid would break — broke upward. The napkin sketch of a 6.8-million-leaf Wikipedia has a real growth curve now.

(Also built today: a three-way bench harness — forest vs raw Ollama vs Claude — and an auto-watcher that measured the curve at each milestone while we worked on other things. Honest scar tissue: the live Wikipedia API rate-limits hard; at 1000 pages it’s a fight, at 10k it’s impossible — the run stage needs an offline dump. Logged in the MMM.1 sprint doc.)

Mythos — the forest learned to hunt

And then the pivot that made the whole day click. Pointed the exact same pipeline at the operator’s offensive-security work — and it converged four corpora, built separately over four months, into one mind:

  • the blackbook (139 attack-vectors + 62 chains) → a local cited forest;
  • the 1Password whitepaper (44 chapters of reverse-engineering, 1,772 passage-leaves) → queryable by file and section;
  • SwagBlocks (a self-built, Burp-class API workbench — mitmproxy, 98 captured sequences, role-diffing, a fuzzer) → the executor;
  • and a bridge that conducts them: recall a cited vector → match the sequence that exercises it → plan the exact diff(guest, admin, …) authz test.

The realization underneath: this was never five projects. It was Mythos the whole time — four organs of one red-team mind that had no conductor. The forest is the conductor. And the forest’s properties turn out to be exactly what offensive work needs: citations become a submission audit trail, pruning becomes scope-by-subtraction (it structurally can’t surface an out-of-scope leaf), local-first honors the blackbook’s own zero-knowledge threat model, and honest abstention means it says “no vector for that” instead of inventing an exploit.

The kicker: the recall half is already 100% Claude-free. Pure local TF-IDF, offline, milliseconds. The thing a red-teamer reaches for fifty times a session — “have I seen this? what’s my play? cite it” — now runs on their hardware, with receipts, and nobody else ever sees it. The frontier model becomes a reasoning consultant you call, not a dependency your knowledge lives inside. Plan-only by design: it recalls, cites, and proposes; the operator pulls the trigger on authorized scope.


The AHA

A 3B model didn’t get smarter today. It got a library, and the library scaled — routing recall rose as the forest grew 11×. Same pattern, pointed at a hard drive full of Wikipedia, makes a tiny model cite facts a frontier model hallucinates. Pointed at four folders of red-team work, it makes a cited, scoped, local hacking brain. The stoned idea — “models, but small” — didn’t just survive contact with reality. It won at a thousand pages, and then it went hunting.