## Evidence

**Other visible differences beyond the fix:** native-provider timing/content varies, and the R2 recordings contain infrastructure warning banners. Details below; these are not masked.

Captured **3/3 matrix rows, 6/6 still pairs, 4/4 interaction recordings** in the real web app, each checkout using its own fresh database with `T3CODE_DEV_SEED=0`. No live database was read or copied. Labs “Suggest next prompt” was enabled before thread creation; native Claude used its cheapest model in the app.

**Environment for every capture:** Playwright 1.60 / headless Chromium 148.0.7778.96 on Linux x86_64; desktop browser, no device emulation or touch; fine pointer; DPR 2; font scaling 100%, root 16px; reduced motion. CSS viewports are stated per row, full viewport PNGs at twice that resolution. R1/R2 fixed still clock 2026-11-10 08:00 UTC; R3 07:30 UTC. Recordings preserve real time. Same synthetic files, prompts, scroll position, and theme per pair. Narrow R1 composer is focused and expanded.

**Settling and diffs:** network idle and fonts ready before every still; two byte-identical screenshots 500ms apart (12/12 verified). Every selected original and both diff images were opened and reviewed. Diff0 uses maximum RGB channel difference >0, amplified 16× (minimum visible level 32). DiffT uses >16/255 with the same amplification. Unchanged pixels are dimmed grayscale; no masking.

**What else changed:**

- R1 stills: ordinary placeholder becomes “add unit tests for both helpers” plus Tab hint (intended); elapsed label 43s → 42s. The rest of each full viewport is pixel-identical at zero threshold.
- R2 still: ordinary placeholder becomes the same suggestion plus Tab hint (intended); elapsed label 57s → 45s. The rest of the viewport is pixel-identical at zero threshold. The details panel is open on both sides.
- R3 control: both sides show a suggestion and Tab hint. Native assistant next-step wording, paragraph breaks, inline-code spans, and wrapping differ; suggestion text is “add a test file for add and greet” before and “add tests for add and greet” after. Elapsed label 9.3s → 9.2s. Diff highlighting is confined to that content, elapsed label, and composer text.
- Recordings: live timestamps, elapsed counters, generated interim thread titles, thinking/tool text and native completion timings vary. R1 before Tab moves focus to Attach files, showing its focus ring and tooltip; after Tab fills the composer and enables Send. R1 recordings are a repeat of the same fixture with visible pauses for the queue and Tab result (48s → 47s provider elapsed labels, separate from the still run). R2 after shows a Claude account-status timeout banner until it is dismissed near the end; transient overloaded-host warning toast appears near the start. The clean end stills contain neither warning. No product layout/CSS difference was observed.

### R1 — Queue → Send now (Steer) → completion

