# Full-frame spatial evidence supplement

Issue [#19442](https://git.cafe/pingdotgg/t3code/issues/19442). Supplements the [original evidence index](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b9fb0e0d5b06aa94/evidence-index.md), specifically replacing its decision to omit spatial diffs. No recapture or synchronization is claimed.

Environment: Linux KVM, 4 vCPU, Electron 44.9.3, Xvfb 1920×1080, GPU disabled, DPR 1 (supplied capture context; not independently recorded in the original index or available transcript), content viewports 1280×800 / 800×450, one existing light theme. The original index confirms the other environment details. No browser, server, or UI was launched or interacted with for this supplement.

Video source baseline [11adcb0e25](https://git.cafe/pingdotgg/t3code/commit/11adcb0e25), after build [07d7b3c836](https://git.cafe/pingdotgg/t3code/commit/07d7b3c836). Current worktree head verified [3bb66f26c9](https://git.cafe/pingdotgg/t3code/commit/3bb66f26c9); per task provenance, its app/encoder implementation is the same as the after build, apart from the recording parameter fix relative to baseline. These are existing delivered videos, not final-head recaptures.

Method: decode each actual MP4, select the first frame with presentation timestamp >=1.0s, retain its full native RGB frame. This avoids inventing a frame at an unavailable exact timestamp. No crop, resize, counter masking, alignment, phase correction, or synthetic source frame. Sheets add labels outside each complete native frame. All comparisons include every pixel.

Diff0amplified = min(8 × abs(A−B),255), per RGB channel; the count includes any max-channel delta >0. DiffT uses T=16 on 8-bit RGB: white iff max-channel abs delta >16/255, black otherwise (strict >, not >=). Pixel counts count locations, not channels. Mean delta averages absolute differences across all RGB channels, on the 0–255 scale.

These spatial images do NOT establish cadence, synchronization, or pixel identity. Counter values differ because recordings begin at different RAF phases/epochs. Video compression also introduces differences. Actual delivered videos and ffprobe timestamps establish delivered cadence; see the original index for its throughput limitations and incomplete live coverage.

## PR-ready measurements

| Pair | Full-frame pixels | Pixels Δ>0 | Pixels Δ>16 | Max channel Δ | Mean channel Δ | Selected timestamps A / B |
|---|---:|---:|---:|---:|---:|---|
| before-after | 1,024,000 | 1,559 | 174 | 60 | 0.006877604 | 1.015700s / 1.005667s |
| 30-vs-60-control | 360,000 | 2,498 | 417 | 216 | 0.069976852 | 1.006300s / 1.013567s |

## What else changed in the selected frames

- Before/after 1280×800: top-left counter digits differ; text edge/color/compression differences surround them. Very faint decoded background/block differences also occur at the left edge, extending to y=207. All nonzero differences lie within inclusive x=0..49, y=0..207; this is a measurement bounding box, not a crop. White content layout remains visually the same in these selected frames; this does not claim nothing else changed in the app or recordings.
- 30 vs 60 control 800×450: both clips are after implementation, not baseline/head. Top-left counters differ (visible 1663 vs 7792). A blue outlined pointer near x≈400,y≈25 appears only in the 60-setting frame. Compression/text-edge and faint block differences are present around these features. All nonzero differences lie within inclusive x=0..431,y=0..47. The pointer difference is a real capture-content difference, not attributed to the parameter fix.

## Full-frame artifacts

### Before / after, 1280×800

[A full frame](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bceef3633d06b971/before-after-a-t1.png)

[B full frame](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/20dbea587861d8a7/before-after-b-t1.png)

[Zero threshold amplified ×8](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4f7a794217015db2/before-after-diff0amplified.png)

[Threshold T=16/255](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/807602be883d8298/before-after-diffT16.png)

[Full-frame sheet: A/B above, diff0/diffT below](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8d4cc0c1798f7e55/before-after-sheet.png)

![Before / after, 1280×800; full-frame A and B, amplified zero-threshold and T16 diffs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8d4cc0c1798f7e55/before-after-sheet.png)

### 30 vs 60 control, 800×450 (both after implementation)

[A full frame](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/03574af397068348/30-vs-60-control-a-t1.png)

[B full frame](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bc36bcf068111c7e/30-vs-60-control-b-t1.png)

[Zero threshold amplified ×8](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f497eab7f795483d/30-vs-60-control-diff0amplified.png)

[Threshold T=16/255](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a8c5631c31a65d8e/30-vs-60-control-diffT16.png)

[Full-frame sheet: A/B above, diff0/diffT below](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1dd689e4c7103cfb/30-vs-60-control-sheet.png)

![30 vs 60 control, 800×450 (both after implementation); full-frame A and B, amplified zero-threshold and T16 diffs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1dd689e4c7103cfb/30-vs-60-control-sheet.png)

[Machine-readable pixel measurements and ffprobe extraction metadata](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9b9a37eab377aabd/pixel-measurements.json)

## Delivered video links (cadence evidence)

[Before 1280×800](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/73851235a4dbe4fa/before.mp4) · [After 60, 1280×800](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e854f5906b41d5ec/after60.mp4) · [After 30 control, 800×450](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/dac6c21d2d92a80b/after30-small.mp4) · [After 60 control, 800×450](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1e1eb41f4647936c/after60-small.mp4)

## FRICTION

- brief: original omission corrected without pretending asynchronous counters are synchronized; the control also has a pointer difference.
- tool: web reader could not open the original index; direct HTTPS download succeeded.
- runbook: DPR 1 is supplied context, not independently documented in the original capture index/transcript.
- policy: only safe derived frames/diffs/sheets/measurement/index files uploaded through ghdrop; no source edits, commits, push, forge writes, browser/server launch, or UI interactions. Proof auditor retains desktop ownership.
