# fix\(chat\): show late async answers in their own runs · PR \#23229 · pingdotgg/t3code

[View on GitCafe](https://git.cafe/pingdotgg/t3code/pull/23229)

Repository: [pingdotgg/t3code](https://git.cafe/pingdotgg/t3code)

Visibility: public

State: open

Source repository: pingdotgg/t3code

Source branch: fix/issue-15873

Target branch: main

Head commit: 31d3a20a190a6f706756a82cf5c2097dd5a8d0d4

[Discussion and reviews](https://git.cafe/pingdotgg/t3code/pull/23229)

[Commits](https://git.cafe/pingdotgg/t3code/pull/23229/commits?format=markdown)

[Files changed](https://git.cafe/pingdotgg/t3code/pull/23229/diffs?format=markdown)

## Description

---

## Problem

Answering an async question after a queued turn completes persists the answer and starts another run, but hides its user message from the timeline. The later reply appears without its input; only the older question card shows the answer.

## Change

Fold an async answer into its question card only when both belong to the same run. Apply that rule to the web timeline, native mobile feed and its cache, and SQL/memory Find in Thread, so later-run answers remain visible and searchable. Keep the older card's answer history. Include sanitized, replayable capture fixtures.

## Scope and approval

Fixes #15873
GitCafe: https://git.cafe/pingdotgg/t3code/issues/15873
Triaged bug via the automated issue flow: [#15873](https://git.cafe/pingdotgg/t3code/issues/15873). One underlying folding defect across the clients and search. No schema or provider protocol changes.

## Verification

**CI blocked at current head:** GitCafe reports 13 failed and 22 successful checks at [31d3a20a19](https://git.cafe/pingdotgg/t3code/commit/31d3a20a190a6f706756a82cf5c2097dd5a8d0d4). Mirrored check summaries/run IDs are null and Cafe exposes no corresponding CI/Actions runs or diagnostic logs. Two agents verified the gap. Failure attribution is undetermined; this is not a green CI result. No speculative code changes or reruns were made.

Seeder follow-up [31d3a20a19](https://git.cafe/pingdotgg/t3code/commit/31d3a20a190a6f706756a82cf5c2097dd5a8d0d4) addresses all three CodeRabbit findings: synchronize C row timestamps, normalize retained provider/checkpoint run ordinals, and restrict destinations to the script checkout’s disposable `.t3` directory before opening SQLite (including symlink escapes/live-home rejection). The lead reran [the validator](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/36b7eff8d987a56d/15873-validate-fixtures.py): five fixture/idempotence checks pass; 40 corruptions and nine unsafe paths are rejected. Exactly 13 stored metadata fields change; identities, text, payload timestamps and positions remain unchanged. [Field-by-field report](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/06f04a388a3f29f3/15873-bot-fix-report.md). Production files are unchanged; the 105-test result below is from the preceding implementation head. Captures retain their original SHA/database scope and were not repeated with corrected metadata.

Post-merge focused suite: **105/105 passed** (49 web timeline, 37 mobile feed, 19 server Find), using `node_modules/.bin/vp test run apps/web/src/session-logic.test.ts apps/mobile/src/lib/threadActivity.test.ts apps/server/src/orchestration-v2/ThreadFind.test.ts`. Targeted lint on the six changed TypeScript files and `git diff --check` passed. Prior scoped typechecks passed before integration; no repo-wide checks run.

Merged main [8acbefefc5](https://git.cafe/pingdotgg/t3code/commit/8acbefefc51b4d281dcd04108c82baa1ab902b0e) with a merge commit [3738c10463](https://git.cafe/pingdotgg/t3code/commit/3738c1046353ff68c88933200105df9f607615fb). All three changed production source files are byte-identical to the captured AFTER checkout; captures were not repeated on this merge. Main also brings unrelated mobile/layout, forge and release changes, so the evidence remains scoped to the recorded SHA.

Red-first regressions failed on the missing answer in web full/incremental projection, mobile fresh/cached feeds, and SQL/memory Find. The original real-app reproduction is recorded in the issue comment. The lead independently verified exactly one late-answer bubble between the queued reply and its acknowledgement, and real Find returns `1/1` with the answer highlighted.

Final round (3/3): both isolated reviewers found no production defect and returned `FIX_FIRST`. Codex retained the active/mounted/native evidence objection. Opus requested removing evidence fixtures under the generic PR-assets rule; the explicit task requirement to commit the seeding script and fixture data takes precedence, so they remain. Fixture metadata inconsistencies identified during review were corrected in the bot follow-up below; these stopped snapshots certify settled rendering only, not lifecycle or subsequent dispatch. Read the [Codex review](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/698a2a0df4db0f8f/15873-review-r3-sol.md), [Opus review](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/50657eebb1b2d4f5/15873-review-r3-opus.md), and [proof audit pass 2](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0ce147c04e3d0291/15873-proof-pass2.md). Proof verdict: **INSUFFICIENT** for hot transitions, active steering, complete Find/control interactions, native clients and full-framebuffer wide stills. All 30 pair comparisons and 120 hashes passed; independently rebuilt G and Find narrow/light captures were byte-identical (zero pixel delta).

**Not merge-ready on evidence alone.** Native iOS, Android and Electron remain unverified; hot cache/answer-delivery transitions and full-framebuffer wide PNG proof are missing. Recording durations were verified with decoded browser metadata; narration uses wall-clock action-initiation offsets rather than certified media seek timestamps. See the explicit coverage gaps below.

[Full evidence index](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/eb8c2b716ee0afbf/index.md); [source-derived fixture matrix](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/748896dd533c4120/matrix.md). Before [ed9b7ca9c5](https://git.cafe/pingdotgg/t3code/commit/ed9b7ca9c53843ea1e6b466bf7d52928d10e7db0); captured after [7dcb809db8](https://git.cafe/pingdotgg/t3code/commit/7dcb809db870aa1903a6031cdf93b6155ac8124d).

### Environment and reproduction

Worktree `/home/ubuntu/wt/issue-15873`, restored to branch `fix/issue-15873` at 7dcb809db8. Browser is product-native T3 server preview, own tab `tab_l_6e549cef-3988-4dbf-afd5-b7128d4b53ce`. Chrome 154 on Linux x86_64; `devicePixelRatio=2`, zoom 1, loaded default fonts, interface 16px/prompt 14px/code 13px, default light/dark palettes. Browser language en-US and timezone UTC were verified; rendered messages show “yesterday at 11:xx PM”. Process Node v24.21.0 used identically on both SHAs; BEFORE contains the new Node26 pin, so this does not validate the new release toolchain.

Viewport grid: 1440×1000 and 390×844 **CSS px**. Narrow output is web, not native mobile. Saved narrow PNG is 780×1688. The snapshot tool internally caps wide output at 1280px, producing 1280×889 from 1440×1000 at DPR2. PNGs here are the exact original tool files, with no subsequent scaling, cropping, alignment or masking. Thus wide PNG diffs are **not full-framebuffer proof**. Original MP4 recordings preserve 2880×2000 wide or780×1688 narrow; they are compressed/lossy and not used for pixel counts. No source/MCP modification or alternate automation used to bypass the cap.

Fixed presentation Date: epoch `1792627200000`, `2026-10-22T00:00:00.000Z`; JS Date constructor/Date.now overridden through preview_evaluate after hydration, while requestAnimationFrame/timers continue normally. Fixture timestamps are fixed. This is presentation-clock control, not a frozen provider/backend clock. All captured rows are completed snapshots.

Isolated runtime home `.t3/capture`, database `.t3/capture/userdata/statev2.sqlite`. Schema copied/migrated from disposable worktree state; orchestration, projection and auth rows cleared before seeding. Never opened installed `~/.t3/userdata` database read-write. Product recovery stopped five ready fixture sessions and resumed zero runs/effects. Original `.t3/userdata/statev2.sqlite` preserved. AFTER used `PATH="$PWD/node_modules/.bin:$PATH" vp run dev --home-dir "$PWD/.t3/capture"`; BEFORE web used same runner and backend directly used `node apps/server/src/bin.ts --base-dir "$PWD/.t3/capture" --port 16526 --dev-url http://localhost:8486 --no-browser`. Actual web/server ports8486/16526. No VITE_HTTP_URL or VITE_WS_URL set.

Reproduction: select the product SHA; create a clean migrated disposable home, stop server, run the committed `seed.py` with `python3 -B`, then start on that home. Authenticate with a newly minted private pairing URL (none published). Route first segment is environment ID, **not project ID**; use the environment's current ID and the seeder's printed thread ID. The old `/tmp/issue-15873-capture/routes.json` has project IDs in its first segment and is only a fixture identity map, not valid direct URLs. Actual captured environment ID and routes are recorded per checkpoint in the manifest. Hide main sidebar and thread details, leave terminal/right panels closed, blur composer, move pointer to(1,1), wait for `document.fonts.ready` and projection acknowledgment. For standard stills scroll `.messages-timeline-scroll` to end for six animation frames; G-history uses scrollTop0. Snapshot state stores actual offsets, height and scroll extent. Wide G/A/C/L fit without scrolling; S crosses the end boundary after insertion and scrolls11CSS px, so its earlier content shifts upward accordingly. Long reveal scrolls to the end of the expanded body. Find action attempts begin from history top using real Control+F, input, Enter/Shift+Enter and Escape; the recording audit below limits which results are visible. Later fixture navigation uses production TanStack router through preview_evaluate; original wide-light clip also includes a cold A reload/reconnect.

Fixtures G/A/C/L and settled-S are rendering replays, not fresh provider sessions. G preserves genuine three-run structure; A/L remove intermediate run and renumber later run/positions; C moves synthetic answer to its question run before its final acknowledgment. Native item identities are distinct across fixtures to avoid global primary-key overwrites. Seeder validates retained run/node references, unique timeline ordinals, message/timeline text/run agreement, and schema columns were checked against the migrated DB. All generated runs are completed. Checkpoint refs are synthetic and do not point at actual checkpoint Git objects; revert actions are not certified. Direct projections do not create coherent business-event histories; no provider/event lifecycle claim follows.

### Comparison method

For every pair, decode original PNG to RGB; channel delta is absolute integer difference. Diff0 image is `min(delta×8,255)` on black. Count a Diff0 changed pixel iff any RGB channel differs at all. DiffT uses a fixed **max-channel delta>16/255** criterion, painted magenta on black; no ignored regions. Threshold chosen before comparison; no tolerance tuning. Counts and SHA256 hashes are retained in comparisons.json; rerun `python3 compare.py` after downloading/pointing the manifest to originals. No unexplained-zero or “nothing else changed” claim is made. C's exact equality applies only to the four captured collapsed settled control states.

30 pairs:20 timeline,4 Find,4 expanded-L comparisons,2 G-history. For expanded-L, BEFORE aliases its corresponding absent-bubble baseline; there is no BEFORE expand control. Eight recordings below supplement stills; they do not prove hot projection insertion, active steering or unexecuted controls.

### Captured sequences and pairs

**Recording audit correction:** narration below lists tool wall-clock action attempts, not certified media seek times. The recordings do not establish every narrated outcome. AFTER/390/light shows next (PTS 25.412→25.503) and previous (25.814), but no closed Find frame. AFTER/1440/dark ends while the multiple query is searching; BEFORE/1440/light and dark end at the exclusive query's 0/0 state. AFTER/1440/light ends with the unrelated query searching. BEFORE/390/dark does show Find closed at PTS 23.924. Complete per-cell navigation/close outcomes remain unverified. These recordings certify only their observable settled states and interactions.

Clip timestamps below are wall-clock offsets from recording_start, measured from tool step timestamps, rounded to0.01s. They identify action initiation; recorded encoders may omit idle frames and the original wide-light reconnect interrupts automation. Do not treat a selected still as a provider transition. Each checkpoint also retains actual UTC capture time in the manifest. Ordered narration appears before each group's comparison table.

#### 1440 CSS px — light

**BEFORE recording:** [before-1440-light.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/41bd0fc5f42cf5ad/before-1440-light.mp4). Start `2026-10-22T01:12:26.614Z`; native video 2880×2000; media duration 25.716s.

00:04.32 navigate G; 00:10.54 navigate A; 00:12.54 navigate S; 00:15.71 navigate C; 00:19.43 navigate L; 00:22.55 navigate G; 00:25.42 Find open; 00:25.80 Find exclusive query; 00:27.13 Find multiple query; 00:27.42 Find next; 00:27.60 Find previous; 00:27.80 Find close.

**AFTER recording:** [after-1440-light.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/34be10ba35f20f5a/after-1440-light.mp4). Start `2026-10-22T01:00:32.627Z`; native video 2880×2000; media duration 203.110s.

00:10.41 navigate A; 01:38.43 navigate S; 01:51.02 navigate C; 02:01.83 navigate L; 02:36.41 L expand; 02:44.75 navigate G; 02:51.61 Find open; 02:52.92 Find exclusive; 03:16.92 Find multiple; 03:21.02 next match; 03:23.43 previous match; 03:24.52 Find no results; 03:25.52 Find close.

| Row | Before<br>[ed9b7ca9c5](https://git.cafe/pingdotgg/t3code/commit/ed9b7ca9c53843ea1e6b466bf7d52928d10e7db0) | After<br>[7dcb809db8](https://git.cafe/pingdotgg/t3code/commit/7dcb809db870aa1903a6031cdf93b6155ac8124d) | Diff0 ×8 | DiffT >16 | Changed pixels 0 / T | Visible differences and limits |
|---|---|---|---|---|---|---|
| G | ![before-G-1440-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/880cf4a8bef63480/before-G-1440-light.png) | ![after-G-1440-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5ad96411ab6b822a/after-G-1440-light.png) | ![diff0-G-1440-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/39b58a1659b5d2b2/diff0-G-1440-light.png) | ![difft-G-1440-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/081343a6c24c0992/difft-G-1440-light.png) | 33,601 / 6,246 | One chronological late-answer user bubble added between queued-run reply and final acknowledgment; acknowledgment moves down; minimap gains user entry. At390, end-follow changes scrollTop and visible earlier history, including content behind the translucent composer; composer stays over the feed. |
| A | ![before-A-1440-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/704ed5147d9bc6a9/before-A-1440-light.png) | ![after-A-1440-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b72666ffb520b23b/after-A-1440-light.png) | ![diff0-A-1440-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fc122e7848879d39/diff0-A-1440-light.png) | ![difft-A-1440-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3c7759e3bcf2efbc/difft-A-1440-light.png) | 33,509 / 6,181 | Adjacent later-run answer becomes a separate bubble; final acknowledgment moves down; minimap gains entry. Narrow end-follow scrolls earlier content upward to retain the final reply. Literal RUN N+2 acknowledgment text is retained from G although derived run ordinal is2. |
| S | ![before-S-1440-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1a097aa73e1aeb0b/before-S-1440-light.png) | ![after-S-1440-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/13db01d19065bc53/after-S-1440-light.png) | ![diff0-S-1440-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/db6c2c1a57ee0fd8/diff0-S-1440-light.png) | ![difft-S-1440-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/90841c57b9cb8eb6/difft-S-1440-light.png) | 102,931 / 44,337 | Settled synthetic steer bubble plus Steer marker appears; final acknowledgment moves down and minimap gains entry. Wide AFTER content scrolls11CSS px; narrow end-follow shifts earlier content. No active-run/working/streaming/provider-steer claim. |
| C | ![before-C-1440-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c759d7d047c5e218/before-C-1440-light.png) | ![after-C-1440-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b6424141ac0a4787/after-C-1440-light.png) | ![diff0-C-1440-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6689e43ea0ce0ad6/diff0-C-1440-light.png) | ![difft-C-1440-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/65ad8b23edd0010f/difft-C-1440-light.png) | 0 / 0 | Exactly identical originals at Diff0 and DiffT. Same-run answer remains folded; no separate bubble. Expanded card/hot map transition not captured. |
| L | ![before-L-1440-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c3cffdf23ba2858b/before-L-1440-light.png) | ![after-L-1440-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/93230b0a206e39d2/after-L-1440-light.png) | ![diff0-L-1440-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bd6f05ee74bf2f2f/diff0-L-1440-light.png) | ![difft-L-1440-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/114b7463632731a8/difft-L-1440-light.png) | 108,998 / 14,043 | Collapsed long later-run bubble and Show full message control appear, final acknowledgment/minimap move; narrow end-follow shifts earlier history. Question preview remains present. |
| F | ![before-F-1440-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b9c0219270b5e08d/before-F-1440-light.png) | ![after-F-1440-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/210c7e6a704db4cf/after-F-1440-light.png) | ![diff0-F-1440-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/55b4b4bf241fabd5/diff0-F-1440-light.png) | ![difft-F-1440-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/96e5c92da7d3d9c9/difft-F-1440-light.png) | 33,753 / 7,421 | Real progressive Find counter changes0/0→1/1; zero-match red state becomes selected answer highlight; new bubble/reply positioning and minimap change. Narrow Find scrolls/reveals answer from history, changing visible earlier content. |
| L-expanded | ![before-L-expanded-1440-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f7f7dca246a75458/before-L-expanded-1440-light.png) | ![after-L-expanded-1440-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/92ebac8f14a3929d/after-L-expanded-1440-light.png) | ![diff0-L-expanded-1440-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1efb579c1709caf2/diff0-L-expanded-1440-light.png) | ![difft-L-expanded-1440-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/157ae259a13ea232/difft-L-expanded-1440-light.png) | 251,072 / 42,199 | BEFORE has no late-answer bubble or expand action. AFTER shows expanded numbered text, wrapped code block, tail token and Show less; body extends above viewport at end anchor, earlier content scrolls out, final acknowledgment/minimap move. Controls/background seen through translucent composer can differ with underlying feed. |

#### 390 CSS px — light

**BEFORE recording:** [before-390-light.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2f482c3b27fb8237/before-390-light.mp4). Start `2026-10-22T01:11:10.442Z`; native video 780×1688; media duration 42.142s.

00:01.68 navigate G; 00:05.50 history scroll top; 00:06.38 history scroll bottom; 00:07.01 navigate A; 00:13.89 navigate S; 00:21.68 navigate C; 00:26.98 navigate L; 00:32.51 navigate G; 00:36.18 Find open; 00:38.41 Find exclusive query; 00:40.51 Find multiple query; 00:41.50 Find next; 00:41.69 Find previous; 00:42.30 Find close.

**AFTER recording:** [after-390-light.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a4a06d88e8aab2ea/after-390-light.mp4). Start `2026-10-22T01:04:38.530Z`; native video 780×1688; media duration 25.847s.

00:01.58 navigate G; 00:04.42 history scroll top; 00:06.39 history scroll bottom; 00:07.40 navigate A; 00:11.69 navigate S; 00:14.69 navigate C; 00:16.68 navigate L; 00:18.90 L expand; 00:20.79 L collapse; 00:22.20 navigate G; 00:24.28 Find open; 00:24.53 Find exclusive query; 00:25.80 Find multiple query; 00:26.20 Find next; 00:26.32 Find previous; 00:26.60 Find close.

| Row | Before<br>[ed9b7ca9c5](https://git.cafe/pingdotgg/t3code/commit/ed9b7ca9c53843ea1e6b466bf7d52928d10e7db0) | After<br>[7dcb809db8](https://git.cafe/pingdotgg/t3code/commit/7dcb809db870aa1903a6031cdf93b6155ac8124d) | Diff0 ×8 | DiffT >16 | Changed pixels 0 / T | Visible differences and limits |
|---|---|---|---|---|---|---|
| G | ![before-G-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f97d583bff060e98/before-G-390-light.png) | ![after-G-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/af93c14e8f1a6f0d/after-G-390-light.png) | ![diff0-G-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d14ae474744e73e5/diff0-G-390-light.png) | ![difft-G-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0fefdef1256d4ec9/difft-G-390-light.png) | 455,933 / 66,034 | One chronological late-answer user bubble added between queued-run reply and final acknowledgment; acknowledgment moves down; minimap gains user entry. At390, end-follow changes scrollTop and visible earlier history, including content behind the translucent composer; composer stays over the feed. |
| G-history | ![before-G-history-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1ac08501eaf229b3/before-G-history-390-light.png) | ![after-G-history-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3779e03704553208/after-G-history-390-light.png) | ![diff0-G-history-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6a2aea30ae3989b5/diff0-G-history-390-light.png) | ![difft-G-history-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fc1db1c459e4ae9b/difft-G-history-390-light.png) | 47,502 / 4,824 | At scrollTop0 the earlier prompt/question/queued prompt stay anchored. Lower viewport now shows later-answer content instead of old acknowledgment, including pixels beneath translucent composer. Scroll extent increases and minimap/navigation state reflects additional entry. |
| A | ![before-A-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/52a827f391d7f6f3/before-A-390-light.png) | ![after-A-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/40094fd398c74a08/after-A-390-light.png) | ![diff0-A-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/faa43e7ff6e57d11/diff0-A-390-light.png) | ![difft-A-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fd754f2087d7de27/difft-A-390-light.png) | 402,525 / 83,659 | Adjacent later-run answer becomes a separate bubble; final acknowledgment moves down; minimap gains entry. Narrow end-follow scrolls earlier content upward to retain the final reply. Literal RUN N+2 acknowledgment text is retained from G although derived run ordinal is2. |
| S | ![before-S-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bdfae781cec439b1/before-S-390-light.png) | ![after-S-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/362c08c73e5c2ccd/after-S-390-light.png) | ![diff0-S-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/64ab9ca081873a23/diff0-S-390-light.png) | ![difft-S-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/42c251362aa328ed/difft-S-390-light.png) | 459,274 / 66,142 | Settled synthetic steer bubble plus Steer marker appears; final acknowledgment moves down and minimap gains entry. Wide AFTER content scrolls11CSS px; narrow end-follow shifts earlier content. No active-run/working/streaming/provider-steer claim. |
| C | ![before-C-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ae37e45d43a15542/before-C-390-light.png) | ![after-C-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/85f8ec908948a407/after-C-390-light.png) | ![diff0-C-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/54b38c279d4f816c/diff0-C-390-light.png) | ![difft-C-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1a5c5255e152bd9d/difft-C-390-light.png) | 0 / 0 | Exactly identical originals at Diff0 and DiffT. Same-run answer remains folded; no separate bubble. Expanded card/hot map transition not captured. |
| L | ![before-L-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a4ac4bc0de62f4be/before-L-390-light.png) | ![after-L-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0cd729a315acdd8d/after-L-390-light.png) | ![diff0-L-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6746ad2081cc564d/diff0-L-390-light.png) | ![difft-L-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/48bec2d089604b0c/difft-L-390-light.png) | 539,198 / 85,534 | Collapsed long later-run bubble and Show full message control appear, final acknowledgment/minimap move; narrow end-follow shifts earlier history. Question preview remains present. |
| F | ![before-F-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/181589ac864d2dc9/before-F-390-light.png) | ![after-F-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8b42a9df261bbfb6/after-F-390-light.png) | ![diff0-F-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6c3a42465a96115d/diff0-F-390-light.png) | ![difft-F-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1381eb93205eb207/difft-F-390-light.png) | 624,196 / 89,954 | Real progressive Find counter changes0/0→1/1; zero-match red state becomes selected answer highlight; new bubble/reply positioning and minimap change. Narrow Find scrolls/reveals answer from history, changing visible earlier content. |
| L-expanded | ![before-L-expanded-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fbcb486379cc921c/before-L-expanded-390-light.png) | ![after-L-expanded-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/eb47dbeb9b8ce7ce/after-L-expanded-390-light.png) | ![diff0-L-expanded-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/caca367cf9c0290f/diff0-L-expanded-390-light.png) | ![difft-L-expanded-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/27b0f03658341b64/difft-L-expanded-390-light.png) | 357,440 / 91,491 | BEFORE has no late-answer bubble or expand action. AFTER shows expanded numbered text, wrapped code block, tail token and Show less; body extends above viewport at end anchor, earlier content scrolls out, final acknowledgment/minimap move. Controls/background seen through translucent composer can differ with underlying feed. |

#### 390 CSS px — dark

**BEFORE recording:** [before-390-dark.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cae8f2cc8cfb758e/before-390-dark.mp4). Start `2026-10-22T01:11:55.118Z`; native video 780×1688; media duration 23.957s.

00:02.21 navigate G; 00:05.69 history scroll top; 00:07.29 history scroll bottom; 00:08.09 navigate A; 00:10.60 navigate S; 00:13.03 navigate C; 00:15.70 navigate L; 00:17.63 navigate G; 00:20.34 Find open; 00:21.24 Find exclusive query; 00:23.21 Find multiple query; 00:23.80 Find next; 00:24.13 Find previous; 00:24.33 Find close.

**AFTER recording:** [after-390-dark.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/282eef3282c7eb89/after-390-dark.mp4). Start `2026-10-22T01:05:12.545Z`; native video 780×1688; media duration 29.498s.

00:01.31 navigate G; 00:05.29 history scroll top; 00:06.38 history scroll bottom; 00:07.00 navigate A; 00:09.57 navigate S; 00:11.87 navigate C; 00:14.38 navigate L; 00:17.90 L expand; 00:20.10 L collapse; 00:22.30 navigate G; 00:26.00 Find open; 00:26.41 Find exclusive query; 00:28.97 Find multiple query; 00:29.48 Find next; 00:29.68 Find previous; 00:29.80 Find close.

| Row | Before<br>[ed9b7ca9c5](https://git.cafe/pingdotgg/t3code/commit/ed9b7ca9c53843ea1e6b466bf7d52928d10e7db0) | After<br>[7dcb809db8](https://git.cafe/pingdotgg/t3code/commit/7dcb809db870aa1903a6031cdf93b6155ac8124d) | Diff0 ×8 | DiffT >16 | Changed pixels 0 / T | Visible differences and limits |
|---|---|---|---|---|---|---|
| G | ![before-G-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6e827a848e704718/before-G-390-dark.png) | ![after-G-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6b7640e66fba833a/after-G-390-dark.png) | ![diff0-G-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b0e92c88d5a619d4/diff0-G-390-dark.png) | ![difft-G-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0edc47fbfb4bed77/difft-G-390-dark.png) | 452,936 / 67,416 | One chronological late-answer user bubble added between queued-run reply and final acknowledgment; acknowledgment moves down; minimap gains user entry. At390, end-follow changes scrollTop and visible earlier history, including content behind the translucent composer; composer stays over the feed. |
| G-history | ![before-G-history-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ee6fecb83e810239/before-G-history-390-dark.png) | ![after-G-history-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/165ab9ac31f419e3/after-G-history-390-dark.png) | ![diff0-G-history-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0f8a7a8036f80ab6/diff0-G-history-390-dark.png) | ![difft-G-history-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/601d9e025ba8a603/difft-G-history-390-dark.png) | 36,640 / 4,923 | At scrollTop0 the earlier prompt/question/queued prompt stay anchored. Lower viewport now shows later-answer content instead of old acknowledgment, including pixels beneath translucent composer. Scroll extent increases and minimap/navigation state reflects additional entry. |
| A | ![before-A-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/548d2e01e12a0563/before-A-390-dark.png) | ![after-A-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4e869cbb9e3211b1/after-A-390-dark.png) | ![diff0-A-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/96c057d14361bd5f/diff0-A-390-dark.png) | ![difft-A-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3b936cde438cb8ee/difft-A-390-dark.png) | 400,260 / 85,374 | Adjacent later-run answer becomes a separate bubble; final acknowledgment moves down; minimap gains entry. Narrow end-follow scrolls earlier content upward to retain the final reply. Literal RUN N+2 acknowledgment text is retained from G although derived run ordinal is2. |
| S | ![before-S-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e23e1d9a4680d060/before-S-390-dark.png) | ![after-S-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4638f6beb0d443a7/after-S-390-dark.png) | ![diff0-S-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3ebf94b520c7da44/diff0-S-390-dark.png) | ![difft-S-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/57ea9c9267f278b1/difft-S-390-dark.png) | 456,280 / 67,471 | Settled synthetic steer bubble plus Steer marker appears; final acknowledgment moves down and minimap gains entry. Wide AFTER content scrolls11CSS px; narrow end-follow shifts earlier content. No active-run/working/streaming/provider-steer claim. |
| C | ![before-C-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/19ca495b35c3a9ca/before-C-390-dark.png) | ![after-C-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e63fb23798b425f7/after-C-390-dark.png) | ![diff0-C-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0df2905ebb647e0b/diff0-C-390-dark.png) | ![difft-C-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d48e35fad03c2ae2/difft-C-390-dark.png) | 0 / 0 | Exactly identical originals at Diff0 and DiffT. Same-run answer remains folded; no separate bubble. Expanded card/hot map transition not captured. |
| L | ![before-L-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ae6f1a40f554cb0d/before-L-390-dark.png) | ![after-L-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d9527765e3bfc2d5/after-L-390-dark.png) | ![diff0-L-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a0a96ed68885892e/diff0-L-390-dark.png) | ![difft-L-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/203edd44a5997082/difft-L-390-dark.png) | 536,238 / 86,993 | Collapsed long later-run bubble and Show full message control appear, final acknowledgment/minimap move; narrow end-follow shifts earlier history. Question preview remains present. |
| F | ![before-F-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b8af9a3dfd847714/before-F-390-dark.png) | ![after-F-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/70b95bbaddef0af3/after-F-390-dark.png) | ![diff0-F-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0ef7fd12f8c64480/diff0-F-390-dark.png) | ![difft-F-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/434f43325547f371/difft-F-390-dark.png) | 612,811 / 91,561 | Real progressive Find counter changes0/0→1/1; zero-match red state becomes selected answer highlight; new bubble/reply positioning and minimap change. Narrow Find scrolls/reveals answer from history, changing visible earlier content. |
| L-expanded | ![before-L-expanded-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/847555d6fc9c9ed4/before-L-expanded-390-dark.png) | ![after-L-expanded-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/04b421da697d95c5/after-L-expanded-390-dark.png) | ![diff0-L-expanded-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3f8918421337a7dc/diff0-L-expanded-390-dark.png) | ![difft-L-expanded-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5f8fb3b4905df4da/difft-L-expanded-390-dark.png) | 355,105 / 102,874 | BEFORE has no late-answer bubble or expand action. AFTER shows expanded numbered text, wrapped code block, tail token and Show less; body extends above viewport at end anchor, earlier content scrolls out, final acknowledgment/minimap move. Controls/background seen through translucent composer can differ with underlying feed. |

#### 1440 CSS px — dark

**BEFORE recording:** [before-1440-dark.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/be9ba3dae3fe5943/before-1440-dark.mp4). Start `2026-10-22T01:12:57.427Z`; native video 2880×2000; media duration 19.715s.

00:03.41 navigate G; 00:05.82 navigate A; 00:08.18 navigate S; 00:11.39 navigate C; 00:13.62 navigate L; 00:16.21 navigate G; 00:18.53 Find open; 00:18.89 Find exclusive query; 00:20.29 Find multiple query; 00:20.71 Find next; 00:20.82 Find previous; 00:20.99 Find close.

**AFTER recording:** [after-1440-dark.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c1ae8f376c342af5/after-1440-dark.mp4). Start `2026-10-22T01:05:45.051Z`; native video 2880×2000; media duration 62.581s.

00:04.50 navigate G; 00:07.59 navigate A; 00:13.18 navigate S; 00:21.16 navigate C; 00:30.59 navigate L; 00:35.57 L expand; 00:44.38 L collapse; 00:49.40 navigate G; 00:55.80 Find open; 00:56.97 Find exclusive query; 01:00.27 Find multiple query; 01:03.19 Find next; 01:03.36 Find previous; 01:03.76 Find close.

| Row | Before<br>[ed9b7ca9c5](https://git.cafe/pingdotgg/t3code/commit/ed9b7ca9c53843ea1e6b466bf7d52928d10e7db0) | After<br>[7dcb809db8](https://git.cafe/pingdotgg/t3code/commit/7dcb809db870aa1903a6031cdf93b6155ac8124d) | Diff0 ×8 | DiffT >16 | Changed pixels 0 / T | Visible differences and limits |
|---|---|---|---|---|---|---|
| G | ![before-G-1440-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d08e680599cd54af/before-G-1440-dark.png) | ![after-G-1440-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a4faeb53d88d9da8/after-G-1440-dark.png) | ![diff0-G-1440-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/485bb7e23ccdfbe3/diff0-G-1440-dark.png) | ![difft-G-1440-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e20086fae90e2cf8/difft-G-1440-dark.png) | 33,556 / 6,442 | One chronological late-answer user bubble added between queued-run reply and final acknowledgment; acknowledgment moves down; minimap gains user entry. At390, end-follow changes scrollTop and visible earlier history, including content behind the translucent composer; composer stays over the feed. |
| A | ![before-A-1440-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d28c171f148af76e/before-A-1440-dark.png) | ![after-A-1440-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ee6b198fda88fba0/after-A-1440-dark.png) | ![diff0-A-1440-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/859599cf35a98750/diff0-A-1440-dark.png) | ![difft-A-1440-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a6566e5de781c0b0/difft-A-1440-dark.png) | 33,463 / 6,377 | Adjacent later-run answer becomes a separate bubble; final acknowledgment moves down; minimap gains entry. Narrow end-follow scrolls earlier content upward to retain the final reply. Literal RUN N+2 acknowledgment text is retained from G although derived run ordinal is2. |
| S | ![before-S-1440-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d61574cd7daacd17/before-S-1440-dark.png) | ![after-S-1440-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d2427d087610db32/after-S-1440-dark.png) | ![diff0-S-1440-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f11658d52cd1599a/diff0-S-1440-dark.png) | ![difft-S-1440-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f9d2dcaf41ec2782/difft-S-1440-dark.png) | 102,313 / 45,314 | Settled synthetic steer bubble plus Steer marker appears; final acknowledgment moves down and minimap gains entry. Wide AFTER content scrolls11CSS px; narrow end-follow shifts earlier content. No active-run/working/streaming/provider-steer claim. |
| C | ![before-C-1440-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/118c30699e801239/before-C-1440-dark.png) | ![after-C-1440-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8e874aac53217640/after-C-1440-dark.png) | ![diff0-C-1440-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/719de73314e45b7f/diff0-C-1440-dark.png) | ![difft-C-1440-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5035f8dfbe75e88b/difft-C-1440-dark.png) | 0 / 0 | Exactly identical originals at Diff0 and DiffT. Same-run answer remains folded; no separate bubble. Expanded card/hot map transition not captured. |
| L | ![before-L-1440-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/645e3fbdb7b36faa/before-L-1440-dark.png) | ![after-L-1440-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/117739cd1788cbcb/after-L-1440-dark.png) | ![diff0-L-1440-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0d8872724200f122/diff0-L-1440-dark.png) | ![difft-L-1440-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5e982d7ae0d3b3b1/difft-L-1440-dark.png) | 108,957 / 14,417 | Collapsed long later-run bubble and Show full message control appear, final acknowledgment/minimap move; narrow end-follow shifts earlier history. Question preview remains present. |
| F | ![before-F-1440-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/141a343b49b8bdad/before-F-1440-dark.png) | ![after-F-1440-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f69fc4b7ab76be5a/after-F-1440-dark.png) | ![diff0-F-1440-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d488254c6cbba3f1/diff0-F-1440-dark.png) | ![difft-F-1440-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b69b1a9e18b1f2c4/difft-F-1440-dark.png) | 33,739 / 7,621 | Real progressive Find counter changes0/0→1/1; zero-match red state becomes selected answer highlight; new bubble/reply positioning and minimap change. Narrow Find scrolls/reveals answer from history, changing visible earlier content. |
| L-expanded | ![before-L-expanded-1440-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f407be99ec835aef/before-L-expanded-1440-dark.png) | ![after-L-expanded-1440-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7e0a878901d7740e/after-L-expanded-1440-dark.png) | ![diff0-L-expanded-1440-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/66cad7151a743fd5/diff0-L-expanded-1440-dark.png) | ![difft-L-expanded-1440-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a497fd79d0e96d8e/difft-L-expanded-1440-dark.png) | 250,686 / 44,381 | BEFORE has no late-answer bubble or expand action. AFTER shows expanded numbered text, wrapped code block, tail token and Show less; body extends above viewport at end anchor, earlier content scrolls out, final acknowledgment/minimap move. Controls/background seen through translucent composer can differ with underlying feed. |

### Coverage and gaps for proof audit pass 2

- **G/A/S/C/L settled WEB geometry/theme grid:** captured. S is explicitly synthetic settled intent replay, not active steering. G top/bottom context is supplied at390. L collapsed/revealed captured; final line/wide block visible in revealed end checkpoint. C collapsed same-run control exactly equal across all four cells.
- **F real WEB progressive Find:** captured0/0→1/1 in four cells; query LATE ANSWER PROBE occurs in card history DOM but card answers are excluded from server Find documents. Multiple-result ACKNOWLEDGED BLUE query, Enter/Shift+Enter navigation and Escape recorded. Blank/unrelated-zero query only in original wide-light AFTER clip. Nonprogressive flag path, forced latency/error/retry and >17-document window unverified. Loading/searching phases may occur in clips; no claim every intermediate frame was observed.
- **G/A/C hot/mounted transitions, cache identity, answer dispatch/echo, route reload convergence, live-follow during actual insertion:** unverified. Recordings show settled route navigation, scrolling and local disclosure/Find, not hot store mutation. No new provider sessions were started.
- **K:** cache reassociation/null/orphan/inherited/anchored duplicate harness unverified visually; prior focused tests were reported by lead, not rerun in this capture task.
- **I:** L show-full/show-less interactions captured. Copy/clipboard verification, timestamp action hover/focus, question-card expanded disclosure and revert confirmation unverified. Synthetic checkpoint refs cannot certify actual revert.
- **Q/B:** empty/loading/error/retry, sparse-count/setup/first-message anchor, history pagination and failed/interrupted-run disclosure not captured. No invented empty async-answer flow.
- **Native iOS G/A/S/C/L/F/N and all hot/cache/disclosure rows:** unverified. EAS authenticated/available; owned session01a1611e-849f-76bf-abb4-b660782bdd05 reached iPhone17/iOS26.5 ready. Agent-device device listing succeeded. Opening com.t3tools.t3code.preview failed: `COMMAND_FAILED: Simulator device failed to launch ... Hint: The app bundle is not installed on this simulator. Run install before open.` Available simulator artifacts belong to unrelated commits; none used as proof. No current-source native fixture build/profile/transport harness prepared; user explicitly bounded this work. Session stop confirmed; generated credential dotenv removed. No native phone/tablet/theme grid. Maintainer needs source-matched native builds and production-route replay for remaining native proof.
- **N native global search:** unverified. Source audit found no production native answer-level Find; do not interpret web390 as native or add a fake native Find claim.
- **Desktop Electron shell/IPC and native Android:** unverified; route to maintainer. Web desktop layout is not shell certification.
- **Connection modes/providers:** local isolated snapshots only; remote/relay/tunnel, multi-environment/device and non-Codex runtime dispatch unverified.

This reduces redundant controls to named unverified rows while retaining all five affected/control fixture paths. It does not waive pass-1's stronger transition/native requirements. Parent may submit these artifacts to the final allowed review round; this capture step does not declare readiness.



Model and harness: GPT-6.1 Sol through Codex in T3 Code; Claude Opus 5.5 through Claude Agent in T3 Code.

