Keep popup instructions readable until continued
Show concise progress during first room create/join; reserve persistent recovery instructions for saved/uncertain attempts. Retain completed-action text until a local Continue button, without gating rules or AI. Preserve unread text across backgrounding, bounded summaries, mute and private-safe feedback. Fix the container QA helper path-import collision. Verified: typecheck, lint, 5200 offline tests, 52 HTTP tests and production build. Delayed/lost-response browser checks prove progress, refresh recovery and exact retry without duplicates. Notice stayed for over 47 seconds while the QA game progressed; Continue advances only presentation. Mobile 16px/44px controls verified. Existing games preserved. Container/deployed acceptance follows publication.
This commit is contained in:
1 parent
c2d392e155
commit
f29d05620c
10 files changed
+238
-115
No files matched your search
+23
-11
@@ -15,30 +15,41 @@ its separate mute and volume settings still apply.
|
||||
|
||||
## Bursts, refresh and controls
|
||||
|
||||
Each notice lasts 1.5 seconds and does not intercept pointer or keyboard input.
|
||||
Each notice stays visible until the player chooses **Continue** or switches
|
||||
notices off. Continue dismisses only this local message; it does not submit a
|
||||
game action, delay AI progress or pause a saved decision. Notices do not move
|
||||
keyboard focus or open a modal. Only the notice itself intercepts pointer input;
|
||||
the rest of the table remains usable. Regular text is at least 14 pixels, with
|
||||
a 44-pixel minimum button height and scrolling for a short viewport.
|
||||
|
||||
The queue holds at most three notices including the visible one. When more
|
||||
actions arrive, older pending notices merge into a count beside the most recent
|
||||
action in that group; their individual details remain in the table chronicle.
|
||||
A new burst never replaces the currently displayed notice. After arrivals stop,
|
||||
the visible notice and pending queue finish within 4.5 seconds, rather than
|
||||
retaining minutes of old events.
|
||||
A new burst never replaces the currently displayed notice. Continue displays
|
||||
the next queued notice, if any, until that notice is also dismissed.
|
||||
|
||||
Initial and restored snapshots establish a silent baseline. Already-seen events
|
||||
do not replay. Events received while notices are off or the page is hidden are
|
||||
consumed silently. Hiding the page clears any visible or queued notice. The
|
||||
consumed silently. Hiding the page clears pending notices while preserving the
|
||||
unread notice already displayed, so it is still there when the player returns. The
|
||||
**Automatic action notices** toggle remains cosmetic; it cannot submit a game
|
||||
action or change a saved decision. Reduced motion removes the fade.
|
||||
action or change a saved decision. Notices have no timed fade or dismissal.
|
||||
|
||||
## Verification boundary
|
||||
|
||||
`tests/action-notice-queue.test.tsx` checks small updates, a full 250-entry burst,
|
||||
successive bursts during an active notice, exact represented counts and the
|
||||
initial nonblocking output, plus stale/duplicate sequence handling and silent
|
||||
consumption without replay. `tests/completed-action-events.test.ts` exercises
|
||||
consumption without replay. The local presentation tests exercise Continue,
|
||||
unread text across bursts/backgrounding, mute and no replay; the rendered notice
|
||||
test checks readable content and its connected Continue control without focus
|
||||
or modal behavior. These tests do not mount a browser DOM.
|
||||
`tests/completed-action-events.test.ts` exercises
|
||||
committed results and pending/canceled paths. Private checkpoint evidence records
|
||||
the browser checks and final source-bound verification.
|
||||
|
||||
Browser QA used genuine Basic Atreides/Harkonnen/Emperor setup. Private batches
|
||||
Earlier browser QA, before the persistent Continue control, used genuine Basic
|
||||
Atreides/Harkonnen/Emperor setup. Private batches
|
||||
advanced only that QA room through real engine actions, preserving card/force
|
||||
custody and seat controllers. A seven-event burst displayed the Emperor's
|
||||
**Revival** with four earlier completed actions, then drained. The chronicle
|
||||
@@ -48,10 +59,11 @@ left it empty. Refresh retained the exact saved game row. At a 390-pixel viewpor
|
||||
the notice container was 343 pixels within a 375-pixel document without horizontal
|
||||
overflow; transient mobile text was not captured. The viewport was reset afterward.
|
||||
|
||||
The provider reports background tabs as visible, so an actual background-page
|
||||
That provider reported background tabs as visible, so an actual background-page
|
||||
transition was not exercised. The cursor tests and handler review cover that
|
||||
branch; the automated component test does not mount timers. Existing screenshot
|
||||
capture failures leave full visual acceptance open.
|
||||
branch. That earlier timed-notice evidence does not verify the persistent
|
||||
control; current browser acceptance belongs to the new checkpoint report.
|
||||
Existing screenshot capture failures leave full visual acceptance open.
|
||||
|
||||
This extends functional feedback; complete animation design, every successful
|
||||
power tag and full visual/device acceptance remain unfinished. It does not
|
||||
|
||||
Reference in new issue
Block a user