Three Things Called "the Branch"
A checkout holds three separate states. The ref is where the branch points. The index is what is staged. The worktree is the files on disk. Everyday commands move all three together, which is why most people never see them apart. Plumbing moves them one at a time, on purpose — that is exactly what made the scratch-index landing three lessons back possible. The freedom that isolated the landing from its neighbors is the same freedom this lesson is about, because it is also how the landing broke the checkout those neighbors were working in.
The Staged Reversion Nobody Wrote
Follow the old behind case. The remote had commits this checkout did not, so the landing built its commit on the remote tip and moved the ref there with a compare-and-swap. Every step was correct. Now look at the checkout afterward: the ref holds another machine's commits, and the shared index and worktree still hold the files from before them. To every session working in that checkout, the other machine's work appears as a staged change reverting it — and the next ordinary commit by anyone records that reversion under their own name.
It was reproduced exactly: a file the other machine had changed from 1 to 2 read 2 at the ref, 1 in the worktree, and sat in the index staged back to 1. The publish verb, which took the same base, did something worse. It read the quest's record from the stale worktree and committed it on the remote tip, so the other machine's stamp vanished: the record's history came out holding only the new entry instead of both.
No operation failed. No error was printed. The state was incoherent, the way the first lesson of this track described three machines each being locally right — except this time the workshop manufactured the incoherence itself.
Move All Three, or Move Nothing
The rule now is short: a ref never moves past what its worktree holds. When the checkout is behind, the landing fast-forwards the checkout itself before anything is written — a fast-forward-only merge moves the ref, the index and the files together, carries unrelated edits and staged hunks through untouched, and refuses, moving nothing, when it would overwrite a local edit. A refusal stops the landing with nothing written, so running it again later is safe; the edit it protected belongs to another session, and what happens to it is a person's call. After the fast-forward, the base is the checkout's own tip; there is nothing left to choose.
The lost push race follows the same rule. The old recovery rebuilt the commit on the new remote tip and moved the ref alone — the same bug, one step later. Now the branch steps back to the landing's parent (the quest edit is still staged and still on disk), fast-forwards with its worktree to the new tip, and commits again there. If the checkout cannot follow — the fast-forward would overwrite someone's edit, or the checkout holds commits the remote lacks — the branch returns to the landing, and the landing is recorded as committed and not pushed. A recovery that exits before writing its record is worse than the gap it was guarding.
The Engine's Tree Is Not the Author's
The same season showed two more faces of one mistake: assuming that the checkout a process can see is the one that matters.
The brief that missed the remote. The engine commits every brief it writes into its own checkout, on one machine. A landing pushed from another machine seconds earlier made the engine's push lose. The log row said "not pushed", the queue command printed success, and that checkout had now diverged, so every later brief push would fail the same way. A rejected push is now replayed onto the remote tip in a scratch index and pushed — without moving the engine checkout's own branch, because moving that ref without its worktree would stage the same reversion there. Anything still off the remote prints a warning naming the machine and the command that fixes it, on every verb that writes a brief.
The review that could not see the tracks. A review request sharded by track used to be scoped by listing the engine's checkout. A quest authored on another machine exists only in that author's checkout until it lands, so the engine saw no tracks and refused — and for an evolution, the new lessons would have been silently missing from the review instead. Now the requesting machine sends the quest's file names, names only, nothing opened. A listing with no tracks is refused rather than filled in from the engine's older copy. The engine still renders, writes and commits the request, so the single writer stays single. What it stopped doing is assuming its tree is the author's.