Evidence capture for [#22877](https://github.com/pingdotgg/t3code/pull/22877), [#16901](https://github.com/pingdotgg/t3code/issues/16901).

Before: e54e71d725b6eef166ee9b85137c09e051cff342. Final candidate: e8a30afda42d34ad8f0627d40b864c260fab7f40. Only scripts/evidence/issue-16901.mjs was committed by capture agent (three small commits; no production edits). No push, forge write, or merge. Local candidate SHA is not published; fixture source is uploaded for rebuild access. T3 PR link registered.

Strict matrix completion: 0/17 rows complete across every required theme/geometry/state. H1 and C1 have real Linux Electron hard-gate evidence; scope/recording gaps below prevent treating either full matrix row as complete. Earlier candidate files headed after-* (48fbc066bc) and final-* (22396ead44) are superseded supplementary material, not final-head proof. Final-head files use head-*.

| Row | Coverage / explicit missing proof |
|---|---|
| H1 | Partial: exact example.com/Claude sleep5/45s APP renderer stall; same tab red/blue. Before retained wrong native original; candidate streamed both mutations with no duplicate native webview. Missing matched narrow/dark before variants and full initial-stall portion of before recording. |
| H2 | Unverified full row. Supplementary earlier candidate hide/reveal, switch-away/back and same-ID local navigation observed. Close/new native lifecycle not captured as complete matched flow. |
| H3 | UNVERIFIED: real stale-overlay race not seeded; no injected-store substitute. |
| H4 | UNVERIFIED full row: earlier candidate stream floating/panel observed in recording; no matched before/full drag/resize/stale125%/all geometries. Some early still filenames precede transition and are NOT floating-state proof. |
| H5 | UNVERIFIED full row: earlier candidate Take/Release control observed; no complete matched navigation/history/fill-fixed/125%-reset sequence. Narrow capture selected native tab; NOT fallback-control proof. |
| H6 | UNVERIFIED: fixture endpoints exist but complete empty/loading/failure/download flow not captured. |
| H7 | UNVERIFIED: popup adoption not exercised. |
| H8 | UNVERIFIED: PDF/separate-window capability not exercised. |
| N1 | UNVERIFIED full row: actual native fixture attachment used as C1 prerequisite. Zoom/history/pointer and all settings not captured. |
| N2 | UNVERIFIED: complete native floating control not captured. |
| C1 | Partial: before red capture happened before thread-switch barrier; second BLUE snapshot timed out after15s while hidden/B selected. Candidate both RED/BLUE snapshots while hidden/B selected, >10s activity hold and turn-end release recorded. Dark pair and waiting-status path not captured. |
| C2 | UNVERIFIED: idle/missing-shell repeated10s timer path. |
| C3 | UNVERIFIED: PiP/built-in recording OR-lease controls. Built-in recording never enabled during hard gates. |
| C4 | UNVERIFIED: routing-isolation malformed/non-capture/remote keys. |
| W1 | UNVERIFIED: no independent web client/390 or desktop-later connection control. |
| R1 | UNVERIFIED: no second environment/direct/relay/tunnel proof. |
| D1 | UNVERIFIED: desktop-runtime legacy tab branch. |

Platforms: Linux Electron only. macOS/Windows hidden/reveal, React Native iOS/Android, remote/relay/tunnel unverified. Electron source minimum is840x620; supported narrow supplemental capture840x844. No claim that390 web/narrow desktop is native mobile.

What else changed: H1 preview original example.com content becomes agent RED/BLUE marker; server stream adds Agent has control/Take control bar and removes native-only annotate/screenshot controls while read-only; fixed1280x800 source is letterboxed rather than native fill; stream JPEG/text rasterization differs. Chat prose, IDs, timestamps, worked duration, sidebar relative ages, scroll/wrapping and changed-file counts differ because real provider turns are nondeterministic and Git branch differs. These prevent a pixel-identical surrounding app claim. C1 returned screenshot rasterization sharpness differs; source markers/colors reviewed. No claim of unchanged pixels below threshold.

FRICTION: first CDP attempt raced window creation (Target.createTarget Not supported); retry attached. Native Browser.getWindowForTarget unavailable; used X11 window resize and measured renderer. Xvfb requires its captured XAUTHORITY; failed first recording attempt produced no usable artifact. agent-browser default viewport override1280x800 cleared with Emulation.clearDeviceMetricsOverride before paired checkpoints. Saved theme persisted beyond backend copy; explicitly selected Light for final paired checkpoints. Actual tool is preview_snapshot(includeImage:true,save:true), not preview_screenshot. Fixture instructions corrected accordingly. A prompt attempted before previous turn completed was not submitted; rerun only after UI state barrier. No raw logs uploaded; extracted only tool inputs and assistant result text. Budget limits leave rows unverified.


Rendering environment: Ubuntu Linux x86_64, real Electron44.9.3 / Chromium152.0.7977.167, headless-desktop Xvfb1920x1080x24, --no-sandbox --disable-gpu. Agent-browser0.39.1 attached over CDP19291; independent ffmpeg6.1.1 X11 full-client capture10fps, libx264 CRF25. App1440x900 CSS px, DPR1, no device emulation, Electron zoom1/100%. Native preview539x820; headless source1280x800 letterboxed. Explicit Light final checkpoints. Interface font16px, prompt14px, code13px, terminal12px; default font families, smoothing enabled. fc-match resolves system sans/monospace to Liberation Mono on this host; Arial to Liberation Sans. All before/after paired checkpoints share host/fonts/geometry/theme; conversation and timing differ as itemized above. Earlier narrow840x844/dark captures are supplementary at superseded SHA only, not final-head proof.

Reproduction and commands: vp run --filter @t3tools/desktop build passed for before and final candidate. node --check scripts/evidence/issue-16901.mjs passed; vp lint scripts/evidence/issue-16901.mjs printed no diagnostics after namespace import correction. Parent reports30 focused tests pass; this capture agent did not duplicate them. Launch: env -u ELECTRON_RUN_AS_NODE T3CODE_HOME=/home/ubuntu/wt/issue-16901/.t3/desktop T3CODE_PORT=14806 headless-desktop apps/desktop/node_modules/electron/dist/electron --no-sandbox --disable-gpu --remote-debugging-port=19291 apps/desktop/dist-electron/main.cjs. No VITE_HTTP_URL or VITE_WS_URL. Isolated initial backend state copied while stopped to /tmp/issue-16901-evidence/initial-state; copied back for candidate rebuilds. Initial project/thread A/B were supplied by parent and not fabricated in SQLite. Provider session history persisted externally, so DB restoration cannot make prose deterministic. Fixture server: node scripts/evidence/issue-16901.mjs on127.0.0.1:14807; exact H1/C1 instructions emitted in ready manifest and retained in committed script. Driver helpers in scratch: page-cdp.mjs, prompt.mjs, wait.mjs, observe.mjs, wire-observe.mjs, extract.mjs, head-diff.py, c1-diff.py. State readiness uses DOM MutationObserver barriers; explicit45s stall and product timer observations are race stimuli/lifetime checks, not generic test sleeps.

Final provenance: final candidate e8a30afda42d34ad8f0627d40b864c260fab7f40; head-build.log says5/5 successful. head-* captures were taken after that build/restart. Prior after-* and final-* artifacts remain locally readable but are superseded. No production files changed in the three fixture commits. No screenshots/assets committed.

Final IDs: thread A3ff58308-2d0c-4c37-b9af-d23dfde71fef; B72ed4330-0afb-4d36-b882-13a059f08ddf. H1tab_1_629b1d78-a42b-4cb5-9f1d-298a4bc19440; native C1tab_2_629b1d78-a42b-4cb5-9f1d-298a4bc19440. head-wire-headless.jsonl records H1runtime server/headless true. head-C1-native-prerequisite.json records actual native webview before hiding; head-C1-lifetime.jsonl records B selected, active19:27:02.368 -> suspended19:27:32.130, with no intervening suspension. Both captures539x820 reviewed for RED/BLUE text and color. Before BLUE capture has no image because it timed out; no fake blue Before/Diff supplied.

Diff rules: H1 RED and BLUE full-client pairs and C1 RED returned-image / hidden-client pairs each have zero threshold amplified16x and a separate >8/255-per-channel mask. Label bands are added outside original pixels. H1 surrounding chat is deliberately NOT normalized or erased. Pixel counts are retained in diff-stats.json. C1 hidden screenshot comparison shows B chat plus app state, not hidden guest pixels; guest correctness comes from returned image artifacts and lifetime transcript. Narrated videos use on-screen explanatory captions (no audio); raw originals retained and linked. Earlier before video begins during recovery, explicitly captioned as incomplete. Final-head video includes full stall and both C1 captures.


Evidence pairs (label bands preserve full original client surface):

| State | Before e54e71d725 | After e8a30afda4 | Diff zero16x | Diff >8/255 |
|---|---|---|---|---|
| H1 RED1440 light | [head-H1-red-before-labelled.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6cb9494c613ec52a/head-H1-red-before-labelled.png) | [head-H1-red-after-labelled.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9798c330782cf4f7/head-H1-red-after-labelled.png) | [head-H1-red-diff-zero.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/36582b119ae03d77/head-H1-red-diff-zero.png) | [head-H1-red-diff-8.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7bfef32a544faf48/head-H1-red-diff-8.png) |
| H1 BLUE1440 light | [head-H1-blue-before-labelled.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e7e7adbc736d0f00/head-H1-blue-before-labelled.png) | [head-H1-blue-after-labelled.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/15a9a36e5c7279f3/head-H1-blue-after-labelled.png) | [head-H1-blue-diff-zero.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4ef29311be07157e/head-H1-blue-diff-zero.png) | [head-H1-blue-diff-8.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9f373469c25bb0d8/head-H1-blue-diff-8.png) |
| C1 returned RED539x820 | [head-C1-red-before-labelled.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5885323bd9fdcdb0/head-C1-red-before-labelled.png) | [head-C1-red-after-labelled.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d11989682ba1bedb/head-C1-red-after-labelled.png) | [head-C1-red-diff-zero-labelled.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/27493318f466d8bc/head-C1-red-diff-zero-labelled.png) | [head-C1-red-diff-8-labelled.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3b968264d8edce04/head-C1-red-diff-8-labelled.png) |
| C1 hidden full client1440 light | [head-C1-hidden-before-labelled.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5e1cc360d4579f0d/head-C1-hidden-before-labelled.png) | [head-C1-hidden-after-labelled.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/91e0d233b8827aad/head-C1-hidden-after-labelled.png) | [head-C1-hidden-diff-zero-labelled.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/348602c8448fcf51/head-C1-hidden-diff-zero-labelled.png) | [head-C1-hidden-diff-8-labelled.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5cc943ec2ad75cd2/head-C1-hidden-diff-8-labelled.png) |


Independent parent inspection: read-only separate issue-16901-primary session on CDP19291 confirmed1440x900, B selected, actual native guest rectangle(-100000,-100000,539,820), guest body NATIVE HIDDEN BLUE and computedrgb(0,0,255). No UI selection/navigation/mutation by parent. Final H1 saved capture independently reviewed by parent.

Cleanup: all retained Electron/recorder/encoder PIDs verified stopped:2107821,2132973,2134614,2156620,2158289,2173171,2175283,2189365,2156104. Ports14806,14807,19291 have no listeners. Own agent-browser session closed after runtime exit; parent owns its separate inspection connection. Branchfix/issue-16901 restored at e8a30afda42d34ad8f0627d40b864c260fab7f40, working tree clean. Scratch and isolated state copies retained under /tmp/issue-16901-evidence and worktree .t3/desktop* for auditor. No scratch deletion.

All final evidence URLs (images embedded, videos plain links):

![head-H1-red-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4cac9d4c10ad7b01/head-H1-red-sheet.png)
![head-H1-blue-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2af8ba8759d419da/head-H1-blue-sheet.png)
![head-H1-red-before-labelled.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6cb9494c613ec52a/head-H1-red-before-labelled.png)
![head-H1-red-after-labelled.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9798c330782cf4f7/head-H1-red-after-labelled.png)
![head-H1-red-diff-zero.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/36582b119ae03d77/head-H1-red-diff-zero.png)
![head-H1-red-diff-8.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7bfef32a544faf48/head-H1-red-diff-8.png)
![head-H1-blue-before-labelled.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e7e7adbc736d0f00/head-H1-blue-before-labelled.png)
![head-H1-blue-after-labelled.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/15a9a36e5c7279f3/head-H1-blue-after-labelled.png)
![head-H1-blue-diff-zero.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4ef29311be07157e/head-H1-blue-diff-zero.png)
![head-H1-blue-diff-8.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9f373469c25bb0d8/head-H1-blue-diff-8.png)
[before-narrated-corrected.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f67be21291936d88/before-narrated-corrected.mp4)
![head-C1-red-before-labelled.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5885323bd9fdcdb0/head-C1-red-before-labelled.png)
![head-C1-red-after-labelled.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d11989682ba1bedb/head-C1-red-after-labelled.png)
![head-C1-red-diff-zero-labelled.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/27493318f466d8bc/head-C1-red-diff-zero-labelled.png)
![head-C1-red-diff-8-labelled.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3b968264d8edce04/head-C1-red-diff-8-labelled.png)
![head-C1-hidden-before-labelled.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5e1cc360d4579f0d/head-C1-hidden-before-labelled.png)
![head-C1-hidden-after-labelled.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/91e0d233b8827aad/head-C1-hidden-after-labelled.png)
![head-C1-hidden-diff-zero-labelled.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/348602c8448fcf51/head-C1-hidden-diff-zero-labelled.png)
![head-C1-hidden-diff-8-labelled.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5cc943ec2ad75cd2/head-C1-hidden-diff-8-labelled.png)
![head-C1-agent-blue-labelled.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/96f8dd16ae6417b7/head-C1-agent-blue-labelled.png)
![head-H1-agent-blue-labelled.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/185eeaf484bc67bc/head-H1-agent-blue-labelled.png)
![head-C1-native-before-hide-labelled.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4ec4c5b533be03e3/head-C1-native-before-hide-labelled.png)
[head-C1-lifetime.jsonl](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5cbcf04f42efeb11/head-C1-lifetime.jsonl)
[head-wire-headless.jsonl](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b1eb6e7118085f35/head-wire-headless.jsonl)
[head-transcript.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/92ee9e4b20aa42e5/head-transcript.json)
[head-rendering-env.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/42f09c37f44a9d44/head-rendering-env.json)
[head-rendering-details.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f5c5c0a4b855c8c3/head-rendering-details.json)
[before-transcript.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2d12d4abdfabe0f6/before-transcript.json)
[issue-16901.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9f8ea454ff8f5dcb/issue-16901.mjs)
[head-raw.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b19ea8ec2dfad058/head-raw.mp4)
[head-narrated.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/75c6e21068664b5f/head-narrated.mp4)
[head-captions.srt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/caa8b4c652ea7f53/head-captions.srt)
[diff-stats.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8ad134439a3a5676/diff-stats.json)
[head-C1-native-prerequisite.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e967574c4788a9ee/head-C1-native-prerequisite.json)
[head-C1-active.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4e11592b58a4aee1/head-C1-active.json)
![before-H1-agent-blue-labelled.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/18ee01991358012e/before-H1-agent-blue-labelled.png)


Rebuild helper bundle (no DB, credentials, or raw logs): [capture-drivers.tar.gz](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1bd9e7433c8806a5/capture-drivers.tar.gz)

Original uncaptioned before recording: [before-H1.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/94b949bf5d2d5b84/before-H1.mp4)

Caption correction: before narration uses exact RED/BLUE/native tool timestamps and does not imply the first native RED capture was hidden. Earlier narrated-before URL is superseded.
