## Evidence

Artifact index (all row sheets, recordings, drivers and ghdrop output): [index.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/70d907d6decd1cea/index.md).

**Incomplete: 14 of 41 affected matrix rows have accepted before/after web captures.** Some of those rows are partial; the exact missing requirements are below every row. E12–E14 have diagnostic observations only. E17 native stills were rejected. All 23 optional affected rows remain unverified. This section is evidence, not a claim of complete verification or merge readiness.

**Outside-title observations requiring maintainer attention:** the native empty-state text remained clipped beneath its header; embedded Browser navigation reported `ERR_CERT_AUTHORITY_INVALID`; the baseline PR request failed to reach GitHub. These are not attributed to this PR. The reachable-link diagnostic opened **Changes**, not the selected commit, so successful E12 routing is not proven.

Before: [e34067edef][before]; after: [dbb22e5272][after]. Rendering head is the requested pinned head; the two commits above the contributor head change tests only.

Environment for every accepted pair: real web app from each separate checkout and fresh server-created database; Google Chrome for Testing 148.0.7778.96 through Playwright, Linux headless, no device emulation, DPR 1, browser zoom 100%, interface font 16px/code 13px, no OS font scaling. Viewport is stated per pair: 1440×900 unless marked 390×844. Light/dark are real app themes. Browser Date is frozen at 2026-10-29T02:00:00Z; reduced motion is emulated. Server-generated chat timestamps were not normalized: they are hidden in accepted stills, but time-sensitive chat portions of recordings remain unverified. Stills wait for network idle/fonts, then require byte-identical screenshots 500ms apart. Loading UI is intentional only in E03/E08 timing cases. Full surfaces are uncropped. Every viewport/theme combination not explicitly shown is unverified, including dark 390px and most light/narrow rows.

Synthetic Git content is shared by both servers. No live database was read or seeded. Description text is a labelled deterministic WebSocket response stub; Git lists/previews and normal app rendering use real RPC. E03/E04/E08 use response gates around the real app. Baseline lacks Commits, so baseline interaction stops at the existing source menu or selects Changes instead of an unavailable commit row.

Diff0: absolute maximum RGB-channel difference per pixel, amplified 32× (zero threshold). DiffT: orange where any RGB channel differs by more than 16/255, otherwise black. No statement of “nothing else changed” is made. Sheets are thumbnails only; table images link to uncropped originals.

### E01

**Coverage / unverified:** Recent dates absent (fixture dates are 24–26 days old); no generated real-provider text, deterministic transport descriptions explicitly stubbed. Long-subject tooltip not conclusively established.

![E01-final-sheet.jpg](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/117058a3271a4719/E01-final-sheet.jpg)

**What else changed:** Commits submenu appears; subject and generated secondary lines, right SHA/date column and scrollable popup cover part of the unchanged branch patch. Description text is deterministic transport-stub data.

**Steps and timestamps (seconds from recording start):**

Before: [E01-E07-dark-before.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/85d94f7bd386108f/E01-E07-dark-before.webm)

35.93s — E01 ready: foreground rich chat with warm commit descriptions (deterministic transport stub); 35.93s — Open Diff scope; 37.25s — E07 baseline Changes patch; main has no commit source

[E01-E07-dark-before-steps.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/65a9d841ee16c78e/E01-E07-dark-before-steps.json)

After: [E01-E07-dark-after.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e0ea185a96f5b5fd/E01-E07-dark-after.webm)

21.74s — E01 ready: foreground rich chat with warm commit descriptions (deterministic transport stub); 21.74s — Open Diff scope; 22.09s — Keyboard opens Commits submenu; 24.48s — E01 focus long Unicode subject; tooltip shows full subject; 29.59s — E07 select long linked commit; 32.60s — E07 focus and hover separate SHA source action; 36.92s — Open Diff scope; 37.01s — Keyboard opens Commits submenu

[E01-E07-dark-after-steps.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f00306db1dab50d1/E01-E07-dark-after-steps.json)

**Steps and timestamps (seconds from recording start):**

Before: [E01-E07-light-before.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d9b8d2df5bfd1ce2/E01-E07-light-before.webm)

28.26s — E01 ready: foreground rich chat with warm commit descriptions (deterministic transport stub); 28.26s — Open Diff scope; 30.88s — E07 baseline Changes patch; main has no commit source

[E01-E07-light-before-steps.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/194bb5714da0eaf4/E01-E07-light-before-steps.json)

After: [E01-E07-light-after.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d43fc15f58fc418f/E01-E07-light-after.webm)

40.54s — E01 ready: foreground rich chat with warm commit descriptions (deterministic transport stub); 40.54s — Open Diff scope; 40.66s — Keyboard opens Commits submenu; 45.14s — E01 focus long Unicode subject; tooltip shows full subject; 50.02s — E07 select long linked commit; 55.11s — E07 focus and hover separate SHA source action; 59.67s — Open Diff scope; 59.85s — Keyboard opens Commits submenu

[E01-E07-light-after-steps.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/79f6935021e26d7c/E01-E07-light-after-steps.json)

**E01 dark-menu — 1440×900, dark, DPR 1.**

| Before | After | Diff0 (0, ×32) | DiffT (>16/255) |
|---|---|---|---|
| ![E01-dark-before-menu.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/936e6411109abb65/E01-dark-before-menu.png)<br>[e34067edef][before] | ![E01-dark-after-menu.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/221ec4954e46d70c/E01-dark-after-menu.png)<br>[dbb22e5272][after] | ![E01-dark-menu-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/aa007986a8867c6c/E01-dark-menu-Diff0.png)<br>[e34067edef][before] → [dbb22e5272][after] | ![E01-dark-menu-Diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c2eed5dc129a0102/E01-dark-menu-Diff16.png)<br>[e34067edef][before] → [dbb22e5272][after] |

Changed pixels (0 / >16): 157470 / 38260; max 245.

**E01 light-menu — 1440×900, light, DPR 1.**

| Before | After | Diff0 (0, ×32) | DiffT (>16/255) |
|---|---|---|---|
| ![E01-light-before-menu.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e2b1061d9e558e86/E01-light-before-menu.png)<br>[e34067edef][before] | ![E01-light-after-menu.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7ae3739403ed08a6/E01-light-after-menu.png)<br>[dbb22e5272][after] | ![E01-light-menu-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/418669cf50ab0082/E01-light-menu-Diff0.png)<br>[e34067edef][before] → [dbb22e5272][after] | ![E01-light-menu-Diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f14a962328d712a0/E01-light-menu-Diff16.png)<br>[e34067edef][before] → [dbb22e5272][after] |

