# Issue 20222 — partial real-app evidence

Scope: [#20222](https://git.cafe/pingdotgg/t3code/issues/20222). BEFORE frontend [70e5e384da](https://git.cafe/pingdotgg/t3code/commit/70e5e384da); AFTER frontend [fafd55cbfa](https://git.cafe/pingdotgg/t3code/commit/fafd55cbfa). Real Vite app revisions, not a component harness. Both frontends used the same isolated server on 15470. Before frontend was on 5955, after on 7430. No production server code changed between these revisions. No PR, push, forge write, implementation edit, or capture commit was made.

**Verdict: useful main-path proof; evidence matrix INCOMPLETE / UNVERIFIED.** There is one before/after send recording pair out of 24 prescribed affected input/viewport/theme pairs, plus a before-only A2 recording. The BEFORE A1 video does not reach the visually settled failure: its final encoded frame still says Working/Thinking. Persisted events and subsequent stills establish the terminal failure. Thus even that pair is partial against the strict end-to-end recording requirement. **0/5 affected rows fully captured; 2/5 partially evidenced; 0/11 web matrix rows complete.** Stills do not replace missing interaction recordings.

## What the main pair proves

Fresh real Claude Sonnet 5.5 / CLI 2.1.303 conversations each received `Reply with only OK. Do not use tools.` and replied `OK`. Both had actual native 83,918-token history. Client-only tokenUsage was then seeded to 250000 / 1000000 with updatedAt `2026-10-21T00:00:00Z`, preserving other token/cache fields. Settings → history.back remounted the composer; the visible Compact 250k chip was verified. This is **synthetic chip eligibility, not actual stale 250k native context**.

BEFORE: exactly two new user messages, bare `/compact` and the original instructed command. The original run was created `queued`, queuePosition 1. Bare native compaction succeeded (83,918 → 1,611), then instructed compaction failed: `Not enough messages to compact.`

AFTER: exactly one new user message, preserving `/compact Keep the interface decisions, drop the debugging output`. Message ID `251589d1-26fd-42f1-9e68-5e978be66d3b`; run created `starting`, queuePosition null. Native instructed compaction completed at **2026-10-21T22:54:08.724Z**, 83,918 → **1,589** tokens. The video reaches `Context compacted 83.9K → 1.59K tokens`. Baseline initial messages are excluded from the new-message counts. Exact outbound `auto` wire payload was not separately recorded; persisted initial run state and source semantics support the dispatch comparison.

Full message IDs, native compaction events, statuses, queue positions, and UTC timestamps are in `persisted-events.json` and `native-compaction-transcript.md` below.

## Main pair: exact script and UTC milestones (above the media)

For each revision: create a fresh real conversation, send the identical OK prompt, observe OK and terminal run, seed client usage as above, remount through Settings/history.back, verify chip, paste the exact instructed command, start recording, click **Compact and send** once. Observe compact activity/queue and result; stop recorder. No synthetic provider responses or intercepted dispatches were used.

AFTER recording start **22:53:50.626Z**. Original persisted **22:53:55.719Z** (+5.093s relative to start). Native compaction started **22:53:57.038Z**, completed **22:54:08.724Z**; terminal provider-turn event **22:54:09.836Z**. Video duration **36.913s**.

BEFORE recording start **22:57:27.942Z**. Bare persisted **22:57:30.110Z** (+2.168s), original persisted **22:57:30.523Z** (+2.581s, queued). Bare compaction completed **22:57:44.650Z**. Instructed native failure **22:57:53.938Z**; terminal provider-turn event **22:57:54.428Z**. Video duration **32.010s**. **Encoded UI frames lagged the event stream: final frame still shows Working/Thinking.** Terminal failure is visible in supplemental completed-state stills, not certified inside this original video. UTC event offsets must not be treated as frame-accurate UI timings.

Pre-send stills were taken immediately before recording. Original post stills followed observed terminal text; BEFORE still retains transient Working/spinner UI and a failure separator. The later completed-state stills show the failure text. Wall-clock/message times and sidebar history are not identical between runs, so these are behavior comparisons, not a pixel-identical controlled experiment.

Before interaction recording (terminal UI incomplete): [A1-1440-light-before.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/995551d7339c461a/A1-1440-light-before.mp4)

After interaction recording (native instructed success): [A1-1440-light-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ca72b8c9842e7ba0/A1-1440-light-after.mp4)

Pre-send pair:

Before

![Before — A1-1440-light-before-pre.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/69d674d1b9d2cbb4/A1-1440-light-before-pre.png)

After

![After — A1-1440-light-after-pre.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c4940e5d1340b36c/A1-1440-light-after-pre.png)

Zero threshold, amplified 8×

![Absolute difference, zero threshold amplified 8×](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/aa041d9b0835d6e8/A1-1440-light-pre-diff0-amplified8.png)

Threshold >16/255

![Threshold difference >16/255](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/70dcfd31ef57e0a1/A1-1440-light-pre-diff-threshold16.png)

Original post pair (BEFORE transient Working UI):

Before

![Before — A1-1440-light-before-post.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/53b41ca6ee614cba/A1-1440-light-before-post.png)

After

![After — A1-1440-light-after-post.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0e0e618d93c0fb5b/A1-1440-light-after-post.png)

Zero threshold, amplified 8×

![Absolute difference, zero threshold amplified 8×](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3f246d9ce587cf6b/A1-1440-light-post-diff0-amplified8.png)

Threshold >16/255

![Threshold difference >16/255](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/45bd9f9768cc7b69/A1-1440-light-post-diff-threshold16.png)


## Supplemental completed-state views — stills only

Script: reopen the same already-completed native proof threads; do not send again. Set viewport to 1440×900 or 390×900 CSS px, emulate light/dark, retain start-of-thread scroll (all observed nonzero scrollTop lists empty), save still. Before views were collected after the infrastructure failure and retain timeout/reconnect banners. After views were recaptured after dismissing an unrelated provider-update notification and expanding/focusing the narrow composer. No native turn ran for these stills. Their capture window is later than the original recordings; exact wall clock was not frozen. These **do not certify any missing send/timing/toggle/expansion recording**.


### 1440×900 CSS px — light

Script: same completed proof threads, no send; resize, set appearance, observe final state; save. Later captures, not matched wall clock.


Before

![Before — A1-completed-before-1440-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a679264a782623e7/A1-completed-before-1440-light.png)

After

![After — A1-completed-after-1440-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1c4b29ab751a0150/A1-completed-after-1440-light.png)

Zero threshold, amplified 8×

![Absolute difference, zero threshold amplified 8×](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2e1a7be88438a105/A1-completed-1440-light-diff0-amplified8.png)

Threshold >16/255

![Threshold difference >16/255](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1ea91c0882575ea3/A1-completed-1440-light-diff-threshold16.png)

### 1440×900 CSS px — dark

Script: same completed proof threads, no send; resize, set appearance, observe final state; save. Later captures, not matched wall clock.


Before

![Before — A1-completed-before-1440-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/02a40dce8d62f708/A1-completed-before-1440-dark.png)

After

![After — A1-completed-after-1440-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/71bc98adfa7da74a/A1-completed-after-1440-dark.png)

Zero threshold, amplified 8×

![Absolute difference, zero threshold amplified 8×](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8b938a685bf9996e/A1-completed-1440-dark-diff0-amplified8.png)

Threshold >16/255

![Threshold difference >16/255](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/43501afb3b58023e/A1-completed-1440-dark-diff-threshold16.png)

### 390×900 CSS px — light

Script: same completed proof threads, no send; resize, set appearance, observe final state; save. Later captures, not matched wall clock.


Before

![Before — A1-completed-before-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ea499f26079c761a/A1-completed-before-390-light.png)

After

![After — A1-completed-after-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a870a95a8302554d/A1-completed-after-390-light.png)

Zero threshold, amplified 8×

![Absolute difference, zero threshold amplified 8×](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7b15ee0f497c1e26/A1-completed-390-light-diff0-amplified8.png)

Threshold >16/255

![Threshold difference >16/255](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/381e10f69d95edfb/A1-completed-390-light-diff-threshold16.png)

### 390×900 CSS px — dark

Script: same completed proof threads, no send; resize, set appearance, observe final state; save. Later captures, not matched wall clock.


Before

![Before — A1-completed-before-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/813f10f648aa2a39/A1-completed-before-390-dark.png)

After

![After — A1-completed-after-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ea005c1332e6e503/A1-completed-after-390-dark.png)

Zero threshold, amplified 8×

![Absolute difference, zero threshold amplified 8×](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6016d9bfb7317a5d/A1-completed-390-dark-diff0-amplified8.png)

Threshold >16/255

![Threshold difference >16/255](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/76b095d2899bc293/A1-completed-390-dark-diff-threshold16.png)


## Every visible difference and comparison limits

Original pre-send pair: the composer text, chip, model/options, controls and layout match. The thread title/breadcrumb differs (`Reply OK` before, `Confirm Instructions` after); sidebar has additional proof threads, different titles, branch badges, relative ages and provider glyph states. Initial message times differ (10:56/10:57 versus 10:53). These differences predate the tested dispatch and are fixture/timing differences.

During/post-send: BEFORE adds a separate bare command bubble, queues the original (visible Queued 1 strip), then shows both bubbles, first compaction separator and subsequent failure activity/error. AFTER shows the original bubble alone, compacts directly and settles to a success separator. Summaries are 1.61K versus 1.59K. Message positions and vertical gaps change with that extra content. Working elapsed counters, thinking/compaction labels, sidebar spinner/relative ages, queue strip, submit/stop button color/icon, and emptied composer change at different times. BEFORE original post still retains Working and red stop while AFTER is idle with blue send; this is a capture/paint timing mismatch, not an additional code change.

Supplemental completed pairs: BEFORE has `Claude provider status` timeout banner, `Context compaction failed`, `Not enough messages to compact.`, and reconnect warning; AFTER has one successful instructed command and no timeout/reconnect banner. The extra messages/banners shift all downstream content and alter wrapping at 390px. Both themes apply correctly. Wide AFTER details include a Lineage entry for the fork created during fixture exploration; BEFORE details lack it. Sidebar proof-thread counts/ages/order differ with capture time. Narrow width hides the desktop sidebar/details and abbreviates controls/model; both final narrow composers were expanded/focused, with placeholder/caret and small layout changes governed by available width. A provider update toast initially obscured the after narrow view; it was dismissed and the final uploaded view replaced it. There are no masks, erased banners, composited app states, or fake terminal frames.

Differences above include unrelated infrastructure/state changes. **Do not attribute every nonzero diff pixel to this regex fix.** The diff images are supplementary measurements of these actual frames, not a no-regression verdict.

## Diff method and rendering environment

Every supplied A1 still pair has an absolute RGB zero-threshold difference, amplified 8× and clipped at 255; its companion threshold image marks pixels magenta when maximum absolute RGB channel delta is **>16/255**, black otherwise. No masks, registration, crop, or excluded pixels. Counts/bounding boxes are in `diff-metrics.json`. Original pre pair: 5,249 pixels differ at zero threshold / 4,203 above 16. Original post pair: 45,885 / 12,616. Large supplemental differences include the banners, history, lineage, and layout changes listed above.

Linux VM `fs-21`, Chrome headless 154 through T3 native collaborative preview, own tab only. CSS viewports 1440×900 and 390×900, DPR **2**, zoom **1**, body font size **16px**, font stack `-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif`; actual resolved font and OS font scaling were not independently measured. Wide screenshots are 1280×800 downscaled by preview from a 1440×900 CSS viewport; narrow screenshots are 780×1800. Main videos encode 2880×1800. Native recorder uses sparse variable-timing screen frames with holds; it is not continuous high-frame-rate motion proof. No motion preference override was applied. All three MP4s fully decoded successfully using full ffmpeg; the bundled preview ffmpeg only supports WebM demuxing and initially rejected valid MP4s. `video-decode-validation.json` contains actual decode reports. All three public MP4 downloads were fetched with curl and matched local bytes and SHA-256 exactly (`upload-video-verification.json`). A Python urllib fetch was rejected with HTTP 403; curl succeeded with HTTP 200.

## Coverage ledger: every matrix row

| Row | Captured | Missing / reason |
|---|---|---|
| A1 | 1440/light before and after send recordings; pre/post stills, all four completed-state width/theme still pairs and paired diffs; persisted counts/queue/native success | Three required interaction pairs (1440/dark, 390/light, 390/dark); original before video lacks visually settled terminal error; same-clock/same-sidebar matching not achieved. Runtime failure prevented fresh fixtures. |
| A2 | 1440/light BEFORE keyboard send in long partial recording, paired pre/post stills for that revision only, persisted case/double-space text and two sends | AFTER and other three viewport/theme pairs missing. Native uppercase `/Compact` is not an installed command: it became provider prose, rather than successful native compaction. Preserved text in DB is authoritative. Runtime failed on next fresh fixture. |
| A3 | Failed fresh OK fixture and infrastructure blocker retained; multiline input was never sent | All eight interaction recordings and equivalent seeded fixtures unavailable after MCP-registration failure/overload. |
| A4 | None | All four before/after interaction pairs missing, including 390px expand-only/zero-send assertion. Completed narrow stills are not an expansion test. Same unavailable native runtime. |
| A5 | None | Both outer-whitespace and actual-tab inputs missing at all four viewport/theme combinations (eight pairs). Same unavailable native runtime. |
| C1 | None | Bare exact and uppercase exact control pairs unverified; same unavailable native runtime. |
| C2 | None | All three negative-boundary control pairs unverified; same unavailable native runtime. |
| C3 | None | Ordinary Reply OK with Compact enabled control pair unverified. Initial fixture OK prompts were not this control. |
| C4 | None | Opt-out and reverse toggle interaction pairs unverified; no toggle evidence substituted. |
| C5 | None | Fresh-time, 99999, 199999 and 200000 eligibility control pairs unverified. Only prescribed synthetic 250k stale seed was exercised. |
| C6 | None | Empty Resume/running/held-queue gate interaction pairs unverified. The stalled fixture is infrastructure evidence, not a valid intentional running/held-queue gate test. |
| U1 | None | Desktop Electron shell unavailable/unexercised in this headless Linux preview workflow. Web evidence does not certify shell/IPC/OS keybindings. |
| U2 | N/A per matrix | Native mobile has no compact-before-send feature. 390px evidence is responsive web, not native mobile. |

Remote/relay/tunnel execution, actual stale 250k native history, native mobile behavior, and all additional pure-function boundary checks remain unverified by this capture task. No tests substitute for missing captures.

## Infrastructure failure and stopping condition

After the successful A1 and before-only A2 runs, fresh fixture thread `510d0e3b-0075-4bb0-891c-854da97f54f5` submitted the OK prompt at **23:01:23.918Z** and never produced OK. App reported `Claude Agent CLI is installed but failed to run. Timed out while running command.` and VM freeze/CPU load 24 on 4 cores. At **23:04:51.630Z**, server logged `ProviderAdapterTurnStartError`, caused by `ClaudeAgentSdkQueryRunnerError`, caused by **`Claude Code did not answer the MCP server registration.`** At **23:06:07.511Z** it logged an event-loop stall of **32,823 ms**. Subsequent source-control reads also timed out in `GitCafeCredentials.get` after 10000ms; no forge operation was initiated by this tester. The UI remained Working/reconnecting until reload exposed the provider error. The lead independently confirmed overload and timer oversleep and instructed ending this evidence step rather than retrying unavailable fixtures.

The A2/blocked-fixture recording includes substantial waiting; its duration is about 16m09.90s. A2 persisted bare/original at **22:59:48.646Z / 22:59:49.550Z**. Keyboard action started **22:59:47.740Z**; terminal-case inspection finished **23:00:58.841Z**. Original recorder start was not retained, so exact A2 video offsets are not certified. The later fixture submission and failure are separately timestamped above. No retry loop or paid attempt was started after this failure.

Own unused before dev server/browser frontend on 13994/5954 and final before-only frontend on 5955 were stopped using verified port-owner PIDs/cwds (205247, 205170, 207783). Primary 15470/7430 remained listening (187960 / 166813); neither was stopped. Detached before checkout is `/home/ubuntu/wt/issue-20222-before`; existing head checkout is unchanged and clean. No fixture commit: a committed seeder could not repair the unavailable native prerequisite; the exact working client seed is documented above and in the supplied matrix. No live T3 database was written or started against; isolated `.t3` only. Preview itself owns its screenshot/attachment artifact files beneath the host's T3 artifact directories.

## FRICTION

| category | happened | prevention |
|---|---|---|
| Native runtime | Fresh Claude query failed MCP registration during host overload; no OK fixture. | Stop retries; resume only on a responsive runtime with one fresh real OK fixture. |
| Timer/transport | VM load 24/4 cores; long event-loop stalls, reconnects, native-preview timeouts. | Treat timeouts as infra, preserve event timestamps, avoid increasing concurrency or killing primary servers. |
| Recorder completeness | Before main video ended with stale Working frame despite terminal DOM/events. | Decode and inspect final frame; require visible terminal paint before stopping future capture. Do not silently certify it. |
| Media tooling | Bundled ffmpeg rejected MP4 because only WebM demuxer is built in. | Full ffmpeg decode verified all three files; check supported formats before declaring corruption. |
| Fixture realism | 250k chip seed is synthetic; real native histories were 83,918 tokens. | Preserve original usage fields and disclose both values. |
| Fixture source | Provider turns, not SQL projection edits, drove client eligibility. | Seed the live client atom and remount; verify chip before every send. |
| Provider case semantics | Mixed-case command was ordinary Claude input despite planner matching case-insensitively. | Judge submitted message/dispatch preservation independently from native slash-command support. |
| Responsive state | Narrow after composer was collapsed; update toast appeared; theme paint lagged an emulation call. | Expand/focus, dismiss toast, and wait for root theme class before final supplemental capture. |
| Coverage | Full matrix could not be executed; stills are available for more variants than recordings. | Explicit row ledger and zero full-row count; retain draft/unverified status for the lead. |

## All ghdrop output (verbatim)

![A1-1440-light-after-post.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0e0e618d93c0fb5b/A1-1440-light-after-post.png)
![A1-1440-light-after-pre.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c4940e5d1340b36c/A1-1440-light-after-pre.png)
[A1-1440-light-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ca72b8c9842e7ba0/A1-1440-light-after.mp4)
![A1-1440-light-before-post.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/53b41ca6ee614cba/A1-1440-light-before-post.png)
![A1-1440-light-before-pre.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/69d674d1b9d2cbb4/A1-1440-light-before-pre.png)
[A1-1440-light-before.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/995551d7339c461a/A1-1440-light-before.mp4)
![A1-1440-light-post-diff-threshold16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/45bd9f9768cc7b69/A1-1440-light-post-diff-threshold16.png)
![A1-1440-light-post-diff0-amplified8.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3f246d9ce587cf6b/A1-1440-light-post-diff0-amplified8.png)
![A1-1440-light-pre-diff-threshold16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/70dcfd31ef57e0a1/A1-1440-light-pre-diff-threshold16.png)
![A1-1440-light-pre-diff0-amplified8.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/aa041d9b0835d6e8/A1-1440-light-pre-diff0-amplified8.png)
![A1-after-recording-contact.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4bcb91c442367ee0/A1-after-recording-contact.png)
![A1-before-recording-contact.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d9ac0e27e4fe2b64/A1-before-recording-contact.png)
![A1-completed-1440-dark-diff-threshold16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/43501afb3b58023e/A1-completed-1440-dark-diff-threshold16.png)
![A1-completed-1440-dark-diff0-amplified8.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8b938a685bf9996e/A1-completed-1440-dark-diff0-amplified8.png)
![A1-completed-1440-light-diff-threshold16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1ea91c0882575ea3/A1-completed-1440-light-diff-threshold16.png)
![A1-completed-1440-light-diff0-amplified8.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2e1a7be88438a105/A1-completed-1440-light-diff0-amplified8.png)
![A1-completed-390-dark-diff-threshold16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/76b095d2899bc293/A1-completed-390-dark-diff-threshold16.png)
![A1-completed-390-dark-diff0-amplified8.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6016d9bfb7317a5d/A1-completed-390-dark-diff0-amplified8.png)
![A1-completed-390-light-diff-threshold16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/381e10f69d95edfb/A1-completed-390-light-diff-threshold16.png)
![A1-completed-390-light-diff0-amplified8.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7b15ee0f497c1e26/A1-completed-390-light-diff0-amplified8.png)
![A1-completed-after-1440-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/71bc98adfa7da74a/A1-completed-after-1440-dark.png)
![A1-completed-after-1440-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1c4b29ab751a0150/A1-completed-after-1440-light.png)
![A1-completed-after-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ea005c1332e6e503/A1-completed-after-390-dark.png)
![A1-completed-after-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a870a95a8302554d/A1-completed-after-390-light.png)
![A1-completed-before-1440-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/02a40dce8d62f708/A1-completed-before-1440-dark.png)
![A1-completed-before-1440-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a679264a782623e7/A1-completed-before-1440-light.png)
![A1-completed-before-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/813f10f648aa2a39/A1-completed-before-390-dark.png)
![A1-completed-before-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ea499f26079c761a/A1-completed-before-390-light.png)
![A2-1440-light-before-post.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/40dc6409693aa3d0/A2-1440-light-before-post.png)
![A2-1440-light-before-pre.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b70df3df20ad9aa4/A2-1440-light-before-pre.png)
[A2-before-and-A3-fixture-blocked-1440-light.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fa5c04d4e3f6a240/A2-before-and-A3-fixture-blocked-1440-light.mp4)
[artifact-integrity.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/72b2ccc79b4a9996/artifact-integrity.json)
[capture-metadata-final.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/11c99c459f0f9b32/capture-metadata-final.json)
[diff-metrics.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/025326b5f602559b/diff-metrics.json)
[native-compaction-transcript.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7b78d270dbf518ff/native-compaction-transcript.md)
[persisted-events.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3b4927db851f61f1/persisted-events.json)
![provider-fixture-blocked.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a6b8f27a07cc5fb8/provider-fixture-blocked.png)
[video-decode-validation.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8e76de9183739088/video-decode-validation.json)
[video-metadata.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bd288d24842d53a0/video-metadata.json)
![A1-before-recording-final-frame.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3e45404f5cba6824/A1-before-recording-final-frame.png)
![A1-after-recording-final-frame.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f409e41f7b018f99/A1-after-recording-final-frame.png)

[artifact-integrity-final.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c0ce2886aad44389/artifact-integrity-final.json)

[upload-video-verification.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/34fdaef5f25840c4/upload-video-verification.json)
