"A change never waits for an observation." — Tinker architecture
Measured, Then Moved
Tinker reports a before/after comparison from Watchfire around every command, so Dad can see whether hiding the editing distractions changed anything. The first version took the comparison literally: read Watchfire, then hide, then read Watchfire again, then report. The review pass measured what that cost. One reading is a fresh worker process plus an SSH round trip to the Watchfire host: 1.08 to 1.24 seconds on the workbench, and up to the worker's 25-second timeout when Watchfire cannot be reached. A shortcut that does nothing visible for over a second reads as a missed key press; Dad presses again, and a toggle pressed twice is a toggle undone.
The New Order
Now the change starts at once. The "before" sample is chosen without waiting: if a reading finished within the last five seconds and reported no problem, that is the before; otherwise a reading is requested as the command starts, running alongside the hide rather than in front of it. The "after" sample is always requested after the command ends — and if a reading is already in flight, Tinker waits for it and requests a fresh one, so "after" is never a sample that started before the change. The status line moves through three states: what is being applied, what was applied ("Final Cut editing applied (3 changes) · reading Watchfire…"), and finally the comparison when both samples are in.
Is a Concurrent "Before" Still Honest?
A before-sample that completes after the hide began might already include some of the hide's effect. The architecture addresses this directly: such a sample "can only narrow the measured difference, never invent one." If the before is partly after, the difference shrinks toward zero; it cannot grow. An honest comparison is allowed to understate.
One Request, Many Askers
While Settings is open, Tinker refreshes the observation every five seconds, and commands may ask for samples at the same time. Concurrent readers share one worker request: the first caller starts a task, later callers await the same task, and the task clears itself in the same main-actor turn that publishes its result, so nobody can join a request that has already answered. The app door's answer for a command waits for the full summary, so Pippa gets the comparison, while Dad's key press got its effect immediately.