Changed pixels (0 / >16): 194458 / 36963; max 243.

### E02

**Coverage / unverified:** Compact local geometry and plain SHA captured, but description stub answered generation; G-disabled/no-description requirement remains unverified.

![E02-final-sheet.jpg](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/46dc6a7eead00e24/E02-final-sheet.jpg)

**What else changed:** New local commit row has a secondary description from the fixture stub (this violates the requested G-disabled case). Selected header replaces Changes/base selector with subject/plain SHA; branch/dirty-file aggregate is replaced by the selected file and its totals. The selected file is collapsed.

**Steps and timestamps (seconds from recording start):**

Before: [E02-before.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/14de98678cacadfa/E02-before.webm)

25.34s — E02 open source picker; 25.34s — Open Diff scope

[E02-before-steps.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0948214be753c13d/E02-before-steps.json)

After: [E02-after.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8fbc2098eba060b2/E02-after.webm)

22.91s — E02 open source picker; 22.91s — Open Diff scope; 23.01s — Keyboard opens Commits submenu; 24.85s — E02 select Update revision 1

[E02-after-steps.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b0ee76bb6103aa0d/E02-after-steps.json)

**E02 dark-menu — 1440×900, dark, DPR 1.**

| Before | After | Diff0 (0, ×32) | DiffT (>16/255) |
|---|---|---|---|
| ![E02-before-menu.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7235fb09f97c3be5/E02-before-menu.png)<br>[e34067edef][before] | ![E02-after-menu.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/053908250a236e1d/E02-after-menu.png)<br>[dbb22e5272][after] | ![E02-dark-menu-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4c0bfb77ea3ead08/E02-dark-menu-Diff0.png)<br>[e34067edef][before] → [dbb22e5272][after] | ![E02-dark-menu-Diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d0e6ee6d262c826f/E02-dark-menu-Diff16.png)<br>[e34067edef][before] → [dbb22e5272][after] |

Changed pixels (0 / >16): 30209 / 21033; max 245.

**E02 dark-selected — 1440×900, dark, DPR 1.**

| Before | After | Diff0 (0, ×32) | DiffT (>16/255) |
|---|---|---|---|
| ![E02-before-selected.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6b32063d126d5a2c/E02-before-selected.png)<br>[e34067edef][before] | ![E02-after-selected.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7702ba55d785acf1/E02-after-selected.png)<br>[dbb22e5272][after] | ![E02-dark-selected-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/07d2b0abdfe11fe5/E02-dark-selected-Diff0.png)<br>[e34067edef][before] → [dbb22e5272][after] | ![E02-dark-selected-Diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/933195e1f79f5d83/E02-dark-selected-Diff16.png)<br>[e34067edef][before] → [dbb22e5272][after] |

Changed pixels (0 / >16): 96599 / 71029; max 255.

### E03

**Coverage / unverified:** Real branch list responses gated in the actual app. First description request logged. No claimed real-provider generation.

![E03-final-sheet.jpg](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3620f534b03d3838/E03-final-sheet.jpg)

**What else changed:** Commits submenu adds disabled loading text; releasing the real list replaces it with actual subject/SHA/date rows. The rest of the surface remains the branch comparison.

**Steps and timestamps (seconds from recording start):**

Before: [E03-E04-E08-before.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/38b2a6dab50ef8ab/E03-E04-E08-before.webm)

16.61s — E03 open source picker while real branch-list replies are held by transport harness; 16.61s — Open Diff scope; 17.91s — E03 release populated real branch list while menu stays open; 18.78s — E04 release deterministic descriptions while populated list stays open; 20.90s — E08 release selected immutable commit preview

[E03-E04-E08-before-steps.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/36ac219fccbf599c/E03-E04-E08-before-steps.json)

After: [E03-E04-E08-after.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5eb9001a4f7cfaf7/E03-E04-E08-after.webm)

9.98s — E03 open source picker while real branch-list replies are held by transport harness; 9.98s — Open Diff scope; 10.04s — Keyboard opens Commits submenu; 11.02s — E03 release populated real branch list while menu stays open; 12.10s — E04 release deterministic descriptions while populated list stays open; 13.10s — E04 scroll to tenth row to request the next batch; 13.94s — E08 select uncached commit with its real preview reply held; 14.91s — E08 release selected immutable commit preview

[E03-E04-E08-after-steps.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/30769f7278c6651d/E03-E04-E08-after-steps.json)

**E03 dark-loading — 1440×900, dark, DPR 1.**

| Before | After | Diff0 (0, ×32) | DiffT (>16/255) |
|---|---|---|---|
| ![E03-before-loading.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ce0303fc74772c8e/E03-before-loading.png)<br>[e34067edef][before] | ![E03-after-loading.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/90ecd4b95fac278e/E03-after-loading.png)<br>[dbb22e5272][after] | ![E03-dark-loading-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/38a54c0533e674a1/E03-dark-loading-Diff0.png)<br>[e34067edef][before] → [dbb22e5272][after] | ![E03-dark-loading-Diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/119c1bb1f9319608/E03-dark-loading-Diff16.png)<br>[e34067edef][before] → [dbb22e5272][after] |

Changed pixels (0 / >16): 30387 / 5716; max 244.

**E03 dark-populated — 1440×900, dark, DPR 1.**

| Before | After | Diff0 (0, ×32) | DiffT (>16/255) |
|---|---|---|---|
| ![E03-before-populated.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a975519dfcaa542d/E03-before-populated.png)<br>[e34067edef][before] | ![E03-after-populated.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/017c23ed442f9f90/E03-after-populated.png)<br>[dbb22e5272][after] | ![E03-dark-populated-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/13456028f845afff/E03-dark-populated-Diff0.png)<br>[e34067edef][before] → [dbb22e5272][after] | ![E03-dark-populated-Diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/96e1e6ccfeba9746/E03-dark-populated-Diff16.png)<br>[e34067edef][before] → [dbb22e5272][after] |

Changed pixels (0 / >16): 157468 / 31007; max 245.

### E04

**Coverage / unverified:** Description release and next batch recorded. Populated-list refresh inserting a new first commit was not exercised; frozen ordering until reopen unverified.

Steps/timestamps: see the E03 shared timing-reel chapter lists above. The same recording contains this row’s scripted release.

![E04-final-sheet.jpg](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/145a32e04e9209ce/E04-final-sheet.jpg)

**What else changed:** Released description strings add a secondary line under subjects and increase row height; visible row count and scroll position change accordingly. Refreshed-list freezing was not exercised.

