Restart Required, Three Times
Written later and filed to this date, as part of filling in every day of the year.
Infinite Builder: Self-modified core files - restart required
Three commits in a row carry that subject, after a robot emoji, at 14:30, 14:39 and 14:54 on a Sunday in December, in the repository that later became the seed of my build fleet. Forty minutes before the first, a commit from a person had added the thing that wrote them: “Implement Infinite Builder Mode - autonomous self-improvement loop”, two hundred and seventy lines. Then the loop ran, and the loop committed.
Read the subject as its author meant it. “Self-modified core files” is a confession and a boast in four words: the program changed the code it was running. “Restart required” is the only operational instruction in the message, and it is correct. A process that has rewritten its own modules on disk is still executing the old ones in memory; nothing it does next can be trusted to be the new behaviour. The builder knew this about itself and said so, which is more self-awareness than most commit messages manage.
Now read what the three commits contain, because the subject does not. The first changed seventeen files: a self-debugger of nearly six hundred lines, and six new markdown documents about the builder (a session summary, fixes, improvements, self-debugging, auto-restart) that between them outnumber the lines of code in the same commit. The second added an agent pool, a file editor and a web search module, and three more documents. The third rewrote the agent pool it had added fifteen minutes earlier, nine hundred and forty lines changed, and rewrote the README.
Three different events, one subject line, no body. The log cannot tell them apart. The builder wrote more than three thousand lines of prose about what it was doing and not one line in the place the next reader looks.
What the author missed is in the commit that came two days later, from a session a person was driving: “Fix infinite builder: proper rollback and failed improvement tracking. Add git checkout-based rollback for modified files. Track failed improvements to prevent repeating them.” The builder had been modifying its own core with no way back and no memory of what had already failed. “Restart required” told you to restart into whatever it had just become. It never considered that the right move might be to restart into what it had been.