## Evidence — D: Permission denied, restored and revoked during import

Before [c6ca605630](https://git.cafe/pingdotgg/t3code/commit/c6ca6056309904f89b90b6055d797973be0a0939); after [21e22d030c](https://git.cafe/pingdotgg/t3code/commit/21e22d030ca430ef680082630274b3b1c073d35c). Web only. Headless Chrome 157.0.0.0 on Linux via agent-browser 0.41.2 and native CDP screenshots; no device emulation; DPR 1; default zoom; 16px root font, 100% scaling (W: 125%, 20px system-ui, resolving to Liberation Mono on this VM); reduced motion; frozen client clock 2026-11-09 09:40 UTC. Viewports are 1440×900 and 390×844 CSS px, each light/dark. Each environment JSON records the actual settings. Every still passed network-idle/fonts readiness and two pixel-identical frames 500ms apart. Diff0 marks every nonzero RGB-channel difference in full magenta; DiffT uses maximum channel difference >16/255. Absolute RGB×32 images are also linked.

P/E use real isolated apps with three synthetic Pi sessions or empty isolated provider homes. L uses the real app and scanner with an explicitly instrumented transport gate: it delays the outgoing scan RPC until the scripted release; this makes the loader readable and does **not** measure scanner speed. M–W are explicitly labelled production-component harness captures with synthetic boundary values. No production data or session JSONL is uploaded.

### What else changed

Context caveats: Escape remains open on both revisions; G keyboard-focus tooltip is unverified; W populated 390px/20px has existing horizontal overflow. See the index review notes.

The loader, description and successful-empty copy change. Where shorter text wraps onto fewer lines, the dialog height and vertically centered content move; the modal backdrop/shadow moves with it. No other source changes are part of this PR. Any additional observed difference is recorded in the index review notes.

### 1440×900 · dark

Same scripted interaction. Times mark action completion relative to sequence start, immediately after recording starts:

| Step | Before time | After time |
|---|---:|---:|
| Select none clears permission message | 1.54s | 1.53s |
| Select all restores permission message | 3.06s | 3.07s |
| Restore operate grant | 4.58s | 4.59s |
| Start import with create promise gated | 6.11s | 6.12s |
| Revoke grant while create is pending | 7.62s | 7.64s |
| Release create; stored permission failure remains | 9.14s | 9.16s |
| Restore grant and retry | 10.65s | 10.68s |

| Before recording | After recording |
|---|---|
| [before-D-1440-dark.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e2eccbb68aa17ce1/before-D-1440-dark.webm)<br>[c6ca605630](https://git.cafe/pingdotgg/t3code/commit/c6ca6056309904f89b90b6055d797973be0a0939) | [after-D-1440-dark.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cbe531e8738018b1/after-D-1440-dark.webm)<br>[21e22d030c](https://git.cafe/pingdotgg/t3code/commit/21e22d030ca430ef680082630274b3b1c073d35c) |

Before recording milestones: ![before-D-1440-dark-contact.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/015f562721101f08/before-D-1440-dark-contact.png)

After recording milestones: ![after-D-1440-dark-contact.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/145cf6465a403cd0/after-D-1440-dark-contact.png)

| Before | After | Diff0 | DiffT |
|---|---|---|---|
| ![before-D-1440-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/dc00beef1aad4169/before-D-1440-dark.png)<br>[c6ca605630](https://git.cafe/pingdotgg/t3code/commit/c6ca6056309904f89b90b6055d797973be0a0939) | ![after-D-1440-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/07b24062d834af38/after-D-1440-dark.png)<br>[21e22d030c](https://git.cafe/pingdotgg/t3code/commit/21e22d030ca430ef680082630274b3b1c073d35c) | ![D-1440-dark-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d0f746b2e2fe952f/D-1440-dark-Diff0.png)<br>[c6ca605630](https://git.cafe/pingdotgg/t3code/commit/c6ca6056309904f89b90b6055d797973be0a0939) → [21e22d030c](https://git.cafe/pingdotgg/t3code/commit/21e22d030ca430ef680082630274b3b1c073d35c) | ![D-1440-dark-DiffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/90949302efabf654/D-1440-dark-DiffT.png)<br>[c6ca605630](https://git.cafe/pingdotgg/t3code/commit/c6ca6056309904f89b90b6055d797973be0a0939) → [21e22d030c](https://git.cafe/pingdotgg/t3code/commit/21e22d030ca430ef680082630274b3b1c073d35c) |

Comparison sheet: ![D-1440-dark-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4bbfb1390e2ce296/D-1440-dark-sheet.png)

Amplified absolute difference: ![D-1440-dark-amplified32.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1ed5844f1bc947db/D-1440-dark-amplified32.png)

Before metadata: [before-D-1440-dark-environment.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d280394ddf2065b7/before-D-1440-dark-environment.json), [before-D-1440-dark-timeline.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d747251f30677cd5/before-D-1440-dark-timeline.json), [before-D-1440-dark-steps.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f4d4d0b5157938ab/before-D-1440-dark-steps.json), [before-D-1440-dark-result.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c80940b820da481e/before-D-1440-dark-result.json)

After metadata: [after-D-1440-dark-environment.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c8fea0fcae43249a/after-D-1440-dark-environment.json), [after-D-1440-dark-timeline.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/56da7d6c9dcd267e/after-D-1440-dark-timeline.json), [after-D-1440-dark-steps.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/129f53a308e9f7ab/after-D-1440-dark-steps.json), [after-D-1440-dark-result.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/deb6e03ceee6c65e/after-D-1440-dark-result.json)

### 1440×900 · light

Same scripted interaction. Times mark action completion relative to sequence start, immediately after recording starts:

| Step | Before time | After time |
|---|---:|---:|
| Select none clears permission message | 1.54s | 1.53s |
| Select all restores permission message | 3.06s | 3.05s |
| Restore operate grant | 4.58s | 4.57s |
| Start import with create promise gated | 6.10s | 6.10s |
| Revoke grant while create is pending | 7.62s | 7.62s |
| Release create; stored permission failure remains | 9.14s | 9.13s |
| Restore grant and retry | 10.66s | 10.65s |

| Before recording | After recording |
|---|---|
| [before-D-1440-light.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fb88f4f5766b0b87/before-D-1440-light.webm)<br>[c6ca605630](https://git.cafe/pingdotgg/t3code/commit/c6ca6056309904f89b90b6055d797973be0a0939) | [after-D-1440-light.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/475d51174d216a6b/after-D-1440-light.webm)<br>[21e22d030c](https://git.cafe/pingdotgg/t3code/commit/21e22d030ca430ef680082630274b3b1c073d35c) |

Before recording milestones: ![before-D-1440-light-contact.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c5ba6194a8c41de8/before-D-1440-light-contact.png)

After recording milestones: ![after-D-1440-light-contact.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c5cbbe11ed5eb27d/after-D-1440-light-contact.png)

| Before | After | Diff0 | DiffT |
|---|---|---|---|
| ![before-D-1440-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6589cd4587ca67d8/before-D-1440-light.png)<br>[c6ca605630](https://git.cafe/pingdotgg/t3code/commit/c6ca6056309904f89b90b6055d797973be0a0939) | ![after-D-1440-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/34ea6bfcbca9d913/after-D-1440-light.png)<br>[21e22d030c](https://git.cafe/pingdotgg/t3code/commit/21e22d030ca430ef680082630274b3b1c073d35c) | ![D-1440-light-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/22105da34b87f625/D-1440-light-Diff0.png)<br>[c6ca605630](https://git.cafe/pingdotgg/t3code/commit/c6ca6056309904f89b90b6055d797973be0a0939) → [21e22d030c](https://git.cafe/pingdotgg/t3code/commit/21e22d030ca430ef680082630274b3b1c073d35c) | ![D-1440-light-DiffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/518104cb09484c81/D-1440-light-DiffT.png)<br>[c6ca605630](https://git.cafe/pingdotgg/t3code/commit/c6ca6056309904f89b90b6055d797973be0a0939) → [21e22d030c](https://git.cafe/pingdotgg/t3code/commit/21e22d030ca430ef680082630274b3b1c073d35c) |

Comparison sheet: ![D-1440-light-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/aeef1cad031a63d2/D-1440-light-sheet.png)

Amplified absolute difference: ![D-1440-light-amplified32.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d315c049a11d0d3b/D-1440-light-amplified32.png)

Before metadata: [before-D-1440-light-environment.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7ce08575f9769093/before-D-1440-light-environment.json), [before-D-1440-light-timeline.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b7236e36804a9c1b/before-D-1440-light-timeline.json), [before-D-1440-light-steps.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/22a5b5dbb231bcc5/before-D-1440-light-steps.json), [before-D-1440-light-result.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cfad5d6134b5427b/before-D-1440-light-result.json)

After metadata: [after-D-1440-light-environment.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/316b4d188b1cd72a/after-D-1440-light-environment.json), [after-D-1440-light-timeline.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3662b3c68bf57c56/after-D-1440-light-timeline.json), [after-D-1440-light-steps.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1cd668995718c969/after-D-1440-light-steps.json), [after-D-1440-light-result.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0bf6b766b98ae4a8/after-D-1440-light-result.json)

### 390×844 · dark

Same scripted interaction. Times mark action completion relative to sequence start, immediately after recording starts:

| Step | Before time | After time |
|---|---:|---:|
| Select none clears permission message | 1.53s | 1.54s |
| Select all restores permission message | 3.05s | 3.08s |
| Restore operate grant | 4.57s | 4.60s |
| Start import with create promise gated | 6.09s | 6.12s |
| Revoke grant while create is pending | 7.61s | 7.64s |
| Release create; stored permission failure remains | 9.12s | 9.15s |
| Restore grant and retry | 10.64s | 10.68s |

| Before recording | After recording |
|---|---|
| [before-D-390-dark.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ec1870ea1acbec0d/before-D-390-dark.webm)<br>[c6ca605630](https://git.cafe/pingdotgg/t3code/commit/c6ca6056309904f89b90b6055d797973be0a0939) | [after-D-390-dark.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3f833caeca4ed346/after-D-390-dark.webm)<br>[21e22d030c](https://git.cafe/pingdotgg/t3code/commit/21e22d030ca430ef680082630274b3b1c073d35c) |

Before recording milestones: ![before-D-390-dark-contact.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d5226d8164eea2b2/before-D-390-dark-contact.png)

After recording milestones: ![after-D-390-dark-contact.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/70469f1fb4504f09/after-D-390-dark-contact.png)

| Before | After | Diff0 | DiffT |
|---|---|---|---|
| ![before-D-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b47e68bca34e563e/before-D-390-dark.png)<br>[c6ca605630](https://git.cafe/pingdotgg/t3code/commit/c6ca6056309904f89b90b6055d797973be0a0939) | ![after-D-390-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fe189121de359841/after-D-390-dark.png)<br>[21e22d030c](https://git.cafe/pingdotgg/t3code/commit/21e22d030ca430ef680082630274b3b1c073d35c) | ![D-390-dark-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b4d6ab70959f1cab/D-390-dark-Diff0.png)<br>[c6ca605630](https://git.cafe/pingdotgg/t3code/commit/c6ca6056309904f89b90b6055d797973be0a0939) → [21e22d030c](https://git.cafe/pingdotgg/t3code/commit/21e22d030ca430ef680082630274b3b1c073d35c) | ![D-390-dark-DiffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/52fda2b36912d3b1/D-390-dark-DiffT.png)<br>[c6ca605630](https://git.cafe/pingdotgg/t3code/commit/c6ca6056309904f89b90b6055d797973be0a0939) → [21e22d030c](https://git.cafe/pingdotgg/t3code/commit/21e22d030ca430ef680082630274b3b1c073d35c) |

Comparison sheet: ![D-390-dark-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7c5b256cad1656ba/D-390-dark-sheet.png)

Amplified absolute difference: ![D-390-dark-amplified32.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/914b6112f281db67/D-390-dark-amplified32.png)

Before metadata: [before-D-390-dark-environment.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6dc552cc25fb981e/before-D-390-dark-environment.json), [before-D-390-dark-timeline.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9223e68fc80cd954/before-D-390-dark-timeline.json), [before-D-390-dark-steps.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d39dc6ebb65b0fd9/before-D-390-dark-steps.json), [before-D-390-dark-result.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c0a53d5fbb4d2d3a/before-D-390-dark-result.json)

After metadata: [after-D-390-dark-environment.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e1582805028cb4d7/after-D-390-dark-environment.json), [after-D-390-dark-timeline.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8461d1cb8f40d8f8/after-D-390-dark-timeline.json), [after-D-390-dark-steps.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3862577af67af346/after-D-390-dark-steps.json), [after-D-390-dark-result.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d51db07401a59acd/after-D-390-dark-result.json)

### 390×844 · light

Same scripted interaction. Times mark action completion relative to sequence start, immediately after recording starts:

| Step | Before time | After time |
|---|---:|---:|
| Select none clears permission message | 1.58s | 1.53s |
| Select all restores permission message | 3.13s | 3.06s |
| Restore operate grant | 4.65s | 4.57s |
| Start import with create promise gated | 6.18s | 6.10s |
| Revoke grant while create is pending | 7.70s | 7.62s |
| Release create; stored permission failure remains | 9.22s | 9.13s |
| Restore grant and retry | 10.74s | 10.65s |

| Before recording | After recording |
|---|---|
| [before-D-390-light.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5b00447e032fc647/before-D-390-light.webm)<br>[c6ca605630](https://git.cafe/pingdotgg/t3code/commit/c6ca6056309904f89b90b6055d797973be0a0939) | [after-D-390-light.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cc0413b294649514/after-D-390-light.webm)<br>[21e22d030c](https://git.cafe/pingdotgg/t3code/commit/21e22d030ca430ef680082630274b3b1c073d35c) |

Before recording milestones: ![before-D-390-light-contact.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4bedec672ee6c1f5/before-D-390-light-contact.png)

After recording milestones: ![after-D-390-light-contact.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/82b86e44dfa1e8c5/after-D-390-light-contact.png)

| Before | After | Diff0 | DiffT |
|---|---|---|---|
| ![before-D-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/62c00e8489a16f52/before-D-390-light.png)<br>[c6ca605630](https://git.cafe/pingdotgg/t3code/commit/c6ca6056309904f89b90b6055d797973be0a0939) | ![after-D-390-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/04ab5739664ce1b4/after-D-390-light.png)<br>[21e22d030c](https://git.cafe/pingdotgg/t3code/commit/21e22d030ca430ef680082630274b3b1c073d35c) | ![D-390-light-Diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b2e77250aad5ca90/D-390-light-Diff0.png)<br>[c6ca605630](https://git.cafe/pingdotgg/t3code/commit/c6ca6056309904f89b90b6055d797973be0a0939) → [21e22d030c](https://git.cafe/pingdotgg/t3code/commit/21e22d030ca430ef680082630274b3b1c073d35c) | ![D-390-light-DiffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cbc8ffac27ab091d/D-390-light-DiffT.png)<br>[c6ca605630](https://git.cafe/pingdotgg/t3code/commit/c6ca6056309904f89b90b6055d797973be0a0939) → [21e22d030c](https://git.cafe/pingdotgg/t3code/commit/21e22d030ca430ef680082630274b3b1c073d35c) |

Comparison sheet: ![D-390-light-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ad78e82c5428f5e7/D-390-light-sheet.png)

Amplified absolute difference: ![D-390-light-amplified32.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2ded7054a572d137/D-390-light-amplified32.png)

Before metadata: [before-D-390-light-environment.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ac04c515ea535c11/before-D-390-light-environment.json), [before-D-390-light-timeline.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/78346dbbff929dbb/before-D-390-light-timeline.json), [before-D-390-light-steps.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/359304885436f5da/before-D-390-light-steps.json), [before-D-390-light-result.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/00fee49399fd9a1e/before-D-390-light-result.json)

After metadata: [after-D-390-light-environment.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4e7eb84f3b173cd3/after-D-390-light-environment.json), [after-D-390-light-timeline.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/abd18783a30a0d91/after-D-390-light-timeline.json), [after-D-390-light-steps.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4ebd577684f7ca20/after-D-390-light-steps.json), [after-D-390-light-result.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6ab8bf9c6173976d/after-D-390-light-result.json)

### Reproduction scripts

[browser-init.js](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0551fe2717f0a20a/browser-init.js)
[build-comparisons.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8a861f60d664c4d4/build-comparisons.py)
[capture.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9d4b11a2a2b8fa8f/capture.py)
[cdp-eval.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/26f096631297c43a/cdp-eval.mjs)
[cleanup.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ed847d21b527a09c/cleanup.py)
[contact-sheets.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c4be57944d738284/contact-sheets.py)
[diff.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c96480ee3cc36187/diff.py)
[fixtures.js](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/669b3d4502d9e464/fixtures.js)
[full-screenshot.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f671b7664cd19258/full-screenshot.mjs)
[harness-capture.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/dfcaf06f4f06a474/harness-capture.py)
[harness.js](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b2dc2055b5e71632/harness.js)
[make-review.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/afc206d1a0dbe512/make-review.py)
[publish-evidence.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7fe14fea710d963a/publish-evidence.py)
[remaining-capture.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/66c51396a8e4c733/remaining-capture.py)
[retake-W.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8447b1e3ca921de7/retake-W.py)
[retake-interactions.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f4659bccb66a98f6/retake-interactions.py)
[review-after-when-ready.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/976131f6543287dc/review-after-when-ready.py)
[review-grid.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5813df394b486feb/review-grid.py)
[seed.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6670431e9d06224e/seed.sh)
[session-state.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d1c9b4968bda9973/session-state.sh)
[setup-browser.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4c8aa71dfff4f375/setup-browser.mjs)
[start-server.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/769c5ed48597a721/start-server.sh)
[validate-artifacts.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/82540644d859d896/validate-artifacts.py)
[reproduce.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e9a9ffb922514375/reproduce.md)

AI-assisted; verified with the tests and tools listed above.