**Steps and timestamps (seconds from recording start):**

Before: [E03-E04-E08-before.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/38b2a6dab50ef8ab/E03-E04-E08-before.webm)

After: [E03-E04-E08-after.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5eb9001a4f7cfaf7/E03-E04-E08-after.webm)

**E04 dark-descriptions — 1440×900, dark, DPR 1.**

| Before | After | Diff0 (0, ×32) | DiffT (>16/255) |
|---|---|---|---|
| ![E04-before-descriptions.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f0798a2ab9a6d5a6/E04-before-descriptions.png)<br>[e34067edef][before] | ![E04-after-descriptions.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c0951584595afe71/E04-after-descriptions.png)<br>[dbb22e5272][after] | ![E04-dark-descriptions-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/95a8b0882a4ec013/E04-dark-descriptions-Diff0.png)<br>[e34067edef][before] → [dbb22e5272][after] | ![E04-dark-descriptions-Diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7555b1712ec33397/E04-dark-descriptions-Diff16.png)<br>[e34067edef][before] → [dbb22e5272][after] |

Changed pixels (0 / >16): 157473 / 37245; max 245.

### E05

**Coverage / unverified:** Empty comparison menu captured with disabled No commits on this branch.

![E05-final-sheet.jpg](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c351a5471143de05/E05-final-sheet.jpg)

**What else changed:** Commits submenu and disabled No commits on this branch row appear over the same empty-comparison fixture.

**Steps and timestamps (seconds from recording start):**

Before: [E05-before.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/42fc35c9c43f96cc/E05-before.webm)

37.36s — E05 open source picker; 37.36s — Open Diff scope

[E05-before-steps.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/202b5492344b5f39/E05-before-steps.json)

After: [E05-after.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/dfef61c21b7d1baf/E05-after.webm)

33.00s — E05 open source picker; 33.00s — Open Diff scope; 33.48s — Keyboard opens Commits submenu

[E05-after-steps.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/abfe22cdfed8f796/E05-after-steps.json)

**E05 dark-menu — 1440×900, dark, DPR 1.**

| Before | After | Diff0 (0, ×32) | DiffT (>16/255) |
|---|---|---|---|
| ![E05-before-menu.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5093e5429d9607c5/E05-before-menu.png)<br>[e34067edef][before] | ![E05-after-menu.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/26398a199fbbffff/E05-after-menu.png)<br>[dbb22e5272][after] | ![E05-dark-menu-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e70c9f1f35b3797c/E05-dark-menu-Diff0.png)<br>[e34067edef][before] → [dbb22e5272][after] | ![E05-dark-menu-Diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fce6018765080b01/E05-dark-menu-Diff16.png)<br>[e34067edef][before] → [dbb22e5272][after] |

Changed pixels (0 / >16): 18920 / 5565; max 240.

### E06

**Coverage / unverified:** Actual invalid-base Git error and recovery recorded. Recovery poster rejected for incidental tooltip; error poster retained.

![E06-final-sheet.jpg](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/00aeb7902e4f3cb1/E06-final-sheet.jpg)

**What else changed:** Commits submenu shows a wrapped, disabled real Git error; the underlying invalid-comparison error was already present before. Recovery recording exists; tooltip-obscured recovery still rejected.

**Steps and timestamps (seconds from recording start):**

Before: [E06-before.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5e151daa29409a37/E06-before.webm)

28.48s — E06 open source picker; 28.49s — Open Diff scope; 29.72s — E06 recover comparison base then reopen source menu; 29.97s — Open Diff scope

[E06-before-steps.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2b71bfc84a1f8109/E06-before-steps.json)

After: [E06-after.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/522add007d340974/E06-after.webm)

17.85s — E06 open source picker; 17.85s — Open Diff scope; 18.24s — Keyboard opens Commits submenu; 19.41s — E06 recover comparison base then reopen source menu; 19.74s — Open Diff scope; 19.90s — Keyboard opens Commits submenu

[E06-after-steps.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/26b154a2dc01b32f/E06-after-steps.json)

**E06 dark-menu — 1440×900, dark, DPR 1.**

| Before | After | Diff0 (0, ×32) | DiffT (>16/255) |
|---|---|---|---|
| ![E06-before-menu.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b50c5767759cd2d9/E06-before-menu.png)<br>[e34067edef][before] | ![E06-after-menu.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/84fd6f4c41afc115/E06-after-menu.png)<br>[dbb22e5272][after] | ![E06-dark-menu-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/749336f95ddcfc10/E06-dark-menu-Diff0.png)<br>[e34067edef][before] → [dbb22e5272][after] | ![E06-dark-menu-Diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5d1b445d4304f7fc/E06-dark-menu-Diff16.png)<br>[e34067edef][before] → [dbb22e5272][after] |

Changed pixels (0 / >16): 46311 / 12040; max 245.

### E07

**Coverage / unverified:** 1440 dark/light selected header and source focus recorded. SHA activation/destination not exercised. 360px attempt rejected for incidental workspace overlay; its width requirement unverified.

Steps/timestamps: see the E01 shared menu/selection reel chapter lists above (dark and light).

![E07-final-sheet.jpg](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d73012f1679a25a3/E07-final-sheet.jpg)

**What else changed:** Changes/base-ref header becomes selected subject plus linked short SHA; counts and toolbar spacing change. The body changes from aggregate branch/dirty-file diff to the selected commit patch (red/green lines, paths and totals differ by design). These large body differences are the source selection being demonstrated.

**Steps and timestamps (seconds from recording start):**

Before: [E01-E07-dark-before.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/85d94f7bd386108f/E01-E07-dark-before.webm)

After: [E01-E07-dark-after.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e0ea185a96f5b5fd/E01-E07-dark-after.webm)

**Steps and timestamps (seconds from recording start):**

Before: [E01-E07-light-before.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d9b8d2df5bfd1ce2/E01-E07-light-before.webm)

After: [E01-E07-light-after.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d43fc15f58fc418f/E01-E07-light-after.webm)

**E07 dark-selected — 1440×900, dark, DPR 1.**

| Before | After | Diff0 (0, ×32) | DiffT (>16/255) |
|---|---|---|---|
| ![E07-dark-before-selected.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f2a5607183002d54/E07-dark-before-selected.png)<br>[e34067edef][before] | ![E07-dark-after-selected.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/25fd2e0f4510d6b4/E07-dark-after-selected.png)<br>[dbb22e5272][after] | ![E07-dark-selected-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cc4d218f6d552f17/E07-dark-selected-Diff0.png)<br>[e34067edef][before] → [dbb22e5272][after] | ![E07-dark-selected-Diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8368e93498c8d85d/E07-dark-selected-Diff16.png)<br>[e34067edef][before] → [dbb22e5272][after] |