| Viewport / theme | Before | After | Diff0 | DiffT |
| --- | --- | --- | --- | --- |
| 1440x900 / dark | ![R1-before-1440x900-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cbabb5454893c79e/R1-before-1440x900-dark.png)<br>[934c7f8d8e](https://git.cafe/pingdotgg/t3code/commit/934c7f8d8e7a012aa55be9c0b17498979040fe02) | ![R1-after-1440x900-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/971cbd08a8ddcc77/R1-after-1440x900-dark.png)<br>[d2dd2acd8b](https://git.cafe/pingdotgg/t3code/commit/d2dd2acd8ba0705344fd2d45e747cdb1f95bdd18) | ![R1-1440x900-dark-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ba7b1ed6b05e2d66/R1-1440x900-dark-diff0.png)<br>[934c7f8d8e](https://git.cafe/pingdotgg/t3code/commit/934c7f8d8e7a012aa55be9c0b17498979040fe02) → [d2dd2acd8b](https://git.cafe/pingdotgg/t3code/commit/d2dd2acd8ba0705344fd2d45e747cdb1f95bdd18) | ![R1-1440x900-dark-diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2b508a50564d31de/R1-1440x900-dark-diff16.png)<br>[934c7f8d8e](https://git.cafe/pingdotgg/t3code/commit/934c7f8d8e7a012aa55be9c0b17498979040fe02) → [d2dd2acd8b](https://git.cafe/pingdotgg/t3code/commit/d2dd2acd8ba0705344fd2d45e747cdb1f95bdd18) |
| 1440x900 / light | ![R1-before-1440x900-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/459e9fe1256035bf/R1-before-1440x900-light.png)<br>[934c7f8d8e](https://git.cafe/pingdotgg/t3code/commit/934c7f8d8e7a012aa55be9c0b17498979040fe02) | ![R1-after-1440x900-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/421d647d7a6dec81/R1-after-1440x900-light.png)<br>[d2dd2acd8b](https://git.cafe/pingdotgg/t3code/commit/d2dd2acd8ba0705344fd2d45e747cdb1f95bdd18) | ![R1-1440x900-light-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/992e722f2ab03eff/R1-1440x900-light-diff0.png)<br>[934c7f8d8e](https://git.cafe/pingdotgg/t3code/commit/934c7f8d8e7a012aa55be9c0b17498979040fe02) → [d2dd2acd8b](https://git.cafe/pingdotgg/t3code/commit/d2dd2acd8ba0705344fd2d45e747cdb1f95bdd18) | ![R1-1440x900-light-diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5659f8d7a52759a9/R1-1440x900-light-diff16.png)<br>[934c7f8d8e](https://git.cafe/pingdotgg/t3code/commit/934c7f8d8e7a012aa55be9c0b17498979040fe02) → [d2dd2acd8b](https://git.cafe/pingdotgg/t3code/commit/d2dd2acd8ba0705344fd2d45e747cdb1f95bdd18) |
| 390x844 / dark | ![R1-before-390x844-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e978eaca83616d3f/R1-before-390x844-dark.png)<br>[934c7f8d8e](https://git.cafe/pingdotgg/t3code/commit/934c7f8d8e7a012aa55be9c0b17498979040fe02) | ![R1-after-390x844-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/47b631d9becf1d9a/R1-after-390x844-dark.png)<br>[d2dd2acd8b](https://git.cafe/pingdotgg/t3code/commit/d2dd2acd8ba0705344fd2d45e747cdb1f95bdd18) | ![R1-390x844-dark-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/21a3103d3f253eec/R1-390x844-dark-diff0.png)<br>[934c7f8d8e](https://git.cafe/pingdotgg/t3code/commit/934c7f8d8e7a012aa55be9c0b17498979040fe02) → [d2dd2acd8b](https://git.cafe/pingdotgg/t3code/commit/d2dd2acd8ba0705344fd2d45e747cdb1f95bdd18) | ![R1-390x844-dark-diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fb8eb0e7d35d7420/R1-390x844-dark-diff16.png)<br>[934c7f8d8e](https://git.cafe/pingdotgg/t3code/commit/934c7f8d8e7a012aa55be9c0b17498979040fe02) → [d2dd2acd8b](https://git.cafe/pingdotgg/t3code/commit/d2dd2acd8ba0705344fd2d45e747cdb1f95bdd18) |
| 390x844 / light | ![R1-before-390x844-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e625c3f720286af7/R1-before-390x844-light.png)<br>[934c7f8d8e](https://git.cafe/pingdotgg/t3code/commit/934c7f8d8e7a012aa55be9c0b17498979040fe02) | ![R1-after-390x844-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/56402bbcaa7d0706/R1-after-390x844-light.png)<br>[d2dd2acd8b](https://git.cafe/pingdotgg/t3code/commit/d2dd2acd8ba0705344fd2d45e747cdb1f95bdd18) | ![R1-390x844-light-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/656b0dc9dbbe6855/R1-390x844-light-diff0.png)<br>[934c7f8d8e](https://git.cafe/pingdotgg/t3code/commit/934c7f8d8e7a012aa55be9c0b17498979040fe02) → [d2dd2acd8b](https://git.cafe/pingdotgg/t3code/commit/d2dd2acd8ba0705344fd2d45e747cdb1f95bdd18) | ![R1-390x844-light-diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/aab35b23827397d5/R1-390x844-light-diff16.png)<br>[934c7f8d8e](https://git.cafe/pingdotgg/t3code/commit/934c7f8d8e7a012aa55be9c0b17498979040fe02) → [d2dd2acd8b](https://git.cafe/pingdotgg/t3code/commit/d2dd2acd8ba0705344fd2d45e747cdb1f95bdd18) |

Sheets (Before, After, Diff0, DiffT):

![R1-1440x900-dark-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/57dd80876adffedf/R1-1440x900-dark-sheet.png)

![R1-1440x900-light-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7ebef9820c9d3a4c/R1-1440x900-light-sheet.png)

![R1-390x844-dark-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c0b04a85da917a4b/R1-390x844-dark-sheet.png)

![R1-390x844-light-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2aed01bb8f7d8133/R1-390x844-light-sheet.png)

**Recording narration** (driver timestamps relative to each video trim, within a few frames; native waiting is retained):

| Step | Before | After |
| --- | --- | --- |
| Submit read-only file review, including a 35s provider shell wait | 00:01.50 | 00:01.50 |
| Ctrl-click follow-up to Queue; real queue row visible | 00:07.25 | 00:04.81 |
| Click Send now while first run is active; row becomes Steer | 00:09.23 | 00:06.45 |
| First run completes | 00:52.23 | 00:49.92 |
| Native suggestion received: before remains ordinary placeholder; after shows text + Tab | 00:55.83 | 00:52.82 |
| Press Tab: before remains empty; after fills text without sending | 00:58.20 | 00:56.90 |
| Hold visible result; two runs remain (completed + cancelled, unstarted), no third run | through 00:59.71 | through 00:58.41 |

| Before | After |
| --- | --- |
| [R1-before-readable.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/39eb04cce4190247/R1-before-readable.mp4)<br>[934c7f8d8e](https://git.cafe/pingdotgg/t3code/commit/934c7f8d8e7a012aa55be9c0b17498979040fe02) | [R1-after-readable.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/60aed64174483c89/R1-after-readable.mp4)<br>[d2dd2acd8b](https://git.cafe/pingdotgg/t3code/commit/d2dd2acd8ba0705344fd2d45e747cdb1f95bdd18) |

The after driver asserted a nonempty composer after Tab; before asserted an empty composer. Final thread state on both sides has exactly the original completed run and one cancelled run with `startedAt: null`.

### R2 — Queue → Remove queued message → completion

| Viewport / theme | Before | After | Diff0 | DiffT |
| --- | --- | --- | --- | --- |
| 1440x900 / dark | ![R2-before-1440x900-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d597786fe6cd8e78/R2-before-1440x900-dark.png)<br>[934c7f8d8e](https://git.cafe/pingdotgg/t3code/commit/934c7f8d8e7a012aa55be9c0b17498979040fe02) | ![R2-after-1440x900-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/96e3695cf595bc85/R2-after-1440x900-dark.png)<br>[d2dd2acd8b](https://git.cafe/pingdotgg/t3code/commit/d2dd2acd8ba0705344fd2d45e747cdb1f95bdd18) | ![R2-1440x900-dark-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2d7b72b197f9afba/R2-1440x900-dark-diff0.png)<br>[934c7f8d8e](https://git.cafe/pingdotgg/t3code/commit/934c7f8d8e7a012aa55be9c0b17498979040fe02) → [d2dd2acd8b](https://git.cafe/pingdotgg/t3code/commit/d2dd2acd8ba0705344fd2d45e747cdb1f95bdd18) | ![R2-1440x900-dark-diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e6358d1c0fb2cb2e/R2-1440x900-dark-diff16.png)<br>[934c7f8d8e](https://git.cafe/pingdotgg/t3code/commit/934c7f8d8e7a012aa55be9c0b17498979040fe02) → [d2dd2acd8b](https://git.cafe/pingdotgg/t3code/commit/d2dd2acd8ba0705344fd2d45e747cdb1f95bdd18) |

Sheets (Before, After, Diff0, DiffT):

![R2-1440x900-dark-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/343b3fe2ded27a66/R2-1440x900-dark-sheet.png)

**Recording narration** (driver timestamps relative to each video trim, within a few frames; native waiting is retained):

| Step | Before | After |
| --- | --- | --- |
| Start typing read-only review task | 00:01.50 | 00:01.50 |
| Submit task | 00:02.76 | 00:06.24 |
| Ctrl-click follow-up to Queue; real row visible | 00:03.45 | 00:07.17 |
| Click Remove queued message while first run is active | 00:03.97 | 00:07.76 |
| First run finishes; await native suggestion; restore stable fixture title and dismiss warning | by 01:18.25 | by 00:57.09 |
| Settled end state: no suggestion before; suggestion + Tab after | 01:19.68 | 00:58.14 |

| Before | After |
| --- | --- |
| [R2-before.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cca7d16b7e9bcc8e/R2-before.mp4)<br>[934c7f8d8e](https://git.cafe/pingdotgg/t3code/commit/934c7f8d8e7a012aa55be9c0b17498979040fe02) | [R2-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1221806b66ec828b/R2-after.mp4)<br>[d2dd2acd8b](https://git.cafe/pingdotgg/t3code/commit/d2dd2acd8ba0705344fd2d45e747cdb1f95bdd18) |

### R3 — Ordinary completion control

| Viewport / theme | Before | After | Diff0 | DiffT |
| --- | --- | --- | --- | --- |
| 1440x900 / dark | ![R3-before-1440x900-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bacb659d8bd2292e/R3-before-1440x900-dark.png)<br>[934c7f8d8e](https://git.cafe/pingdotgg/t3code/commit/934c7f8d8e7a012aa55be9c0b17498979040fe02) | ![R3-after-1440x900-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9b98a7d893a9f415/R3-after-1440x900-dark.png)<br>[d2dd2acd8b](https://git.cafe/pingdotgg/t3code/commit/d2dd2acd8ba0705344fd2d45e747cdb1f95bdd18) | ![R3-1440x900-dark-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4ae72094723a4153/R3-1440x900-dark-diff0.png)<br>[934c7f8d8e](https://git.cafe/pingdotgg/t3code/commit/934c7f8d8e7a012aa55be9c0b17498979040fe02) → [d2dd2acd8b](https://git.cafe/pingdotgg/t3code/commit/d2dd2acd8ba0705344fd2d45e747cdb1f95bdd18) | ![R3-1440x900-dark-diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4b1716288d90bdb0/R3-1440x900-dark-diff16.png)<br>[934c7f8d8e](https://git.cafe/pingdotgg/t3code/commit/934c7f8d8e7a012aa55be9c0b17498979040fe02) → [d2dd2acd8b](https://git.cafe/pingdotgg/t3code/commit/d2dd2acd8ba0705344fd2d45e747cdb1f95bdd18) |

Sheets (Before, After, Diff0, DiffT):

![R3-1440x900-dark-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/aafbce7214c81eba/R3-1440x900-dark-sheet.png)

No queue or cancellation in this control; both native suggestion paths remain visible.

### Reproduction and audit files

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

[assemble.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fa035984dca4838a/assemble.py)
[build-evidence.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/65a0971ce53314e7/build-evidence.py)
[capture.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/62efb49d7e34553d/capture.mjs)
[diffs.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/308b2e3c69c43fc3/diffs.mjs)
[driver-init.js](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/10d5008ab14ec26c/driver-init.js)
[r1-final.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0ca82edb76843cb4/r1-final.mjs)
[recordings.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4604dba93bc544b7/recordings.py)
[seed.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cac3ec402af5e8c5/seed.py)
[start-servers.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d6baa08a12a890a3/start-servers.py)
[stop-completed-sessions.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bb876ab0eea32b80/stop-completed-sessions.mjs)
[upload.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/122f5ca8dd93e3f8/upload.py)

[R2-command-sequence.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3721c8158ed9d037/R2-command-sequence.json)
[threads.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/49a1cf0bfc8288bd/threads.json)
[recording-timelines.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6f93a5e046177cca/recording-timelines.json)
[R1-assertions.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9225c5ba908b0016/R1-assertions.json)

Second identical frames (settling proof):

![R1-after-1440x900-dark-settle-check.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3ac5b1eb842bcb00/R1-after-1440x900-dark-settle-check.png)

![R1-after-1440x900-light-settle-check.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/38e2c4cf64f400a7/R1-after-1440x900-light-settle-check.png)

![R1-after-390x844-dark-settle-check.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/236ff917e3c1707d/R1-after-390x844-dark-settle-check.png)

![R1-after-390x844-light-settle-check.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/37f5792a071cbc23/R1-after-390x844-light-settle-check.png)

![R1-before-1440x900-dark-settle-check.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e5d1a75bb051b128/R1-before-1440x900-dark-settle-check.png)

![R1-before-1440x900-light-settle-check.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ea556af645e635bb/R1-before-1440x900-light-settle-check.png)

![R1-before-390x844-dark-settle-check.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/86291be5307800ca/R1-before-390x844-dark-settle-check.png)

![R1-before-390x844-light-settle-check.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a76c1af523854099/R1-before-390x844-light-settle-check.png)

![R2-after-1440x900-dark-settle-check.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2f80c657ce887e04/R2-after-1440x900-dark-settle-check.png)

![R2-before-1440x900-dark-settle-check.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/31f544daffd985cf/R2-before-1440x900-dark-settle-check.png)

![R3-after-1440x900-dark-settle-check.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2be03bc25456bcbd/R3-after-1440x900-dark-settle-check.png)

![R3-before-1440x900-dark-settle-check.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/96ca02393996e25c/R3-before-1440x900-dark-settle-check.png)


**Unverified matrix rows:** none. Scope is web; the matrix excludes native mobile (no prompt suggestions) and desktop-only behavior. No automated code tests were added or run because this assignment captures evidence without code changes. Both source worktrees remained clean. All spawned browsers and test server process groups were stopped.

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


### Follow-up round 2 — current-head reload proof

**Revision provenance:** the after server started at [5a51e85c70](https://git.cafe/pingdotgg/t3code/commit/5a51e85c700d40df890f1dc81a4dbacf1ba2fed4). During setup the lead advanced its shared checkout to [46a12362b5](https://git.cafe/pingdotgg/t3code/commit/46a12362b53210ecad83c924a3ef6d901e613be3), changing only six lines in ProjectionStore.test.ts. The selected after run therefore uses the exact same runtime sources as 5a51e85c70, with the test-only checkout revision stated under its column. No capture agent changed tracked files.

**Coverage:** original scoped matrix 3/3 rows, plus R4 required by the follow-up brief: **4/4 total rows captured**. The earlier R1–R3 section above is preserved unchanged at its stated head. This round adds two still pairs (R1 before reload and R4 after reload), four amplified diffs, and two full interaction recordings at the current head.

**Environment for every new capture:** T3 Browser preview automation, Chromium 157 (reported UA Chrome/157.0.0.0), Linux x86_64; desktop browser, no device emulation or touch, fine pointer, DPR 2, font scaling 100%, root 16px; CSS viewport 1440×900, dark. PNGs and raw recordings are 2880×1800; the untrimmed presentation recordings are encoded at 1440×900. The preview tools expose no reduced-motion emulation control (actual media query false); all selected stills passed exact settling. Fonts ready and at least 500ms without a completed network resource precede every still. Each still has a byte-identical second frame taken at least 500ms later (4/4 pairs). The fixed client clock is 2026-11-10 12:00 UTC before each still, including after reload. Both sides use the same synthetic files, task, steering note, theme, viewport and scroll position. Each uses a new thread in its previously created disposable database, started with T3CODE_DEV_SEED=0. No live database was read or copied.

**Result:** before received a native suggestion but never offered it in the composer, including after reload; after offered it before reload and retained it after reload. Tab left the before composer empty and filled the after composer with “add unit tests for both helpers,” without sending. Inspection before and after reload showed one completed run and one cancelled run with startedAt null on both sides. The recording visibly includes the reload; the after driver also waits for a marker on the old document to disappear. On each side, the selected pre-reload and post-reload PNGs are byte-identical.

**What else changed:**

- New stills: elapsed label 43s → 45s. The ordinary placeholder changes to the suggestion text and Tab hint (intended). Apart from those two regions, the entire viewport is pixel-identical at zero threshold. Diff0 changes 7,168/5,184,000 pixels (0.1383%); Diff16 changes 6,383 pixels (0.1231%). No layout or CSS difference is visible.
- Recordings: real provider duration, native thinking/tool text, tool command labels (cat before, echo after), live counters, generated intermediate titles, and transient cursor/focus appearance vary. Both show the same final assistant response. Reload briefly shows the app splash. Before Tab moves focus to Attach files and can reveal its tooltip; after Tab fills the composer and enables Send. Selected recordings contain no provider warning banner. Native suggestion wording before is “add unit tests for add.js and greet.js”; it is hidden. After wording is “add unit tests for both helpers.”

**Diff method:** maximum RGB-channel difference >0 for Diff0 and >16/255 for DiffT, amplified 16× with minimum visible level 32; unchanged pixels are dim grayscale. No masking, cropping, image retouching, or clock/data rewriting on the server. All originals, diffs and sheets were opened and visually reviewed, along with recording contact sheets.

#### R1 at current head — completed steer, before reload

| Viewport / theme | Before | After | Diff0 | DiffT |
| --- | --- | --- | --- | --- |
| 1440×900 / dark | ![R1-at-head-before-1440x900-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/43d6dde6ff924bd6/R1-at-head-before-1440x900-dark.png)<br>[934c7f8d8e](https://git.cafe/pingdotgg/t3code/commit/934c7f8d8e7a012aa55be9c0b17498979040fe02) | ![R1-at-head-after-1440x900-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/338458b1c21abc13/R1-at-head-after-1440x900-dark.png)<br>[5a51e85c70](https://git.cafe/pingdotgg/t3code/commit/5a51e85c700d40df890f1dc81a4dbacf1ba2fed4) runtime / [46a12362b5](https://git.cafe/pingdotgg/t3code/commit/46a12362b53210ecad83c924a3ef6d901e613be3) checkout | ![R1-at-head-1440x900-dark-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a48e5a8ec8cdac2e/R1-at-head-1440x900-dark-diff0.png)<br>[934c7f8d8e](https://git.cafe/pingdotgg/t3code/commit/934c7f8d8e7a012aa55be9c0b17498979040fe02) → [5a51e85c70](https://git.cafe/pingdotgg/t3code/commit/5a51e85c700d40df890f1dc81a4dbacf1ba2fed4) runtime / [46a12362b5](https://git.cafe/pingdotgg/t3code/commit/46a12362b53210ecad83c924a3ef6d901e613be3) checkout | ![R1-at-head-1440x900-dark-diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c99878c542d38fb8/R1-at-head-1440x900-dark-diff16.png)<br>[934c7f8d8e](https://git.cafe/pingdotgg/t3code/commit/934c7f8d8e7a012aa55be9c0b17498979040fe02) → [5a51e85c70](https://git.cafe/pingdotgg/t3code/commit/5a51e85c700d40df890f1dc81a4dbacf1ba2fed4) runtime / [46a12362b5](https://git.cafe/pingdotgg/t3code/commit/46a12362b53210ecad83c924a3ef6d901e613be3) checkout |

![R1-at-head-1440x900-dark-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7ad37ebb71efa28b/R1-at-head-1440x900-dark-sheet.png)

#### R4 — Reload after a steer, after reload

| Viewport / theme | Before | After | Diff0 | DiffT |
| --- | --- | --- | --- | --- |
| 1440×900 / dark | ![R4-before-1440x900-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/829403c76332593d/R4-before-1440x900-dark.png)<br>[934c7f8d8e](https://git.cafe/pingdotgg/t3code/commit/934c7f8d8e7a012aa55be9c0b17498979040fe02) | ![R4-after-1440x900-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/32649e79212084eb/R4-after-1440x900-dark.png)<br>[5a51e85c70](https://git.cafe/pingdotgg/t3code/commit/5a51e85c700d40df890f1dc81a4dbacf1ba2fed4) runtime / [46a12362b5](https://git.cafe/pingdotgg/t3code/commit/46a12362b53210ecad83c924a3ef6d901e613be3) checkout | ![R4-1440x900-dark-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/12f3269aec2591a7/R4-1440x900-dark-diff0.png)<br>[934c7f8d8e](https://git.cafe/pingdotgg/t3code/commit/934c7f8d8e7a012aa55be9c0b17498979040fe02) → [5a51e85c70](https://git.cafe/pingdotgg/t3code/commit/5a51e85c700d40df890f1dc81a4dbacf1ba2fed4) runtime / [46a12362b5](https://git.cafe/pingdotgg/t3code/commit/46a12362b53210ecad83c924a3ef6d901e613be3) checkout | ![R4-1440x900-dark-diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2cccc48eee53b643/R4-1440x900-dark-diff16.png)<br>[934c7f8d8e](https://git.cafe/pingdotgg/t3code/commit/934c7f8d8e7a012aa55be9c0b17498979040fe02) → [5a51e85c70](https://git.cafe/pingdotgg/t3code/commit/5a51e85c700d40df890f1dc81a4dbacf1ba2fed4) runtime / [46a12362b5](https://git.cafe/pingdotgg/t3code/commit/46a12362b53210ecad83c924a3ef6d901e613be3) checkout |

![R4-1440x900-dark-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/409e0931e9651209/R4-1440x900-dark-sheet.png)

#### R4 recordings and narration

Timestamps are relative to recording start, rounded to hundredths; full native waits are retained. Both recordings have the same scripted interaction.

| Step | Before | After |
| --- | --- | --- |
| Submit read-only file review | 00:00.14 | 00:00.15 |
| Ctrl+Enter follow-up to Queue | 00:01.32 | 00:01.54 |
| Real queue row visible | 00:01.54 | 00:01.78 |
| Click Send now while first run remains active | 00:03.09 | 00:03.33 |
| First run completed | 00:44.03 | 00:45.60 |
| Native suggestion received; before hidden, after visible | 00:47.59 | 00:50.20 |
| Capture settled pre-reload composer (R1 at current head) | 00:49.24 | 00:51.84 |
| Hard reload the thread route | 00:49.28 | 00:51.88 |
| Loaded, settled composer: before no suggestion, after suggestion | 00:53.66 | 00:55.80 |
| Press Tab: before empty; after filled without sending | 00:54.13 | 00:56.24 |
| Hold result through recording end | 00:55.64 | 00:57.74 |

| Before | After |
| --- | --- |
| [R4-before.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b94971733fe9e418/R4-before.mp4)<br>[934c7f8d8e](https://git.cafe/pingdotgg/t3code/commit/934c7f8d8e7a012aa55be9c0b17498979040fe02) | [R4-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c87baa79997a28bd/R4-after.mp4)<br>[5a51e85c70](https://git.cafe/pingdotgg/t3code/commit/5a51e85c700d40df890f1dc81a4dbacf1ba2fed4) runtime / [46a12362b5](https://git.cafe/pingdotgg/t3code/commit/46a12362b53210ecad83c924a3ef6d901e613be3) checkout |

#### Follow-up reproduction and audit files

[reproduce-r2.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/86fccedfa8d5b5d8/reproduce-r2.md)

[preview-driver-r2.js](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1e8469ab68721b64/preview-driver-r2.js)

[driver-init.js](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c17ac5c07f34dff3/driver-init.js)

[seed.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/611435b5c87e6db2/seed.py)

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

[diffs-r2.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7c21309f4bdae7a3/diffs-r2.mjs)

[recordings-r2.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/48c8d9d42778fb6c/recordings-r2.py)

[build-evidence-r2.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9af6375693679355/build-evidence-r2.py)

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

[assertions-r2.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9d9612adecce207c/assertions-r2.json)

[settling-r2.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7bcbdb4116a47feb/settling-r2.json)

[diff-stats.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/55ea7b13c32c2726/diff-stats.json)

[R4-before-raw.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e5af97f54a8d0559/R4-before-raw.mp4)

[R4-after-raw.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c90e0bf528ee9ada/R4-after-raw.mp4)

![R1-at-head-before-1440x900-dark-settle-check.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7291ba605be170f2/R1-at-head-before-1440x900-dark-settle-check.png)

![R1-at-head-after-1440x900-dark-settle-check.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e9f44ae65c5d53c8/R1-at-head-after-1440x900-dark-settle-check.png)

![R4-before-1440x900-dark-settle-check.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9676d88e6a219a83/R4-before-1440x900-dark-settle-check.png)

![R4-after-1440x900-dark-settle-check.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f17a9ba1530317c3/R4-after-1440x900-dark-settle-check.png)

**Unverified rows:** none in the scoped matrix or follow-up brief. Earlier R1–R3 remain evidence at their original SHA; R4 and the extra R1 still pair are current-head evidence. The PR's automated tests are listed in the Verification section; this capture step itself ran none. No tracked files changed and no PR was edited. Both spawned dev server process groups were stopped, their four web/server ports verified unbound, and all preview tabs opened for the capture were closed.

AI-assisted; verified with the tests and tools listed above.
240 /tmp/lead-33706-r2/evidence-capture/evidence-section-r2.md


### Follow-up round 3: cold client (R5) and R2 recordings without overlays — round 3 follow-up

**Recording differences outside the PR’s behavior:** the native provider changes generated titles, intermediate reasoning/tool wording, duration labels and wall-clock times. R5-before’s warm segment has the details panel open, while R5-after’s warm segment has it closed. The separately paired cold clients briefly show default navigation panels before the driver closes them. These are disclosed recording differences; the controlled R5 still pair is pixel-identical outside the composer at threshold zero.

This section contains only the requested R5 proof and replacement R2 recordings for [#33706](https://git.cafe/pingdotgg/t3code/pull/33706). It does not replace or claim acceptance of the earlier R1/R3/R4 artifacts or resolve the auditor’s separate fallback-test coverage concern.

### R5 — Cold client after a steer, 1440×900 dark

Environment: T3 Browser preview tools; Chromium 157 on Linux x86_64; no device emulation or touch; fine pointer; 1440×900 CSS viewport; DPR 2; 16px root font at 100% scaling; dark theme. Full-surface stills are 2880×1800 PNGs; recordings are 1440×900, 30 fps. Native Claude using the cheapest Claude model, through the existing hub. Fresh synthetic-only database per checkout, T3CODE_DEV_SEED=0, Labs Suggest next prompt enabled before thread creation.

Before is the **web-only change** at [d2dd2acd8b](https://git.cafe/pingdotgg/t3code/commit/d2dd2acd8ba0705344fd2d45e747cdb1f95bdd18); after is final head [ed45eeae87](https://git.cafe/pingdotgg/t3code/commit/ed45eeae87aa7c6eb7cbd66199be0d67a4405ddb). The client behavior change is present on both sides, so the cold-client difference isolates the server snapshot change. Both warm clients saw the completed run and the cancelled, unstarted run and received native suggestions. Before opening the app, each cold origin had empty local storage, session storage, IndexedDB and cookies. The newly paired cold-before client received **only the completed run**; the cancelled, unstarted run was absent, and the composer showed its ordinary placeholder. Cold-after received **the completed run plus the cancelled run with startedAt null**, showed the native suggestion and Tab hint, and Tab filled the composer without sending. The private raw run diagnostics were retained in scratch; [assertions-r3.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/994b866679041b08/assertions-r3.json) contains the sanitized proof summary.

| Before | After | Diff0 | DiffT (16/255) |
| --- | --- | --- | --- |
| ![R5-before-1440x900-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/add63feb5ee73751/R5-before-1440x900-dark.png)<br>[d2dd2acd8b](https://git.cafe/pingdotgg/t3code/commit/d2dd2acd8ba0705344fd2d45e747cdb1f95bdd18) | ![R5-after-1440x900-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3b265e2beb8eebec/R5-after-1440x900-dark.png)<br>[ed45eeae87](https://git.cafe/pingdotgg/t3code/commit/ed45eeae87aa7c6eb7cbd66199be0d67a4405ddb) | ![R5-1440x900-dark-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c0bfb7209b6c6fbb/R5-1440x900-dark-diff0.png)<br>[d2dd2acd8b](https://git.cafe/pingdotgg/t3code/commit/d2dd2acd8ba0705344fd2d45e747cdb1f95bdd18) → [ed45eeae87](https://git.cafe/pingdotgg/t3code/commit/ed45eeae87aa7c6eb7cbd66199be0d67a4405ddb) | ![R5-1440x900-dark-diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4314fa05d5d91c5d/R5-1440x900-dark-diff16.png)<br>[d2dd2acd8b](https://git.cafe/pingdotgg/t3code/commit/d2dd2acd8ba0705344fd2d45e747cdb1f95bdd18) → [ed45eeae87](https://git.cafe/pingdotgg/t3code/commit/ed45eeae87aa7c6eb7cbd66199be0d67a4405ddb) |

![R5-1440x900-dark-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/943b4b695a04cbf9/R5-1440x900-dark-sheet.png)

Stills use an explicit controlled display fixture **after** the untouched cold-client proof: the real thread title is set to the row name; client projection timestamps are set to the same 12:00 UTC interval, 45 seconds, and the display clock is frozen to 12:01 UTC. Run IDs, membership, order, status, null startedAt, message content and the actual native suggestion are preserved. No server/provider state is injected, no pixels are retouched or masked. Originals: [R5-before-original-1440x900-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6f66ccb61f144fd2/R5-before-original-1440x900-dark.png), [R5-after-final-original-1440x900-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4daed1450cdbbca7/R5-after-final-original-1440x900-dark.png). Normalizer: [normalize-still-r3.js](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/226ada5e794aee3c/normalize-still-r3.js).

Before every selected still: fonts ready, 500ms without completed network resources, blur caret, then two byte-identical screenshots 500ms apart. Reduced-motion emulation is unavailable in the preview tool; actual media query is false, with stable final frames. Settling frames: [R5-before-1440x900-dark-settle-check.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5f7ca7aac637df21/R5-before-1440x900-dark-settle-check.png), [R5-after-1440x900-dark-settle-check.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3916ff0c5c54392b/R5-after-1440x900-dark-settle-check.png). Diff0 uses max RGB channel difference >0, DiffT >16/255; changed pixels amplified 16× with minimum visible level 32. Diff0 has 7,004 changed device pixels; DiffT 6,256. All changes are inside device-pixel box x738–1305, y1574–1613 in the composer; **zero changed pixels elsewhere**. No other visible difference in this controlled still pair.

**Recording narration (seconds, approximately):** 0 submit the read-only task; 1–3 queue the follow-up with Ctrl+Enter and show its real queue row; 3–5 click Send now to promote it to Steer. Before: the warm context shows the completed answer and offers the suggestion, then at 65s the clip splices to the separately paired cold context opening the same thread; around 67s the cold composer shows the ordinary placeholder; around 90–92s Tab leaves it empty. After: the turn is still running at 50s and completes at 51s; the warm clip still shows the ordinary placeholder at 53.3s, because it is spliced at 53.5s, before the suggestion reaches the warm context (the driver confirmed the provider's suggestion separately; it is not visible in the warm segment). After the splice a short splash shows while the cold context loads; at 57.8s the cold composer shows the suggestion + Tab hint; at 59s Tab fills the composer; hold the filled text through the end with no send. Pairing occurs between segments, off-record to keep tokens private. Native waiting time through turn completion is preserved. Raw warm/cold segments are linked below. R5-before warm recording is trimmed at 65s after completion; the discarded tail is available in the raw segment.

| Before recording | After recording |
| --- | --- |
| [R5-before.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c5deafde02b97658/R5-before.mp4)<br>[d2dd2acd8b](https://git.cafe/pingdotgg/t3code/commit/d2dd2acd8ba0705344fd2d45e747cdb1f95bdd18)<br>93.27s | [R5-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2f12c6c0ffab9ddb/R5-after.mp4)<br>[ed45eeae87](https://git.cafe/pingdotgg/t3code/commit/ed45eeae87aa7c6eb7cbd66199be0d67a4405ddb)<br>61.07s |

Tab-filled full-surface frame: ![R5-after-final-Tab-filled.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ebc91d1040e1036c/R5-after-final-Tab-filled.png)

Raw segments: [R5-before-warm-raw.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5fb6f5a1d9b9a17e/R5-before-warm-raw.mp4), [R5-before-cold-raw.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/eabfccc1c5ddef4a/R5-before-cold-raw.mp4), [R5-after-final-warm-raw.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8d0289c9b5b0f557/R5-after-final-warm-raw.mp4), [R5-after-final-cold-raw.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/80de6434de142f73/R5-after-final-cold-raw.mp4). Review contact sheets: [R5-before-video-review.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ecfec546e30bd117/R5-before-video-review.png), [R5-after-video-review.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cb1889b1f8784f6e/R5-after-video-review.png).

### R2 — Queue → Remove queued message → completion, 1440×900 dark

Environment: T3 Browser preview tools; Chromium 157 on Linux x86_64; no device emulation or touch; fine pointer; 1440×900 CSS viewport; DPR 2; 16px root font at 100% scaling; dark theme. Full-surface stills are 2880×1800 PNGs; recordings are 1440×900, 30 fps. Native Claude using the cheapest Claude model, through the existing hub. Fresh synthetic-only database per checkout, T3CODE_DEV_SEED=0, Labs Suggest next prompt enabled before thread creation.

Before is main at [934c7f8d8e](https://git.cafe/pingdotgg/t3code/commit/934c7f8d8e7a012aa55be9c0b17498979040fe02); after is final head [ed45eeae87](https://git.cafe/pingdotgg/t3code/commit/ed45eeae87aa7c6eb7cbd66199be0d67a4405ddb). Both selected clips start without a provider-status banner or host-load toast and contain neither during the sequence. These replace the stale-overlay recordings from earlier rounds. No UI is hidden with CSS or a screenshot mask. The before run has an empty composer after completion; the after run has the native suggestion and Tab hint. Both have completed + cancelled/unstarted runs. The first after attempt received no native suggestion; retried once as instructed, and the selected retry received one.

**Recording narration (seconds, approximately):** before 0.1 submit; 1.3 Ctrl+Enter queues; 1.6 real row visible; 3.5 Remove queued message clicked and row disappears; 45–50 complete answer; ordinary composer placeholder remains through the end. After 0.1 submit; 0.9 queue; 1.1 real row visible; 2.9 Remove queued message clicked and row disappears; 45–50 complete answer; by roughly 60s native suggestion and Tab hint appear. Both clips preserve the full interaction and waiting interval without speedup or cuts. There is no host-load toast or provider-status banner at any selected step.

| Before recording | After recording | Diff0 | DiffT |
| --- | --- | --- | --- |
| [R2-before.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/06138a9ac25e2b76/R2-before.mp4)<br>[934c7f8d8e](https://git.cafe/pingdotgg/t3code/commit/934c7f8d8e7a012aa55be9c0b17498979040fe02)<br>123.47s | [R2-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/53dfcc2ba9a79685/R2-after.mp4)<br>[ed45eeae87](https://git.cafe/pingdotgg/t3code/commit/ed45eeae87aa7c6eb7cbd66199be0d67a4405ddb)<br>70.87s | Not applicable: recording-only replacement requested in this follow-up | Not applicable: no new R2 still pair requested |

Raw recordings: [R2-before-raw.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/831dedb6bfe4eded/R2-before-raw.mp4), [R2-after-retry-raw.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/aca5de7e0923aab6/R2-after-retry-raw.mp4). Contact sheets: [R2-before-video-review.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f364774e03b8db70/R2-before-video-review.png), [R2-after-video-review.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b74b9ae4918be025/R2-after-video-review.png).

What else changed in R2 recordings: real provider duration 44s before / 45s after; generated title differs; intermediate reasoning/tool text differs; wall-clock timestamps differ; native suggestion wording is generated. The final assistant answer is the same two requested sentences. In R5 raw recordings the duration is 47s before / 48s after, the generated titles and intermediate tool/reasoning text differ, the native suggestion wording differs, and the real wall-clock times are 09:04 versus 09:17–09:18. These differences were controlled only for the selected comparable stills. No unrelated static comparison is claimed for these recordings.

### Rebuild and scope

[reproduce-r3.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4469916d1e528be8/reproduce-r3.md) gives pairing, empty-context checks, fixture control and cleanup. Scripts: [seed-r3.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/dd659c60455a7613/seed-r3.py), [start-servers-r3.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b35558490fae9115/start-servers-r3.py), [driver-init-r3.js](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9668c3e13a9511b3/driver-init-r3.js), [preview-flow-r3.js](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0353e1264b12c040/preview-flow-r3.js), [normalize-still-r3.js](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/226ada5e794aee3c/normalize-still-r3.js), [settled-shot-r3.js](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5b20f6e624c23599/settled-shot-r3.js), [process-recordings-r3.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fcfcc23f1717e65e/process-recordings-r3.py), [diffs-r3.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c14f95cd38d82920/diffs-r3.mjs), [upload-r3.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3723b39785418e23/upload-r3.py), [build-evidence-r3.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0b9aae897b003382/build-evidence-r3.py). Operational identifiers are supplied privately from the app selection, never embedded in uploaded text. Step timestamps: [events-r3.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0f9c15fae353d61b/events-r3.json); results: [assertions-r3.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/994b866679041b08/assertions-r3.json); pixel counts: [diff-stats.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b103bfa264732aa2/diff-stats.json).

Captured **2/2 follow-up items**: R5 recording pair + cold still pair/diffs, and R2 clean recording pair. The original scoped matrix has three rows R1/R2/R3; this round replaces only R2 recordings and adds requested R5. R1/R3 and prior R4 are **not reverified in this round**; their audit findings remain outside this assignment. No claims about cancellation chains/newer executed fallback states are made. Web applies; desktop shares the web component without a separate shell path here; mobile has no prompt suggestions. No source edits, code tests, commits or PR edits were performed for this capture assignment. All spawned servers and browser tabs were stopped, the temporary web-only worktree removed, and tracked files remain clean.

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