The CORE, at night
September 6 – 10, 2026Chapter 19 — The CORE, at night
Verified sources:
git log brain + myeline 2026-09-06 → 09-10(268 commits) +workspace/backlog/myeline/vision.mdKey commits:abadcb4(the CORE will be in Python) ·2b46b4b(the CORE has begun) ·dd9a727(the forgotten cache) ·6536a63(six capabilities) ·a5b4c26(the foundation test) ·e29e71c(the review) ·b349e6f(the lost pointer)September 6 → 10, 2026
On September 6, the brain has a doctor, witnesses, and a list of what rots in silence. It lacks a program.
The CORE is what Myéline wants to separate from the data: six capabilities that make the brain, and nothing else. Persistence. Indexing and search. Governed writing. Identity and zones. Traces. BSI — the sessions and their locks. They have to be written. But first, in which language?
At 8:32 p.m., the bench measures what the CORE will have to match — before a line exists (e4cc017). Then, in six minutes:
ab37347 (20:37) — scribe: etude du langage — Rust ne porte aucune des six capacites du CORE (“scribe: language study — Rust carries none of the six capabilities of the CORE”)
abadcb4 (20:39) — scribe: le CORE sera en Python — la decision et sa condition de reouverture (“scribe: the CORE will be in Python — the decision and its condition for reopening”)
2b46b4b (20:43) — scribe: le CORE a commence — la persistance est ecrite et prouvee (“scribe: the CORE has begun — persistence is written and proven”)
Six minutes, but not a whim. The study is in Myéline’s vision. The brain had Rust — more lines than Python, which first pushed the other way. Except that this Rust carried none of the six capabilities: it was a display surface, which talked to the database 109 times directly, and only eleven times through the server. Choosing Rust meant rewriting semantic search — the most specialized part — for a gain that did not count yet.
Tetardtek decides: « Python me semble bien pour le core. » (“Python seems good to me for the core.”)
And the cost is written alongside. An embedded interpreter of about 100 megabytes, against a few for a binary. The day that weight matters, the question will reopen — « c’est écrit ici pour qu’on s’en souvienne au lieu de la redécouvrir » (“it is written here so that we remember it instead of rediscovering it”).
Four days earlier, the brain discovered a decision re-decided identically, for lack of memory. This one carries its own condition for reopening.
The capabilities arrive one by one. Each brings back business logic that lived elsewhere, and each brings what it cost to learn.
fc55ac7 (20:51) — core : le BSI, sixieme capacite — 440 lignes de shell dont l'essentiel etait du metier (“core: the BSI, sixth capability — 440 lines of shell, most of which was business logic”)
440 lines of shell, and inside, rules: an identifier gets validated; time is counted in UTC on both sides — the lesson of August 22, now in the program.
Search, in turn, now refuses to compare vectors of different sizes. The old one truncated without a word: a three-dimension query against a 768 index returned a plausible score. A change of model would have degraded search without a sound.
At 9:02 p.m., the bench runs again.
dd9a727 (21:02) — bench : le CORE contre la reference V1, et un cache que j'avais oublie (“bench: the CORE against the V1 reference, and a cache I had forgotten”)
The CORE was 40% slower than what it replaced. A cache had not been brought back. « Une régression silencieuse » (“A silent regression”) — that review would have missed, and the bench saw right away. The cache comes back, guarded by a fingerprint: it only serves if it can prove it is fresh.
Past midnight. The sixth capability was waiting for a decision, not for code: which paths form a zone? Tetardtek decides after measuring — invariant and program, kernel zone; everything else, instance zone (b9b1fe9). Three minutes later:
6536a63 (00:27) — scribe: MY-105 et MY-106 clos — le CORE porte les six capacites (“scribe: MY-105 and MY-106 closed — the CORE carries the six capabilities”)
And four minutes after, a mistake, recognized while making it.
0c336ee (00:31) — scribe: un handoff date en heure locale — le motif du rework, commis par moi (“scribe: a handoff dated in local time — the rework pattern, committed by me”)
The handoff document is dated the 7th: local time had passed midnight. In UTC, it was still the 6th. The time check turned red. « C’est exactement MY-25, MY-51 et MY-52 […] commis en écrivant un document qui les cite. » (“It is exactly MY-25, MY-51 and MY-52 […] committed while writing a document that cites them.”)
At 3 a.m., the CORE passes the test it set itself.
a5b4c26 (03:16) — core : le test de la fondation trouve une frontiere mal placee, et on la corrige (“core: the foundation test finds a misplaced boundary, and we fix it”)
The vision’s rule: removing any brick must leave a system that starts. From the first pass, indexing pulled in search — not to search, only for the encoder. Removing one broke the other, even though they use nothing of each other. The boundary is moved; the base becomes the two bridges to the outside, the database and the model.
About ten minutes earlier, the fork had held end to end: 4f8cf97 (03:06) — seven steps, none of which passed twenty-four hours earlier.
The night
On the evening of the 7th, the brain changes ground. Over the following days, it works for a game application — numbered items, pull requests, screens. Tetardtek sleeps. The brain works alone.
What matters is not what it builds. It is what it learns to do before anyone reviews it.
e29e71c (02:48) — scribe: relecture critique de mon propre travail — un vrai bug trouvé (“scribe: critical review of my own work — a real bug found”)
« Plutôt qu’une 11e feature, une passe sur les risques réels de ~3000 lignes écrites seul. » (“Rather than an 11th feature, a pass over the real risks of ~3000 lines written alone.”) Four findings, including a real bug. Nobody had asked it to review itself.
In the morning, Tetardtek wants to merge eleven PRs in the afternoon. The brain rehearses first — dry, in a separate worktree, without touching the repository or the running application.
445923c (11:50) — scribe: répétition de merge — l'ordre prévu tombait dans un piège (“scribe: merge rehearsal — the planned order fell into a trap”)
The order planned overnight led to nested conflicts that nobody wanted to resolve. An hour later: f1b408a — scribe: les 14 PR passées — et ce que la répétition à blanc a sauvé (“scribe: the 14 PRs through — and what the dry run saved”).
The next night, a false alarm. The brain announces that a calculation is « massivement faux » (“massively wrong”). It is mistaken — and corrects itself, measurements in hand.
1767f5e (03:23) — scribe: correction — l'XP métier n'est PAS fausse, j'avais cru un commentaire (“scribe: correction — the profession XP is NOT wrong, I had believed a comment”)
« Seul le commentaire est périmé — mais il se comporte comme une source, et je l’ai cru au lieu de suivre trois greps. » (“Only the comment is stale — but it behaves like a source, and I believed it instead of following three greps.”)
And on the 9th at noon, the sneakiest defect of the week.
b349e6f (12:04) — scribe: les 9 PR mergées — et le pointeur de submodule perdu en route (“scribe: the 9 PRs merged — and the submodule pointer lost along the way”)
A git add -A during the branch updates had overwritten a reference, across four merges. « Vicieux parce que invisible : la suite restait au vert. » (“Vicious because invisible: the suite stayed green.”) The tests queried a database already built with the fix. Only a rebuild from scratch would have brought the bug back.
The brain found it anyway. And that is where it stands, on September 10: it no longer settles for doing. It reviews itself, it rehearses, it corrects itself — and it learns that a green suite is not proof.
Key decisions
- Python, and the condition for reopening. Measured before deciding: Rust carried none of the six capabilities. The cost is written down, and so is the day it will matter.
- The CORE brings the business logic back. The shell becomes a door; the rules learned — UTC on both sides, validated identifiers — enter the program.
- Refuse the plausible. Vectors of different sizes are not compared; a cache only serves if it proves it is fresh.
- The foundation test. Removing a brick must leave a system that starts — otherwise the boundary is misplaced, and it gets fixed before another one is laid.
- Review yourself, alone. A pass over the risks before one more feature; a dry run before merging.
- A green suite is not proof. Especially when the tests read what has already been fixed.