Changed pixels (0 / >16): 415862 / 383682; max 255.

**E07 light-selected — 1440×900, light, DPR 1.**

| Before | After | Diff0 (0, ×32) | DiffT (>16/255) |
|---|---|---|---|
| ![E07-light-before-selected.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e5ddb4b7f331f86b/E07-light-before-selected.png)<br>[e34067edef][before] | ![E07-light-after-selected.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/004705f3a2c51877/E07-light-after-selected.png)<br>[dbb22e5272][after] | ![E07-light-selected-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/36e31d16cc0bc84a/E07-light-selected-Diff0.png)<br>[e34067edef][before] → [dbb22e5272][after] | ![E07-light-selected-Diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/72205d74252fb405/E07-light-selected-Diff16.png)<br>[e34067edef][before] → [dbb22e5272][after] |

Changed pixels (0 / >16): 416642 / 346193; max 252.

### E08

**Coverage / unverified:** Actual row selection with real preview response held/released. Pending skeleton intentional in this row. Released preview body not expanded to full patch.

Steps/timestamps: see the E03 shared timing-reel chapter lists above. The same recording contains this row’s scripted release.

![E08-final-sheet.jpg](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6185c3ba4d17cf8c/E08-final-sheet.jpg)

**What else changed:** Selected pending header uses Commit plus short SHA; base selector/totals disappear and the body becomes the intentionally gated loading skeleton. After release, the subject and file headers replace the pending state; files remain collapsed.

**Steps and timestamps (seconds from recording start):**

Before: [E03-E04-E08-before.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/38b2a6dab50ef8ab/E03-E04-E08-before.webm)

After: [E03-E04-E08-after.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5eb9001a4f7cfaf7/E03-E04-E08-after.webm)

**E08 dark-pending — 1440×900, dark, DPR 1.**

| Before | After | Diff0 (0, ×32) | DiffT (>16/255) |
|---|---|---|---|
| ![E08-before-pending.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a19649e81c0adbb8/E08-before-pending.png)<br>[e34067edef][before] | ![E08-after-pending.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4555584afcbca89c/E08-after-pending.png)<br>[dbb22e5272][after] | ![E08-dark-pending-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6789be3115fd2078/E08-dark-pending-Diff0.png)<br>[e34067edef][before] → [dbb22e5272][after] | ![E08-dark-pending-Diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/dc2c601644dcb005/E08-dark-pending-Diff16.png)<br>[e34067edef][before] → [dbb22e5272][after] |

Changed pixels (0 / >16): 427510 / 423254; max 255.

**E08 dark-ready — 1440×900, dark, DPR 1.**

| Before | After | Diff0 (0, ×32) | DiffT (>16/255) |
|---|---|---|---|
| ![E08-before-ready.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ee404f2fa89201c9/E08-before-ready.png)<br>[e34067edef][before] | ![E08-after-ready.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/122539eca7ccf3c0/E08-after-ready.png)<br>[dbb22e5272][after] | ![E08-dark-ready-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2c69cde612b76713/E08-dark-ready-Diff0.png)<br>[e34067edef][before] → [dbb22e5272][after] | ![E08-dark-ready-Diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3650aacfa5719e18/E08-dark-ready-Diff16.png)<br>[e34067edef][before] → [dbb22e5272][after] |

Changed pixels (0 / >16): 423490 / 420645; max 255.

### E09

**Coverage / unverified:** Whitespace-only selection empty state and toolbar toggle recorded. Returned file remained collapsed; visible nonempty patch after toggle unverified.

![E09-final-sheet.jpg](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/22b519108006cd0b/E09-final-sheet.jpg)

**What else changed:** Selected whitespace-only source replaces the branch patch with the empty-selection message. Showing whitespace replaces that message with a collapsed file header and totals; this does not prove the visible expanded patch.

**Steps and timestamps (seconds from recording start):**

Before: [E09-before.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b226736b373b58bd/E09-before.webm)

14.38s — E09 open source picker; 14.38s — Open Diff scope; 16.97s — E09 toggle whitespace visibility

[E09-before-steps.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/dabc98036a544890/E09-before-steps.json)

After: [E09-after.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9126a21d3cd400fd/E09-after.webm)

15.20s — E09 open source picker; 15.20s — Open Diff scope; 15.50s — Keyboard opens Commits submenu; 16.90s — E09 select Adjust whitespace only; 18.67s — E09 toggle whitespace visibility

[E09-after-steps.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8632703ad43c4eb0/E09-after-steps.json)

**E09 dark-menu — 1440×900, dark, DPR 1.**

| Before | After | Diff0 (0, ×32) | DiffT (>16/255) |
|---|---|---|---|
| ![E09-before-menu.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/660a93b687bd5647/E09-before-menu.png)<br>[e34067edef][before] | ![E09-after-menu.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7746fbdcd81b7385/E09-after-menu.png)<br>[dbb22e5272][after] | ![E09-dark-menu-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4c844636af0a10e9/E09-dark-menu-Diff0.png)<br>[e34067edef][before] → [dbb22e5272][after] | ![E09-dark-menu-Diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e8a9c46abe9dd65f/E09-dark-menu-Diff16.png)<br>[e34067edef][before] → [dbb22e5272][after] |

Changed pixels (0 / >16): 157470 / 38260; max 245.

**E09 dark-selected — 1440×900, dark, DPR 1.**

| Before | After | Diff0 (0, ×32) | DiffT (>16/255) |
|---|---|---|---|
| ![E09-before-selected.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9d5a007d964c2b36/E09-before-selected.png)<br>[e34067edef][before] | ![E09-after-selected.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/943d72ba465749f0/E09-after-selected.png)<br>[dbb22e5272][after] | ![E09-dark-selected-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c67bbf83afc00b69/E09-dark-selected-Diff0.png)<br>[e34067edef][before] → [dbb22e5272][after] | ![E09-dark-selected-Diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3921f29eacd87d0c/E09-dark-selected-Diff16.png)<br>[e34067edef][before] → [dbb22e5272][after] |

Changed pixels (0 / >16): 424402 / 420807; max 255.

**E09 dark-whitespace — 1440×900, dark, DPR 1.**

