Skip to content
Chapter 26

The kernel and the instance

October 3, 2026

Chapter 26 — The kernel and the instance

Verified sources: git log brain + myeline 2026-10-03, the descriptions of their PRs, and the MY-232 card Key commits: 04c1899b (the posture read by the engine) · 7c2b30ae (brain maj) · 022dc32a (the kernel and the instance) · 750bcdc (does a check still read?) · 0d9fa4f3 (the green rehearsal) · d1554a80 (the migration) · 86ec5062 (isolation was judging the published version) · 6ae8089a (v2.7.0)

October 3, 2026


Chapter 23 kept a promise in its list: the posture read by the engine. Today, a file says who is master. Tomorrow, perhaps, the engine itself.

On the morning of October 3, it is done.

04c1899b — Merge pull request 'v2.6.3 — le moteur lit la posture ; la zone learning juge la machine' (#621) from kernel/v2.6.3 into dev/myeline (“Merge pull request ‘v2.6.3 — the engine reads the posture; the learning zone judges the machine’ (#621) from kernel/v2.6.3 into dev/myeline”)

An instance whose posture refuses the kernel starts as a satellite, and the engine refuses it the kernel zone.


Then the move the previous chapter’s forks were missing: receiving a version.

7c2b30ae — Merge pull request 'MY-9 — brain maj : recevoir une version du gabarit' (#624) from feat/MY-9-brain-maj into dev/myeline (“Merge pull request ‘MY-9 — brain maj: receiving a version of the template’ (#624) from feat/MY-9-brain-maj into dev/myeline”)

By default, brain maj only shows its plan: what the version changes, what is yours alone, what you have modified — merged, not overwritten. A conflict on a hand-written file stops it before any merge.

Less than half an hour later, a fix. On a failure after the merge, the abort left files modified — with the message « rien n’a bougé » (“nothing has moved”).

9812285d — Merge pull request 'brain maj annule pour de vrai ; MY-232 étape 0' (#628) from fix/MY-9-annuler-pour-de-vrai into dev/myeline (“Merge pull request ‘brain maj aborts for real; MY-232 step 0’ (#628) from fix/MY-9-annuler-pour-de-vrai into dev/myeline”)


But brain maj runs into a deeper question. A fork that wants an agent of its own has only one way: modify a kernel file. So every version that touches that file becomes a conflict — and the more a fork customizes, the heavier the update.

Tetardtek states what he wants: « toujours avoir sous le coude la version publiée ET leurs modifications, sans perdre l’un ou l’autre. » (“always have at hand the published version AND their modifications, without losing either.”) The model already exists on his machine: Omarchy never touches the package, customization lives beside it, in ~/.config/, and takes precedence.

022dc32a — Merge pull request 'MY-232 — le noyau, l'instance, et agents/ comme une vue' (#626) from scribe/MY-232-noyau-instance into dev/myeline (“Merge pull request ‘MY-232 — the kernel, the instance, and agents/ as a view’ (#626) from scribe/MY-232-noyau-instance into dev/myeline”)

The form chosen is the third of those examined — « le chemin le plus pérenne et le moins bricolage » (“the most lasting and least makeshift path”), says Tetardtek, who adds: « il ne faut pas se louper ; et TOUT doit être éprouvé et testé » (“we must not get this wrong; and EVERYTHING must be tested and proven”). Cut in two. noyau/ carries what is shipped, and is never modified on a fork. instance/ carries what the fork changes. And agents/ is now just a view — links to one or the other. The 110 or so places that read agents/X.md stay correct without changing a single one.

5aea26cd — Merge pull request 'MY-232 étape 1 — brain vue' (#629) from feat/MY-232-vue into dev/myeline (“Merge pull request ‘MY-232 step 1 — brain vue’ (#629) from feat/MY-232-vue into dev/myeline”)


Before moving anything, a question: does every check still read what it must read, once agents/ has become a view?

750bcdc — Merge pull request 'MY-232 — eprouver_vue : un contrôle lit-il encore avec la vue ?' (#138) from feat/MY-232-eprouver-vue into main (“Merge pull request ‘MY-232 — eprouver_vue: does a check still read with the view?’ (#138) from feat/MY-232-eprouver-vue into main”)

Two disposable forks, one with the view, one without. The doctor run on both, check by check. A check that reads less with the view is a blindness.

The measurement finds one right away. A Myéline check asked git for the list of agents — but the view is ignored by git. It was rereading 7 files instead of 83. And it stayed green.

c599585 — Merge pull request 'MY-232 — le BSI d'avant-042 voit la vue' (#137) from fix/MY-232-bsi-voit-la-vue into main (“Merge pull request ‘MY-232 — the pre-042 BSI sees the view’ (#137) from fix/MY-232-bsi-voit-la-vue into main”)


The rest of the day looks like that. A write through a link replaced the link with an ignored file, and left git silently. An agent written by hand inside the view: git status silent, brain vue answering « 98 juste(s) » (“98 correct”), exit zero.

e97badd2 — Merge pull request 'MY-232 — la vue est juste (brain vue, docs-verite)' (#643) from feat/MY-232-vue-juste into dev/myeline (“Merge pull request ‘MY-232 — the view is correct (brain vue, docs-verite)’ (#643) from feat/MY-232-vue-juste into dev/myeline”)

Then the dress rehearsal. Disposable copies: a bare forge, a desktop, a laptop, dead ports, a disposable database. The first pass finds that the migration commit is refused, that the test suite turns red on a migrated source — 23 failures, 6 errors — and that a compiled file would leave in the template.

128ce4bd — Merge pull request 'MY-232 — ce que la répétition générale a trouvé' (#644) from feat/MY-232-hook-doc into dev/myeline (“Merge pull request ‘MY-232 — what the dress rehearsal found’ (#644) from feat/MY-232-hook-doc into dev/myeline”)

The second pass finds that the kernel lock prevents the laptop from updating. Tetardtek keeps the lock, and the laptop gets a verb of its own: brain aligne.

d595a53f — Merge pull request 'MY-232 — brain aligne, et le verrou dans brain vue' (#645) from feat/MY-232-repetition-2 into dev/myeline (“Merge pull request ‘MY-232 — brain aligne, and the lock in brain vue’ (#645) from feat/MY-232-repetition-2 into dev/myeline”)

The third pass is green.

0d9fa4f3 — Merge pull request 'MY-232 — la répétition générale est verte' (#646) from scribe/MY-232-repetition-verte into dev/myeline (“Merge pull request ‘MY-232 — the dress rehearsal is green’ (#646) from scribe/MY-232-repetition-verte into dev/myeline”)


One more relay is needed. The brain maj of v2.6.4 cannot receive the view: a fork jumping straight to the next one would be refused, or fail. v2.6.5 migrates nothing. It only teaches forks to receive what is coming.

61a2bfb0 — Merge pull request 'v2.6.5 — la version-relais vers la vue des agents' (#647) from kernel/v2.6.5 into dev/myeline (“Merge pull request ‘v2.6.5 — the relay version towards the agents’ view’ (#647) from kernel/v2.6.5 into dev/myeline”)

An anchor is set on the state before — avant-vue-20261003 — with the rollback path written in the runbook. Then, late in the afternoon, D-day.

d1554a80 — Merge pull request 'MY-232 — la migration : agents/ devient une vue' (#650) from feat/MY-232-migration into dev/myeline (“Merge pull request ‘MY-232 — the migration: agents/ becomes a view’ (#650) from feat/MY-232-migration into dev/myeline”)

Four commits. The last one makes the move itself: agents/ becomes noyau/agents/.

On the laptop, the migration goes through — but the view is built there without its catalogue, and does not say so. A shell launched remotely was not reading the end of its configuration. It is fixed within half an hour.

9d4e63d0 — Merge pull request 'MY-232 — la vue trouve Myéline sans MYELINE_ROOT' (#652) from fix/MY-232-catalogue-sans-env into dev/myeline (“Merge pull request ‘MY-232 — the view finds Myéline without MYELINE_ROOT’ (#652) from fix/MY-232-catalogue-sans-env into dev/myeline”)


In the evening, two more instruments.

The first is new: a guard, at commit time, against what must not leave for the template — four faults had slipped through during the day. While testing it, the test discovers the guard was blind to everything: a git setting, on this machine, changed the prefix of the diffs it read.

f41b7585 — Merge pull request 'MY-232 — le garde du distribué, au commit' (#654) from feat/garde-distribue into dev/myeline (“Merge pull request ‘MY-232 — the guard of what is distributed, at commit time’ (#654) from feat/garde-distribue into dev/myeline”)

v2.7.0 is tested end to end, before being published: a real fork on v2.6.5, one agent modified, one of its own, receives the new version through its own brain maj. Its doctor turns red on a guard. The view did not leave, so neither did its zone: on the fork, all of agents/ fell into free writing.

d9173a9a — Merge pull request 'MY-232 — la vue reste déclarée chez le fork (zone kernel)' (#655) from fix/MY-232-niveaux-vue into dev/myeline (“Merge pull request ‘MY-232 — the view stays declared on the fork (kernel zone)’ (#655) from fix/MY-232-niveaux-vue into dev/myeline”)

6ae8089a — Merge pull request 'v2.7.0 — la vue des agents' (#656) from kernel/v2.7.0 into dev/myeline (“Merge pull request ‘v2.7.0 — the agents’ view’ (#656) from kernel/v2.7.0 into dev/myeline”)

And the publication is refused. The isolation check finds three “hard dependencies” in the very block that states the prohibitions — its title had changed, the exemption was looking for the old one. But while looking for why, the session finds worse: this check was not judging the template just rendered. It was judging the one already published.

86ec5062 — Merge pull request 'MY-232 — l'isolation juge le gabarit écrit, et le bloc renommé' (#657) from fix/MY-232-isolation into dev/myeline (“Merge pull request ‘MY-232 — isolation judges the written template, and the renamed block’ (#657) from fix/MY-232-isolation into dev/myeline”)

Three rehearsals, an end-to-end test and every PR render had therefore judged v2.6.5.


8ef5bc44 — Merge pull request 'MY-232 — clos' (#659) from scribe/MY-232-close into dev/myeline (“Merge pull request ‘MY-232 — closed’ (#659) from scribe/MY-232-close into dev/myeline”)

In one day, the brain cut itself in two without changing a single one of the paths that read it. What is shipped is no longer touched. What is your own is no longer lost at update time.

And four times in the same day, an instrument said green about what it was not looking at. A check that read 7 files out of 83. A view that answered “correct” next to a file it did not see. A guard blind to everything. An isolation check that judged the previous version.

In chapter 18, the brain measured itself before taking itself apart. Here, it learned something else: before taking itself apart, also measure what measures.