"What you saw is a memory. What you're about to change is the present. Never confuse the two."
The Gap Between Seeing and Doing
Every file operation has a gap: the moment the UI showed you the file, and the moment you actually act on it. It might be a second; it might be an hour if a menu sat open. In that gap the world can move — the file can be renamed, replaced, or deleted; the volume can unmount and remount; permissions can change; the destination folder can fill up or vanish; a collision that wasn't there can appear. Security people call this class of bug time-of-check to time-of-use, and it is where careless file tools lose data.
Check Late, Not Early
The fix is discipline about when you validate. Waygate does not trust what was true when it drew the row. At apply time — the instant before the engine touches disk — it re-resolves the reference and confirms the whole precondition set: the path resolves, the resource identity matches, the volume is the same one, permissions still allow it, the source metadata is unchanged, the destination is ready, and the collision state is what the plan assumed. Any mismatch stops the operation before a single byte moves.
Why This Ties the Track Together
This is the payoff of everything in this track. The filesystem is canonical (so revalidation reads the truth). A path isn't identity (so we check identity, not just existence). Refresh re-enumerates (so the view is honest). The database is a notebook (so there's no stale catalog to trust). Revalidate-at-apply is the moment all four rules get spent: they exist so that the last check before a mutation can be made against reality, not memory.