Money register: preserve keyboard paging focus during cursor recovery #1366

Open
opened 2026-10-07 14:08:43 +00:00 by kayg · 0 comments
Owner

Parent: #688.

The new register cursor recovery paths reload around the visible identity on a 400 response or changed source revision, then return before the focusAfter branch. A keyboard page action can therefore lose its focus destination and paging intent during recovery.

The production-server probe passes after the screenshot settling phase. Two early no-screenshot runs timed out waiting for row focus after Enter on Older transactions. The exact cause of those early failures is not yet classified; it must be checked against cursor recovery and initial keyboard readiness. Existing test assertions were kept.

Keep a bounded recovery attempt and preserve the original keyboard action. Add deterministic tests for token expiry and a source revision change while a page button has focus. Loading must not wait for motion.

Evidence is in probeRegisterUi in tests/adversarial/money_register_688.mjs. This remains an unresolved UX gap in #688.

Parent: #688. The new register cursor recovery paths reload around the visible identity on a 400 response or changed source revision, then return before the `focusAfter` branch. A keyboard page action can therefore lose its focus destination and paging intent during recovery. The production-server probe passes after the screenshot settling phase. Two early no-screenshot runs timed out waiting for row focus after Enter on Older transactions. The exact cause of those early failures is not yet classified; it must be checked against cursor recovery and initial keyboard readiness. Existing test assertions were kept. Keep a bounded recovery attempt and preserve the original keyboard action. Add deterministic tests for token expiry and a source revision change while a page button has focus. Loading must not wait for motion. Evidence is in `probeRegisterUi` in `tests/adversarial/money_register_688.mjs`. This remains an unresolved UX gap in #688.
Commenting is not possible because the repository is archived.
No labels
No milestone
No project
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/calternal-v0#1366
No description provided.