| Before | After | Diff0 (0, ×32) | DiffT (>16/255) |
|---|---|---|---|
| ![E09-before-whitespace.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/eb21b78226047c2c/E09-before-whitespace.png)<br>[e34067edef][before] | ![E09-after-whitespace.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1884f4e05d197c02/E09-after-whitespace.png)<br>[dbb22e5272][after] | ![E09-dark-whitespace-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/98054f86636d607e/E09-dark-whitespace-Diff0.png)<br>[e34067edef][before] → [dbb22e5272][after] | ![E09-dark-whitespace-Diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e6b99b2c07cf0799/E09-dark-whitespace-Diff16.png)<br>[e34067edef][before] → [dbb22e5272][after] |

Changed pixels (0 / >16): 424107 / 420215; max 255.

### E10

**Coverage / unverified:** Real two-parent >120KB seven-file fixture and menu captured. Selected merge posters rejected: skeleton / wrong file surface. Lazy reads, context expansion and immutable parent/head contents remain unverified.

![E10-final-sheet.jpg](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ce832f4eac30046f/E10-final-sheet.jpg)

**What else changed:** Only the source-menu comparison is accepted: new commit rows include later workspace revision, merge and first-parent-related entries. Selected/lazy-file frames were rejected and no immutable-content claim is made.

**Steps and timestamps (seconds from recording start):**

Before: [E10-before.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a3394bb21434f7fa/E10-before.webm)

13.82s — E10 open source picker; 13.82s — Open Diff scope; 15.47s — E10 scroll to later lazy-loaded file

[E10-before-steps.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c51e249fbf54bfd7/E10-before-steps.json)

After: [E10-after.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/774867c61885d9c1/E10-after.webm)

26.62s — E10 open source picker; 26.62s — Open Diff scope; 26.93s — Keyboard opens Commits submenu; 28.82s — E10 select Merge seven-file immutable review fixture; 31.99s — E10 scroll to later lazy-loaded file

[E10-after-steps.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/91342edba90c31ef/E10-after-steps.json)

**E10 dark-menu — 1440×900, dark, DPR 1.**

| Before | After | Diff0 (0, ×32) | DiffT (>16/255) |
|---|---|---|---|
| ![E10-before-menu.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d8c1fed54386f3e6/E10-before-menu.png)<br>[e34067edef][before] | ![E10-after-menu.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0d0d29c985024892/E10-after-menu.png)<br>[dbb22e5272][after] | ![E10-dark-menu-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8d3901cc10e6d93f/E10-dark-menu-Diff0.png)<br>[e34067edef][before] → [dbb22e5272][after] | ![E10-dark-menu-Diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2fec84bba39d9b55/E10-dark-menu-Diff16.png)<br>[e34067edef][before] → [dbb22e5272][after] |

Changed pixels (0 / >16): 93748 / 32987; max 245.

### E11

**Coverage / unverified:** 390×844 light real sheet menu/header recorded. SHA activation, maximize/unmaximize and dark 390 variant unverified. Header subject collapses to a tiny selector at this width; SHA and controls remain visible.

![E11-final-sheet.jpg](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/555311b900adbe11/E11-final-sheet.jpg)

**What else changed:** Real narrow sheet gains a Commits submenu and long rows; selected header loses branch base selector and shows short SHA with a very narrow subject selector. Selected commit patch and totals replace branch aggregate. 390px capture is light only.

**Steps and timestamps (seconds from recording start):**

Before: [E11-before.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7d6bb24610917b6f/E11-before.webm)

21.22s — E11 open real source menu; 21.22s — Open Diff scope

[E11-before-steps.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/87d5aa37041aabac/E11-before-steps.json)

After: [E11-after.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a3739502647ba9d8/E11-after.webm)

20.99s — E11 open real source menu; 20.99s — Open Diff scope; 21.10s — Keyboard opens Commits submenu; 23.33s — E11 keyboard focus long Unicode commit; 24.40s — E11 select long commit; 27.06s — E11 independently focus SHA source action; 27.74s — E11 reopen selected source menu; 27.74s — Open Diff scope; 27.86s — Keyboard opens Commits submenu

[E11-after-steps.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d872ea911c1a53e1/E11-after-steps.json)

**E11 light-narrow-menu — 390×844, light, DPR 1.**

| Before | After | Diff0 (0, ×32) | DiffT (>16/255) |
|---|---|---|---|
| ![E11-before-menu.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f816332738d10d94/E11-before-menu.png)<br>[e34067edef][before] | ![E11-after-menu.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/289fdbbdb9185535/E11-after-menu.png)<br>[dbb22e5272][after] | ![E11-light-narrow-menu-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d961e5dcc35aeb48/E11-light-narrow-menu-Diff0.png)<br>[e34067edef][before] → [dbb22e5272][after] | ![E11-light-narrow-menu-Diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bc8e0117bd68533d/E11-light-narrow-menu-Diff16.png)<br>[e34067edef][before] → [dbb22e5272][after] |

Changed pixels (0 / >16): 171212 / 38682; max 242.

**E11 light-narrow-selected — 390×844, light, DPR 1.**

| Before | After | Diff0 (0, ×32) | DiffT (>16/255) |
|---|---|---|---|
| ![E11-before-selected.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cd1327a2cc1afeeb/E11-before-selected.png)<br>[e34067edef][before] | ![E11-after-selected.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b51be3866661160e/E11-after-selected.png)<br>[dbb22e5272][after] | ![E11-light-narrow-selected-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4bab1390ae9c7dc8/E11-light-narrow-selected-Diff0.png)<br>[e34067edef][before] → [dbb22e5272][after] | ![E11-light-narrow-selected-Diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a4dafe08a8e20457/E11-light-narrow-selected-Diff16.png)<br>[e34067edef][before] → [dbb22e5272][after] |

Changed pixels (0 / >16): 244728 / 198192; max 252.

### E12

**Coverage / unverified:** Web interaction recorded with actual linked Git worktree whose HEAD differs from project root. Observed destination is Changes (branch), not the requested selected commit. Baseline/after differ in chat timestamp and panel layout; this is diagnostic evidence, not proof of correct routing. Desktop bridge attempt remained Syncing messages; native desktop stills rejected. Modifier/settings controls recorded but request-count exclusion not proven.

**Diagnostic after-only observation — not a comparable pair.** 1440×900 dark; web environment above.

| Before | After | Diff0 | DiffT |
|---|---|---|---|
| UNVERIFIED; rejected comparison | ![E12-after-destination.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2444067d807bdf47/E12-after-destination.png)<br>[dbb22e5272][after] | Not produced for a valid pair | Not produced for a valid pair |

Rejected comparisons included unrelated chat timestamp / network state differences. Those diffs are excluded from acceptance.

