Everything below is written and backed up. Nothing has been run against your lattice.
No cell was created, deleted, or modified while you slept.
---
cargo build --release --bin kai
If it throws, paste it — six files changed and I can't compile from here. If it's clean:
.\Start-KAI.ps1 -fullfleet
Then ask him *"what is the difference between a river and a lake?"* and watch for these
lines, which are new:
[Speech/Oracle] rerank: top changed (meaning 0.34, paperwork 0.33, self-question false) [Speech/Oracle] was: The comparison checks if the absolute difference between s.da_tone... [Speech/Oracle] now: <something that is actually about water>
[config flag]=0 turns it off if it makes things worse.
---
I asked him five questions through the local API and then went and got the ground truth from
[internal endpoint]. Three separate causes, all measured.
The good news first. Your two fixes landed and are working:
He created 95,844 new connections in one boot cycle. The fan-out ceiling is genuinely
gone and the graph is learning again.
Cause one: nothing in the ranking used meaning. The lexicon was loaded and handed to the
generator, and no code in the path used it to *choose*. So "difference between a river and a
lake" matched the word "difference" and returned a source comment about dopamine tone.
Cause two: "Gravity is a" is a cell. Not a truncation in the reply path — a stored cell,
three words long, source: bitnet_distill, score 2.785. And the lattice does hold the real
answer: *"When asked 'Give a simple definition of gravity.', answer: Gravity is the forc..."*.
It lost, because a short cell with total word overlap beats a long one that merely contains the
answer. There are 147 cells that end on a dangling function word with no terminal punctuation.
Cause three, and it's the big one: he has no cell about rivers. 40,365 cells, of which
31.8% is this project's own paperwork — 22.9% dev docs and Codex entries, 5.7% generated
prompt scaffolding, 4.8% source code. When he answers "who are you" with a routing rule he is
not confused about himself. He is retrieving accurately from a corpus where a third of the
shelves are the build log.
---
[internal module]Runs between retrieval and the commit gate. Three signals:
by cosine. Function words drop out for free: the scaled lexicon sorts vocabulary by corpus
frequency, so a word's id *is* its frequency rank and word_id < 120 is a stopword list
nobody had to write.
*identifier shape* (snake_case, dotted-lowercase), which is what actually catches s.da_tone
and SNC_DA_REST, since a code comment is written in English. **Validated against all 49,839
of your real labels**: 17.4% score ≥ 0.50 and the samples are exactly the Reasoning-for and
Codex-Q&A cells; 61.4% score < 0.20 and are untouched. Demotion applies **only when the
question wasn't about you** — asks_about_self needs a real marker, not a pronoun.
short unterminated one, 0.0 for a single word, because your 2,515 one-word cells are
vocabulary and not truncations.
Two things it deliberately does not do. It does not delete, quarantine or modify any cell —
every cell reachable before is reachable now, because this lattice has lost cells before. And
it does not change any score's value: it's a permutation, the multiset of scores is
preserved exactly and only the order changes, so the commit gate sees numerically identical
inputs. That gate has been accidentally opened and accidentally closed before by rescaling and
I wasn't going to make it three.
---
[config flag]=1. Your own comment says continuation is the largest term in
predict_match — 40 to 55% of the ranking weight — and is zero on all 39,696 cells, because
the Oracle path has never called bind_sequence. It is the single biggest available win.
It must not go on yet. It teaches the lattice that *this input* led to *that reply*, and right
now the replies are a comment about da_tone and the string "Gravity is a". Turning it on today
would train the errors in permanently. It goes on after retrieval is good.
--ingest-corpus is dead — don't run it. I read it. It loads from and saves to
[internal module], which is 112 KB of stale legacy state. Your live lattice is
kai-cells.bin.zst, 72 MB, 40,350 cells. The job history in your session shows it: `entries
read 0, total cells now 0`. It is disconnected from the running system.
---
data/ingest-staged/The live learning path is idle_ingest: drop a .txt in data/ingest/, one line per fact, and
he eats it while idle using store_or_reinforce — idempotent, so re-ingesting only strengthens.
I built two files and put them next to that folder, not in it, because this changes the size
of your brain and that's your call, not mine.
word-definitions-01.txt — 8,210 lines, 4,799 common words, 1.4 MB. Built from your own
dictionary.json, filtered to the google-10000 common list, obsolete senses and citations
stripped. This is the layer he is missing:
River (n) means: A large stream of water flowing in a bed or channel and emptying into the ocean, a sea, a lake, or another stream; a stream larger than a rivulet or brook. Lake (n) means: A large body of water contained in a depression of the earth's surface, and supplied from the drainage of a more or less extended area. Gravity (n) means: The tendency of a mass of matter toward a center of attraction; esp., the tendency of a body toward the center of the earth; terrestrial gravitation.
world-knowledge-01.txt — 20,568 lines, 2.7 MB. Wikipedia sentences from harvest.jsonl,
filtered hard: complete sentences only, no fragments, no pronoun openings that lost their
subject, no markup, no list debris, deduped. Encyclopedic breadth rather than definitions.
To let him eat the definitions — the higher-value file, and I'd do this one alone first:
Move-Item data\ingest-staged\word-definitions-01.txt data\ingest\
What that will do: about 8,200 new cells, taking you from 40,365 to roughly 48,500. At the
idle rate that lands in minutes. Fan-out cap goes 247 → 206, HNSW scale stays 1.00, and both
will say so in the log now. If you also move the world-knowledge file you land near 69,000 cells
and a fan-out cap of 145 — still ten times what you had this morning.
Nothing is destroyed either way, and the files stay where they are until you move them.
---
Cargo.toml synced, full measurement set in the changelog.KAIVERSE-II-THE-QUIET-LATTICE.md — two chapters, 20,843 words,written for audio.
_backup-concept-layer-2026-09-01/.