fw-08 step 02 — Loaders, and the race that defines routing

Tasks

  1. Async loaders per route, resolved before the transition commits.
  2. Reproduce the stale loader deterministically. Navigate A→B→C with controlled latencies so that B resolves last. If your reproduction is "click fast", you have observed the bug, not reproduced it.
  3. Implement three fixes: render-time guard, navigation sequence number, AbortController.
  4. Rank them. Then answer the question that separates seniority: which is correct when the loader has a server side effect?
  5. Ship abort plus sequence guard, and explain why cancellation alone is insufficient.

Done when

  • Deterministic reproduction, not an observation
  • Three fixes implemented and ranked
  • The server-side-effect answer written down, with its architectural implication