W and B recaptured for [#33283](https://git.cafe/pingdotgg/t3code/pull/33283). Every requested checkpoint is present; other evidence rows are unchanged. No commits, pushes, or PR-body edits.

Both sides used the same RPC fixture driver on fresh checkout-local databases with T3CODE_DEV_SEED=0. B has exactly B, IDLE, W, in that order: B fails with the changed classification, IDLE is the completed control, W is untouched. No drafts, snoozes, settled threads, or unrelated toasts. B's main pane is identical. The after B set was repeated on another fresh database after W verification to preserve those exact states.

One headless browser; one dev server side at a time. Browser Date is frozen before hydration at 2026-11-10T12:00:00.000Z, asserted before captures. Server Date is fixed at 11:00 UTC for identical fixture timestamps. 1440×1000 CSS/PNG, DPR1, dark, 16px root font; reduced motion asserted true. Real Pi 1.5.1 used only synthetic credentials and a loopback endpoint. Agent-browser 0.42.0 / Chrome 151.0.7922.108, ImageMagick RGB comparison, ffmpeg/ffprobe. No live userdata was read.

Every selected still has pixel-identical twins at least 500 ms apart, after network idle and fonts. All originals, both full-image masks and all recording contact sheets were opened and reviewed. All four recordings decoded fully. Diff0 uses max absolute RGB channel delta >0; DiffT uses >5. No masking, alignment, cropping, or resizing of compared originals.

**W — limit after two real file reads**

Before narration: 0–0.44 s expand both reads; 0.44–5.24 s hold expanded; 5.24–9.41 s both manually collapsed and held; 9.41–11.5 s the UI diverges: Resume is absent.

[W-flow-before.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/52722224e5583f23/W-flow-before.webm)

After narration: 0–0.43 s expand both reads; 0.43–4.93 s hold expanded; 4.93–9.19 s both manually collapsed and held; 9.19 s click Resume; by 10.20 s continuation succeeds and the prior reads become “Read 2 files”; hold through 14.9 s. Expansion/collapse used real focused-header Enter interactions, with each resulting aria-expanded value asserted.

[W-flow-after.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9e8025f257545228/W-flow-after.webm)

| Checkpoint | Before | After | Diff0 | DiffT (>5/255) |
|---|---|---|---|---|
| Source | [633438d54f](https://git.cafe/pingdotgg/t3code/commit/633438d54f17b99f73f1a09466ecbe4a6aa0d545) | [68414fb0aa](https://git.cafe/pingdotgg/t3code/commit/68414fb0aa3321c60eee6f714c4c5b586ed82b5e) | Full image | Full image |
| W: expanded before continuation · 1440×1000 · dark | ![W-expanded-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8fbef7f74530fda5/W-expanded-before.png) | ![W-expanded-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/443513bf939df0da/W-expanded-after.png) | ![W-expanded-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/06bc4e00d9fcbccd/W-expanded-Diff0.png) | ![W-expanded-DiffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7095218d5fcb3a28/W-expanded-DiffT.png) |
| W: collapsed before continuation · 1440×1000 · dark | ![W-collapsed-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/25807fe42d061717/W-collapsed-before.png) | ![W-collapsed-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a5df90b30f147205/W-collapsed-after.png) | ![W-collapsed-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d4c453e230ec6f80/W-collapsed-Diff0.png) | ![W-collapsed-DiffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d407a4c310971bcf/W-collapsed-DiffT.png) |

These paired end stills have identical disclosure state before continuation. The post-Resume result is separate behavioral evidence, not a mismatched comparison:

![W-continuation-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/02e05b50d2a3f779/W-continuation-after.png)

What else changed, W: B and W sidebar statuses change red Failed → amber Limited. W's sidebar title changes from the failed-state 95% foreground to full foreground. The inline red Provider error and raw error text disappear; the response footer moves up by that removed row's height. An amber usage-limit/reset-unavailable strip appears above the composer and the disabled send arrow becomes the active Resume play button. Diff0 also detects faint composer/footer glyph-edge deltas that disappear at threshold5. Read paths, file contents, disclosure positions, prompt, timestamps, sidebar membership/order, and main layout otherwise match. Both paired W states change 29,111 pixels in Diff0 and 28,442 in DiffT.

**B — sidebar, hover card, closed-folder attention, inactive notification**

Before narration: 0.21 s dispatch B while IDLE is active and the folder is closed; 1.53 s notification settled; 3.77 s dismiss it and hold closed-folder attention; 6.40 s open folder and hover B; by 8.78 s hover card settled; hold through 10.7 s.

[B-flow-before.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1b4c9ede0fbcf249/B-flow-before.webm)

After narration: 0.26 s dispatch B while IDLE is active and the folder is closed; 2.68 s notification settled; 5.55 s dismiss it and hold closed-folder attention; 9.25 s open folder and hover B; by 12.01 s hover card settled; hold through 13.9 s. Open thread is hovered in the selected notification stills on both sides so its button appearance matches.

[B-flow-after.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a27d7f571aba16a4/B-flow-after.webm)

| Checkpoint | Before | After | Diff0 | DiffT (>5/255) |
|---|---|---|---|---|
| Source | [633438d54f](https://git.cafe/pingdotgg/t3code/commit/633438d54f17b99f73f1a09466ecbe4a6aa0d545) | [68414fb0aa](https://git.cafe/pingdotgg/t3code/commit/68414fb0aa3321c60eee6f714c4c5b586ed82b5e) | Full image | Full image |
| B: hover card · 1440×1000 · dark | ![B-hover-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a134818d2be9e65f/B-hover-before.png) | ![B-hover-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/64d32926aaf2a8a1/B-hover-after.png) | ![B-hover-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b492c9ed555b32cb/B-hover-Diff0.png) | ![B-hover-DiffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/476ed358db785dd2/B-hover-DiffT.png) |
| B: closed folder · 1440×1000 · dark | ![B-folder-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1b87a9fd672c6bff/B-folder-before.png) | ![B-folder-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/941a0941ad99146d/B-folder-after.png) | ![B-folder-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c9ff83c39e47f6e6/B-folder-Diff0.png) | ![B-folder-DiffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7a0b636e2d6333d3/B-folder-DiffT.png) |
| B: inactive notification · 1440×1000 · dark | ![B-notification-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/832f7d6c83da8333/B-notification-before.png) | ![B-notification-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/30f0f86492cd0f2c/B-notification-after.png) | ![B-notification-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/476740c48fb065d7/B-notification-Diff0.png) | ![B-notification-DiffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/50a84227d348966a/B-notification-DiffT.png) |

What else changed, B: hover pair shows Failed → Limited and Error occurred → Usage limit reached, with red → amber status icons/text (Diff0 1,153 pixels; DiffT 1,126). Closed folder changes only its attention dot red → amber (32 pixels in either mask). Notification changes only that dot plus the red error icon/title Thread failed → amber warning icon/title Usage limit reached (Diff0 1,152; DiffT 1,127). Main pane, thread membership/order/states apart from classification, ages, card geometry, toast geometry, and Open thread button match exactly outside these regions.

Twins and machine-readable audits:

[twins-and-audits.zip](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/95efa5dbb210645f/twins-and-audits.zip)
[capture-audit.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/244be9307c7cbbf9/capture-audit.json)
[environment-assertions.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3478b7160428f688/environment-assertions.json)
[narration.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e731721279905354/narration.json)
[video-audit.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/65439a3b1e1a9e91/video-audit.json)
[recapture-scripts.zip](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d2ffef6be1fba2dd/recapture-scripts.zip)

Cleanup verified: both app servers, loopback stub and owned browser stopped; all five owned app/stub listening ports absent. Before worktree removed. After checkout clean at the requested head; its generated .t3 removed. Scratch is removed after the report uploads. Disk remained above 100 GB free. No requested checkpoints are missing.

AI-assisted; verified with the tests and tools listed above.

Exact ghdrop upload -m output:

![B-hover-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a134818d2be9e65f/B-hover-before.png)
![B-hover-before-twin.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1da6a59560e75e8d/B-hover-before-twin.png)
![B-hover-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/64d32926aaf2a8a1/B-hover-after.png)
![B-hover-after-twin.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/659f8e61356d603d/B-hover-after-twin.png)
![B-folder-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1b87a9fd672c6bff/B-folder-before.png)
![B-folder-before-twin.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/304569a802845182/B-folder-before-twin.png)
![B-folder-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/941a0941ad99146d/B-folder-after.png)
![B-folder-after-twin.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6ed1f5021c1376f9/B-folder-after-twin.png)
![B-notification-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/832f7d6c83da8333/B-notification-before.png)
![B-notification-before-twin.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8b681b4eb10a31b9/B-notification-before-twin.png)
![B-notification-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/30f0f86492cd0f2c/B-notification-after.png)
![B-notification-after-twin.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2fe051a03b37e146/B-notification-after-twin.png)
![W-expanded-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8fbef7f74530fda5/W-expanded-before.png)
![W-expanded-before-twin.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e1133e6061c1325e/W-expanded-before-twin.png)
![W-expanded-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/443513bf939df0da/W-expanded-after.png)
![W-expanded-after-twin.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/32d64fbc53a9b186/W-expanded-after-twin.png)
![W-collapsed-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/25807fe42d061717/W-collapsed-before.png)
![W-collapsed-before-twin.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e11c15ad2afc1166/W-collapsed-before-twin.png)
![W-collapsed-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a5df90b30f147205/W-collapsed-after.png)
![W-collapsed-after-twin.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a21df9076cc7dd33/W-collapsed-after-twin.png)
![B-hover-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b492c9ed555b32cb/B-hover-Diff0.png)
![B-hover-DiffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/476ed358db785dd2/B-hover-DiffT.png)
![B-folder-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c9ff83c39e47f6e6/B-folder-Diff0.png)
![B-folder-DiffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7a0b636e2d6333d3/B-folder-DiffT.png)
![B-notification-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/476740c48fb065d7/B-notification-Diff0.png)
![B-notification-DiffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/50a84227d348966a/B-notification-DiffT.png)
![W-expanded-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/06bc4e00d9fcbccd/W-expanded-Diff0.png)
![W-expanded-DiffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7095218d5fcb3a28/W-expanded-DiffT.png)
![W-collapsed-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d4c453e230ec6f80/W-collapsed-Diff0.png)
![W-collapsed-DiffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d407a4c310971bcf/W-collapsed-DiffT.png)
![W-continuation-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/02e05b50d2a3f779/W-continuation-after.png)
![W-continuation-after-twin.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/efd000d2dd47ea1e/W-continuation-after-twin.png)
[B-flow-before.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1b4c9ede0fbcf249/B-flow-before.webm)
[B-flow-after.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a27d7f571aba16a4/B-flow-after.webm)
[W-flow-before.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/52722224e5583f23/W-flow-before.webm)
[W-flow-after.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9e8025f257545228/W-flow-after.webm)
![B-flow-before-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0a5c445c3ec461bc/B-flow-before-sheet.png)
![B-flow-after-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cd153327e611b64c/B-flow-after-sheet.png)
![W-flow-before-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8987df6cb8739000/W-flow-before-sheet.png)
![W-flow-after-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ea44075075814a0b/W-flow-after-sheet.png)
[recapture-scripts.zip](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d2ffef6be1fba2dd/recapture-scripts.zip)
[twins-and-audits.zip](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/95efa5dbb210645f/twins-and-audits.zip)
[capture-audit.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/244be9307c7cbbf9/capture-audit.json)
[environment-assertions.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3478b7160428f688/environment-assertions.json)
[narration.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e731721279905354/narration.json)
[video-audit.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/65439a3b1e1a9e91/video-audit.json)
[manifest.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8c9465e04fb2161c/manifest.json)

FRICTION:
- tool | Browser panel could not emulate required reduced motion; two assertions failed | expose media emulation; fallback used one headless browser.
- tool | Browser init-script relaunch reset media and viewport; a detached CDP clock did not persist | install clock at browser launch, then reapply and assert capture settings.
- tool | Center/header pointer clicks raced activity collapse layout; initial attempts did not collapse the second read | use focused-header Enter and assert each disclosure state before the next action.
- capture | Notification button had an unrelated hover shade; rejected and retaken from fresh matched state | explicitly hover the same action on both sides and inspect both full-image diffs before upload.