Before diagnostic recording: [E12-E15-before.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d98d0eecc45d08c6/E12-E15-before.webm)

9.52s — E12 close Diff, click reachable commit Markdown link; external popups recorded and prevented; 11.26s — E15 click unavailable plain commit with system browser preference; 12.06s — E12 Control modified click control; 12.23s — E12 Middle modified click control; 12.28s — E12 Shift modified click control; 12.44s — E12 Alt modified click control; 12.59s — E12 disable in-app PR preference, then click same link; 13.47s — E13 unavailable PR-commit link follows PR resolver (synthetic remote has no readable PR); 14.38s — E14 unavailable plain link follows in-app Browser

After diagnostic recording: [E12-E15-after.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/de34c627a7f22766/E12-E15-after.webm)

10.66s — E12 close Diff, click reachable commit Markdown link; external popups recorded and prevented; 27.93s — E15 click unavailable plain commit with system browser preference; 29.00s — E15 activate Open link toast action; capture prevented original URL; 29.10s — E12 Control modified click control; 29.39s — E12 Middle modified click control; 29.59s — E12 Shift modified click control; 29.87s — E12 Alt modified click control; 30.03s — E12 disable in-app PR preference, then click same link; 30.98s — E13 unavailable PR-commit link follows PR resolver (synthetic remote has no readable PR); 32.43s — E14 unavailable plain link follows in-app Browser

### E13

**Coverage / unverified:** Web missing PR-commit fallback reaches the actual readable PR panel after waiting for its title. Desktop delivery stills rejected for ongoing Syncing messages. PR live metadata can change independently and does not constitute frozen fixture data. Baseline PR load ended in Could not reach GitHub while after loaded public PR data. Comparison rejected as unrelated network state; only after readable PR observation is retained.

**Diagnostic after-only observation — not a comparable pair.** 1440×900 dark; web environment above.

| Before | After | Diff0 | DiffT |
|---|---|---|---|
| UNVERIFIED; rejected comparison | ![E13-after-destination.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0acfe44d0773f1d4/E13-after-destination.png)<br>[dbb22e5272][after] | Not produced for a valid pair | Not produced for a valid pair |

Rejected comparisons included unrelated chat timestamp / network state differences. Those diffs are excluded from acceptance.

Before diagnostic recording: [E13-E14-before.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a1add993eaff17d4/E13-E14-before.webm)

12.78s — E13 click missing SHA within readable PR; await settled PR title; 58.84s — E14 click unavailable plain link; Browser target origin/URL visible, certificate failure retained

After diagnostic recording: [E13-E14-after.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a1b902b94ea41a4d/E13-E14-after.webm)

9.24s — E13 click missing SHA within readable PR; await settled PR title; 55.46s — E14 click unavailable plain link; Browser target origin/URL visible, certificate failure retained

### E14

**Coverage / unverified:** Web Browser fallback visible with original host/path, but Browser navigation reports ERR_CERT_AUTHORITY_INVALID. Original full target is preserved in driver/transport. Desktop active-browser reuse/scratch-thread destination unverified. Comparable pair rejected: original capture shows chat timestamps differing; retake shows different Browser connection-control states. No accepted Diff0/DiffT claim.

**Diagnostic after-only observation — not a comparable pair.** 1440×900 dark; web environment above.

| Before | After | Diff0 | DiffT |
|---|---|---|---|
| UNVERIFIED; rejected comparison | ![E14-after-destination.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b52d947c673b4830/E14-after-destination.png)<br>[dbb22e5272][after] | Not produced for a valid pair | Not produced for a valid pair |

Rejected comparisons included unrelated chat timestamp / network state differences. Those diffs are excluded from acceptance.

Before diagnostic recording: [E13-E14-before.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a1add993eaff17d4/E13-E14-before.webm)

12.78s — E13 click missing SHA within readable PR; await settled PR title; 58.84s — E14 click unavailable plain link; Browser target origin/URL visible, certificate failure retained

After diagnostic recording: [E13-E14-after.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a1b902b94ea41a4d/E13-E14-after.webm)

9.24s — E13 click missing SHA within readable PR; await settled PR title; 55.46s — E14 click unavailable plain link; Browser target origin/URL visible, certificate failure retained

### E15

**Coverage / unverified:** Comparable web toast pair and Open link action recorded. Native window.open requests prevented and recorded: exact original query/fragment preserved. Not a claim that an external browser window navigated.

![E15-final-sheet.jpg](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/97dd8fdfa157bee4/E15-final-sheet.jpg)

**What else changed:** After adds the information toast and Open link action above the same closed-Diff/Git-card state. Action URLs are captured; automatic external popup list is empty before the action. No unrelated content shift is used as proof.

**Steps and timestamps (seconds from recording start):**

Before: [E15-before.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d41133639b199fc7/E15-before.webm)

14.22s — Click missing full-SHA link; popup requests prevented and logged

[E15-before-steps.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1d721427453cf4f7/E15-before-steps.json)

After: [E15-after.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f4a6dc07756a87c8/E15-after.webm)

11.18s — Click missing full-SHA link; popup requests prevented and logged; 12.40s — Activate Open link

[E15-after-steps.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fa96550191357cc2/E15-after-steps.json)

**E15 dark-toast-observation — 1440×900, dark, DPR 1.**

| Before | After | Diff0 (0, ×32) | DiffT (>16/255) |
|---|---|---|---|
| ![E15-before-toast.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4b35cb6cdc843dd4/E15-before-toast.png)<br>[e34067edef][before] | ![E15-after-toast.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f47690d226b9d107/E15-after-toast.png)<br>[dbb22e5272][after] | ![E15-dark-toast-observation-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/404b9ab48813507c/E15-dark-toast-observation-Diff0.png)<br>[e34067edef][before] → [dbb22e5272][after] | ![E15-dark-toast-observation-Diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e04ba083d4f28061/E15-dark-toast-observation-Diff16.png)<br>[e34067edef][before] → [dbb22e5272][after] |

Changed pixels (0 / >16): 46959 / 5864; max 255.

### E16

**Coverage / unverified:** Commit→Changes/custom fixture-base→Uncommitted and close/reopen keybinding recorded. No ready checkpoint turns/tool-call history; persisted reload, wrap/split/stacked/collapse controls unverified.

![E16-final-sheet.jpg](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/05e7f2c873e7e36c/E16-final-sheet.jpg)

**What else changed:** Source menu gains Commits; selected commit changes header and file set. Returning to Changes restores fixture-base; Uncommitted shows README only. Reopened Uncommitted surface is visually retained. Turn/tool-call/history controls were not seeded.

