# Recording guide

Times below are approximate playback seconds; JSON registry milestones are authoritative for typed state. Registry subscribers run before React paints, so immediate subscription samples can show the prior disabled property; endpoint samples after animation frame and stills show settled controls.

| Recording | Playback guide |
|---|---|
| V1-before-1440-light.mp4 | 0 healthy granting session/draft; about 1 refresh begins; about 7 real typed six-second timeout; Send becomes disabled; about 13 delay removed and refresh recovers without reload. |
| V1-after-1440-light.mp4 | 0 healthy/refresh; about 6 real typed timeout; Send remains enabled and draft survives; about 12 recovery without reload. |
| V1-before-1440-dark.mp4 and phone before variants | Same healthy, refresh, six-second timeout, recovery sequence. Endpoint still pairs identify the settled denied state. |
| V1-head-390-verified-timeout-recovery.mp4 | Long retained warmup with earlier unavailable response; use final verified sequence only: about54 real refresh after healthy success; about60 typed timeout retains grant and enabled Send; light/dark endpoint captures; about63 recovery. Earlier segment is not timeout proof. |
| V2-head-grant-rejection-timeout-regrant.mp4 | 0 healthy; about1 browser-local HTTP401 clears grant and disables Send; viewport/theme endpoint capture; about17 subsequent real timeout still has previousSuccess None and stays denied; about18 healthy real regrant enables Send. Open menu in this recording is retained; use clean-denied stills as final endpoints. |
| I1-head-rename-restore-during-timeout.mp4 | 0 healthy refresh; about6 typed timeout; thread actions; about20 rename persists as Timeout permission evidence; about24 restore New thread. No provider turn. |
| V3-head-1440-timeout-denial-regrant.mp4 | 0 both independent environments grant; about0.4 B refresh; about6.9 B typed timeout keeps aggregate control non-inert; about7.1 B-only HTTP401 makes aggregate control inert while A remains granting; about7.6 real regrant removes inert. |

Full originals are retained. Recordings are silent; this timeline narrates the actions and the accompanying runtime-milestones.json records the state transitions. Video contact sheets were opened for inspection. No token-bearing pairing flow was recorded.
