## Evidence

**Partial evidence; outside-title differences:** Replay duration differs (before “1m 11s”, after “2s”), and public PR update-relative times differ. These are fixture/runtime timing noise. The content viewport is **1440×813**, despite the tool’s 1440×900 outer-window setting. **0/38 matrix rows fully captured; F01 has one before/after light profile, with its required dark profile missing.** Do not treat this as full proof or merge approval.

PR [#32548](https://git.cafe/pingdotgg/t3code/pull/32548), [GitHub mirror #32548](https://github.com/pingdotgg/t3code/pull/32548).

Environment: Linux x86_64 VM fs-57; isolated agent-browser 0.42.0, Google Chrome 151.0.7922.108, no device emulation, DPR 1, default browser font scaling (100%), actual CSS viewport 1440×813, light theme, reduced-motion media emulation. Desktop shell was not separately launched. Browser-panel fallback followed repeated preview timeouts. Each revision ran as the real web app from its own detached checkout, with T3CODE_DEV_SEED=0 and fresh own-build databases. The same seed script registered a synthetic GitHub-origin project and a free Replay thread; no live database was read or copied. No frozen clock. The source is the expandable CLI-origin “Agent” prompt, through the normal markdown link handler, not a fabricated assistant response.

### F01 — ordinary issue comment — 1440×813 light, thread panel (540px)

Same interaction: expand the seeded prompt before recording; start with the PR panel closed; 00:00 source links visible; approximately 00:01.5–00:02 click “Ordinary issue comment”; by 00:03 before is at Description, after has scrolled to the target with the condensed header and blue ring. Recordings are approximately 3–4 seconds. Move the pointer away from the source link before the final frame. Timings are approximate video-relative observations, not a measured latency comparison. The final after DOM probe reported the linked article as document.activeElement and rectangle x=917, y=203.08, width=507, height=345. No claim about later scroll hold, user release, or races.

Both accepted original still pairs had zero differing pixels at their final settling check; the screenshots were taken at least 500 ms apart. Fonts were loaded. Forge content was loaded, and accepted stills show no skeleton, refresh spinner, tooltip or overlay. A strict network-idle checkpoint was not established for this polling/WebSocket app, so this remains a documented deviation. Every published still, diff, and recording contact sheet was opened and inspected. Full motion was sampled using the sheets; no audio narration was added.

A fixed opaque gray block at x=915,y=550,w=525,h=264 redacts a neighboring public comment’s private operational attribution from recordings/stills. The same block is applied before and after; it leaves the complete target card visible. The redaction is an evidence edit, not app UI. The rest of the surface is uncropped. Recordings are transcoded to MP4, preserving their motion and timing.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| ![F01-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f4819a0dc7880e65/F01-before.png)<br>[ac5e48c](https://github.com/pingdotgg/t3code/commit/ac5e48c612061895511f549d363a2186a6a005ea) | ![F01-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/dbe9d03f9b78c40b/F01-after.png)<br>[f52b391](https://github.com/pingdotgg/t3code/commit/f52b3915f7b5df153066f8575a12580073814db8) | ![F01-diff0-amplified8.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/46b973bafec9eee3/F01-diff0-amplified8.png)<br>[ac5e48c](https://github.com/pingdotgg/t3code/commit/ac5e48c612061895511f549d363a2186a6a005ea) → [f52b391](https://github.com/pingdotgg/t3code/commit/f52b3915f7b5df153066f8575a12580073814db8) | ![F01-diffT16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1fbbbdaa0b6c2e86/F01-diffT16.png)<br>[ac5e48c](https://github.com/pingdotgg/t3code/commit/ac5e48c612061895511f549d363a2186a6a005ea) → [f52b391](https://github.com/pingdotgg/t3code/commit/f52b3915f7b5df153066f8575a12580073814db8) |

Diff0: absolute channel difference, threshold zero, intensity amplified ×8. DiffT: white if maximum absolute channel difference exceeds 16/255; black otherwise. Applied to the redacted whole-surface stills.

Before recording: [F01-before.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9193b0d9b5bf8570/F01-before.mp4)

After recording: [F01-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/94745b8b7202b1be/F01-after.mp4)

Before contact sheet: ![F01-before-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fb9c3a7244fe6147/F01-before-sheet.png)

After contact sheet: ![F01-after-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3cc3e99f5fff7aa9/F01-after-sheet.png)

What else changed (all visible differences in the settled pair):

- Intended: panel scroll replaces Description/reviewers/labels with Comments and the linked human comment; header condenses, title truncates, checkout/branch/file information compresses, Summary stays selected, and the target gains its blue border/ring and DOM focus. The Comments heading shows 14 comments, 10 hidden, newest-first controls; target body, author, relative date, reaction and Add to chat controls become visible. The comment body retains its existing clamp/Show full comment control.
- Outside the PR behavior: Replay elapsed text changes from “1m 11s” to “2s”; the PR’s update-relative text is sampled later. The fixture content, chat links, composer and sidebar otherwise match in the settled pair. Small focus/icon antialias differences are included in Diff0.
- Evidence processing: identical gray privacy redaction; no other crop or content substitution. The mismatch from requested 900px content height is an environment limitation, not a layout change attributed to the PR.

### Remaining matrix coverage

- F01 dark is unverified. An attempted dark take remained light after the programmatic preference call and is rejected; it also had a nonsettled refresh icon. No dark support claim.
- F07 (both themes), F02, F12, F16, F17, F29, F08 and F30 were not captured as qualifying before/after pairs because browser and server stalls consumed the budget. A short F07 before attempt is rejected, not accepted coverage.
- F33: glab authentication status succeeded, but no real-app GitLab detail read/reveal was completed before the cutoff; unverified. No credential changes or forge writes.
- F05, F09, F19–F27 and F38: **covered by tests, not captured**, per the task’s designation of rightPanelStore.test.ts and pullRequestDetail.logic.test.ts; no controlled harness built. This is not a claim that this run passed those tests. The focused command started but produced no completed results before being interrupted to reduce VM load.
- F35–F37: unit-only as requested; no integration claim and no successful test result claimed from this run.
- F03, F04, F06, F10, F11, F13–F15, F18, F28, F31, F32, F34: not captured within budget.
- Neither 390-wide theme was captured. Narrow-panel usability is unverified.

### Scripts and diagnostics

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

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

[ab](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/08af108a7db5b8d8/ab)

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

[diagnostics-and-scripts.zip](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cecda80f58e9e5c4/diagnostics-and-scripts.zip)

The seed ran against both fresh databases. driver.py was used for an initial F01-after attempt; its early skeleton stills were rejected. Accepted retakes used the same agent-browser commands with explicit waits for the loaded target and pointer removal. publish.py creates the public privacy redaction, MP4s, sheets, both diff variants, and sanitized diagnostics. The diagnostics archive records installs and server stalls without pairing credentials or operational model lines. No source edits, PR comments, push or merge were made.

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

FRICTION:
- tool | Preview evaluate/snapshot calls repeatedly timed out or returned after long delays; agent-browser also reported daemon response errors | A healthy, dedicated browser session with bounded calls.
- infra | VM CPU overload and server event-loop stalls (including a logged 109595 ms stall) consumed most of the 85-minute allowance | Reserve CPU for the evidence worker or run one dev server at a time from the start.
- tool | agent-browser was absent from PATH; npm exec supplied 0.42.0 | Preinstall the browser CLI.
- tool | 1440×900 outer-window setting produced a 1440×813 CSS content viewport | Set and verify the content viewport before all captures.
- runbook | Programmatic setTheme("dark") did not produce dark appearance in attempted takes | Drive and verify the normal appearance control before recording.
[rejected-attempts-redacted.zip](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ccd9e954cb3c2c75/rejected-attempts-redacted.zip)
[archive-attempts.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/34f1d3382bc223fc/archive-attempts.py)

Teardown: owned browser and both preview tabs closed; both dev servers stopped; both requested detached worktrees removed.
