Findings for [#33283](https://git.cafe/pingdotgg/t3code/pull/33283), proof-audit-3, W/B recheck only, 2026-11-10.

1. **W — INSUFFICIENT under the requested clean-frame rule.** The previous expansion-state problem is repaired: both reads are visibly expanded, then visibly collapsed for several seconds before Resume. Both matched still pairs are clean. However, [W-flow-after.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9e8025f257545228/W-flow-after.webm) shows a composer spinner at 9.2 s and a red toast reading “Codex error: The usage limit has been reached” at 9.5–9.7 s, over the prompt while continuation is running. It is the prior failure's raw text, not a new failure: continuation succeeds by 10.2 s. The toast is an undisclosed transient overlay in the supplied recording. The spinner is the ordinary pending Resume state, not evidence of a stuck request; nevertheless, the supplied audit rule expressly rejects a frame containing a spinner. The verdict follows that rule and the stale-error overlay, not an assertion that manual collapse or continuation failed. The clean supplemental continuation still does not remove those recording frames.

2. **B — INSUFFICIENT for the exact timestamp/narration requirement.** The previous fixture drift is repaired; all three B still pairs and masks isolate classification changes. But the claimed notification-settled timestamps are early in both recordings. In [B-flow-before.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1b4c9ede0fbcf249/B-flow-before.webm), the 1.5 s frame bracketing the narrated 1.53 s checkpoint has most of the toast clipped beyond the right edge; at 1.6 s it is still moving, and it reaches its held position around 1.8–2.0 s. In [B-flow-after.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a27d7f571aba16a4/B-flow-after.webm), the 2.6/2.7 s frames bracketing the narrated 2.68 s checkpoint still show horizontal entry motion and softened/doubled toast edges; the held position appears around 2.8–2.9 s. Dismissal also leaves clipped exit frames at approximately 3.8 s before and 5.6 s after; the closed-folder holds are clean by 4.1/5.9 s. These are normal UI transitions, not a demonstrated regression introduced by the Pi adapter, but they do not meet the requested all-frames-clean and narration-at-that-time criteria. Correct the settled timestamps and address the stated clean-frame requirement for the recordings. There is no need to redo the already-matched B still pairs.

W after, 9.5 s: raw prior-error toast over the prompt during Resume.

![W after at 9.5 seconds showing the prior raw-error toast](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f253a0aa11a035fb/W-flow-after-exact-9.5.png)

[W after at 9.2 seconds, composer spinner](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a59daa978702ea72/W-flow-after-exact-9.2.png).

B before: timestamped notification crops, showing clipping at 1.5 s and entry motion before the later hold. Crops are explanatory views only; all numerical diffs used complete, unmodified 1440×1000 originals.

![B before notification entry at 0.1 second intervals from 1.2 through 2.2 seconds](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8614a04f3c4faa96/B-flow-before-detail-sheet.png)

B after: notification remains in entry motion at the narrated 2.68 s checkpoint.

![B after notification entry at 0.1 second intervals from 2.4 through 3.4 seconds](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e1d505dd71dd4752/B-flow-after-detail-sheet.png)

| Row | Status | Rechecked result |
|---|---|---|
| W | INSUFFICIENT | Expanded/collapsed still pairs, twins, masks and visible manual collapse pass. Resume succeeds. Recording contains the spinner and stale raw-error overlay identified above. |
| B | INSUFFICIENT | Hover/folder/notification still pairs, twins, masks and matched control state pass. Notification “settled” narration points into entry transitions; recordings contain clipped transition frames. |

The other 14 rows retain their earlier accepted status and limitations; they were not reopened in this audit.

Verified image arithmetic:

| Checkpoint | Diff0 changed pixels | DiffT (>5/255) changed pixels | Delivered masks reproduced |
|---|---:|---:|---|
| W expanded | 29,111 | 28,442 | Both exactly |
| W collapsed | 29,111 | 28,442 | Both exactly |
| B hover | 1,153 | 1,126 | Both exactly |
| B closed folder | 32 | 32 | Both exactly |
| B notification | 1,152 | 1,127 | Both exactly |

- Independently decoded full RGB for all 11 original/twin pairs, including W continuation. Each pair is pixel-identical and file-identical. The capture script waits 550 ms between original and twin; the delivered images independently establish equality, while the elapsed interval is supported by the script rather than embedded image metadata.
- Recomputed all 10 full-image masks from downloaded originals using max absolute RGB channel delta >0 and >5. Every mask matches the delivered mask pixels exactly, with the reported counts and bounding boxes. No alignment, crop, resizing or masked region was used. [Independent numeric results](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/db99f5147d5644dd/independent-audit.json).
- All 46 entries in the delivered manifest match their file SHA-256. All 32 selected PNGs (11 originals, 11 twins, 10 masks) are 1440×1000. Every selected original, twin, mask and all four supplied contact sheets were opened. The stills have matching dark theme, readable text, no loading placeholder, stale toast, clipped target text or unintended blank render. The large empty conversation area is ordinary unused space. The small marks at the left of W continuation are the existing timeline minimap, not ghosted text.
- Environment assertions consistently report 1440×1000 CSS, DPR1, dark, 16px root font, Date 2026-11-10T12:00:00.000Z and reduced motion true. This is delivered assertion evidence, not a new browser reconstruction. The existing toast code has a 0.5 s transform transition without a reduced-motion override, consistent with the entry/exit motion visible despite that media assertion.

Narration inspection:

All four WebMs fully decode without ffmpeg errors, are 1440×1000 at 10 fps, and have the reported durations: B before 10.7 s, B after 13.9 s, W before 11.5 s, W after 14.9 s. Frames were extracted with ffmpeg at every narrated timestamp and 0.3 s later; critical intervals were additionally extracted at every 0.1 s. The exact frame-index samples confirm the seeking results. Supplied full-recording contact sheets were also inspected.

| Recording | What the sampled frames show |
|---|---|
| W before | Initial frame has both reads collapsed. At the 0.17 s mark, the next encoded 0.2 s frame already has alpha expanded (the “initially collapsed” label is slightly early/late relative to video frame boundaries). Both are expanded at 0.44 s, both are collapsed at 5.24 s, and no Resume exists at 9.41 s. The visible collapsed hold is real. |
| W after | Both initially collapsed at 0/0.2 s, both expanded at 0.43 s, both collapsed at 4.93 s. At the 9.19 s Resume action sample the control is pending/spinning; raw-error toast follows at 9.5–9.7 s. At 10.2 s continuation has succeeded and the earlier reads are grouped as “Read 2 files.” |
| B before | IDLE active/folder closed at 0.21 s. Notification is entering, not settled, at 1.53 s. Dismissal is in progress at 3.77 s; clean closed-folder attention by 4.07 s. Folder open at 6.40 s and hover card settled at 8.78 s. |
| B after | IDLE active/folder closed at 0.26 s. Notification is entering, not settled, at 2.68 s. Dismissal is in progress at 5.55 s; clean closed-folder attention by 5.85 s. Folder open at 9.25 s and hover card settled at 12.01 s. |

Source columns and “what else changed”:

- The index's before column links [633438d54f](https://git.cafe/pingdotgg/t3code/commit/633438d54f17b99f73f1a09466ecbe4a6aa0d545); its after column links [68414fb0aa](https://git.cafe/pingdotgg/t3code/commit/68414fb0aa3321c60eee6f714c4c5b586ed82b5e). Both labels match the requested commits. The read-only checkout is clean at that exact head. The merge-base of the head and origin/main resolves to the requested before commit. The local branch named main points elsewhere, so source comparison used the explicit requested commit, not that local alias. These are checked source identities and caption claims; screenshots do not embed build-SHA attestation.
- The source diff touches only [adapter.ts](https://git.cafe/pingdotgg/t3code/blob/68414fb0aa3321c60eee6f714c4c5b586ed82b5e/packages/provider-pi/src/server/adapter.ts) and its focused tests. Usage-limit model errors and exhausted retry errors change classification; resetAt is derived only when a usable minute count is present. W/B use the existing unknown-reset UI.
- W's matched-pair disclosure is accurate: B/W sidebar Failed→Limited; selected W title opacity changes from failed-state 95% foreground to full foreground; inline raw error disappears and response footer moves up; amber reset-unavailable banner and active Resume appear. Diff0's additional faint composer glyph edges disappear at threshold 5. Existing [ComposerSurface](https://git.cafe/pingdotgg/t3code/blob/68414fb0aa3321c60eee6f714c4c5b586ed82b5e/apps/web/src/components/chat/ComposerSurface.tsx) switches its compositing layers when an attached banner is present, so these faint edges do not establish unrelated fixture drift. Read positions, content, membership/order and prompt match. The separate post-Resume still is correctly excluded from the before/after masks. The W recording's raw-error toast is not disclosed by that matched-still change list.
- B's lists match the masks: only Failed/Limited and Error occurred/Usage limit reached in the hover pair; only the red/amber folder dot in the folder pair; only that dot and notification icon/title in the notification pair. Main pane, counts, membership/order, ages, control state, geometry and button shade match. [SidebarThreadRow](https://git.cafe/pingdotgg/t3code/blob/68414fb0aa3321c60eee6f714c4c5b586ed82b5e/apps/web/src/components/sidebar/SidebarThreadRow.tsx) and [ThreadNotificationCoordinator](https://git.cafe/pingdotgg/t3code/blob/68414fb0aa3321c60eee6f714c4c5b586ed82b5e/apps/web/src/components/ThreadNotificationCoordinator.tsx) contain the existing classification-dependent labels/colors.

Completed requested W/B coverage within the 30-minute budget. No capture rebuild was required or attempted. No source edits, pushes, forge comments, test runs, dev servers or browser sessions were created. Evidence and this report were uploaded with ghdrop; scratch is removed immediately after report upload, before final handback. Disk remained at 106 GB available.

FRICTION:
- tool | Python Pillow was unavailable; exact RGB verification completed with installed ImageMagick and the Python standard library | check available image tools before choosing the decoder.

VERDICT: INSUFFICIENT W, B
