# Read-only proof audit PASS2 repeat, round 3

## Confirmed findings first

**No remaining required-row proof gap found in the repaired final evidence.** This is a proof-sufficiency result for the one-class visual change, not a new product decision or merge-readiness review.

1. **Previous A1/A2 replay finding resolved.** Independent fresh reload of committed HEAD, using publicly downloaded and SHA-256-checked fixture/capture/wrapper scripts in the existing authorized environment, reproduced the repaired whole-app A / 390×844 / light capture with **0 changed pixels, maximum RGB channel delta 0, 0 pixels above 16**. This audit did not merely accept the capturer's 43-pixel/max-10 result; its own repeat was pixel-identical. VCS toolbar and compact composer now match as well as the affected rows. No masking, crops, registration, alignment or ignored regions enter this comparison.
2. **Previous L1/R4 scroll finding resolved.** All four new ffmpeg/X11 supplements demonstrate scrolling before clicking Show less. Actual normal-height scrollTop changes are desktop before **0→59**, after **0→107**; narrow before **0→243**, after **0→291**. Lower linked rows and Show less are visible before the collapse click. Reduced-height full, compact and essential cases also scroll successfully to the lower controls. The old failed scroll clips remain superseded, not silently relabeled successful.
3. All **24 repaired whole-app stills and 24 repaired diffs** are public-hash-matching, correct-size and visually inspected. Both diff forms for all 12 matched pairs exactly equal independently recomputed images. No ghost/empty frame, loading fallback substituted for affected content, unexplained spinner, wrong viewport, or unexplained whole-app change was found. Long-title ellipsis is intentional. Content clipping in short scroll viewports is explained and the recordings demonstrate reaching its lower portion.

## Revision identity and limits