**Steps and timestamps (seconds from recording start):**

Before: [E16-before.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ac204211072aa983/E16-before.webm)

10.08s — E16 open source picker; 10.08s — Open Diff scope; 11.90s — E16 switch to Changes then Uncommitted; retain fixture-base; 14.67s — E16 close/reopen Diff with Control+d

[E16-before-steps.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1b296c82e9d1dc57/E16-before-steps.json)

After: [E16-after.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/69a12ef36aca7639/E16-after.webm)

11.94s — E16 open source picker; 11.94s — Open Diff scope; 12.09s — Keyboard opens Commits submenu; 13.21s — E16 select Refine commit review; 14.83s — E16 switch to Changes then Uncommitted; retain fixture-base; 17.82s — E16 close/reopen Diff with Control+d

[E16-after-steps.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9421cdf6765b97ad/E16-after-steps.json)

**E16 dark-changes — 1440×900, dark, DPR 1.**

| Before | After | Diff0 (0, ×32) | DiffT (>16/255) |
|---|---|---|---|
| ![E16-before-changes.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fd1778675339ddfc/E16-before-changes.png)<br>[e34067edef][before] | ![E16-after-changes.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1e566621c9c13afc/E16-after-changes.png)<br>[dbb22e5272][after] | ![E16-dark-changes-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/79813399d863953e/E16-dark-changes-Diff0.png)<br>[e34067edef][before] → [dbb22e5272][after] | ![E16-dark-changes-Diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/85f5572e39c37a3b/E16-dark-changes-Diff16.png)<br>[e34067edef][before] → [dbb22e5272][after] |

Changed pixels (0 / >16): 0 / 0; max 0.

**E16 dark-menu — 1440×900, dark, DPR 1.**

| Before | After | Diff0 (0, ×32) | DiffT (>16/255) |
|---|---|---|---|
| ![E16-before-menu.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/af5fe7f25d987ac4/E16-before-menu.png)<br>[e34067edef][before] | ![E16-after-menu.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/60e9878fbc2858e2/E16-after-menu.png)<br>[dbb22e5272][after] | ![E16-dark-menu-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bbc4a6737f4c6462/E16-dark-menu-Diff0.png)<br>[e34067edef][before] → [dbb22e5272][after] | ![E16-dark-menu-Diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d1db5e3a208a580e/E16-dark-menu-Diff16.png)<br>[e34067edef][before] → [dbb22e5272][after] |

Changed pixels (0 / >16): 157470 / 38260; max 245.

**E16 dark-reopened — 1440×900, dark, DPR 1.**

| Before | After | Diff0 (0, ×32) | DiffT (>16/255) |
|---|---|---|---|
| ![E16-before-reopened.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/adc89926df3eed41/E16-before-reopened.png)<br>[e34067edef][before] | ![E16-after-reopened.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3c1f04fbb2b32c55/E16-after-reopened.png)<br>[dbb22e5272][after] | ![E16-dark-reopened-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fdd5bb81215827eb/E16-dark-reopened-Diff0.png)<br>[e34067edef][before] → [dbb22e5272][after] | ![E16-dark-reopened-Diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/44a29e00afb12369/E16-dark-reopened-Diff16.png)<br>[e34067edef][before] → [dbb22e5272][after] |

Changed pixels (0 / >16): 0 / 0; max 0.

**E16 dark-selected — 1440×900, dark, DPR 1.**

| Before | After | Diff0 (0, ×32) | DiffT (>16/255) |
|---|---|---|---|
| ![E16-before-selected.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/24bd86327fd01dec/E16-before-selected.png)<br>[e34067edef][before] | ![E16-after-selected.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/61fcda15534ecb20/E16-after-selected.png)<br>[dbb22e5272][after] | ![E16-dark-selected-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9f8101c4c0cc337c/E16-dark-selected-Diff0.png)<br>[e34067edef][before] → [dbb22e5272][after] | ![E16-dark-selected-Diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0f9666cb1fd3dc9a/E16-dark-selected-Diff16.png)<br>[e34067edef][before] → [dbb22e5272][after] |

Changed pixels (0 / >16): 423130 / 420393; max 255.

**E16 dark-uncommitted — 1440×900, dark, DPR 1.**

| Before | After | Diff0 (0, ×32) | DiffT (>16/255) |
|---|---|---|---|
| ![E16-before-uncommitted.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e0665d338c1797ba/E16-before-uncommitted.png)<br>[e34067edef][before] | ![E16-after-uncommitted.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bf3293abb6d040a3/E16-after-uncommitted.png)<br>[dbb22e5272][after] | ![E16-dark-uncommitted-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/49019a42d01bb5d0/E16-dark-uncommitted-Diff0.png)<br>[e34067edef][before] → [dbb22e5272][after] | ![E16-dark-uncommitted-Diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/30173528cb45c477/E16-dark-uncommitted-Diff16.png)<br>[e34067edef][before] → [dbb22e5272][after] |

Changed pixels (0 / >16): 0 / 0; max 0.

### E17

**Coverage / unverified:** Actual installed iOS client reached both states through identical controlled hook input: before shows Commit abcdef1 patch, after accessibility tree reports No review diffs. After still text remained clipped under header; rejected. No accepted pair/diffs, no selected-section JS transcript, dark theme or frozen native clock. Unverified native visual evidence.

[native-diagnostic-transcript.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/414b3ef02c3522d4/native-diagnostic-transcript.md)

[native-input-final.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/21a183e4ec907f9d/native-input-final.json)

Actual native input was injected at useReviewSections, before actual buildReviewSectionItems and ReviewSheet. Native runtime: leased iPhone 17 Pro simulator, 402×874 logical viewport; video is 1206×2622 (3×), screenshot service returns 402×874 @1x; system text size medium. Native theme/clock were not normalized, and after stills did not satisfy settled/clipped-text requirements. No phone-web substitute.

Before diagnostic recording: [E17-native-before.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/41c50696e2890ceb/E17-native-before.mp4)

After diagnostic recording: [E17-native-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/380135daa4ef5050/E17-native-after.mp4)

Baseline accessibility transcript: [native-before-review.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/922c2a7ac82a3d5a/native-before-review.txt)

After accessibility transcript: [native-after-review2.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c7a5ef2e701bb2db/native-after-review2.txt)

### E18

**Coverage / unverified:** 102 real commits; actual returned cap/footer Showing latest 100 commits captured at bottom, recording and request inputs included.

