Async request races
If a late response can still win, the UI is lying.
Generated UI code frequently handles the happy path but not interruption. A route param changes, a search term updates twice, or the component unmounts, and an old promise still rewrites the screen.
- Audit one search or detail screen for late-arriving request writes.
- Add cancellation or freshness guards where newer input should win.
- Make one interruption test mandatory in AI-assisted frontend PRs.
Optimistic state without a trust contract
Optimistic UI is not free. Decide what truth source reconciles it.
Many drafts show instant optimistic feedback but never define how the screen repairs itself when the server disagrees.
Founder preview only. The rest of the rationale and the action list stay inside the paid archive.
Unlock the full issueSubscriptions and cleanup
Cleanup is part of correctness, not polish.
Sockets, listeners, and timers often survive the first review because the visible UI looks fine.
Founder preview only. The rest of the rationale and the action list stay inside the paid archive.
Unlock the full issue