Original [#21165](https://git.cafe/pingdotgg/t3code/pulls/21165) / [#21165](https://github.com/pingdotgg/t3code/pull/21165), contributor [Aforno/t3code](https://github.com/Aforno/t3code), branch `fix/thread-details-pr-spacing`, head [991c2ea](https://github.com/Aforno/t3code/commit/991c2ea1f7c06a7870c9dbe944821a52d6e3e228) (`991c2ea1f7c06a7870c9dbe944821a52d6e3e228`): independently confirmed by a read-only GitCafe PR view, including cross-fork repository and head SHA.

Replacement [#24553](https://github.com/pingdotgg/t3code/pull/24553), branch `takeover/pr-21165`: local HEAD **7dc770f59161a62d690fce753d9ddb66fb29d510**, [7dc770f](https://github.com/pingdotgg/t3code/commit/7dc770f59161a62d690fce753d9ddb66fb29d510). Baseline and merge-base **eea989536849e5b5049987ee24318b5a77326542**, [eea9895](https://github.com/pingdotgg/t3code/commit/eea989536849e5b5049987ee24318b5a77326542). Checked local HEAD, merge-base, clean status and exact source bytes. The complete replacement diff removes only `-mt-1` from [ThreadDetailsPrRow.tsx](https://github.com/pingdotgg/t3code/blob/7dc770f59161a62d690fce753d9ddb66fb29d510/apps/web/src/components/chat/ThreadDetailsPrRow.tsx#L433). Historical original code was not fetched or rebuilt. Historical before provenance uses the capture manifests and public recipe; this read-only repeat independently executes HEAD only, as instructed.

Only project checkout read: `/home/ubuntu/wt/pr-21165`. All new files are under `/tmp/audit-21165-pass3`, outside git. No edits, checkout, fetch, push, forge comments, watches, provider turns or real forge mutations. No live T3 userdata read/copied/written. Existing parent web8704/backend16744, isolated `/tmp/ev-21165`, named headed browser and Xvfb :211 were reused and left running; no new long-running process was started. The replacement is linked to this thread and is not watched.

The [matrix](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/88aa294ca3d746a1/proof-matrix.md), [repaired final index](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/43951c843d29dda5/index.md) and [public manifest](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7f29b4de7bdaba9f/manifest.json) define the accepted coverage. Public index and manifest bytes match their local originals. The manifest has 176 repair artifact entries plus four explicitly reused recordings; every downloaded repair artifact matches its corresponding public manifest entry, and all four reused public videos independently match the repaired manifest hashes.

## Matrix row status

Static PASS covers before/after **1440×1000 and 390×844, both light and dark**, with both whole-viewport diff forms. R1–R3 below mean the four reused recordings, freshly downloaded/decoded/reviewed in this audit. R4 means the four repaired supplements. Every interaction claim has recording coverage and narrated steps below.

| Row | Status | Proof / observed result |
|---|---|---|
| A1 | PASS | Bundle A main long title, passing checks, watch and Merge; all four width/theme pairs. Ellipsis retained, metadata below title; R1 hover/focus/dialog. Independent whole-app HEAD repeat exact. |
| A2 | PASS | Bundle A linked short title, failure count, watch and Fix arrow; all four pairs; R1 expansion/collapse. |
| B1 | PASS | Bundle B short draft main row: Ready only, no count/watch, all four pairs. |
| B2 | PASS | Bundle B long conflict linked row: Resolve arrow, watch, count suppressed; all four pairs. R2 stop-watch retains action-only metadata. |
| C1 | PASS | Bundle C long main pending count-only row, all four pairs. R3 pending→passing→failing and closed retained-count alternate. |
| C2 | PASS | Bundle C short draft linked eye-only metadata, all four pairs. R2 stop-watch returns simple-row fallback. |
| U1 | PASS within matrix scope | R3 null-detail/no-watch endpoint. Missing project/reference/capability/error equivalence is source-derived, not separately visually asserted. |
| U2 | PASS | R3 null detail with watch split control, then successful detail arrival enters changed layout. |
| U3 | PASS within matrix scope | R2 C2 post-stop simple row; same unchanged branch serves other no-count/action/watch conditions. |
| U4 | PASS within matrix scope | R1 collapsed endpoint. Toolbar/absent/hidden/no reference/dedup/no-rest branches source-only, as allowed. No claim of visual coverage for unrecorded branches. |
| L1 | PASS | Inline desktop / popover narrow, full/compact/essential density and expansion; successful normal and reduced-height scrolling in all four repaired R4 videos. Lower rows/Show less visibly reachable. |
| I1 | PASS | R1 title/check/watch/action hover, keyboard checks focus, checks popover open/dismiss, Merge dialog→Cancel→rest; light/dark endpoints. No real mutation. |
| I2 | PASS with explicit matrix exception | R3 detail and check transitions recorded. Merging/Marking/Preparing labels remain **source-only**, permitted by matrix; no visual claim for those labels. |

Web is the affected surface; desktop shares the renderer but Electron shell is not independently exercised. Native mobile is outside this renderer; 390px means responsive web. The only entry path is the panel branch-selector row; toolbar uses a different renderer. No provider, wire contract, backend service, MCP, scheduling, connection-mode or Settings/command-palette behavior changes. Source checks confirm shared main/expanded renderer, fallback branch predicates, toolbar split, and exclusion of expanded list height from density fitting. This audit does not retest synthetic watch RPC as real backend monitoring.

## Every repaired still pair and its two diffs

Each row is 60→64px; title height remains32px and metadata24px. Before, metadata starts4px above the title control's bottom; after, it starts exactly at that bottom. For narrow A: first title bottom248 / metadata top244→248; second title bottom308→312 / metadata top304→312. First title stays fixed, first metadata flows4px, linked title4px, linked metadata8px, Show less and following controls8px. No width/text/state change is accepted within a pair.

Zero-threshold image = absolute RGB difference×8, clipped255, no nonzero values discarded. Threshold16 image = magenta where maximum absolute RGB channel difference **>16**, black elsewhere. No masks or crops. Independent outside-card-envelope diagnostic is zero pixels>16 in every pair (indeed max0 outside the broad envelopes used here: desktop x1100..1440/y80..510; narrow x65..390/y50..510). The envelopes are diagnostic only and do not alter a delivered image.

| Pair | Before | After | Zero threshold ×8 | Threshold >16 | Pixels >16 |
|---|---|---|---|---|---|
| A-1440x1000-light | [whole app](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a1c49417ce61df9a/before-A-1440x1000-light.png) | [whole app](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/126390153f189758/after-A-1440x1000-light.png) | [diff](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f0e3171fc73e138b/diff-zero-8x-A-1440x1000-light.png) | [diff](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3abd751fb665abb9/diff-threshold16-A-1440x1000-light.png) | 5685 |
| A-1440x1000-dark | [whole app](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d1dbbb7d597d2a14/before-A-1440x1000-dark.png) | [whole app](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8ceb2360ca37402a/after-A-1440x1000-dark.png) | [diff](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9d46d33c4b7fc803/diff-zero-8x-A-1440x1000-dark.png) | [diff](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/28f4bed53db046f1/diff-threshold16-A-1440x1000-dark.png) | 5705 |
| A-390x844-light | [whole app](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/46ada140fbeb5fd0/before-A-390x844-light.png) | [whole app](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b66e6d00a84e8e38/after-A-390x844-light.png) | [diff](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8f74c5afe2b0dcbf/diff-zero-8x-A-390x844-light.png) | [diff](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f47b9c9b112a06bd/diff-threshold16-A-390x844-light.png) | 5683 |
| A-390x844-dark | [whole app](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e7ba4efe4f798750/before-A-390x844-dark.png) | [whole app](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ef509d5a51e63266/after-A-390x844-dark.png) | [diff](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/35dbdc1ac41aaa1f/diff-zero-8x-A-390x844-dark.png) | [diff](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8fa2e30a68e0d215/diff-threshold16-A-390x844-dark.png) | 5694 |
| B-1440x1000-light | [whole app](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/eef45ca49862f40a/before-B-1440x1000-light.png) | [whole app](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d8dd09495821f82a/after-B-1440x1000-light.png) | [diff](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8a114e30b1aa4b90/diff-zero-8x-B-1440x1000-light.png) | [diff](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2e207952b5c75be6/diff-threshold16-B-1440x1000-light.png) | 5659 |
| B-1440x1000-dark | [whole app](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/951920329a9f79b6/before-B-1440x1000-dark.png) | [whole app](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d0aed176bf61ee6c/after-B-1440x1000-dark.png) | [diff](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a0d585988b3eca11/diff-zero-8x-B-1440x1000-dark.png) | [diff](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e61a4f538dab45c3/diff-threshold16-B-1440x1000-dark.png) | 5714 |
| B-390x844-light | [whole app](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/25004d8022404fa4/before-B-390x844-light.png) | [whole app](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/24b92098aa137d8d/after-B-390x844-light.png) | [diff](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/968a549f2996fcd2/diff-zero-8x-B-390x844-light.png) | [diff](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8827c69a17f5c070/diff-threshold16-B-390x844-light.png) | 5657 |
| B-390x844-dark | [whole app](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/920a71907ff02de0/before-B-390x844-dark.png) | [whole app](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/54c2eb16e23e537c/after-B-390x844-dark.png) | [diff](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/da943c3ca1b9a428/diff-zero-8x-B-390x844-dark.png) | [diff](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5e1ee54ba9d56f89/diff-threshold16-B-390x844-dark.png) | 5703 |
| C-1440x1000-light | [whole app](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/95bff1ce17c2b108/before-C-1440x1000-light.png) | [whole app](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/aed06862794cf976/after-C-1440x1000-light.png) | [diff](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2160d86793010fde/diff-zero-8x-C-1440x1000-light.png) | [diff](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/31fb7926344507ba/diff-threshold16-C-1440x1000-light.png) | 4688 |
| C-1440x1000-dark | [whole app](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/792ccc80f75da020/before-C-1440x1000-dark.png) | [whole app](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a91a63a18b5ea834/after-C-1440x1000-dark.png) | [diff](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5b9c357f6e57e8ee/diff-zero-8x-C-1440x1000-dark.png) | [diff](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1d161dfd769b96e3/diff-threshold16-C-1440x1000-dark.png) | 4728 |
| C-390x844-light | [whole app](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fc248cbcf1999d47/before-C-390x844-light.png) | [whole app](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/955046ae4673175f/after-C-390x844-light.png) | [diff](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cca21b538d1f3c7f/diff-zero-8x-C-390x844-light.png) | [diff](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/22f8d8cc1530d6de/diff-threshold16-C-390x844-light.png) | 4686 |
| C-390x844-dark | [whole app](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/63376cd08922eba5/before-C-390x844-dark.png) | [whole app](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/da2032f71d8982ba/after-C-390x844-dark.png) | [diff](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f64900081c26969d/diff-zero-8x-C-390x844-dark.png) | [diff](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4897d2c92b5c38d5/diff-threshold16-C-390x844-dark.png) | 4716 |

All images were opened through full-viewport before/after/diff sheets; supplemental detail views improve text readability. These are mounted real-app captures with synthetic app state, not an isolated component harness. Capture metadata records settled pixel-identical frames500ms apart. Browser Chrome156.0.8078.47 on Linux/Xvfb, DPR1, zoom100%, reduced motion, frozen clock1792878466365; the disclosed fontconfig fallback is Liberation Mono. This is same-environment proof, not a claim of cross-platform pixel identity.

## Recordings and narrated steps

All eight public recordings were downloaded, hash checked, decoded and visually reviewed using logged-step samples, full-app sheets/full frames and supplemental detail sheets. Original samples use min(step.at+0.65,next.at−0.08); new scroll samples use min(step.at+1.15,next.at−0.08), with held subsequent endpoints checked where resize/input completion crosses a sample. Full decoded frames are retained. Review crops never replace original video or whole-app evidence. Black/unused X11 pixels below a temporarily reduced app height are outside the resized browser viewport; they are disclosed recording-area artifacts, not missing app pixels. The original scroll attempt is still a failure and is excluded from the pass.

### Reused R1–R3

- [before-1440-R1-R4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e8b72a8ddef93bb6/before-1440-R1-R4.mp4) — SHA256 `464c07c891afb72477710046c0fa8fe2048ebf716f1c658380c32ae226d5f3a0`.
- [after-1440-R1-R4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/41d1db657a8cc483/after-1440-R1-R4.mp4) — SHA256 `45b9cb7af96a2b67f6c6d12ccfc46462602252fe6d915f20041c22046f463982`.
- [before-390-R1-R4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/12997e84a51b3a84/before-390-R1-R4.mp4) — SHA256 `0ec49b678bf7f8fd1b0511743ad379cf7be8ff7eaad9058ebe3e0d6a1ea59f15`.
- [after-390-R1-R4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4cf7d337a686b339/after-390-R1-R4.mp4) — SHA256 `a6cf813cd70881320023a9385e173a934e82c5acab0dbece1a2812b1dc5d7514`.

Narrated sequence, in every recording: R1 steps0–13 starts expanded A; collapses and re-expands linked rows; hovers title; uses keyboard focus on checks; opens checks popover and dismisses it; hovers watch and Merge; opens Merge confirmation then clicks Cancel and returns; changes to dark, repeats focus/watch hover. R2 steps14–17 applies B, clicks linked stop-watch (Resolve remains, eye removed), applies C, clicks eye-only stop-watch (simple-row fallback). R3 steps18–24 applies null details without watch, adds watch split controls, delivers successful detail, changes pending→passing→failing checks, then shows closed retained-count row. Step25 explicitly records the pending-label source-only exception. None of this performs Merge/Ready/Fix/Resolve on a forge.

| Original video | Checks popover | Merge → Cancel | B2 / C2 stop-watch | Null → watched → detail |
|---|---|---|---|---|
| Before1440 | 5.85s | 10.77→11.76s | 16.95 / 19.13s | 20.35→21.57→22.79s |
| After1440 | 5.84s | 10.75→11.74s | 16.99 / 19.30s | 20.55→21.74→22.93s |
| Before390 | 5.88s | 10.83→11.82s | 16.92 / 18.98s | 20.06→21.12→22.18s |
| After390 | 5.83s | 10.71→11.70s | 16.81 / 19.13s | 20.22→21.28→22.33s |

These reused videos predate the VCS/composer stabilization. They prove the explicitly reused interaction endpoints; they are not represented as pixel-identical replays of the repaired still state. The current stills and independent rebuild supply that separate proof.

### Repaired R4 supplements

For each video: start with12 expanded PR rows at scrollTop0; scroll the actual card viewport down; hold lower rows/Show less; return top; resize to measured full boundary+2 and repeat scroll/hold/return; resize boundary−2 (compact) and repeat; resize240 (essential) and repeat; restore normal height and scroll down; hold Show less visibly before clicking; click it and show collapsed state. These are actual browser scroll inputs targeted at the card viewport, not semantic target auto-reveal.

| Recording | Normal scrollTop | Full / compact / essential height: scrollTop | Show less pre-click / collapse input |
|---|---|---|---|
| [before-1440-R4-scroll.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d0856282d95fa928/before-1440-R4-scroll.mp4) | 0→59 | 401 (full): 658; 397 (compact): 597; 240 (essential): 722 | 23.68s / 25.12s |
| [after-1440-R4-scroll.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9401f441725ef177/after-1440-R4-scroll.mp4) | 0→107 | 405 (full): 702; 401 (compact): 641; 240 (essential): 770 | 23.62s / 25.1s |
| [before-390-R4-scroll.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/24ff8ed8925fe46c/before-390-R4-scroll.mp4) | 0→243 | 429 (full): 658; 425 (compact): 597; 240 (essential): 750 | 21.97s / 23.28s |
| [after-390-R4-scroll.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/30f2890effedbcd2/after-390-R4-scroll.mp4) | 0→291 | 433 (full): 702; 429 (compact): 641; 240 (essential): 798 | 22.17s / 23.47s |

Every listed scroll endpoint reports Show less visible, and the decoded held frames corroborate lower rows and Show less. At essential height the first row is necessarily clipped when scrolled down; the last row and lower controls are visible. Scrolling back reaches the top. Density changes remain stable in the observed holds; original repeated boundary probes are also retained. This does not assert unseen animation timing or behavior at every possible height.

## Independent public-script HEAD rebuild

[Audit replay driver](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6c5a33422b5d66f8/rebuild.py) redirects only output root to the new audit directory. It downloads the public fixture/capture/ab inputs again, verifies each SHA256, checks HEAD and target source against committed bytes, reloads the authorized app, reapplies pinned state, and captures A / 390×844 / light after two stable frames. It does not execute the source-toggling replay.sh. This is an independent repeat by this audit agent, not a separate production bundle compilation.

Result: **0 changed pixels / max channel0 / pixels>16=0**, entire390×844 image, unmasked. [Machine-readable result](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/185b3663ba9b8033/rebuild-result.json).

![Independent HEAD rebuild, whole app](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b36adf9f6b41eac2/rebuild-A-390x844-light.png)

![Independent rebuild difference, threshold zero ×8](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/db10f057d9d16e35/rebuild-diff-zero-8x.png)

![Independent rebuild difference, threshold >16](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/76fd0c7524ac3425/rebuild-diff-threshold16.png)

## Friction

| Category | What | Prevention |
|---|---|---|
| Transport | Python urllib public download received HTTP403; curl fetched the same immutable artifacts successfully. | Use curl for these public downloads and compare SHA256 rather than treating a client rejection as missing evidence. |
| Manifest interpretation | Initial exact-map equality failed because the public manifest additionally names four reused videos. All176 repair entries match; all4 reused video hashes also match. | Compare required entries and explicitly account for reused artifacts. |
| Recording review | Sampling near input/resize boundaries can capture the prior scroll position; cropped card sheets omit centered/bottom-sheet dialogs. | Check held subsequent frames, logged times, whole-app frames and supplemental details together. |
| Replay determinism, resolved | Prior toolbar/upstream and composer focus state were incompletely pinned. | Fresh reload plus full VCS/composer fixture state; compare whole-app pixels. |
| Scroll proof, resolved | Prior semantic Show less click could auto-reveal after an ineffective scroll. | Target real scroller, log positive scrollTop, hold lower controls before click, include reduced heights. |

## Audit reproducibility artifacts

- [verify.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7fbdb8d3c3db815b/verify.py)
- [decode.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7dcc558a697f9e0e/decode.py)
- [review-videos.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ba78240cf5369b5e/review-videos.py)
- [rebuild.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6c5a33422b5d66f8/rebuild.py)
- [download-verification.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/500a4ed161cbd85f/download-verification.json)
- [pair-verification.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/be45aba4b5ee35ab/pair-verification.json)
- [reused-verification.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/757c41e0791c8f50/reused-verification.json)
- [decoded-timeline.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c1be36a734416c7e/decoded-timeline.json)

All audit scripts stay outside git and are publicly uploaded. The audit archive linked in the handoff includes decoded full frames, review sheets, fetched public inputs, statistics and scripts. No repository artifacts were added. Source-only exceptions remain explicitly source-only; they do not become visual claims. No implementation changes were made during this audit.

VERDICT: SUFFICIENT
