## Evidence

For [#33381](https://git.cafe/pingdotgg/t3code/issues/33381): **8/8 outcome fixtures captured in nine recordings; 7/8 fully follow the prescribed physical entry path.** A1 uses the exported production dialog opener because the persisted-thread toolbar does not expose the action. Its toolbar interaction remains unverified. Both environments display fs-21 rather than the requested synthetic names. Native OS clock remains live. These limitations are outside the ownership fix and are not hidden by the capture count.

Base [4f0b74e190](https://git.cafe/pingdotgg/t3code/commit/4f0b74e190); head [8d4aa41a22](https://git.cafe/pingdotgg/t3code/commit/8d4aa41a22d17d4c6e1b1d6d1b8044fedd78d4ae). Real apps and real server recovery throughout; no successful RPC responses are mocked. No tracked changes, commits or PR created.

**Environment W (all web rows):** T3 Browser panel, Chromium 156/Linux, no emulation, 1365×900 CSS, DPR 2, 100% zoom, default 16px font, dark. Full-surface PNG 1280×844; recording 1920×1266. W1 paired still Date frozen to 2026-11-09 12:00 UTC on both sides; retake interactions may use live Date and differ in sidebar age.

**Environment N (M1/M2):** pooled native Pixel 9 Android API 36 x86_64, 411.428571×923.428571 logical viewport, DPR 2.625, output 1080×2424, default fontScale 1.0, dark. OS clock live, JS Date live for gestures and frozen for settled stills.

All stills uploaded as settled app frames passed full-surface screenshot equality at least 500ms apart (AE=0) after fonts/resource readiness. Every app still, diff and recording contact sheet was opened and reviewed. M1 optional still was rejected when the status-clock minute changed; its actual native recording is the evidence.

[capture-steps.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/11fc58331f670d0d/capture-steps.md)

### W1 — palette recovery · W, dark, base/head

W1 before, W1-before-capture.mp4: 0 clean starting thread; 0–4 sidebar Add project → Git URL; 4–10 type successful fixture URL and Enter; 10–13 replace destination with exact stranded missing-repo path; about 13–14 Ctrl+Enter; 14–16.39 Clone failed / Failed to create clone project visibly appears. Capture 15:45:03 UTC; RPC request 15:45:15.445 UTC fails because destination belongs to c506281a-7986-4123-9b14-a6050b418a2f. Only the idle tail was trimmed; the full source recording remains in scratch.

W1 after, W1-after-r2.mp4: 0–8 same Add project/Git URL/URL/path/submit interaction; about 9–13 palette closes and the missing-repo owner draft appears; 13–21.64 master ref and ready composer persist. Requested cbb17d66-5506-4c18-b26a-3ea229a91b93 differs from returned 8e2a54a4-71e0-47c4-a27f-6a42424dac9b. The paired stills came from the original equivalent run, with both clocks frozen and empty initial sidebar data.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [W1-before-capture.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/40192ce61508d62e/W1-before-capture.mp4)<br>![W1-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/737044bd66d56ea0/W1-before.png)<br>[4f0b74e190](https://git.cafe/pingdotgg/t3code/commit/4f0b74e190) | [W1-after-r2.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8a1607f84b00d531/W1-after-r2.mp4)<br>![W1-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/34e2e262c6ff026e/W1-after.png)<br>[8d4aa41a22](https://git.cafe/pingdotgg/t3code/commit/8d4aa41a22d17d4c6e1b1d6d1b8044fedd78d4ae) | ![W1-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/93091140d8db4a2f/W1-diff0.png)<br>0%, binary amplification<br>[4f0b74e190](https://git.cafe/pingdotgg/t3code/commit/4f0b74e190) → [8d4aa41a22](https://git.cafe/pingdotgg/t3code/commit/8d4aa41a22d17d4c6e1b1d6d1b8044fedd78d4ae) | ![W1-diff5pct.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a94ff8d689265c23/W1-diff5pct.png)<br>ImageMagick fuzz 5%<br>[4f0b74e190](https://git.cafe/pingdotgg/t3code/commit/4f0b74e190) → [8d4aa41a22](https://git.cafe/pingdotgg/t3code/commit/8d4aa41a22d17d4c6e1b1d6d1b8044fedd78d4ae) |

Reviewed contact sheet: ![W1-after-r2-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6a67ac6bc8cbb49a/W1-after-r2-sheet.png)

Before reviewed contact sheet: ![W1-before-capture-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ca6428e65c5285b7/W1-before-capture-sheet.png)

Before identity: [W1-before-final-identity.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0a3e882f01db61db/W1-before-final-identity.json)

Identity/file notes: [W1-head-identity.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7dc46ad471145f47/W1-head-identity.json)

### L1 — prompt link · W, dark, head

L1, L1-after.mp4, 14:59:27 UTC: 0 missing-repository page for /new?prompt=Proof%20prompt&repo=octocat%2FHello-World; about 1 Clone; 2–3 old owner's draft and Proof prompt; 3–6 real clone completes; 6–14.63 settled prompt remains. Owner proof-L1-owner.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| Not required by matrix<br>Common base rejection: W1<br>[4f0b74e190](https://git.cafe/pingdotgg/t3code/commit/4f0b74e190) | [L1-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/25dba7a0d2bc1850/L1-after.mp4)<br>![L1-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9d96d901e8cb805e/L1-after.png)<br>[8d4aa41a22](https://git.cafe/pingdotgg/t3code/commit/8d4aa41a22d17d4c6e1b1d6d1b8044fedd78d4ae) | N/A — head only<br>[8d4aa41a22](https://git.cafe/pingdotgg/t3code/commit/8d4aa41a22d17d4c6e1b1d6d1b8044fedd78d4ae) | N/A — head only<br>[8d4aa41a22](https://git.cafe/pingdotgg/t3code/commit/8d4aa41a22d17d4c6e1b1d6d1b8044fedd78d4ae) |

Reviewed contact sheet: ![L1-after-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f1c9287c14fcd728/L1-after-sheet.png)

Identity/file notes: [L1-head-identity.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7e1e6d0935addf33/L1-head-identity.json)

### L2 — pull-request link notice · W, dark, head

L2, L2-after.mp4, 15:01:50 UTC: open /new?pr=octocat%2FHello-World%231&prompt=Proof%20prompt; about 1–3 Clone; 3–19.33 Cloning octocat/Hello-World notice, Open this link again when the clone finishes. Clone completion toast appears and expires. No PR checkout is invoked. Owner proof-L2-owner.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| Not required by matrix<br>Common base rejection: W1<br>[4f0b74e190](https://git.cafe/pingdotgg/t3code/commit/4f0b74e190) | [L2-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8a207ff95339ff14/L2-after.mp4)<br>![L2-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6a6845ff1d44447b/L2-after.png)<br>[8d4aa41a22](https://git.cafe/pingdotgg/t3code/commit/8d4aa41a22d17d4c6e1b1d6d1b8044fedd78d4ae) | N/A — head only<br>[8d4aa41a22](https://git.cafe/pingdotgg/t3code/commit/8d4aa41a22d17d4c6e1b1d6d1b8044fedd78d4ae) | N/A — head only<br>[8d4aa41a22](https://git.cafe/pingdotgg/t3code/commit/8d4aa41a22d17d4c6e1b1d6d1b8044fedd78d4ae) |

Reviewed contact sheet: ![L2-after-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/871305845629a981/L2-after-sheet.png)

Identity/file notes: [L2-head-identity.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6c7020da69690be9/L2-head-identity.json)

### A1 — another machine, no files, new draft — production opener · W, dark, head

A1, A1-after-r2.mp4, 15:42:23 UTC: 0 persisted source thread (not an eligible unpromoted draft); production openAddProjectToMachine invoked by the driver; 1–10 exact target-a1-r2 destination and None selected, visibly 0 of 1 / no files; about 10 submit; 11–15 old owner's fresh empty draft; 15–25.68 master/ready composer. Requested 24d92ae8-3af2-4b5a-9d76-9fab086bb0e7 → proof-A1-r2-owner. No .env.proof exists at target. The started-thread toolbar omits Add to another machine, so that physical entry-point interaction remains UNVERIFIED; this is explicitly a programmatic production-opener capture, with real app and server afterward.

**Partial entry-path verification:** production openAddProjectToMachine was invoked by the driver; clone, zero-file branch, returned-owner navigation and empty target draft run in the real application. Physical started-thread toolbar route is unverified.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| Not required by matrix<br>Common base rejection: W1<br>[4f0b74e190](https://git.cafe/pingdotgg/t3code/commit/4f0b74e190) | [A1-after-r2.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d92d4cd4ee22d838/A1-after-r2.mp4)<br>![A1-after-r2.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/057c775608b749c6/A1-after-r2.png)<br>[8d4aa41a22](https://git.cafe/pingdotgg/t3code/commit/8d4aa41a22d17d4c6e1b1d6d1b8044fedd78d4ae) | N/A — head only<br>[8d4aa41a22](https://git.cafe/pingdotgg/t3code/commit/8d4aa41a22d17d4c6e1b1d6d1b8044fedd78d4ae) | N/A — head only<br>[8d4aa41a22](https://git.cafe/pingdotgg/t3code/commit/8d4aa41a22d17d4c6e1b1d6d1b8044fedd78d4ae) |

Reviewed contact sheet: ![A1-after-r2-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d84f7c2046c719c4/A1-after-r2-sheet.png)

Identity/file notes: [A1-after-r2-identity.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/729d2768a0333433/A1-after-r2-identity.json)

### A2 — another machine, file copy and preserved draft · W, dark, head

A2, A2-after.mp4, 15:22:38 UTC: 0 unsent Keep this proof draft; 1–4 BranchToolbar machine action → Add to another machine; 4–13 ignored-file query resolves, .env.proof selected, exact target-a2-r2 destination; about 15 submit; 16–22.01 old owner's draft with same text. Draft id 16837278-b9e7-4ca7-a077-e63b47b27533 remains the same while environment/project change to target/proof-A2-r2-owner. Real file copy verified byte-for-byte and SHA-256 d4a9a8e39270d0dbf5fcb33e205bedb15919ebc4e6524f62a15a0bba12a10a85. Fast clone/copy transitions were not artificially slowed.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| Not required by matrix<br>Common base rejection: W1<br>[4f0b74e190](https://git.cafe/pingdotgg/t3code/commit/4f0b74e190) | [A2-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d4ee74e8507ebb02/A2-after.mp4)<br>![A2-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/93dc5365a0e64c28/A2-after.png)<br>[8d4aa41a22](https://git.cafe/pingdotgg/t3code/commit/8d4aa41a22d17d4c6e1b1d6d1b8044fedd78d4ae) | N/A — head only<br>[8d4aa41a22](https://git.cafe/pingdotgg/t3code/commit/8d4aa41a22d17d4c6e1b1d6d1b8044fedd78d4ae) | N/A — head only<br>[8d4aa41a22](https://git.cafe/pingdotgg/t3code/commit/8d4aa41a22d17d4c6e1b1d6d1b8044fedd78d4ae) |

Reviewed contact sheet: ![A2-after-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c76f0713fcef81b0/A2-after-sheet.png)

Identity/file notes: [A2-head-identity.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8e6611ecfc580a46/A2-head-identity.json)

### A3 — another machine, real read failure and dismissal · W, dark, head

A3, A3-after-r3.mp4, 15:48:08 UTC: 0 source unpromoted draft; 1–20 machine menu / Add to another machine; 20–26 exact target-a3-r3 path with selected .env.proof; chmod 000 only after real listing; about 26 submit; 27–47 real read failure banner on Copy error owner; about 47–51 Dismiss warning; 51–57.22 banner stays cleared with same draft and owner. Requested 031188b1-c78d-4afd-8682-3655d7c79e10 → proof-A3-r3-owner. File mode restored 0644. No harness or mocked RPC response used.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| Not required by matrix<br>Common base rejection: W1<br>[4f0b74e190](https://git.cafe/pingdotgg/t3code/commit/4f0b74e190) | [A3-after-r3.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7f9c1f583134ce92/A3-after-r3.mp4)<br>![A3-r3-error.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4419361af53a6a8f/A3-r3-error.png)<br>[8d4aa41a22](https://git.cafe/pingdotgg/t3code/commit/8d4aa41a22d17d4c6e1b1d6d1b8044fedd78d4ae) | N/A — head only<br>[8d4aa41a22](https://git.cafe/pingdotgg/t3code/commit/8d4aa41a22d17d4c6e1b1d6d1b8044fedd78d4ae) | N/A — head only<br>[8d4aa41a22](https://git.cafe/pingdotgg/t3code/commit/8d4aa41a22d17d4c6e1b1d6d1b8044fedd78d4ae) |

Reviewed contact sheet: ![A3-after-r3-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/445ea7848076b0dc/A3-after-r3-sheet.png)

Identity/file notes: [A3-after-r3-identity.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b35872fc1ae78f7a/A3-after-r3-identity.json)

Settled dismissed state: ![A3-r3-dismissed-stable.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4edab493f5527047/A3-r3-dismissed-stable.png)

### M1 — native empty draft · N, dark, head

M1, M1-after-r3.mp4: 0 Choose project; + at 0.84; Git URL at 15.07; URL typing/Continue at 27.88–28.74; exact native-m1-r2 destination typed at about 64; Clone project at 66.34; old Native owner empty draft/master visible through 68.92. Server RPC 15:32:24.802 UTC: 40c034a8-a045-4ded-a519-d6663c9a4503 → proof-M1-r2-owner. Native owner draft atom snapshot confirms empty text and old owner. Gesture timestamps are tool telemetry; use the video for the rendered transition.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| Not required by matrix<br>Common base rejection: W1<br>[4f0b74e190](https://git.cafe/pingdotgg/t3code/commit/4f0b74e190) | [M1-after-r3.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9cba0b263ae56f12/M1-after-r3.mp4)<br>[8d4aa41a22](https://git.cafe/pingdotgg/t3code/commit/8d4aa41a22d17d4c6e1b1d6d1b8044fedd78d4ae) | N/A — head only<br>[8d4aa41a22](https://git.cafe/pingdotgg/t3code/commit/8d4aa41a22d17d4c6e1b1d6d1b8044fedd78d4ae) | N/A — head only<br>[8d4aa41a22](https://git.cafe/pingdotgg/t3code/commit/8d4aa41a22d17d4c6e1b1d6d1b8044fedd78d4ae) |

Reviewed contact sheet: ![M1-after-r3-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7e2c51007674c7ad/M1-after-r3-sheet.png)

Identity/file notes: [M1-native-owner-draft.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/53f5f1584e516758/M1-native-owner-draft.json)

Real native RPC identity: [native-recovery-rpc.jsonl](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fd0a30108d29a416/native-recovery-rpc.jsonl); measured rendering: [native-render-environment.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d27f5bdb6b18b871/native-render-environment.json)

### M2 — native prompt draft · N, dark, head

M2, M2-after-r3.mp4: 0 project chooser without successful matching repository; about 7–14 prompt deep link → missing-repository Clone; prompt notice acknowledged; 14–32 destination form; exact native-m2-r2 path edited; about 40 Clone project/loading; 50–68.33 Prompt owner selected with Proof prompt, master and ready composer. RPC 15:35:32.560 UTC: cfd411b3-a1e2-42da-ad99-0ad2639b1fbc → proof-M2-r2-owner. Native draft atom snapshot confirms returned owner and prompt.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| Not required by matrix<br>Common base rejection: W1<br>[4f0b74e190](https://git.cafe/pingdotgg/t3code/commit/4f0b74e190) | [M2-after-r3.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4ea1c6a38cb6aa4c/M2-after-r3.mp4)<br>![M2-r3-stable-b.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/68149f77fedd10b9/M2-r3-stable-b.png)<br>[8d4aa41a22](https://git.cafe/pingdotgg/t3code/commit/8d4aa41a22d17d4c6e1b1d6d1b8044fedd78d4ae) | N/A — head only<br>[8d4aa41a22](https://git.cafe/pingdotgg/t3code/commit/8d4aa41a22d17d4c6e1b1d6d1b8044fedd78d4ae) | N/A — head only<br>[8d4aa41a22](https://git.cafe/pingdotgg/t3code/commit/8d4aa41a22d17d4c6e1b1d6d1b8044fedd78d4ae) |

Reviewed contact sheet: ![M2-after-r3-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b60c345c05a4c594/M2-after-r3-sheet.png)

Identity/file notes: [M2-native-draft.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5b770ee20e169c1e/M2-native-draft.json)

Real native RPC identity: [native-recovery-rpc.jsonl](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fd0a30108d29a416/native-recovery-rpc.jsonl); measured rendering: [native-render-environment.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d27f5bdb6b18b871/native-render-environment.json)

### What else changed in W1

These are different application states, not a styling change. The broad diff includes expected state transitions and incidental focus:

- Clone confirmation, destination/path rows, navigation hints and Clone failed toast disappear.
- The modal's global dimming and blur disappear, changing the sidebar, workspace and top controls across many pixels.
- Breadcrumb/project avatar changes from server to missing-repo while New thread remains.
- The empty conversation message and bottom composer become the project draft hero and centered composer; or start without a project appears.
- Current checkout, master and Full access appear under the draft composer; workspace Select ref becomes master.
- Workspace editor action changes from Open in VS Code in the initial thread context to Open in editor for the recovered fixture project.
- Add project button focus/hover highlight differs. This is incidental capture state outside the ownership fix.
- The original paired still sidebar age remains now. Later retake videos show elapsed ages and horizontal scrolling of long destination inputs; these are incidental and are not used for the still diffs.

W1 Diff0: binary amplification of every nonzero pixel difference, 445944 changed pixels. DiffT: ImageMagick compare -fuzz 5%, red changed/black unchanged, AE 122812. The images are full-surface 1280×844 tool outputs.

### Seed and driver scripts

These are the actual helpers and consolidated replay commands; the consolidated files are explicitly labelled, and are not represented as an executed integrated suite.

[launch.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/61abdc05a8377ae1/launch.py)

[browser-observer.js](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2fd83c555e1f5c42/browser-observer.js)

[browser-rpc-fixtures.js](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/84fd107f1bd24f15/browser-rpc-fixtures.js)

[clone-milestone-reader.js](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/eed87170ee15f779/clone-milestone-reader.js)

[freeze-clock.js](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9611bd1c435488c3/freeze-clock.js)

[fixture-driver.js](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2ad08afbf15e4e39/fixture-driver.js)

[file-fixture.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bef29ceaf5656bac/file-fixture.sh)

[native-rpc-proxy.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7a83bf890d7c7f04/native-rpc-proxy.py)

[native-cdp-eval.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/35760ff31166ee5a/native-cdp-eval.py)

[native-driver.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8b2ca4aa0090b5eb/native-driver.sh)

[trim-before.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/96c5a20e6c5d0bb9/trim-before.sh)

[diffs.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3b7bb302050fbfd4/diffs.sh)

[make-review-sheets.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a2a7f87579321123/make-review-sheets.py)

[upload-evidence.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e7780329c9c89d22/upload-evidence.py)

### Cleanup

Stopped all owned server, Metro and proxy process groups. Verified ports 14924/6884, 15224/7184, 15884/7844, 8081 and 15225 have no listener. Closed both browser tabs. Native device session released after M2; a redundant close later received the gateway no-active-session error described by the pool runbook. Removed only the owned base worktree. Lead head checkout status is clean; scratch evidence and raw logs remain local. Disk ended at 7 GB available, never under the 5 GB stop threshold.

### FRICTION

runbook | localhost auth cookies collide across ports; independent preview profiles resolved it | document isolated browser profiles for paired base/head servers.

runbook | source environment required explicit allowed origin; ignored-file query cache required reload before A2 | configure source origin and seed ignored files before opening dialog.

infra | native client cache miss required a 16m43s build and its idle Gradle daemon caused RAM pressure | warm matching client cache; stop only the owned idle build daemon.

tool | Expo inspector rejected missing/mismatched Origin; native-cdp-eval.py used the advertised Metro origin | pass advertised Origin through agent-device CDP.

tool | initial recordings missed transient end frames; repeated toast/gesture timing broke under frozen Date | keep interaction clock live, hold settled end state, inspect encoded frames.

brief | A1 persisted-thread toolbar omitted add-to-machine; environments share hostname; Android OS clock cannot be frozen with these tools | allow labelled production opener, environment ids and live status-clock deviation.

runbook | redundant close after released lease produced misleading old-client error | pool skill already documents this inactive-session behavior.

### Verbatim ghdrop output

[W1-before-capture.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/40192ce61508d62e/W1-before-capture.mp4)
[W1-after-r2.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8a1607f84b00d531/W1-after-r2.mp4)
[L1-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/25dba7a0d2bc1850/L1-after.mp4)
[L2-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8a207ff95339ff14/L2-after.mp4)
[A1-after-r2.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d92d4cd4ee22d838/A1-after-r2.mp4)
[A2-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d4ee74e8507ebb02/A2-after.mp4)
[A3-after-r3.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7f9c1f583134ce92/A3-after-r3.mp4)
[M1-after-r3.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9cba0b263ae56f12/M1-after-r3.mp4)
[M2-after-r3.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4ea1c6a38cb6aa4c/M2-after-r3.mp4)
![W1-before-capture-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ca6428e65c5285b7/W1-before-capture-sheet.png)
![W1-after-r2-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6a67ac6bc8cbb49a/W1-after-r2-sheet.png)
![L1-after-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f1c9287c14fcd728/L1-after-sheet.png)
![L2-after-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/871305845629a981/L2-after-sheet.png)
![A1-after-r2-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d84f7c2046c719c4/A1-after-r2-sheet.png)
![A2-after-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c76f0713fcef81b0/A2-after-sheet.png)
![A3-after-r3-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/445ea7848076b0dc/A3-after-r3-sheet.png)
![M1-after-r3-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7e2c51007674c7ad/M1-after-r3-sheet.png)
![M2-after-r3-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b60c345c05a4c594/M2-after-r3-sheet.png)
![W1-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/737044bd66d56ea0/W1-before.png)
![W1-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/34e2e262c6ff026e/W1-after.png)
![W1-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/93091140d8db4a2f/W1-diff0.png)
![W1-diff5pct.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a94ff8d689265c23/W1-diff5pct.png)
![L1-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9d96d901e8cb805e/L1-after.png)
![L2-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6a6845ff1d44447b/L2-after.png)
![A1-after-r2.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/057c775608b749c6/A1-after-r2.png)
![A2-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/93dc5365a0e64c28/A2-after.png)
![A3-r3-error.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4419361af53a6a8f/A3-r3-error.png)
![A3-r3-dismissed-stable.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4edab493f5527047/A3-r3-dismissed-stable.png)
![M2-r3-stable-b.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/68149f77fedd10b9/M2-r3-stable-b.png)
[W1-before-final-identity.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0a3e882f01db61db/W1-before-final-identity.json)
[W1-head-identity.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7dc46ad471145f47/W1-head-identity.json)
[L1-head-identity.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7e1e6d0935addf33/L1-head-identity.json)
[L2-head-identity.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6c7020da69690be9/L2-head-identity.json)
[A1-after-r2-identity.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/729d2768a0333433/A1-after-r2-identity.json)
[A2-head-identity.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8e6611ecfc580a46/A2-head-identity.json)
[A3-after-r3-identity.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b35872fc1ae78f7a/A3-after-r3-identity.json)
[native-recovery-rpc.jsonl](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fd0a30108d29a416/native-recovery-rpc.jsonl)
[M1-native-owner-draft.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/53f5f1584e516758/M1-native-owner-draft.json)
[M2-native-draft.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5b770ee20e169c1e/M2-native-draft.json)
[native-render-environment.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d27f5bdb6b18b871/native-render-environment.json)
[seed-failure-milestones.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f9578093c92232d9/seed-failure-milestones.json)
[head-seed-rpc.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c938d9110c7144dd/head-seed-rpc.json)
[launch.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/61abdc05a8377ae1/launch.py)
[browser-observer.js](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2fd83c555e1f5c42/browser-observer.js)
[browser-rpc-fixtures.js](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/84fd107f1bd24f15/browser-rpc-fixtures.js)
[clone-milestone-reader.js](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/eed87170ee15f779/clone-milestone-reader.js)
[freeze-clock.js](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9611bd1c435488c3/freeze-clock.js)
[fixture-driver.js](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2ad08afbf15e4e39/fixture-driver.js)
[file-fixture.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bef29ceaf5656bac/file-fixture.sh)
[native-rpc-proxy.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7a83bf890d7c7f04/native-rpc-proxy.py)
[native-cdp-eval.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/35760ff31166ee5a/native-cdp-eval.py)
[native-driver.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8b2ca4aa0090b5eb/native-driver.sh)
[trim-before.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/96c5a20e6c5d0bb9/trim-before.sh)
[diffs.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1f853fa0e378fe73/diffs.sh)
[make-review-sheets.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a2a7f87579321123/make-review-sheets.py)
[upload-evidence.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e7780329c9c89d22/upload-evidence.py)
[capture-steps.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/11fc58331f670d0d/capture-steps.md)

[diffs.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3b7bb302050fbfd4/diffs.sh)

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