# Narration W1-B (BEFORE 8d3b061121)

Hydration: TEST-DRIVER hold: HTTP thread snapshot route + WS subscribeThread frames (TEST-DRIVER injection, no source change). Held 2745 ms / 143 RAF frames; loading placeholder at +100 ms: True, before release: True; title in header during hold: True.

| t (mm:ss.s) | step | scrollTop | scrollHeight | gap | pill | firstVisible (y) | timeline listeners / doc keydown | overlay frame check |
|---|---|---|---|---|---|---|---|---|
| 00:27.5 | nav | | | | | | | FAIL |
| 00:28.7 | hold-start | | | | | | | FAIL |
| 00:31.5 | hold-release | | | | | | | FAIL |
| 00:33.5 | mounted → sample mounted @ 33.5s | 5146 | 5994 | 0 | False | Paragraph 089 (4.4) | 0 / 0 | FAIL |
| 00:33.5 | click-prose | | | | | | | FAIL |
| 00:33.9 | pageup → sample S_up @ 34.8s | 3662 | 5994 | 1484 | False | Paragraph 063 (35.2) | 0 / 0 | FAIL |
| 00:34.8 | tool-start → sample tool-start @ 35.4s | 3662 | 5994 | 1484 | False | Paragraph 063 (35.2) | 0 / 0 | FAIL |
| 00:35.4 | tool-finish → sample tool-finish @ 36.0s | 3662 | 5994 | 1484 | False | Paragraph 063 (35.2) | 0 / 0 | FAIL |
| 00:36.0 | prose → sample S_hold @ 36.6s | 3662 | 7111 | 2601 | False | Paragraph 063 (35.2) | 0 / 0 | FAIL |
| 00:37.0 | end → sample end @ 38.0s | 4779 | 7111 | 1484 | False | Paragraph 083 (36.0) | 0 / 0 | FAIL |
| 00:38.1 | resumed → sample S_res @ 38.7s | 6263 | 7223 | 112 | False | Paragraph 109 (5.2) | 0 / 0 | FAIL |
| 00:39.9 | done | | | | | | | FAIL |

Follow state is inferred from gap (≤2 = following) per matrix §3; there is no DOM follow attribute.
