mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-10-27 02:44:50 +01:00
Round-1 of the UX acceptance gate requested changes on four items plus a deep-link nit. All are fixed, with named browser regressions for the two blocking accessibility items. §9.1 — Escape now closes the desktop overlay sheet (768–1100px) and hands focus back to the visible control that owns the panel. The reset confirm dialog keeps priority over Escape while it is open. §9.2 — resolving an interaction card moves focus to its state chip. The controls the user just operated unmount on resolve, so focus was landing on `body` at exactly the moment the card changed under them. §6 — the replay strip gains `Play all`, and `?at=<ordinal>` becomes the single source of truth for the parked ordinal, so step / next-turn / play-all and the deep link all move the same value instead of the strip being pinned to its fixture. At 390px the strip wraps so the progress bar keeps a full row rather than being squeezed to a stub. Deliverable sizes — the T4 strip said `18.4 kB` where the T7 card said `18.0 kB` for the same artifact. Both now format through one shared `phase7FormatBytes`. `?panel=` without `rec=` now scrolls the opened section clear of the sticky panel head, so `debug-panel-open` shows the authorization records §10.2 asks for instead of leaving them below the fold. `test:browser:phase7` never ran `build:issue-thread`, and the suite's `vite preview` serves the built bundle — so the gate could pass against a stale `dist-issue-thread/`. Fixed; that is how these regressions first came up red against already-fixed source. Verification: browser suite 50/50 (46 prior + 4 new), axe clean on all 24 routes; 24 PNGs re-recorded and byte-stable across two runs (5 changed); 16/16 view-model, 23/23 phase-7 unit; live runnerd + real Codex smoke 13/13. Co-Authored-By: Paperclip <noreply@paperclip.ing>