Desktop Back rapid double-click defeats pushState-sentinel trap (#109 regression) #144
Labels
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/cellblock#144
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Behavior (operator playtest 2026-06-24 against v1.0.0)
REGRESSION on #109 partial coverage: single Back press is correctly trapped (per-design globally inert), but rapid double-click / multi-click navigates the browser back to the page-load entry point.
Severity: MED — known-design gap surfaced
#109's pushState-sentinel trap re-pushes on popstate, but rapid Back-presses can pop the sentinel BEFORE the popstate handler runs the re-push. The race window allows the second Back to navigate the underlying history-entry (page-load).
Likely root cause area
main.ts popstate handler is async-relative to browser's history-navigation. Browser fires popstate AFTER history changes; if a second Back fires during the popstate handler's re-push window, the second pop sees no sentinel to trap.
Fix-direction (Shipwright lane)
Options (need substrate-grounded probe to choose):
Per the (A) operator-ratified globally-inert disposition for #109, this looks like a real gap rather than acceptable behavior. Lean (a) or (b).
Cross-refs
Anchor
2026-06-24 operator playtest of v1.0.0 release.