## Verification

Compared before [96f09c6558](https://git.cafe/pingdotgg/t3code/commit/96f09c6558b098f05ad0c027afa3846209c03d4f) with after [8c8993a824](https://git.cafe/pingdotgg/t3code/commit/8c8993a824adef7db892eaad02b659b06b800a01) for [#22840](https://github.com/pingdotgg/t3code/pull/22840). Captured all 7/7 rows of the [sized proof matrix](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ee3058e857b330fa/pr-22840-proof-matrix-pass1-corrected.md).

Real app, identical copied projection fixture: active goal plus three tasks (1/3 complete), no urgent notices, empty blurred composer, tasks drawer closed, conversation at the same top position. Both narrow rows explicitly use data-chat-composer-mobile-collapsed=true; expanded refers to the notice stack only. Both isolated worktrees use their own `.t3`; fixture was copied while both servers were stopped. This proves rendering, not goal orchestration.

Rendering environment E (applies separately to every before/after image and recording below): fs-19, Linux x86_64, Chrome 154.0.0.0, desktop user agent, DPR 2, 100% font scaling (16px root), stock appearance, glass opacity 80%, backdrop-filter supported, no device/touch emulation. Client clock fixed to 2026-10-21T20:30:00Z. Whole surfaces, no cropping: 1440×900 CSS saves as 1280×800; 390×844 CSS saves as 780×1688. Recordings retain 2880×1800 video. Sidebar and thread-details panel closed; pointer outside banner for collapsed stills.

Diff0 is an amplified binary mask: every pixel with maximum RGB-channel delta >0/255 is bright orange on charcoal. DiffT uses the stated >16/255 threshold. No resizing, registration, filtering, or ignored regions were applied before comparison. A charcoal DiffT is expected where the shadow delta is below threshold; Diff0 exposes even one-level changes.

| Row / rendering environment | Before<br>[96f09c6558](https://git.cafe/pingdotgg/t3code/commit/96f09c6558) | After<br>[8c8993a824](https://git.cafe/pingdotgg/t3code/commit/8c8993a824) | Diff0 (>0) | DiffT (>16) |
|---|---|---|---|---|
| Collapsed · 1440×900 · light<br>Environment E; 1280×800 PNG | ![C-1440-light-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/12ebe77e11f54668/C-1440-light-before.png) | ![C-1440-light-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2079bf5c84f4ed6e/C-1440-light-after.png) | ![C-1440-light-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0bddfb34ca702cb0/C-1440-light-diff0.png) | ![C-1440-light-diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ab88c55746b819b8/C-1440-light-diff16.png) |
| Collapsed · 1440×900 · dark<br>Environment E; 1280×800 PNG | ![C-1440-dark-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9ef43e438947977d/C-1440-dark-before.png) | ![C-1440-dark-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/733c81f31b45b006/C-1440-dark-after.png) | ![C-1440-dark-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d152975688e00fed/C-1440-dark-diff0.png) | ![C-1440-dark-diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/07a4790937b285d6/C-1440-dark-diff16.png) |
| Collapsed · 390×844 · light<br>Environment E; 780×1688 PNG | ![C-390-light-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/eb31c0cce9c099b5/C-390-light-before.png) | ![C-390-light-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1d7e25cda9d01fe7/C-390-light-after.png) | ![C-390-light-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c29e7e464237ebfd/C-390-light-diff0.png) | ![C-390-light-diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/41d940cfcc2b2315/C-390-light-diff16.png) |
| Collapsed · 390×844 · dark<br>Environment E; 780×1688 PNG | ![C-390-dark-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b58d9aa442d70d40/C-390-dark-before.png) | ![C-390-dark-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9771c3f6c59a4e37/C-390-dark-after.png) | ![C-390-dark-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3eff3319bfb38441/C-390-dark-diff0.png) | ![C-390-dark-diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/76b9cd7e4706e10c/C-390-dark-diff16.png) |
| Expanded · 1440×900 · light<br>Environment E; 1280×800 PNG | ![E-1440-light-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f5abba38143c7173/E-1440-light-before.png) | ![E-1440-light-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9476c5de2389feea/E-1440-light-after.png) | ![E-1440-light-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d635998e832a257f/E-1440-light-diff0.png) | ![E-1440-light-diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/531fb8c2ce4567e6/E-1440-light-diff16.png) |
| Expanded · 390×844 · dark<br>Environment E; 780×1688 PNG | ![E-390-dark-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d63a990c6f1747a0/E-390-dark-before.png) | ![E-390-dark-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/df4dacb18505d86d/E-390-dark-after.png) | ![E-390-dark-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/103c75943dc49dc4/E-390-dark-diff0.png) | ![E-390-dark-diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/377f2ceecd32feb1/E-390-dark-diff16.png) |

Row 7 — collapse/expand transition · 1440×900 · light · environment E; 2880×1800 MP4. Same script on both revisions: rest for 2 seconds after recording starts; focus “Show other notices” without moving the pointer into it and press Enter; wait 2 seconds; press Escape; move pointer to (5,400) and blur; allow the collapsed state to settle. No hover-specific claim.

Video timestamps (before / after): 0:00 resting collapsed; 0:02.72 / 0:02.72 keyboard focus on peek; 0:02.84 / 0:02.85 expansion begins; 0:03.15 / 0:03.01 revealed Goal settled; 0:04.72 / 0:04.72 collapse begins after Escape; 0:05.28 / 0:05.17 returned to blurred collapsed rest. Variable-frame-rate recording includes the initial and final settled states. Recorder startup adds about 0.6 seconds between the scripted wall-clock timing and encoded timestamps.

| Before<br>[96f09c6558](https://git.cafe/pingdotgg/t3code/commit/96f09c6558) | After<br>[8c8993a824](https://git.cafe/pingdotgg/t3code/commit/8c8993a824) |
|---|---|
| [T-1440-light-before.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8e2128f343ee6290/T-1440-light-before.mp4) | [T-1440-light-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/03aa5bacdda93762/T-1440-light-after.mp4) |

Pixel results on the saved whole surfaces:

| Row | Changed pixels (>0) | Pixels >16 | Max RGB delta /255 | Changed bounds (image pixels) |
|---|---:|---:|---:|---|
| Collapsed · 1440×900 · light | 14,326 | 577 | 17 | [338, 607, 942, 640] |
| Collapsed · 1440×900 · dark | 10,749 | 0 | 4 | [338, 607, 942, 640] |
| Collapsed · 390×844 · light | 33,107 | 1,810 | 26 | [65, 1370, 715, 1446] |
| Collapsed · 390×844 · dark | 26,036 | 0 | 3 | [65, 1370, 715, 1446] |
| Expanded · 1440×900 · light | 0 | 0 | 0 | None |
| Expanded · 390×844 · dark | 0 | 0 | 0 | None |

What else changed: no other visible differences in the six final still pairs. All changed pixels lie around the collapsed peek shadow. Both expanded controls have zero changed pixels. The front Tasks banner, main composer, content, borders and layout match. The production diff changes only the Peek utility and adds `--shadow-composer-peek: 0 6px 18px rgb(0 0 0 / 6%)`; other diff files are a projection seeder, a labelled supplemental harness, and its Knip entry. The supplemental harness was not used for these captures.

Out of scope, per the sized matrix: custom themes, urgent warning/error borders, and backdrop-filter fallback use the same unconditional shadow and unchanged surface logic; remaining expanded combinations use unchanged shadows and are represented by the two controls; focused narrow editor and zero/one-banner stacks do not add a changed shadow path; desktop shell shares the web component, native mobile has a separate implementation, and local/remote/relay/tunnel transport does not select different shadow code. Hover selectors/handlers are unchanged, so there is no independent hover recording row.

Capture: Codex gpt-6.1-sol; proof audit: Claude Opus 5.5
