# Citation save-and-send evidence for [#33440](https://git.cafe/pingdotgg/t3code/pull/33440)

6 / 6 scoped matrix rows captured, covering 9 viewport/mode variants, 20 primary recordings and final stills, plus the fresh-database R1-N after rebuild. Every row has a real-app recording; no row is replaced by a test or description.

Before (main merge-base): [f7281124ba](https://git.cafe/pingdotgg/t3code/commit/f7281124ba923aef7e917bc8cf6d02878a49edd3). After (current head): [f3e4dd630e](https://git.cafe/pingdotgg/t3code/commit/f3e4dd630e14f9fd4502eaba762aa940f8806ebb). R2b regression reference only: [eb8ab9da9e](https://git.cafe/pingdotgg/t3code/commit/eb8ab9da9ea1558a5735a4d19ef86f0cc55df164) (intermediate head, superseded).

Environment: Linux x86_64; headless Chromium 148.0.7778.96; Playwright 1.58.2; no device/UA emulation (N enables touch capability); DPR 1; browser zoom and font scaling 100%; default app fonts; hardware Ctrl; frozen browser clock 2026-11-10 04:12:00 UTC; prefers-reduced-motion: reduce; identical CSS visibility:hidden masks on message .tabular-nums metadata and innermost Working for / Worked for duration labels; mask documented in the visible HUD.

D = 1440×1000 dark. N = 390×844 light. Every still and recording uses the whole stated viewport, with the same scripted scroll position on both revisions. The HUD counts messages for the active surface/thread; the Settings preview shows zero. Simple typography uses its shared Interface preview; advanced enables Separate fonts and uses Prompt preview.

## What else changed

- Additional nonfunctional difference: R3, R4 and R5 each have eight one-intensity-level antialiasing pixels on the right composer border (none survive the 2% threshold). They are included in Diff0 and its AE count.
- R1-D, R1-N and R5-D: the retained composer prompt, citation chip and comment pencil disappear on the current head; fresh draft starts at the beginning. The submitted timeline content and message counts remain the same.
- R2 and R2b: no changed pixels in the delivered main-versus-current-head final frames. R3 and R4 have identical content and layout, with only the eight border antialiasing pixels per row noted above.
- R2b reference only: the intermediate head, superseded, puts after before the chip. Its HUD also explicitly labels that superseded revision; it is not part of the main-versus-current-head diff.
- No additional app changes are claimed from thresholded comparisons; exact zero-threshold images and counts are supplied for every pair.

## Capture and comparison method

Synthetic data only, entered through the real UI and Replay (dev). Each revision creates its own database with T3CODE_DEV_SEED=0; no live database was read or copied. Before each final still: reduced motion, network idle, fonts ready, pointer parked, screenshot caret hidden, then two byte-identical PNGs 500 ms apart. All delivered stills passed. All delivered stills and diff images were opened for inspection; recording contact sheets were inspected across the actions and final state. MP4s preserve continuous interaction and trim setup only. Narrated times below are approximate video positions.

Diff0 = zero-threshold exact RGB difference amplified ×255. DiffT = ImageMagick compare -fuzz 2%, magenta changed pixels on black. AE counts are changed-pixel counts. Nothing-else-changed claims rely on zero-threshold output, never only on DiffT.

## R1-D — 1440×1000, dark

Environment for both recordings and all image columns: Linux x86_64; headless Chromium 148.0.7778.96; Playwright 1.58.2; no device/UA emulation (N enables touch capability); DPR 1; browser zoom and font scaling 100%; default app fonts; hardware Ctrl; frozen browser clock 2026-11-10 04:12:00 UTC; prefers-reduced-motion: reduce; identical CSS visibility:hidden masks on message .tabular-nums metadata and innermost Working for / Worked for duration labels; mask documented in the visible HUD.

Main retains the sent prompt and citation. The current head clears both and accepts only fresh draft. Both send exactly one message.

Before steps: 0.00s Type check it again; 0.94s Select assistant text | Click Cite; 3.22s Ctrl+Enter in untouched empty comment; 4.67s One submission | Observe composer; 5.70s Turn complete | Type fresh draft without clicking composer.

After steps: 0.00s Type check it again; 0.95s Select assistant text | Click Cite; 3.23s Ctrl+Enter in untouched empty comment; 4.18s One submission | Observe composer; 5.40s Turn complete | Type fresh draft without clicking composer.

| Before recording | After recording |
|---|---|
| [R1-D-before.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a7f3e1a3b4b9c1eb/R1-D-before.mp4) | [R1-D-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f809beeeda544025/R1-D-after.mp4) |

| Before | After | Diff0 | DiffT (2%) |
|---|---|---|---|
| ![R1-D-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2ff5f875fd496a23/R1-D-before.png)<br>[f7281124ba](https://git.cafe/pingdotgg/t3code/commit/f7281124ba923aef7e917bc8cf6d02878a49edd3) | ![R1-D-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/26cc0810349ebeae/R1-D-after.png)<br>[f3e4dd630e](https://git.cafe/pingdotgg/t3code/commit/f3e4dd630e14f9fd4502eaba762aa940f8806ebb) | ![R1-D-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fbf5ce0f924699df/R1-D-Diff0.png)<br>[f7281124ba](https://git.cafe/pingdotgg/t3code/commit/f7281124ba923aef7e917bc8cf6d02878a49edd3) → [f3e4dd630e](https://git.cafe/pingdotgg/t3code/commit/f3e4dd630e14f9fd4502eaba762aa940f8806ebb) | ![R1-D-DiffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cc726b2e9d2819f6/R1-D-DiffT.png)<br>[f7281124ba](https://git.cafe/pingdotgg/t3code/commit/f7281124ba923aef7e917bc8cf6d02878a49edd3) → [f3e4dd630e](https://git.cafe/pingdotgg/t3code/commit/f3e4dd630e14f9fd4502eaba762aa940f8806ebb) |

Changed pixels: zero threshold **2215 / 1440000**; 2% threshold **2158 / 1440000**.

Recording review frames: [Before contact sheet](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/288a9d0937570faa/R1-D-before-contact.png) · [After contact sheet](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/849fa173849bfda0/R1-D-after-contact.png).

## R1-N — 390×844, light

Environment for both recordings and all image columns: Linux x86_64; headless Chromium 148.0.7778.96; Playwright 1.58.2; no device/UA emulation (N enables touch capability); DPR 1; browser zoom and font scaling 100%; default app fonts; hardware Ctrl; frozen browser clock 2026-11-10 04:12:00 UTC; prefers-reduced-motion: reduce; identical CSS visibility:hidden masks on message .tabular-nums metadata and innermost Working for / Worked for duration labels; mask documented in the visible HUD.

Same result at the narrow light viewport: exactly one send; the current head accepts only fresh draft.

Before steps: 0.00s Type check it again; 0.92s Select assistant text | Click Cite; 2.77s Ctrl+Enter in untouched empty comment; 4.23s One submission | Observe composer; 5.25s Turn complete | Type fresh draft without clicking composer.

After steps: 0.00s Type check it again; 0.90s Select assistant text | Click Cite; 2.66s Ctrl+Enter in untouched empty comment; 4.15s One submission | Observe composer; 5.18s Turn complete | Type fresh draft without clicking composer.

| Before recording | After recording |
|---|---|
| [R1-N-before.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9fe806d5a0f2e240/R1-N-before.mp4) | [R1-N-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/dbe52c8455309c4e/R1-N-after.mp4) |

| Before | After | Diff0 | DiffT (2%) |
|---|---|---|---|
| ![R1-N-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/74544d536c0093d4/R1-N-before.png)<br>[f7281124ba](https://git.cafe/pingdotgg/t3code/commit/f7281124ba923aef7e917bc8cf6d02878a49edd3) | ![R1-N-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2d4f6ed996df0055/R1-N-after.png)<br>[f3e4dd630e](https://git.cafe/pingdotgg/t3code/commit/f3e4dd630e14f9fd4502eaba762aa940f8806ebb) | ![R1-N-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2656ce3ab375c948/R1-N-Diff0.png)<br>[f7281124ba](https://git.cafe/pingdotgg/t3code/commit/f7281124ba923aef7e917bc8cf6d02878a49edd3) → [f3e4dd630e](https://git.cafe/pingdotgg/t3code/commit/f3e4dd630e14f9fd4502eaba762aa940f8806ebb) | ![R1-N-DiffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/51d3fc1a4304755e/R1-N-DiffT.png)<br>[f7281124ba](https://git.cafe/pingdotgg/t3code/commit/f7281124ba923aef7e917bc8cf6d02878a49edd3) → [f3e4dd630e](https://git.cafe/pingdotgg/t3code/commit/f3e4dd630e14f9fd4502eaba762aa940f8806ebb) |

Changed pixels: zero threshold **2711 / 329160**; 2% threshold **2602 / 329160**.

Recording review frames: [Before contact sheet](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5d8fbed1abbcd02f/R1-N-before-contact.png) · [After contact sheet](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/149746be5727e563/R1-N-after-contact.png).

## R2b-simple-D — 1440×1000, dark

Environment for both recordings and all image columns: Linux x86_64; headless Chromium 148.0.7778.96; Playwright 1.58.2; no device/UA emulation (N enables touch capability); DPR 1; browser zoom and font scaling 100%; default app fonts; hardware Ctrl; frozen browser clock 2026-11-10 04:12:00 UTC; prefers-reduced-motion: reduce; identical CSS visibility:hidden masks on message .tabular-nums metadata and innermost Working for / Worked for duration labels; mask documented in the visible HUD.

Main and current head both place the complete after immediately after the citation. No reopen or click. Typing begins as soon as the popup returns focus, without a fixed delay.

Before steps: 0.00s Open citation comment; 1.98s Ctrl+Enter | Save and send (no callback); 2.96s Immediate typing completed: after; 3.66s Center preview for final frame.

After steps: 0.00s Open citation comment; 2.07s Ctrl+Enter | Save and send (no callback); 2.83s Immediate typing completed: after; 3.53s Center preview for final frame.

| Before recording | After recording |
|---|---|
| [R2b-simple-D-before.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d73219287eb4f276/R2b-simple-D-before.mp4) | [R2b-simple-D-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7f50869ccfd037f9/R2b-simple-D-after.mp4) |

| Before | After | Diff0 | DiffT (2%) |
|---|---|---|---|
| ![R2b-simple-D-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0038368c010236c6/R2b-simple-D-before.png)<br>[f7281124ba](https://git.cafe/pingdotgg/t3code/commit/f7281124ba923aef7e917bc8cf6d02878a49edd3) | ![R2b-simple-D-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f8de9de18da095b9/R2b-simple-D-after.png)<br>[f3e4dd630e](https://git.cafe/pingdotgg/t3code/commit/f3e4dd630e14f9fd4502eaba762aa940f8806ebb) | ![R2b-simple-D-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/dbd8ed9ef87f14b2/R2b-simple-D-Diff0.png)<br>[f7281124ba](https://git.cafe/pingdotgg/t3code/commit/f7281124ba923aef7e917bc8cf6d02878a49edd3) → [f3e4dd630e](https://git.cafe/pingdotgg/t3code/commit/f3e4dd630e14f9fd4502eaba762aa940f8806ebb) | ![R2b-simple-D-DiffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ba5e5f622f195d53/R2b-simple-D-DiffT.png)<br>[f7281124ba](https://git.cafe/pingdotgg/t3code/commit/f7281124ba923aef7e917bc8cf6d02878a49edd3) → [f3e4dd630e](https://git.cafe/pingdotgg/t3code/commit/f3e4dd630e14f9fd4502eaba762aa940f8806ebb) |

Changed pixels: zero threshold **0 / 1440000**; 2% threshold **0 / 1440000**.

Recording review frames: [Before contact sheet](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f50818eb9eb744f1/R2b-simple-D-before-contact.png) · [After contact sheet](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ce26d1ddda03987a/R2b-simple-D-after-contact.png).

### Intermediate head, superseded — regression reference

Steps: 0.00s Open citation comment; 2.03s Ctrl+Enter | Save and send (no callback); 2.86s Immediate typing completed: after; 3.56s Center preview for final frame.

[R2b-simple-D-v1.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/53945e8329f41b6a/R2b-simple-D-v1.mp4)

![R2b-simple-D-v1.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f063a26f69b8d739/R2b-simple-D-v1.png)

[eb8ab9da9e](https://git.cafe/pingdotgg/t3code/commit/eb8ab9da9ea1558a5735a4d19ef86f0cc55df164). The typed after is before the citation chip. [Recording contact sheet](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2363d632b34989e6/R2b-simple-D-v1-contact.png).

## R2b-advanced-D — 1440×1000, dark

Environment for both recordings and all image columns: Linux x86_64; headless Chromium 148.0.7778.96; Playwright 1.58.2; no device/UA emulation (N enables touch capability); DPR 1; browser zoom and font scaling 100%; default app fonts; hardware Ctrl; frozen browser clock 2026-11-10 04:12:00 UTC; prefers-reduced-motion: reduce; identical CSS visibility:hidden masks on message .tabular-nums metadata and innermost Working for / Worked for duration labels; mask documented in the visible HUD.

Advanced with Separate fonts: same immediate-typing result as simple. No reopen or click; typing begins on the real return-focus event.

Before steps: 0.00s Open citation comment; 1.97s Ctrl+Enter | Save and send (no callback); 2.88s Immediate typing completed: after; 3.58s Center preview for final frame.

After steps: 0.00s Open citation comment; 2.08s Ctrl+Enter | Save and send (no callback); 2.97s Immediate typing completed: after; 3.67s Center preview for final frame.

| Before recording | After recording |
|---|---|
| [R2b-advanced-D-before.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4ed5b48f372d724e/R2b-advanced-D-before.mp4) | [R2b-advanced-D-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ed4edefc0451cd8e/R2b-advanced-D-after.mp4) |

| Before | After | Diff0 | DiffT (2%) |
|---|---|---|---|
| ![R2b-advanced-D-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/284f9f5b588b3fce/R2b-advanced-D-before.png)<br>[f7281124ba](https://git.cafe/pingdotgg/t3code/commit/f7281124ba923aef7e917bc8cf6d02878a49edd3) | ![R2b-advanced-D-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7c0f0d1849684b81/R2b-advanced-D-after.png)<br>[f3e4dd630e](https://git.cafe/pingdotgg/t3code/commit/f3e4dd630e14f9fd4502eaba762aa940f8806ebb) | ![R2b-advanced-D-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ef1ceb623d44c288/R2b-advanced-D-Diff0.png)<br>[f7281124ba](https://git.cafe/pingdotgg/t3code/commit/f7281124ba923aef7e917bc8cf6d02878a49edd3) → [f3e4dd630e](https://git.cafe/pingdotgg/t3code/commit/f3e4dd630e14f9fd4502eaba762aa940f8806ebb) | ![R2b-advanced-D-DiffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/78e03b5a3a513262/R2b-advanced-D-DiffT.png)<br>[f7281124ba](https://git.cafe/pingdotgg/t3code/commit/f7281124ba923aef7e917bc8cf6d02878a49edd3) → [f3e4dd630e](https://git.cafe/pingdotgg/t3code/commit/f3e4dd630e14f9fd4502eaba762aa940f8806ebb) |

Changed pixels: zero threshold **0 / 1440000**; 2% threshold **0 / 1440000**.

Recording review frames: [Before contact sheet](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/26127995647c3adb/R2b-advanced-D-before-contact.png) · [After contact sheet](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6679c60d27b6cde9/R2b-advanced-D-after-contact.png).

### Intermediate head, superseded — regression reference

Steps: 0.00s Open citation comment; 2.01s Ctrl+Enter | Save and send (no callback); 2.80s Immediate typing completed: after; 3.50s Center preview for final frame.

[R2b-advanced-D-v1.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/522fd44437e09c2f/R2b-advanced-D-v1.mp4)

![R2b-advanced-D-v1.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8af539f43ec75ec3/R2b-advanced-D-v1.png)

[eb8ab9da9e](https://git.cafe/pingdotgg/t3code/commit/eb8ab9da9ea1558a5735a4d19ef86f0cc55df164). The typed after is before the citation chip. [Recording contact sheet](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0d0b80a7fbe2b9d7/R2b-advanced-D-v1-contact.png).

## R5-D — 1440×1000, dark

Environment for both recordings and all image columns: Linux x86_64; headless Chromium 148.0.7778.96; Playwright 1.58.2; no device/UA emulation (N enables touch capability); DPR 1; browser zoom and font scaling 100%; default app fonts; hardware Ctrl; frozen browser clock 2026-11-10 04:12:00 UTC; prefers-reduced-motion: reduce; identical CSS visibility:hidden masks on message .tabular-nums metadata and innermost Working for / Worked for duration labels; mask documented in the visible HUD.

The real 1 queued message state was observed on both sides. After Replay drains, main retains the sent prompt and citation; the current head accepts only fresh draft. Exactly one additional user message is sent.

Before steps: 0.00s Type check it again; 0.97s Select assistant text | Click Cite; 3.66s Save empty comment | Approve first Replay write; 4.60s Reopen empty comment while running | Ctrl+Enter; 6.93s Queued submission | Observe draft and queue; 14.10s Approve Replay fixture write; 17.99s Turn complete | Type fresh draft without clicking composer.

After steps: 0.00s Type check it again; 1.07s Select assistant text | Click Cite; 3.89s Save empty comment | Approve first Replay write; 5.27s Reopen empty comment while running | Ctrl+Enter; 7.43s Queued submission | Observe draft and queue; 12.52s Approve Replay fixture write; 18.06s Turn complete | Type fresh draft without clicking composer.

| Before recording | After recording |
|---|---|
| [R5-D-before.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/549f57af230ad29e/R5-D-before.mp4) | [R5-D-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/97b181b02fe1fed1/R5-D-after.mp4) |

| Before | After | Diff0 | DiffT (2%) |
|---|---|---|---|
| ![R5-D-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a6e768b25a3e3e74/R5-D-before.png)<br>[f7281124ba](https://git.cafe/pingdotgg/t3code/commit/f7281124ba923aef7e917bc8cf6d02878a49edd3) | ![R5-D-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c5f4f6fdf38081a5/R5-D-after.png)<br>[f3e4dd630e](https://git.cafe/pingdotgg/t3code/commit/f3e4dd630e14f9fd4502eaba762aa940f8806ebb) | ![R5-D-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d3bb68f815224bab/R5-D-Diff0.png)<br>[f7281124ba](https://git.cafe/pingdotgg/t3code/commit/f7281124ba923aef7e917bc8cf6d02878a49edd3) → [f3e4dd630e](https://git.cafe/pingdotgg/t3code/commit/f3e4dd630e14f9fd4502eaba762aa940f8806ebb) | ![R5-D-DiffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7de3d8c32d652841/R5-D-DiffT.png)<br>[f7281124ba](https://git.cafe/pingdotgg/t3code/commit/f7281124ba923aef7e917bc8cf6d02878a49edd3) → [f3e4dd630e](https://git.cafe/pingdotgg/t3code/commit/f3e4dd630e14f9fd4502eaba762aa940f8806ebb) |

Changed pixels: zero threshold **2415 / 1440000**; 2% threshold **2330 / 1440000**.

Recording review frames: [Before contact sheet](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c914027b7940897b/R5-D-before-contact.png) · [After contact sheet](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6483337b9ae6e049/R5-D-after-contact.png).

## R2-simple-D — 1440×1000, dark

Environment for both recordings and all image columns: Linux x86_64; headless Chromium 148.0.7778.96; Playwright 1.58.2; no device/UA emulation (N enables touch capability); DPR 1; browser zoom and font scaling 100%; default app fonts; hardware Ctrl; frozen browser clock 2026-11-10 04:12:00 UTC; prefers-reduced-motion: reduce; identical CSS visibility:hidden masks on message .tabular-nums metadata and innermost Working for / Worked for duration labels; mask documented in the visible HUD.

No send callback: Ctrl+Enter, reopen, plain Enter Save, then type after. Both place after after the citation; no messages are sent.

Before steps: 0.00s Open citation comment; 1.99s Ctrl+Enter | Save and send (no callback); 3.18s Reopen comment | Enter to Save; 5.28s Type after without clicking preview; 5.90s Immediate typing completed: after; 6.60s Center preview for final frame.

After steps: 0.00s Open citation comment; 1.85s Ctrl+Enter | Save and send (no callback); 2.87s Reopen comment | Enter to Save; 4.65s Type after without clicking preview; 5.25s Immediate typing completed: after; 5.95s Center preview for final frame.

| Before recording | After recording |
|---|---|
| [R2-simple-D-before.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/dd3636f7b5caff86/R2-simple-D-before.mp4) | [R2-simple-D-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d57eb23979336c2c/R2-simple-D-after.mp4) |

| Before | After | Diff0 | DiffT (2%) |
|---|---|---|---|
| ![R2-simple-D-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/049268847a32a768/R2-simple-D-before.png)<br>[f7281124ba](https://git.cafe/pingdotgg/t3code/commit/f7281124ba923aef7e917bc8cf6d02878a49edd3) | ![R2-simple-D-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e60b40f7bc33587f/R2-simple-D-after.png)<br>[f3e4dd630e](https://git.cafe/pingdotgg/t3code/commit/f3e4dd630e14f9fd4502eaba762aa940f8806ebb) | ![R2-simple-D-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6aad319147741c98/R2-simple-D-Diff0.png)<br>[f7281124ba](https://git.cafe/pingdotgg/t3code/commit/f7281124ba923aef7e917bc8cf6d02878a49edd3) → [f3e4dd630e](https://git.cafe/pingdotgg/t3code/commit/f3e4dd630e14f9fd4502eaba762aa940f8806ebb) | ![R2-simple-D-DiffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5f8aecfad45afab3/R2-simple-D-DiffT.png)<br>[f7281124ba](https://git.cafe/pingdotgg/t3code/commit/f7281124ba923aef7e917bc8cf6d02878a49edd3) → [f3e4dd630e](https://git.cafe/pingdotgg/t3code/commit/f3e4dd630e14f9fd4502eaba762aa940f8806ebb) |

Changed pixels: zero threshold **0 / 1440000**; 2% threshold **0 / 1440000**.

Recording review frames: [Before contact sheet](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0d07e0d436cde69e/R2-simple-D-before-contact.png) · [After contact sheet](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3b9e397245bde7f8/R2-simple-D-after-contact.png).

## R2-advanced-D — 1440×1000, dark

Environment for both recordings and all image columns: Linux x86_64; headless Chromium 148.0.7778.96; Playwright 1.58.2; no device/UA emulation (N enables touch capability); DPR 1; browser zoom and font scaling 100%; default app fonts; hardware Ctrl; frozen browser clock 2026-11-10 04:12:00 UTC; prefers-reduced-motion: reduce; identical CSS visibility:hidden masks on message .tabular-nums metadata and innermost Working for / Worked for duration labels; mask documented in the visible HUD.

Advanced with Separate fonts: same no-callback / subsequent plain Save control; no messages sent.

Before steps: 0.00s Open citation comment; 1.85s Ctrl+Enter | Save and send (no callback); 2.85s Reopen comment | Enter to Save; 4.64s Type after without clicking preview; 5.28s Immediate typing completed: after; 5.98s Center preview for final frame.

After steps: 0.00s Open citation comment; 1.91s Ctrl+Enter | Save and send (no callback); 2.93s Reopen comment | Enter to Save; 4.71s Type after without clicking preview; 5.30s Immediate typing completed: after; 6.00s Center preview for final frame.

| Before recording | After recording |
|---|---|
| [R2-advanced-D-before.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b69bd9406c771655/R2-advanced-D-before.mp4) | [R2-advanced-D-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b403acab57ea8b5d/R2-advanced-D-after.mp4) |

| Before | After | Diff0 | DiffT (2%) |
|---|---|---|---|
| ![R2-advanced-D-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e5754601d45b995e/R2-advanced-D-before.png)<br>[f7281124ba](https://git.cafe/pingdotgg/t3code/commit/f7281124ba923aef7e917bc8cf6d02878a49edd3) | ![R2-advanced-D-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/afc0dd7669372d20/R2-advanced-D-after.png)<br>[f3e4dd630e](https://git.cafe/pingdotgg/t3code/commit/f3e4dd630e14f9fd4502eaba762aa940f8806ebb) | ![R2-advanced-D-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d1dc12c6c1b7e0ef/R2-advanced-D-Diff0.png)<br>[f7281124ba](https://git.cafe/pingdotgg/t3code/commit/f7281124ba923aef7e917bc8cf6d02878a49edd3) → [f3e4dd630e](https://git.cafe/pingdotgg/t3code/commit/f3e4dd630e14f9fd4502eaba762aa940f8806ebb) | ![R2-advanced-D-DiffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e9ee90f23d46664c/R2-advanced-D-DiffT.png)<br>[f7281124ba](https://git.cafe/pingdotgg/t3code/commit/f7281124ba923aef7e917bc8cf6d02878a49edd3) → [f3e4dd630e](https://git.cafe/pingdotgg/t3code/commit/f3e4dd630e14f9fd4502eaba762aa940f8806ebb) |

Changed pixels: zero threshold **0 / 1440000**; 2% threshold **0 / 1440000**.

Recording review frames: [Before contact sheet](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b1d2d017e0f350d8/R2-advanced-D-before-contact.png) · [After contact sheet](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0ed2c1ba936d2439/R2-advanced-D-after-contact.png).

## R3-D — 1440×1000, dark

Environment for both recordings and all image columns: Linux x86_64; headless Chromium 148.0.7778.96; Playwright 1.58.2; no device/UA emulation (N enables touch capability); DPR 1; browser zoom and font scaling 100%; default app fonts; hardware Ctrl; frozen browser clock 2026-11-10 04:12:00 UTC; prefers-reduced-motion: reduce; identical CSS visibility:hidden masks on message .tabular-nums metadata and innermost Working for / Worked for duration labels; mask documented in the visible HUD.

Plain Enter Save preserves the caret after the citation. Both insert after before trailing text and send no messages.

Before steps: 0.00s Type check it again; 1.39s Select assistant text | Click Cite; 4.47s Type comment: please check | Enter to Save; 6.14s Type after without clicking composer.

After steps: 0.00s Type check it again; 1.09s Select assistant text | Click Cite; 3.99s Type comment: please check | Enter to Save; 5.94s Type after without clicking composer.

| Before recording | After recording |
|---|---|
| [R3-D-before.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d27c1c92b09b48b4/R3-D-before.mp4) | [R3-D-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/440b4e360abf41c2/R3-D-after.mp4) |

| Before | After | Diff0 | DiffT (2%) |
|---|---|---|---|
| ![R3-D-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2a124b974dd188e1/R3-D-before.png)<br>[f7281124ba](https://git.cafe/pingdotgg/t3code/commit/f7281124ba923aef7e917bc8cf6d02878a49edd3) | ![R3-D-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e571cc2cc84e7a2e/R3-D-after.png)<br>[f3e4dd630e](https://git.cafe/pingdotgg/t3code/commit/f3e4dd630e14f9fd4502eaba762aa940f8806ebb) | ![R3-D-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/126d917a6b364333/R3-D-Diff0.png)<br>[f7281124ba](https://git.cafe/pingdotgg/t3code/commit/f7281124ba923aef7e917bc8cf6d02878a49edd3) → [f3e4dd630e](https://git.cafe/pingdotgg/t3code/commit/f3e4dd630e14f9fd4502eaba762aa940f8806ebb) | ![R3-D-DiffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f8b33dcaf5951b03/R3-D-DiffT.png)<br>[f7281124ba](https://git.cafe/pingdotgg/t3code/commit/f7281124ba923aef7e917bc8cf6d02878a49edd3) → [f3e4dd630e](https://git.cafe/pingdotgg/t3code/commit/f3e4dd630e14f9fd4502eaba762aa940f8806ebb) |

Changed pixels: zero threshold **8 / 1440000**; 2% threshold **0 / 1440000**.

Recording review frames: [Before contact sheet](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2084f7605c1f3562/R3-D-before-contact.png) · [After contact sheet](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/546674b4cd657851/R3-D-after-contact.png).

## R4-D — 1440×1000, dark

Environment for both recordings and all image columns: Linux x86_64; headless Chromium 148.0.7778.96; Playwright 1.58.2; no device/UA emulation (N enables touch capability); DPR 1; browser zoom and font scaling 100%; default app fonts; hardware Ctrl; frozen browser clock 2026-11-10 04:12:00 UTC; prefers-reduced-motion: reduce; identical CSS visibility:hidden masks on message .tabular-nums metadata and innermost Working for / Worked for duration labels; mask documented in the visible HUD.

Pointer click on the main Send while the empty citation comment is open clears the composer on both revisions; exactly one message is sent.

Before steps: 0.00s Type check it again; 0.96s Select assistant text | Click Cite; 3.66s Pointer click main Send; 5.21s One submission | Observe composer; 7.29s Turn complete | Type fresh draft without clicking composer.

After steps: 0.00s Type check it again; 1.11s Select assistant text | Click Cite; 3.87s Pointer click main Send; 5.34s One submission | Observe composer; 7.69s Turn complete | Type fresh draft without clicking composer.

| Before recording | After recording |
|---|---|
| [R4-D-before.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/da27bd4dc61756cd/R4-D-before.mp4) | [R4-D-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/310a210c889bafd9/R4-D-after.mp4) |

| Before | After | Diff0 | DiffT (2%) |
|---|---|---|---|
| ![R4-D-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2e876d96affe0a2b/R4-D-before.png)<br>[f7281124ba](https://git.cafe/pingdotgg/t3code/commit/f7281124ba923aef7e917bc8cf6d02878a49edd3) | ![R4-D-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0f7fe97b4e1bbfd4/R4-D-after.png)<br>[f3e4dd630e](https://git.cafe/pingdotgg/t3code/commit/f3e4dd630e14f9fd4502eaba762aa940f8806ebb) | ![R4-D-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5778db9d05dceb2a/R4-D-Diff0.png)<br>[f7281124ba](https://git.cafe/pingdotgg/t3code/commit/f7281124ba923aef7e917bc8cf6d02878a49edd3) → [f3e4dd630e](https://git.cafe/pingdotgg/t3code/commit/f3e4dd630e14f9fd4502eaba762aa940f8806ebb) | ![R4-D-DiffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e8264b46a8831867/R4-D-DiffT.png)<br>[f7281124ba](https://git.cafe/pingdotgg/t3code/commit/f7281124ba923aef7e917bc8cf6d02878a49edd3) → [f3e4dd630e](https://git.cafe/pingdotgg/t3code/commit/f3e4dd630e14f9fd4502eaba762aa940f8806ebb) |

Changed pixels: zero threshold **8 / 1440000**; 2% threshold **0 / 1440000**.

Recording review frames: [Before contact sheet](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8e40e877722bee5e/R4-D-before-contact.png) · [After contact sheet](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a66b607d9cab94b5/R4-D-after-contact.png).

## Fresh-database rebuild — R1-N after

Restarted the current-head server after moving its original .t3 state aside, with T3CODE_DEV_SEED=0. The new server created a fresh database at its own migration level; the same UI bootstrap and R1-N driver ran again with the same frozen clock, fonts, viewport, theme and masks. Zero-threshold delta against the delivered after still: **0 / 329160 pixels**; 2% threshold: **0**; maximum channel delta: **0**.

Rebuild steps: 0.00s Type check it again; 0.93s Select assistant text | Click Cite; 2.72s Ctrl+Enter in untouched empty comment; 4.03s One submission | Observe composer; 5.06s Turn complete | Type fresh draft without clicking composer.

[R1-N-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/50b1c6d395120bbf/R1-N-after.mp4)

| Rebuilt after | Rebuild Diff0 | Rebuild DiffT |
|---|---|---|
| ![R1-N-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1885b5ebc176c8a4/R1-N-after.png)<br>[f3e4dd630e](https://git.cafe/pingdotgg/t3code/commit/f3e4dd630e14f9fd4502eaba762aa940f8806ebb) | ![rebuild-R1-N-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5c67bdde4b936d09/rebuild-R1-N-Diff0.png)<br>[f3e4dd630e](https://git.cafe/pingdotgg/t3code/commit/f3e4dd630e14f9fd4502eaba762aa940f8806ebb) → [f3e4dd630e](https://git.cafe/pingdotgg/t3code/commit/f3e4dd630e14f9fd4502eaba762aa940f8806ebb) | ![rebuild-R1-N-DiffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3d5acc13bea9decd/rebuild-R1-N-DiffT.png)<br>[f3e4dd630e](https://git.cafe/pingdotgg/t3code/commit/f3e4dd630e14f9fd4502eaba762aa940f8806ebb) → [f3e4dd630e](https://git.cafe/pingdotgg/t3code/commit/f3e4dd630e14f9fd4502eaba762aa940f8806ebb) |

## Drivers, seeds and reproducibility

[capture-driver.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e14e7e2ac5f73749/capture-driver.mjs)

[capture-lib.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bbdb7c3f3c6bf011/capture-lib.mjs)

[seed-bootstrap.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0ba6e8f55b67d11d/seed-bootstrap.mjs)

[setup-settings.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/08b087bc1ba127bf/setup-settings.mjs)

[fixture-seed.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7023a659b09ed6fa/fixture-seed.sh)

[start-capture-servers.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f735313f84d2695c/start-capture-servers.py)

[stop-capture-servers.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/dfbd374236b69596/stop-capture-servers.py)

[start-driver.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/171fb367a9e05120/start-driver.py)

[run-rebuild.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/00833fda63ddfdcd/run-rebuild.py)

[prepare-diffs.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d481117cb21893e1/prepare-diffs.py)

[video-review.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/95f6982d6c73ce03/video-review.py)

[verify-artifacts.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ac5ec4ccae9d4c5b/verify-artifacts.py)

[rebuild-check.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b3802554b601af12/rebuild-check.py)

[upload-evidence.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a4d9b883e116cb74/upload-evidence.py)

[make-index.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b71e7fa35a9123de/make-index.py)

[rebuild.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c2c6948127f7fd43/rebuild.md)

[package.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1b32d0e40ea675b3/package.json)

[selected-results.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/22cda35012c24147/selected-results.json)

[diff-results.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/70bd5c333a91f7a9/diff-results.json)

[rebuild-results.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b6cd1427023383cc/rebuild-results.json)

[artifact-validation.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cbe6b3af67e8974f/artifact-validation.json)

## Unverified scope

No scoped matrix row is unverified. Actual macOS Cmd, native mobile clients, and distinct blocked-chat fixtures are outside this scoped capture matrix. Linux Ctrl covers the shared shortcut condition; this is web evidence.

## Friction

FRICTION:
- tool | Browser panel open attempts failed; the authorized Playwright fallback worked | A directly available headless capture driver avoids the panel dependency.
- tool | Rounded HUD corners introduced 18 low-amplitude antialiasing pixels | Use rectangular overlays positioned on integer pixels.
- tool | Typing before asynchronous popup return-focus lost the first character on both main and head | Await the actual editor focus event, then type immediately without clicking, reopening, or a fixed delay.
- tool | One advanced MP4 was interrupted during encoding and had no valid container footer | Retake that side in a tracked detached process and validate the complete recording before upload.

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