fw-08 — Broader Ideas
Cancellation is a system-wide property
"Only the most recent navigation may commit" generalises to: only the most recent search should render, only the most recent autocomplete request should populate, only the most recent tab switch should load.
The three fixes and their limits — guard, sequence number, abort — are the same everywhere, and the question that exposes the limit is always the same: what if the request had a server side effect? Then the answer moves from the client to idempotency keys or to a different API design.
That escalation, from code fix to architectural fix, is the Principal-level move.
Platform constraints you should recognise as deliberate
Back cannot be cancelled; the history stack cannot be read; popstate does not report direction.
These are user-protective decisions, not oversights. Recognising the difference between "the platform
is missing a feature" and "the platform is refusing on the user's behalf" saves a great deal of wasted
argument — and points you at the sanctioned alternative (the Navigation API) rather than a hack.
The anchoring problem, three times
Router scroll restoration, virtualized lists (fw-10), and the browser's own scroll anchoring
(bi-08) are one problem: you cannot restore a position in a document whose size you do not yet
know.
Any UI that restores state into asynchronously-sized content has it — infinite scroll, chat histories, lazy images. The solution shape is always: reserve space, or restore after size is known.
Next
fw-09 takes the same race-condition discipline to server state, where the stakes include writes.