# PR review position captures — incomplete matrix evidence

Compared baseline [448b8a9186](https://git.cafe/pingdotgg/t3code/commit/448b8a918694e84137f850c6526d75aacfb2292d) with after [0a986b24eb](https://git.cafe/pingdotgg/t3code/commit/0a986b24ebe66ef3c28d2c2301832bbd95fd0e33). PR [#22930](https://github.com/pingdotgg/t3code/pull/22930), mirror [#22927](https://git.cafe/pingdotgg/t3code/pulls/22927).

**Coverage: 0/34 matrix rows complete; four before/after recording pairs partially exercise rows 01 and 09.** Do not paste this as full evidence-rule compliance. The [34-row matrix](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/61a82c853f284a55/matrix.md) specifies additional fixtures, layouts, surfaces and transitions that are absent.

## Seed and rendering environment

One read-only snapshot was pruned with the worktree-local `vp run migrate-dev-db --projects 1 --threads-per-project 1`, producing a 1 MB stopped-thread database. That exact SQLite file was copied into the baseline worktree before either server started. Both apps used their own ignored `.t3`; neither served from live userdata. Startup added a separate scratch project in each worktree. The project reference used for every clip is the same copied t3code project. No provider turns were started.

Real GitCafe PR read through `cafe`, seven files, all commits, stacked/unified diff, wrap enabled, all files expanded, file tree closed, global Pull Requests panel maximized. This is a live read-only forge response, **not** a stub and **not** the matrix three-file S or three-page L fixture. Both builds display the same PR patch. PR metadata/list rows and relative timestamps were live. No clock was frozen because that would interfere with the app refresh lifecycle. No forge writes, comments, PR edits, pushes, or CI reruns were made.

Environment: VM marker `freestyle`; T3 environment/server label `fs-17` (confirmed by the independent rebuild), Linux x86_64, Chrome 154.0.0.0 headless preview, DPR 2. CSS viewports 1440×900 / 390×844; videos 2880×1800 / 780×1688. Desktop screenshots are preview-scaled to 1280×800; narrow screenshots retain 780×1688. Narrow means responsive web, not native mobile. Dev web/server ports: after 7270/15310, baseline 8707/16747. Both source worktrees remained clean. The copied DB reported unknown newer migration IDs 68–70; no reconciliation was attempted.

## Script and timestamps

The same script runs in each clip: start with seven expanded files; set the real diff scroller to 470 px, allow header condensation, set it to 470 again; Code→Summary→Code then Code→Timeline→Code, three repetitions; open More pull request actions→Refresh; keep recording for ten seconds and capture the measured final state. Clicks use actual app controls. Setting scrollTop and theme preferences is browser setup; no review-store/query/DOM-content injection is used. No editor surface, watch, new commit/comment/check transition, selection, or pagination is exercised.

Times below show logged action-completion seconds relative to the record-start tool response, followed by approximate video seek seconds. Decoded video lags the event clock by a per-clip median of 0.25–0.76s; the video seek estimate adds that audited median and is not exact frame synchronization. Videos have variable frame rate. These are not server response timing assertions. The steps named destination visible and Code visible in the original script are 500ms dwells returning true, not assertions; the independent auditor decoded the frames to establish that each destination rendered. All final after clips show seven files at 470 px; baseline final clips show zero files and no diff scroller. All six tab returns retain 470 px in both builds, so the tab footage is a non-regression check and does not demonstrate a baseline tab-switch bug. The ten-second observation is bounded: it proves the recorded state at that point, not permanent absence for all future time.

[captures.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/266b504e7a9b109e/captures.json) · [pixel-deltas.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8be1a108b8911e7b/pixel-deltas.json) · [capture-orchestration.js](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cc21e75c4cd5da1c/capture-orchestration.js) · [prepare.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5f1158d55ed4967c/prepare.py)

## 1440x900-light

Partial rows 01 / 09 — 1440×900, light, global review, unified/wrap, live seven-file GitCafe PR. Rendering environment follows; each clip log independently records width, height, DPR, dark class and user agent.

Rendering environment for both captures in this pair: Linux 6.1.102 x86_64; Node 24.21.0; Chrome 154.0.0.0 headless; DPR 2; CSS 1440×900; light; real GitCafe via cafe; global maximized panel; unified diff, wrap on; live UI clock. Before source [448b8a9186](https://git.cafe/pingdotgg/t3code/commit/448b8a918694e84137f850c6526d75aacfb2292d), after source [0a986b24eb](https://git.cafe/pingdotgg/t3code/commit/0a986b24ebe66ef3c28d2c2301832bbd95fd0e33); both clean; copied identical SQLite seed.

Narration, before each pair:
- **Before**: 0.0s event / ~0.7s video scroll to 470; 0.8s event / ~1.5s video initial metrics; 4.4s event / ~5.0s video Code return metrics after Summary trip 1; 7.0s event / ~7.7s video Code return metrics after Timeline trip 1; 9.6s event / ~10.3s video Code return metrics after Summary trip 2; 12.2s event / ~12.8s video Code return metrics after Timeline trip 2; 15.0s event / ~15.6s video Code return metrics after Summary trip 3; 17.5s event / ~18.1s video Code return metrics after Timeline trip 3; 20.2s event / ~20.8s video explicit refresh; 30.4s event / ~31.0s video final metrics. Start 470 px, height 27504; final ['7 files', '0 files'], no diff scroller.
- **After**: 0.2s event / ~0.9s video scroll to 470; 1.2s event / ~1.9s video initial metrics; 5.6s event / ~6.4s video Code return metrics after Summary trip 1; 8.5s event / ~9.3s video Code return metrics after Timeline trip 1; 11.0s event / ~11.8s video Code return metrics after Summary trip 2; 13.4s event / ~14.2s video Code return metrics after Timeline trip 2; 15.9s event / ~16.6s video Code return metrics after Summary trip 3; 18.2s event / ~18.9s video Code return metrics after Timeline trip 3; 20.4s event / ~21.2s video explicit refresh; 30.6s event / ~31.3s video final metrics. Start 470 px, height 27504; final 470 px, ['7 files', '7 files'].

| Before | After |
|---|---|
| [448b8a9186](https://git.cafe/pingdotgg/t3code/commit/448b8a918694e84137f850c6526d75aacfb2292d) | [0a986b24eb](https://git.cafe/pingdotgg/t3code/commit/0a986b24ebe66ef3c28d2c2301832bbd95fd0e33) |
| [before-1440x900-light.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/58495afe0bce43cb/before-1440x900-light.mp4) | [after-1440x900-light.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e1c2b1671907ef98/after-1440x900-light.mp4) |

Supplemental static starting state (does not satisfy an interaction row):

| Before — [448b8a9186](https://git.cafe/pingdotgg/t3code/commit/448b8a918694e84137f850c6526d75aacfb2292d) | After — [0a986b24eb](https://git.cafe/pingdotgg/t3code/commit/0a986b24ebe66ef3c28d2c2301832bbd95fd0e33) |
|---|---|
| ![before-1440x900-light-start.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/12509e5bf7ad768e/before-1440x900-light-start.png) | ![after-1440x900-light-start.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/da1b56392fc4c395/after-1440x900-light-start.png) |

Final observation after Refresh:

| Before — [448b8a9186](https://git.cafe/pingdotgg/t3code/commit/448b8a918694e84137f850c6526d75aacfb2292d) | After — [0a986b24eb](https://git.cafe/pingdotgg/t3code/commit/0a986b24ebe66ef3c28d2c2301832bbd95fd0e33) |
|---|---|
| ![before-1440x900-light-end.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/246cde05c810a56e/before-1440x900-light-end.png) | ![after-1440x900-light-end.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fc93385bbf96a2a2/after-1440x900-light-end.png) |

Two supplemental comparison images for each static state: absolute RGB difference with PIL contrast enhancement factor 4 (not linear ×4), plus 50/50 overlay. A pixel is counted changed when any channel delta is >16/255; no pass threshold is inferred from a visual difference.

![1440x900-light-start-absdiff.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e06fc7d2b03b84de/1440x900-light-start-absdiff.png) ![1440x900-light-start-overlay.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/34716175eb175a84/1440x900-light-start-overlay.png)

![1440x900-light-end-absdiff.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/decb42c80485e5d3/1440x900-light-end-absdiff.png) ![1440x900-light-end-overlay.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d3a2fa3116af9e70/1440x900-light-end-overlay.png)

## 1440x900-dark

Partial rows 01 / 09 — 1440×900, dark, global review, unified/wrap, live seven-file GitCafe PR. Rendering environment follows; each clip log independently records width, height, DPR, dark class and user agent.

Rendering environment for both captures in this pair: Linux 6.1.102 x86_64; Node 24.21.0; Chrome 154.0.0.0 headless; DPR 2; CSS 1440×900; dark; real GitCafe via cafe; global maximized panel; unified diff, wrap on; live UI clock. Before source [448b8a9186](https://git.cafe/pingdotgg/t3code/commit/448b8a918694e84137f850c6526d75aacfb2292d), after source [0a986b24eb](https://git.cafe/pingdotgg/t3code/commit/0a986b24ebe66ef3c28d2c2301832bbd95fd0e33); both clean; copied identical SQLite seed.

Narration, before each pair:
- **Before**: 0.0s event / ~0.6s video scroll to 470; 0.9s event / ~1.5s video initial metrics; 4.1s event / ~4.7s video Code return metrics after Summary trip 1; 6.6s event / ~7.2s video Code return metrics after Timeline trip 1; 9.4s event / ~10.0s video Code return metrics after Summary trip 2; 11.8s event / ~12.4s video Code return metrics after Timeline trip 2; 14.4s event / ~15.0s video Code return metrics after Summary trip 3; 16.8s event / ~17.4s video Code return metrics after Timeline trip 3; 19.2s event / ~19.8s video explicit refresh; 29.4s event / ~30.0s video final metrics. Start 470 px, height 27504; final ['7 files', '0 files'], no diff scroller.
- **After**: 0.1s event / ~0.8s video scroll to 470; 1.1s event / ~1.9s video initial metrics; 5.4s event / ~6.2s video Code return metrics after Summary trip 1; 8.2s event / ~8.9s video Code return metrics after Timeline trip 1; 10.8s event / ~11.5s video Code return metrics after Summary trip 2; 13.1s event / ~13.9s video Code return metrics after Timeline trip 2; 15.9s event / ~16.7s video Code return metrics after Summary trip 3; 18.4s event / ~19.2s video Code return metrics after Timeline trip 3; 21.5s event / ~22.2s video explicit refresh; 31.6s event / ~32.4s video final metrics. Start 470 px, height 27504; final 470 px, ['7 files', '7 files'].

| Before | After |
|---|---|
| [448b8a9186](https://git.cafe/pingdotgg/t3code/commit/448b8a918694e84137f850c6526d75aacfb2292d) | [0a986b24eb](https://git.cafe/pingdotgg/t3code/commit/0a986b24ebe66ef3c28d2c2301832bbd95fd0e33) |
| [before-1440x900-dark.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ce7b8db1945c211e/before-1440x900-dark.mp4) | [after-1440x900-dark.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/44b0feecc86a4942/after-1440x900-dark.mp4) |

Supplemental static starting state (does not satisfy an interaction row):

| Before — [448b8a9186](https://git.cafe/pingdotgg/t3code/commit/448b8a918694e84137f850c6526d75aacfb2292d) | After — [0a986b24eb](https://git.cafe/pingdotgg/t3code/commit/0a986b24ebe66ef3c28d2c2301832bbd95fd0e33) |
|---|---|
| ![before-1440x900-dark-start.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c45397bb4e3e1e3b/before-1440x900-dark-start.png) | ![after-1440x900-dark-start.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2a3edcff326fa04f/after-1440x900-dark-start.png) |

Final observation after Refresh:

| Before — [448b8a9186](https://git.cafe/pingdotgg/t3code/commit/448b8a918694e84137f850c6526d75aacfb2292d) | After — [0a986b24eb](https://git.cafe/pingdotgg/t3code/commit/0a986b24ebe66ef3c28d2c2301832bbd95fd0e33) |
|---|---|
| ![before-1440x900-dark-end.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f8c236d3d7286be9/before-1440x900-dark-end.png) | ![after-1440x900-dark-end.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/64ca0fc399ade840/after-1440x900-dark-end.png) |

Two supplemental comparison images for each static state: absolute RGB difference with PIL contrast enhancement factor 4 (not linear ×4), plus 50/50 overlay. A pixel is counted changed when any channel delta is >16/255; no pass threshold is inferred from a visual difference.

![1440x900-dark-start-absdiff.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c458fba3cc5ef3a0/1440x900-dark-start-absdiff.png) ![1440x900-dark-start-overlay.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d0d9ae00e4f18e02/1440x900-dark-start-overlay.png)

![1440x900-dark-end-absdiff.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4afa115880698a5f/1440x900-dark-end-absdiff.png) ![1440x900-dark-end-overlay.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/932b1548e0b9d78c/1440x900-dark-end-overlay.png)

## 390x844-light

Partial rows 01 / 09 — 390×844, light, global review, unified/wrap, live seven-file GitCafe PR. Rendering environment follows; each clip log independently records width, height, DPR, dark class and user agent.

Rendering environment for both captures in this pair: Linux 6.1.102 x86_64; Node 24.21.0; Chrome 154.0.0.0 headless; DPR 2; CSS 390×844; light; real GitCafe via cafe; global maximized panel; unified diff, wrap on; live UI clock. Before source [448b8a9186](https://git.cafe/pingdotgg/t3code/commit/448b8a918694e84137f850c6526d75aacfb2292d), after source [0a986b24eb](https://git.cafe/pingdotgg/t3code/commit/0a986b24ebe66ef3c28d2c2301832bbd95fd0e33); both clean; copied identical SQLite seed.

Narration, before each pair:
- **Before**: 0.1s event / ~0.4s video scroll to 470; 1.0s event / ~1.3s video initial metrics; 3.7s event / ~3.9s video Code return metrics after Summary trip 1; 6.0s event / ~6.3s video Code return metrics after Timeline trip 1; 8.4s event / ~8.7s video Code return metrics after Summary trip 2; 10.7s event / ~11.0s video Code return metrics after Timeline trip 2; 13.0s event / ~13.2s video Code return metrics after Summary trip 3; 15.4s event / ~15.6s video Code return metrics after Timeline trip 3; 17.6s event / ~17.9s video explicit refresh; 27.9s event / ~28.1s video final metrics. Start 470 px, height 28004; final ['7 files', '0 files'], no diff scroller.
- **After**: 0.3s event / ~0.6s video scroll to 470; 1.2s event / ~1.5s video initial metrics; 4.6s event / ~4.9s video Code return metrics after Summary trip 1; 7.1s event / ~7.4s video Code return metrics after Timeline trip 1; 9.6s event / ~9.9s video Code return metrics after Summary trip 2; 12.0s event / ~12.3s video Code return metrics after Timeline trip 2; 14.5s event / ~14.8s video Code return metrics after Summary trip 3; 17.0s event / ~17.4s video Code return metrics after Timeline trip 3; 19.0s event / ~19.3s video explicit refresh; 29.2s event / ~29.5s video final metrics. Start 470 px, height 28344; final 470 px, ['7 files', '7 files'].

| Before | After |
|---|---|
| [448b8a9186](https://git.cafe/pingdotgg/t3code/commit/448b8a918694e84137f850c6526d75aacfb2292d) | [0a986b24eb](https://git.cafe/pingdotgg/t3code/commit/0a986b24ebe66ef3c28d2c2301832bbd95fd0e33) |
| [before-390x844-light.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/caafbd3cbe86d889/before-390x844-light.mp4) | [after-390x844-light.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a857686a529a3f41/after-390x844-light.mp4) |

Supplemental static starting state (does not satisfy an interaction row):

| Before — [448b8a9186](https://git.cafe/pingdotgg/t3code/commit/448b8a918694e84137f850c6526d75aacfb2292d) | After — [0a986b24eb](https://git.cafe/pingdotgg/t3code/commit/0a986b24ebe66ef3c28d2c2301832bbd95fd0e33) |
|---|---|
| ![before-390x844-light-start.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5dfe26ae2bea5f13/before-390x844-light-start.png) | ![after-390x844-light-start.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d9e39824969c40d9/after-390x844-light-start.png) |

Final observation after Refresh:

| Before — [448b8a9186](https://git.cafe/pingdotgg/t3code/commit/448b8a918694e84137f850c6526d75aacfb2292d) | After — [0a986b24eb](https://git.cafe/pingdotgg/t3code/commit/0a986b24ebe66ef3c28d2c2301832bbd95fd0e33) |
|---|---|
| ![before-390x844-light-end.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b4c2b26c7496dbc0/before-390x844-light-end.png) | ![after-390x844-light-end.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b736bbbe1f33d7aa/after-390x844-light-end.png) |

Two supplemental comparison images for each static state: absolute RGB difference with PIL contrast enhancement factor 4 (not linear ×4), plus 50/50 overlay. A pixel is counted changed when any channel delta is >16/255; no pass threshold is inferred from a visual difference.

![390x844-light-start-absdiff.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8e5a311d6a8db21e/390x844-light-start-absdiff.png) ![390x844-light-start-overlay.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/275b4eb03535b06b/390x844-light-start-overlay.png)

![390x844-light-end-absdiff.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a91c94c6856160ea/390x844-light-end-absdiff.png) ![390x844-light-end-overlay.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4d4c2e3195d968d1/390x844-light-end-overlay.png)

## 390x844-dark

Partial rows 01 / 09 — 390×844, dark, global review, unified/wrap, live seven-file GitCafe PR. Rendering environment follows; each clip log independently records width, height, DPR, dark class and user agent.

Rendering environment for both captures in this pair: Linux 6.1.102 x86_64; Node 24.21.0; Chrome 154.0.0.0 headless; DPR 2; CSS 390×844; dark; real GitCafe via cafe; global maximized panel; unified diff, wrap on; live UI clock. Before source [448b8a9186](https://git.cafe/pingdotgg/t3code/commit/448b8a918694e84137f850c6526d75aacfb2292d), after source [0a986b24eb](https://git.cafe/pingdotgg/t3code/commit/0a986b24ebe66ef3c28d2c2301832bbd95fd0e33); both clean; copied identical SQLite seed.

Narration, before each pair:
- **Before**: 0.0s event / ~0.3s video scroll to 470; 0.9s event / ~1.2s video initial metrics; 4.1s event / ~4.3s video Code return metrics after Summary trip 1; 6.5s event / ~6.7s video Code return metrics after Timeline trip 1; 8.8s event / ~9.1s video Code return metrics after Summary trip 2; 11.2s event / ~11.5s video Code return metrics after Timeline trip 2; 13.5s event / ~13.8s video Code return metrics after Summary trip 3; 15.8s event / ~16.1s video Code return metrics after Timeline trip 3; 18.0s event / ~18.2s video explicit refresh; 28.1s event / ~28.3s video final metrics. Start 470 px, height 28004; final ['7 files', '0 files'], no diff scroller.
- **After**: 0.2s event / ~0.5s video scroll to 470; 1.2s event / ~1.5s video initial metrics; 5.1s event / ~5.4s video Code return metrics after Summary trip 1; 7.6s event / ~7.9s video Code return metrics after Timeline trip 1; 9.9s event / ~10.2s video Code return metrics after Summary trip 2; 12.2s event / ~12.5s video Code return metrics after Timeline trip 2; 14.5s event / ~14.8s video Code return metrics after Summary trip 3; 16.8s event / ~17.1s video Code return metrics after Timeline trip 3; 18.5s event / ~18.8s video explicit refresh; 28.6s event / ~28.9s video final metrics. Start 470 px, height 28004; final 470 px, ['7 files', '7 files'].

| Before | After |
|---|---|
| [448b8a9186](https://git.cafe/pingdotgg/t3code/commit/448b8a918694e84137f850c6526d75aacfb2292d) | [0a986b24eb](https://git.cafe/pingdotgg/t3code/commit/0a986b24ebe66ef3c28d2c2301832bbd95fd0e33) |
| [before-390x844-dark.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c3e1976859a99b81/before-390x844-dark.mp4) | [after-390x844-dark.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b6bf35a1b04b3e7f/after-390x844-dark.mp4) |

Supplemental static starting state (does not satisfy an interaction row):

| Before — [448b8a9186](https://git.cafe/pingdotgg/t3code/commit/448b8a918694e84137f850c6526d75aacfb2292d) | After — [0a986b24eb](https://git.cafe/pingdotgg/t3code/commit/0a986b24ebe66ef3c28d2c2301832bbd95fd0e33) |
|---|---|
| ![before-390x844-dark-start.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f8babce59362611b/before-390x844-dark-start.png) | ![after-390x844-dark-start.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/566ed5905cd08796/after-390x844-dark-start.png) |

Final observation after Refresh:

| Before — [448b8a9186](https://git.cafe/pingdotgg/t3code/commit/448b8a918694e84137f850c6526d75aacfb2292d) | After — [0a986b24eb](https://git.cafe/pingdotgg/t3code/commit/0a986b24ebe66ef3c28d2c2301832bbd95fd0e33) |
|---|---|
| ![before-390x844-dark-end.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2c4d32a2d3892649/before-390x844-dark-end.png) | ![after-390x844-dark-end.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e334a7716a55e484/after-390x844-dark-end.png) |

Two supplemental comparison images for each static state: absolute RGB difference with PIL contrast enhancement factor 4 (not linear ×4), plus 50/50 overlay. A pixel is counted changed when any channel delta is >16/255; no pass threshold is inferred from a visual difference.

![390x844-dark-start-absdiff.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9d3ccd9a29f03502/390x844-dark-start-absdiff.png) ![390x844-dark-start-overlay.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/549d32015f6a20ba/390x844-dark-start-overlay.png)

![390x844-dark-end-absdiff.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ae18a973369c065b/390x844-dark-end-absdiff.png) ![390x844-dark-end-overlay.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2da6403a55c4f252/390x844-dark-end-overlay.png)

[Source and video provenance](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a5e29c26150df16b/provenance.json)

## What else changed

- Source diff: seven web files add bounded in-memory review sessions, stable fold keys, scroll restoration/page replay and invalidation, and focused logic tests. Contracts, server providers, desktop shell and native mobile are unchanged by this PR.
- The source fix stores raw logical offset rather than a semantic line anchor. This evidence establishes measured 470 px retention and visible context only for these runs, not arbitrary line/range persistence.
- Live PR list entries and relative timestamps changed between captures. The matrix was not seeded into controlled forge revisions. No claim is made about selection/composer persistence or commit contents.
- The first narrow-light after run measured total scroll height 28344→28004 while remaining at 470 px; wrapped/highlighter layout settled. Other final included runs have stable measured height. Pixel metrics and all starting/final dimensions are in the linked JSON.
- Cold/short recordings that ended before settling, a preview evaluate timeout at its 15s limit, notification-obscured footage, and mismatched panel framing were excluded. The published desktop pairs use corrected maximized framing.

## Independent proof audit

[Pass 2](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/126c16c1660cd4ca/proof-audit-pass2.md): INSUFFICIENT for all 34 full rows; bounded partial claims for rows 01/09 verified. All 45 original linked artifacts matched uploaded bytes. All eight video streams were decoded, their dimensions/themes checked, pixel comparisons recomputed, and tab/refresh frames verified. The independent narrow-light rebuild differs by 0.167% (2,203 px) at threshold >16/255, confined to the header: live relative time changed and the commit selector was absent after a transient GitCafe read failure. The diff body is pixel-identical. Original narration descriptions are corrected here: dwell steps are not visibility assertions, video seek estimates include the audited median lag, and difference images use contrast enhancement, not linear multiplication. The remaining fixture coverage is not repaired by these wording corrections.

[Corrected-evidence re-audit](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/166a023ecbe23fa0/proof-audit-pass2-reaudit.md): corrections and bounded claims confirmed; full matrix remains INSUFFICIENT (0/34). All 47 linked files matched local copies. This final index only fixes the three minor wording/table issues from that re-audit: return-metric labels explicitly mean Code after the trip, environment text points forward, and the friction divider has three columns. Media and measurements are unchanged. The earlier decoded-frame, pixel-delta and 0.167% rebuild results were reused by the re-auditor because media bytes were unchanged.

## Matrix disposition

| Matrix rows | Status / reason |
|---|---|
| 01 | Partial: explicit PR-menu Refresh only; no S/L, split layout, mixed folds, page-three/cursor revalidation or thread surface. |
| 09 | Partial: Summary and Timeline trips three times at all four viewport/theme combinations. No Guide, S/L variants, selected commit/mixed folds, thread surface or split layout. Both builds retain 470px. |
| 02–08, 10–34 | Unverified: controlled provider fixtures, real watch/background lifecycle, editor surface, commit contents, pagination/error gates, selections/annotations, huge logical scroll, isolation/caps, raw/empty/error branches, eligibility timing, desktop and remote transport were not built/exercised. The real GitCafe provider rejects commit-specific diff contents. No desktop surface is attached. |

## FRICTION

| category | what happened | what would have avoided it |
|---|---|---|
| provenance | VM marker says freestyle, brief says fs-17 | consistent machine marker in dispatcher brief |
| tooling | dev server initially lacked cafe on PATH | start with ~/.bun/bin on PATH |
| timing | 2.5s footage ended pending; a 15s evaluate hit its timeout | bounded ten-second observation with explicit final metrics |
| capture | reload reset panel size; provider notification covered narrow tabs | assert maximized panel and dismiss notification before recording |
| scope | 34-row matrix remains mostly unexecuted | prepared controlled fixtures and access to required desktop/remote/watch surfaces |

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