![E18-final-sheet.jpg](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/14bbc42ced00f317/E18-final-sheet.jpg)

**What else changed:** New commit submenu is scrolled to oldest returned rows and the Showing latest 100 commits footer. Existing branch patch stays behind the popup.

**Steps and timestamps (seconds from recording start):**

Before: [E18-before.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7a4f35a1c0746865/E18-before.webm)

10.34s — Open Diff scope

[E18-before-steps.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/29cbbacf5d14acae/E18-before-steps.json)

After: [E18-after.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8141e27e27253e67/E18-after.webm)

11.53s — Open Diff scope; 11.60s — Keyboard opens Commits submenu; 12.83s — Scroll capped list to footer

[E18-after-steps.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/20bb8ecf70bc81a5/E18-after-steps.json)

**E18 dark-footer — 1440×900, dark, DPR 1.**

| Before | After | Diff0 (0, ×32) | DiffT (>16/255) |
|---|---|---|---|
| ![E18-before-menu.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1f20de147d528471/E18-before-menu.png)<br>[e34067edef][before] | ![E18-after-menu.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f66d80691039a953/E18-after-menu.png)<br>[dbb22e5272][after] | ![E18-dark-footer-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/51286ba92b53bcce/E18-dark-footer-Diff0.png)<br>[e34067edef][before] → [dbb22e5272][after] | ![E18-dark-footer-Diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e8cebc93b38da9d5/E18-dark-footer-Diff16.png)<br>[e34067edef][before] → [dbb22e5272][after] |

Changed pixels (0 / >16): 135733 / 13634; max 245.

### O01

Unverified — optional row not attempted within budget; no capture or diff.

### O02

Unverified — optional row not attempted within budget; no capture or diff.

### O03

Unverified — optional row not attempted within budget; no capture or diff.

### O04

Unverified — optional row not attempted within budget; no capture or diff.

### O05

Unverified — optional row not attempted within budget; no capture or diff.

### O06

Unverified — optional row not attempted within budget; no capture or diff.

### O07

Unverified — optional row not attempted within budget; no capture or diff.

### O08

Unverified — optional row not attempted within budget; no capture or diff.

### O09

Unverified — optional row not attempted within budget; no capture or diff.

### O10

Unverified — optional row not attempted within budget; no capture or diff.

### O11

Unverified — optional row not attempted within budget; no capture or diff.

### O12

Unverified — optional row not attempted within budget; no capture or diff.

### O13

Unverified — optional row not attempted within budget; no capture or diff.

### O14

Unverified — optional row not attempted within budget; no capture or diff.

### O15

Unverified — optional row not attempted within budget; no capture or diff.

### O16

Unverified — optional row not attempted within budget; no capture or diff.

### O17

Unverified — optional row not attempted within budget; no capture or diff.

### O18

Unverified — optional row not attempted within budget; no capture or diff.

### O19

Unverified — optional row not attempted within budget; no capture or diff.

### O20

Unverified — optional row not attempted within budget; no capture or diff.

### O21

Unverified — optional row not attempted within budget; no capture or diff.

### O22

Unverified — optional row not attempted within budget; no capture or diff.

### O23

Unverified — optional row not attempted within budget; no capture or diff.

### Reproduction scripts and data

Every seed/driver written for this attempt is uploaded in the artifact manifest. Primary scripts:

- [seed.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1e77c1aa5515c8a7/seed.py)
- [setup-app.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5a65502b428586da/setup-app.mjs)
- [capture.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6c899c509d6c8ae3/capture.mjs)
- [core-v3.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d2fa2c6bcdb1559c/core-v3.mjs)
- [narrow-v2.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/581cc30ed84dfd47/narrow-v2.mjs)
- [other-reel.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/26ebc4114c3cf17f/other-reel.mjs)
- [timing-reel.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e95339ee3f5db62d/timing-reel.mjs)
- [seed-link-worktree.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b09d0d93ad1a49c2/seed-link-worktree.py)
- [seed-links.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c8a43ca9a0f855b1/seed-links.mjs)
- [links-worktree-v3.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b1f8f2632c4c204d/links-worktree-v3.mjs)
- [seed-native-harness.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/88c26222246e936c/seed-native-harness.py)
- [desktop-v4.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0bd803866dac2afd/desktop-v4.mjs)

[manifest.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/04d89107ee65695c/manifest.json)

[accepted-pairs.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8633f12ff29c4c09/accepted-pairs.json)

To rebuild, create the two pinned checkouts and install with global vp; start both with T3CODE_DEV_SEED=0. Run seed.py to create a new timestamped run, then set capture.mjs/setup-app.mjs run paths and actual dev ports to that run. setup-app.mjs mints fresh local pairing credentials and writes private storage state locally; never upload those files. Run the named drivers against the fresh databases. seed-link-worktree.py creates the separate root/worktree link fixture before seed-links.mjs seeds its app project/thread. Native harness is controlled input only and must be applied independently to both disposable checkouts; mobile install uses the shared dev-client cache. Failed desktop iterations are included for audit, not represented as successful desktop verification.

### Cleanup and friction

Both disposable app servers, both Metro servers and the mobile HTTP/WebSocket proxy were stopped by captured PIDs. The iOS lease was closed. Disposable worktrees were removed; lead worktree was not used. Evidence and synthetic repositories stay in the one scratch directory.

FRICTION:
- tool | preview navigation timed out and viewport capture stayed 1280px after resizing | reliable exact-viewport capture with reduced-motion control
- infra | full desktop build pulled a web build and exceeded 600 seconds; native helper needed libsecret headers | documented direct package-build path and preinstalled libsecret development headers
- tool | actual Electron launch reached persistent Syncing messages despite isolated seeded state | working native environment auth/snapshot setup driver
- tool | device daemon intermittently unavailable; retry recovered; deeplink confirmations invalidated element refs | stable device daemon and fresh snapshots after each device action
- tool | embedded Browser certificate validation failed; baseline PR request could not reach GitHub | trusted network/certificate environment
- model | early still helper dismissed the intended toast; corrected and recaptured | dismiss incidental notices only during setup
- tool | ghdrop batch upload hit a transport error; smaller batches retried successfully | smaller default batches / transport retries

Model/harness: gpt-6.1-sol, Codex harness. No PR body or branch was modified by this evidence worker.

[before]: https://git.cafe/pingdotgg/t3code/commit/e34067edef2eba03c1e40bca7d2b2d933ae12b85
[after]: https://git.cafe/pingdotgg/t3code/commit/dbb22e5272ba2ec8a315a1131e3a7f6f754f7dcd
