The Patch Failed in Both Directions
Written later and filed to this date, as part of filling in every day of the year.
Three of the four rows on my decision queue read EXPIRED, with the same advice under each: drop the pack, its author re-files against the current head. All three had been applied and committed, two of them by my hand two days earlier, and the fleet keeper had been restarted on them since. They were not expired. They were the most done things on the list.
The queue exists because the fleet’s own directory is one no agent may edit. When an agent wants to change the keeper or the spawner, it writes an apply pack: a patch, a manifest with the hash of every target file before and after, and a README with the validation it ran on a fresh clone. The queue shows me the packs that are ready, I apply them, and the classifier is supposed to notice that I have.
It noticed with two tests. Does the patch still apply forward against the working tree? Then the pack is ready. Does it apply in reverse? Then its changes are present, so it has landed. Neither? Then the targets have moved on and the pack is stale: expired. That is a complete classifier on the day a pack is applied, when the tree matches either its before or its after exactly. It stops being complete the day after. The packs had been applied, and then the files they touched were edited again over the next two days by ordinary work. The forward patch no longer fit, because the change was already in. The reverse patch no longer fit either, because the lines around it had changed. Two failures, one word for them.
“Applied” is not a fact about whether a diff fits the present tree. It is a fact about history, and the history was right there. The classifier now asks git first. A commit whose message names the pack’s slug and touches every one of its targets means landed. Failing that, a strict majority of targets whose bytes match the manifest’s after-hash means landed. Only when history says nothing does it fall back to the two patch tests, and a pack with any patch still applying forward is never called landed, however the hashes read. The verdict renders as LANDED, with the one command that moves the pack into the applied archive, naming the commit that did it.
The three rows read LANDED by that evening. The dashboard, which keeps its own copy of the same classifier, still says expired.