## Evidence

PR [#32851](https://git.cafe/pingdotgg/t3code/pull/32851). Before [fa2f4ff2a2](https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0); current after [4b55798444](https://git.cafe/pingdotgg/t3code/commit/4b557984448fd3d2e5bb506b3d9ff180e32f7748); retained prior after [975c0819bc](https://git.cafe/pingdotgg/t3code/commit/975c0819bcf72251867f53f62d0b96e572844f6f). Captured 2026-11-10 UTC. This complete index adds an after-only R01–R05 rerun at [4b55798444](https://git.cafe/pingdotgg/t3code/commit/4b557984448fd3d2e5bb506b3d9ff180e32f7748). All earlier artifacts, including [975c0819bc](https://git.cafe/pingdotgg/t3code/commit/975c0819bcf72251867f53f62d0b96e572844f6f), remain linked at their original SHAs. The third capture’s R03 recordings and U04 correction are retained. Retained first-round visual artifacts are explicitly labelled [c88510a576](https://git.cafe/pingdotgg/t3code/commit/c88510a57629353853b405fbb6f0ca578e98fb40). No source changes, commits, pushes or PR edits. The implementation worktree was not accessed.

**What else changed:** beyond Stop, natural completion changes the web notification from the lightning icon / `Background activity updated` to the terminal icon / `Command "sleep 20; echo done" finished`. The stored continuation text changes from `Background task completed.` to the native shell report, but the web chat renders the notification summary rather than an XML bubble. Both assistant replies remain “The background shell completed and printed `done`.” The only other visible R05 difference is native duration `Worked for 8.1s` before versus `Worked for 5.6s` after. These are independent runs, with no performance comparison claimed. Diff0 finds no changed pixels outside the duration numerals and notification icon/text. The retained R01 stills separately have the original `7s` / `6.5s` duration and corresponding chevron shift, as disclosed below. Idle Stop also replaces the collapsed Worked group with the individual `sleep 500` tool row as cancellation becomes visible.

**Coverage:** all 5 requested live rows captured/confirmed on the prior capture head (R01–R05); 5/21 runtime matrix rows have live evidence, plus 5 optional visual rows (26 total matrix rows). R05 covers successful natural completion only, not failed/cancelled/unknown outcomes. Other rows retain their original unit-only or gap status below. R03 now has paired real web composer Stop recordings; its visible-row-disappearance limit is stated below. No tests were rerun in this recapture; inherited named-test results apply to their original SHA, not the prior capture head.

**Environment for every new browser capture:** T3 preview tools, Chrome 157 Linux x86_64; no device emulation; DPR 2; 100% browser zoom, root font 16 px, visual viewport scale 1. R05 stills use labelled CSS viewport/theme: 1440×900 (PNG 2880×1800) or 390×844 (780×1688), light and dark. R05 paired videos use 1440×900 CSS **light**, DPR 2; the final R02 video and new R03 paired videos use 1440×900 CSS **dark**, DPR 2. Retained R01 videos are dark. Date frozen at 2026-11-10T12:00:00Z; equal top scroll, empty composer, loaded fonts, closed side panes. Native reduced-motion emulation unavailable: uploaded CSS suppresses animations/transitions/caret. Model labels visibly masked as `<model>` before recording. Server/process timestamps are real UTC. Each build used fresh isolated state with `T3CODE_DEV_SEED=0`, identical synthetic prompt/data, and the same OpenCode 2.2.6 binary, reused read-only from first-round scratch. No live user DB was used as a seed.

**Runtime transcripts:** Linux x86_64, real Node backend from each labelled checkout; T3 owns scratch-local OpenCode 2.2.6 via provider binaryPath settings. System OpenCode 1 was not used. Private model selection and credentials remain local. Transcripts redact model identifiers and anonymize operational ids; owned PIDs are real. Server-only captures have no viewport, emulation, DPR or font scaling.

### Fourth capture: after-only rerun at [4b55798444](https://git.cafe/pingdotgg/t3code/commit/4b557984448fd3d2e5bb506b3d9ff180e32f7748)

All five live outcomes match the accepted index. OpenCode 2.2.6, Linux x86_64, fresh synthetic state, same private provider/model selection and exact fixture prompts. No new before-side run. No source changes, commits, pushes, PR edits, or tests. Unit results below remain inherited at their explicitly labelled SHA. No new stills for R01, R04, or R05 because outcomes are unchanged.

| Row | After at [4b55798444](https://git.cafe/pingdotgg/t3code/commit/4b557984448fd3d2e5bb506b3d9ff180e32f7748) | Result |
|---|---|---|
| R01 | [transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3fbadd58f80d3ae3/R01-transcript.md) · [JSON](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fbf4e5955ce9f2b2/R01-transcript.json) | Completed root, live sleep 500, exactly one pending command. |
| R02 | [transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2a0e4286965c33e6/R02-transcript.md) · [JSON](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7a17023e771c232d/R02-transcript.json) · [1440×900 dark recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ca5a863f258cde25/R02-after-idle-stop.mp4) | Actual idle row Stop; PID absent, roster [], count stays 1 at +177s uninterrupted. |
| R03 | [transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a36e1b72ae829c4e/R03-transcript.md) · [JSON](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9d00c7b7b44efd63/R03-transcript.json) · [1440×900 dark recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/60ef2c4a4b515828/R03-after-midturn-stop.mp4) | Both sleeps alive immediately before composer Stop; both absent, roster [], count stays 2 at +148s uninterrupted. |
| R04 | [transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/89513467aa4e47fb/R04-transcript.md) · [JSON](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1c906248a0080385/R04-transcript.json) | Graceful restart cancels shell, clears roster, preserves cancellation note for next explicit turn. |
| R05 | [transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cebd77a341b470d9/R05-transcript.md) · [JSON](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4efbb139b434cae2/R05-transcript.json) | Natural shell prints done, roster clears, completed background_command notification and assistant continuation; three completed runs. |

R02 final observation: 13:55:47.722 UTC after Stop at 13:52:50. R03 final observation: 13:56:00.343 UTC after Stop at 13:53:32. No server restart or additional turn occurs in either final observation window. Native descendant session count is zero for every rerun thread. Both recordings’ first and last frames were visually reviewed before upload. The R03 separate background row is hidden while working, as in the accepted index; the recording proves composer interruption and settled absence, while the timestamped transcript proves roster clearing.

![After at 4b55798444: R02 and R03 first frames on the left, last frames on the right](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/da19c083f3b70ce6/recording-review-sheet.png)

[Reproduction driver](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/64847b1511003725/browser-driver.md) · [driver bundle](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/717e4e5f3c387d6f/drivers.zip) · [browser observations](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2ca1353b2e372687/browser-observations.json) · [video metadata](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/70666556355a27cc/video-metadata.json) · [cleanup](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f1f400940f0476f6/cleanup.json) · [artifact manifest](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fe56f60cbdca41d2/artifact-manifest.json)

Cleanup verified: owned browser tab closed; all tracked servers, provider runtimes, fixture processes and CLI drivers absent; both ports 7019/15059 closed; the only created worktree /home/user/wt/pr-32851-cap removed. No before worktree was created. Free disk remained 100 GiB. Scratch preserves private logs/config locally; only the reviewed allowlist was uploaded.

The material following this summary is the accepted historical index. Its timestamped narrative and visual artifacts retain their original SHAs; new rerun links are appended to each applicable after column.

### R01 — idle background shell, before versus after

Live process/roster observations at 11:50:49.139 (before) and 11:50:49.455 (after): both root turns completed and shell processes alive. Before roster `[]`; after one `command` with description `sleep 500`. The live capture reads the persisted roster; pending-probe semantics are additionally verified by the named adapter test, not claimed as a separately sampled live probe. [ordered transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9f9c22b19bbc4bc5/R01-transcript.md) · [full redacted events/rosters/processes](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4106fbfaba87e7be/R01-transcript.json).

Recording steps/times, before the pair: both clips begin on the settled idle thread. Before 11:53:13.865–11:53:28.241: no background row or Stop. After 11:52:53.459–11:53:12.987: row present; Details opens near +1s, shows `sleep 500` / Running. The recording ends with the dialog still open; closing is not demonstrated. Details has no before control to exercise. These are live idle/Details captures, not synchronized latency measurements.

| Fixture / viewport / theme | Before | After | Diff0 | DiffT |
|---|---|---|---|---|
| R01 recordings / 1440×900 / dark | [R01-before-idle.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a22fe5c217914d5a/R01-before-idle.mp4)<br>[fa2f4ff2a2](https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0) | [R01-after-details.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/324d4932dd0e71d8/R01-after-details.mp4)<br>[c88510a576](https://git.cafe/pingdotgg/t3code/commit/c88510a57629353853b405fbb6f0ca578e98fb40)<br>**New after-only rerun [4b55798444](https://git.cafe/pingdotgg/t3code/commit/4b557984448fd3d2e5bb506b3d9ff180e32f7748):** [ordered transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3fbadd58f80d3ae3/R01-transcript.md) · [JSON](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fbf4e5955ce9f2b2/R01-transcript.json) (same outcome; no new still) | n/a — video | n/a — video |
| R01 / 1440×900 / dark | ![Before](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5c0b5d206922917d/R01-before-dark-1440-settled-b.png)<br>[fa2f4ff2a2](https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0) | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/025b1d5b42f7b4e0/R01-after-dark-1440-settled-b.png)<br>[c88510a576](https://git.cafe/pingdotgg/t3code/commit/c88510a57629353853b405fbb6f0ca578e98fb40)<br>**New after-only rerun [4b55798444](https://git.cafe/pingdotgg/t3code/commit/4b557984448fd3d2e5bb506b3d9ff180e32f7748):** [ordered transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3fbadd58f80d3ae3/R01-transcript.md) · [JSON](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fbf4e5955ce9f2b2/R01-transcript.json) (same outcome; no new still) | ![Diff0: >0/255](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4ac9bd9fa7e03adc/R01-dark-1440-diff0.png)<br>[fa2f4ff2a2](https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0) → [c88510a576](https://git.cafe/pingdotgg/t3code/commit/c88510a57629353853b405fbb6f0ca578e98fb40) | ![DiffT: >8/255](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3224da8ab77dabbf/R01-dark-1440-diffT8.png)<br>[fa2f4ff2a2](https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0) → [c88510a576](https://git.cafe/pingdotgg/t3code/commit/c88510a57629353853b405fbb6f0ca578e98fb40) |
| R01 / 390×844 / dark | ![Before](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0f48397cd4717e14/R01-before-dark-390-b.png)<br>[fa2f4ff2a2](https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0) | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/48273d1b255c436e/R01-after-dark-390-b.png)<br>[c88510a576](https://git.cafe/pingdotgg/t3code/commit/c88510a57629353853b405fbb6f0ca578e98fb40)<br>**New after-only rerun [4b55798444](https://git.cafe/pingdotgg/t3code/commit/4b557984448fd3d2e5bb506b3d9ff180e32f7748):** [ordered transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3fbadd58f80d3ae3/R01-transcript.md) · [JSON](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fbf4e5955ce9f2b2/R01-transcript.json) (same outcome; no new still) | ![Diff0: >0/255](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8de25fb474ef54e2/R01-dark-390-diff0.png)<br>[fa2f4ff2a2](https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0) → [c88510a576](https://git.cafe/pingdotgg/t3code/commit/c88510a57629353853b405fbb6f0ca578e98fb40) | ![DiffT: >8/255](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c829231dbb58824b/R01-dark-390-diffT8.png)<br>[fa2f4ff2a2](https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0) → [c88510a576](https://git.cafe/pingdotgg/t3code/commit/c88510a57629353853b405fbb6f0ca578e98fb40) |
| R01 / 1440×900 / light | ![Before](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1d3923d56819ac11/R01-before-light-1440-b.png)<br>[fa2f4ff2a2](https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0) | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c304ec0af11f434e/R01-after-light-1440-b.png)<br>[c88510a576](https://git.cafe/pingdotgg/t3code/commit/c88510a57629353853b405fbb6f0ca578e98fb40)<br>**New after-only rerun [4b55798444](https://git.cafe/pingdotgg/t3code/commit/4b557984448fd3d2e5bb506b3d9ff180e32f7748):** [ordered transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3fbadd58f80d3ae3/R01-transcript.md) · [JSON](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fbf4e5955ce9f2b2/R01-transcript.json) (same outcome; no new still) | ![Diff0: >0/255](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2f7e7b7aa589f820/R01-light-1440-diff0.png)<br>[fa2f4ff2a2](https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0) → [c88510a576](https://git.cafe/pingdotgg/t3code/commit/c88510a57629353853b405fbb6f0ca578e98fb40) | ![DiffT: >8/255](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e97bf8a69120ab8a/R01-light-1440-diffT8.png)<br>[fa2f4ff2a2](https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0) → [c88510a576](https://git.cafe/pingdotgg/t3code/commit/c88510a57629353853b405fbb6f0ca578e98fb40) |
| R01 / 390×844 / light | ![Before](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d4098d5d37d27706/R01-before-light-390-b.png)<br>[fa2f4ff2a2](https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0) | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1cab56131880cc35/R01-after-light-390-b.png)<br>[c88510a576](https://git.cafe/pingdotgg/t3code/commit/c88510a57629353853b405fbb6f0ca578e98fb40)<br>**New after-only rerun [4b55798444](https://git.cafe/pingdotgg/t3code/commit/4b557984448fd3d2e5bb506b3d9ff180e32f7748):** [ordered transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3fbadd58f80d3ae3/R01-transcript.md) · [JSON](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fbf4e5955ce9f2b2/R01-transcript.json) (same outcome; no new still) | ![Diff0: >0/255](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f667b525c43dc853/R01-light-390-diff0.png)<br>[fa2f4ff2a2](https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0) → [c88510a576](https://git.cafe/pingdotgg/t3code/commit/c88510a57629353853b405fbb6f0ca578e98fb40) | ![DiffT: >8/255](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2b5a3c26c7b3badf/R01-light-390-diffT8.png)<br>[fa2f4ff2a2](https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0) → [c88510a576](https://git.cafe/pingdotgg/t3code/commit/c88510a57629353853b405fbb6f0ca578e98fb40) |

Every B frame has a pixel-identical A frame at least 500 ms earlier: [settled-pairs.zip](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/091128817ddc07f8/settled-pairs.zip) · [still-settlement.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e8686b3d1a264323/still-settlement.txt). Diff0 saturates every nonzero maximum RGB-channel delta to magenta, including one-level changes; DiffT saturates deltas >8/255 to orange. [stills-diff-stats.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0cc61ea47c17697c/stills-diff-stats.json). Every selected original/diff/sheet was visually reviewed; no ghosting, stale overlay, skeleton or accidental crop. Narrow breadcrumb/prompt ellipses are native intentional truncation. Scanning sheets: [1440 dark](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b3eb98717d7f9667/R01-dark-1440-sheet.png) · [390 dark](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/095bdbb4d453b65c/R01-dark-390-sheet.png) · [1440 light](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5f346400c05f591b/R01-light-1440-sheet.png) · [390 light](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e08d1851941e204a/R01-light-390-sheet.png).


**Prior-head confirmation:** [ordered transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6535498ddd88c286/R01-transcript.md) · [full redacted events / rosters / processes](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fd42b87cfe95a6c9/R01-transcript.json). Rerun at 12:20:20.424 confirms completed root turn, live `sleep 500` and one command in the pending roster. Outcome matches the original capture; no new web stills were necessary. The earlier visual pair above remains on its explicitly labelled SHA.

### R02 — idle web Stop, prior capture head

Steps/times above the pair: before still has no row/Stop, so the unchanged first-round before clip is retained. New after recording starts 12:33:50.753, with PID 685655 live and roster containing one command at 12:33:50.366. Click row Stop at 12:33:52; row absent 12:33:52.361. PID absent and roster `[]` by 12:34:03.160. Video ends 12:34:04.881 on clean settled UI, without Stopping/Syncing. Bounded follow-up at 12:37:55.078 (~243s after click) still has only one completed run and zero native descendants; this is a bounded live observation, not proof for every future time. Earlier incomplete/Syncing takes are excluded.


| Fixture | Before | After | Diff0 | DiffT |
|---|---|---|---|---|
| R02 / 1440×900 / dark | [No Stop available](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a22fe5c217914d5a/R01-before-idle.mp4)<br>[fa2f4ff2a2](https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0) | [complete Stop recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0eeeed3a39f5619a/R02-after-idle-stop-complete.mp4) · [ordered transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2d424a9964b5e6c0/R02-transcript.md) · [full redacted events / rosters / processes](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bf0832d3ffe81488/R02-transcript.json)<br>[975c0819bc](https://git.cafe/pingdotgg/t3code/commit/975c0819bcf72251867f53f62d0b96e572844f6f)<br>**New after-only rerun [4b55798444](https://git.cafe/pingdotgg/t3code/commit/4b557984448fd3d2e5bb506b3d9ff180e32f7748):** [ordered transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2a0e4286965c33e6/R02-transcript.md) · [JSON](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7a17023e771c232d/R02-transcript.json) · [recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ca5a863f258cde25/R02-after-idle-stop.mp4) | n/a — ordered temporal proof | n/a — ordered temporal proof |

### R03 — web composer Stop gated on both foreground and background processes

Steps and actual UTC timestamps, above the pair: each fresh synthetic thread first completes the same no-tools READY initialization (run 1). The identical driver then requests background `sleep 500` followed by foreground `sleep 40` (run 2). Both recordings use the same 1440×900 dark / DPR 2 setup as R02. Browser Date is frozen at 12:00:00 UTC and animation/transition/caret suppression is enabled; the visible “Working for 0s” is not elapsed-time evidence. Both first and last frames were extracted with ffmpeg and visually reviewed; the final interrupted state is visible in each. No timing or performance comparison is claimed.

- **After:** record 13:05:21.653–13:06:39.317; same driver starts 13:05:21.734. Both exact sleep processes live at 13:05:43.968, reconfirmed immediately before Stop at 13:06:16.516 (foreground age 32s). Click actual composer Stop at 13:06:16. Server roster clears at 13:06:16.857; run interrupted at 13:06:16.911. By 13:06:25.945 both owned PIDs are absent and roster is `[]`. Final frame shows “Run interrupted · Stopped by user”, empty composer, and no pending row / Stopping / Syncing. Bounded process observation at 13:08:21.236 (~124s after Stop) still has both absent and exactly 2 runs. Final persisted counts at 13:10:01.846 (~225s after Stop): 2 runs, zero app descendant threads, zero native child sessions.
- **Before:** record 13:06:39.735–13:08:21.177; identical driver starts 13:06:39.770. Both sleeps live at 13:07:32.602, reconfirmed immediately before Stop at 13:07:43.213 (foreground age 10s). Click actual composer Stop at 13:07:43; run interrupted at 13:07:43.624. By 13:08:03.786 foreground PID is absent while background `sleep 500` remains alive. At 13:09:02.056 (~79s after Stop), the background PID is still alive, roster is `[]`, and run count remains 2. Final counts at 13:10:01.848: 2 runs, zero app descendants, zero native child sessions. There is no background-work row on this build.

**Visible-row limit:** the after build explicitly hides the separate background-work row while the turn is working ([useThreadLifecycle.tsx](https://git.cafe/pingdotgg/t3code/blob/975c0819bcf72251867f53f62d0b96e572844f6f/apps/web/src/components/chat/useThreadLifecycle.tsx#L411)). Therefore this same-turn fixture cannot show a row disappearing from an active-turn view. The new recording shows Running sleep → the actual composer Stop → Run interrupted → settled absence with no follow-up. The timestamped server transcript proves the pending roster clears and both processes disappear. No UI or roster was altered to manufacture a row transition. The literal visible-row-disappearance subclaim remains unsupported for R03; R02 already supplies idle-row disappearance evidence.

| Fixture / viewport / theme | Before | After | Diff0 | DiffT |
|---|---|---|---|---|
| R03 recordings / 1440×900 / dark | [before composer Stop recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9fb24297dd4b9b17/R03-before-midturn-stop.mp4)<br>[fa2f4ff2a2](https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0) | [after composer Stop recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6d6d6ba2b521ac36/R03-after-midturn-stop.mp4)<br>[975c0819bc](https://git.cafe/pingdotgg/t3code/commit/975c0819bcf72251867f53f62d0b96e572844f6f)<br>**New after-only rerun [4b55798444](https://git.cafe/pingdotgg/t3code/commit/4b557984448fd3d2e5bb506b3d9ff180e32f7748):** [ordered transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a36e1b72ae829c4e/R03-transcript.md) · [JSON](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9d00c7b7b44efd63/R03-transcript.json) · [recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/60ef2c4a4b515828/R03-after-midturn-stop.mp4) | n/a — ordered temporal proof | n/a — ordered temporal proof |

[ordered timestamped process/roster/run transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5d27323cafa6c59d/R03-transcript.md) · [full redacted events and observations](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b840170e20e070aa/R03-transcript.json) · [executed driver / environment / cleanup](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/62e48b3a7ae10e76/browser-driver.md) · [video metadata](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c6bdc2a590d11b05/video-metadata.json)

![Before (left) and after (right): first, running, and final frames of the real composer Stop recordings](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ea76751a7a6ed7c0/R03-before-after-review-sheet.png)

### R04 — server restart while shell is pending

After-only rerun confirms the earlier outcome. At 12:22:03.335 shell PID 666282 is live and roster contains its command. SIGTERM to verified isolated backend PID 660467 on port 16088 at 12:22:03, followed by restart as PID 667006. At 12:22:18.265 shell/runtime are absent, roster `[]`, run count remains 1. Only the next explicit user message creates run 2 and receives the cancellation-on-restart note, complete by 12:22:56.723. Graceful restart only; abrupt crash/power loss remains unverified. No new web stills needed because the outcome matches.

| Fixture | Before | After | Diff0 | DiffT |
|---|---|---|---|---|
| R04 / server only — no viewport/theme | [Retained before transcript / native input](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0bd6bab91c593c73/R04-transcript.md) · [JSON](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8f3f9a17f2b44a11/R04-transcript.json)<br>[fa2f4ff2a2](https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0) | [ordered transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b775bc37f23ead54/R04-transcript.md) · [full redacted events / rosters / processes](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b018605d7e62855a/R04-transcript.json)<br>[975c0819bc](https://git.cafe/pingdotgg/t3code/commit/975c0819bcf72251867f53f62d0b96e572844f6f)<br>**New after-only rerun [4b55798444](https://git.cafe/pingdotgg/t3code/commit/4b557984448fd3d2e5bb506b3d9ff180e32f7748):** [ordered transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/89513467aa4e47fb/R04-transcript.md) · [JSON](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1c906248a0080385/R04-transcript.json) (same outcome; no new still) | n/a — ordered temporal proof | n/a — ordered temporal proof |

### R05 — natural completion on both builds

Steps/times above the pair: identical READY initialization (run 1), then both loaded 1440×900 light chats are recorded. Before recording starts 12:24:10.114; after 12:24:12.302. Same driver sends identical background `sleep 20; echo done` prompt at 12:24:12.423 (run 2). Native user input before 12:24:17.150; after 12:24:18.041. Running observations 12:24:29.899 before / 12:24:30.094 after show both shells alive, before roster `[]`, after one command. Natural reports before 12:24:40.916 / after 12:24:40.600; continuation creation before 12:24:41.046 / after 12:24:40.762 (run 3). No Stop. Both completed continuations reply identically. Recordings stop around 12:25:06–07; final process/roster observations at 12:25:08.256 / .474 show shell absent, roster `[]` and all three runs complete. Sparse recorder scene updates produce different media lengths; use UTC transcript for chronology, never video duration for latency.

[ordered transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3ce0146f422547b5/R05-transcript.md) · [full redacted events / rosters / processes](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f281ea43f76fe836/R05-transcript.json). The transcript distinguishes native OpenCode synthetic payloads (raw shell report on both sides), T3 stored continuation user text (generic before/raw report after), and the exact notification rendered in web (generic before/command-specific after).

| Fixture / viewport / theme | Before | After | Diff0 | DiffT |
|---|---|---|---|---|
| R05 recordings / 1440×900 / light | [R05-before-natural-completion.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1c8b453efba827cf/R05-before-natural-completion.mp4)<br>[fa2f4ff2a2](https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0) | [R05-after-natural-completion.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a708feea059ab234/R05-after-natural-completion.mp4)<br>[975c0819bc](https://git.cafe/pingdotgg/t3code/commit/975c0819bcf72251867f53f62d0b96e572844f6f)<br>**New after-only rerun [4b55798444](https://git.cafe/pingdotgg/t3code/commit/4b557984448fd3d2e5bb506b3d9ff180e32f7748):** [ordered transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cebd77a341b470d9/R05-transcript.md) · [JSON](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4efbb139b434cae2/R05-transcript.json) (same outcome; no new still) | n/a — temporal | n/a — temporal |
| R05 / 1440×900 / dark | ![Before](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6abc322400d18293/R05-before-dark-1440-b.png)<br>[fa2f4ff2a2](https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0) | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e114906f838266a1/R05-after-dark-1440-b.png)<br>[975c0819bc](https://git.cafe/pingdotgg/t3code/commit/975c0819bcf72251867f53f62d0b96e572844f6f)<br>**New after-only rerun [4b55798444](https://git.cafe/pingdotgg/t3code/commit/4b557984448fd3d2e5bb506b3d9ff180e32f7748):** [ordered transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cebd77a341b470d9/R05-transcript.md) · [JSON](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4efbb139b434cae2/R05-transcript.json) (same outcome; no new still) | ![Diff0: >0/255](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3d5e68374a6b4681/R05-dark-1440-diff0.png)<br>[fa2f4ff2a2](https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0) → [975c0819bc](https://git.cafe/pingdotgg/t3code/commit/975c0819bcf72251867f53f62d0b96e572844f6f) | ![DiffT: >8/255](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e7fa10f42e9e0e73/R05-dark-1440-diffT8.png)<br>[fa2f4ff2a2](https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0) → [975c0819bc](https://git.cafe/pingdotgg/t3code/commit/975c0819bcf72251867f53f62d0b96e572844f6f) |
| R05 / 390×844 / dark | ![Before](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d2fd58bc56d10d90/R05-before-dark-390-b.png)<br>[fa2f4ff2a2](https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0) | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1e74e754cdeb1179/R05-after-dark-390-b.png)<br>[975c0819bc](https://git.cafe/pingdotgg/t3code/commit/975c0819bcf72251867f53f62d0b96e572844f6f)<br>**New after-only rerun [4b55798444](https://git.cafe/pingdotgg/t3code/commit/4b557984448fd3d2e5bb506b3d9ff180e32f7748):** [ordered transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cebd77a341b470d9/R05-transcript.md) · [JSON](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4efbb139b434cae2/R05-transcript.json) (same outcome; no new still) | ![Diff0: >0/255](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d342db1fbd5dc4cf/R05-dark-390-diff0.png)<br>[fa2f4ff2a2](https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0) → [975c0819bc](https://git.cafe/pingdotgg/t3code/commit/975c0819bcf72251867f53f62d0b96e572844f6f) | ![DiffT: >8/255](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/32e389c08fd46ae5/R05-dark-390-diffT8.png)<br>[fa2f4ff2a2](https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0) → [975c0819bc](https://git.cafe/pingdotgg/t3code/commit/975c0819bcf72251867f53f62d0b96e572844f6f) |
| R05 / 1440×900 / light | ![Before](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/57f437846e6f3be3/R05-before-light-1440-b.png)<br>[fa2f4ff2a2](https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0) | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bdb0729bebaadf13/R05-after-light-1440-b.png)<br>[975c0819bc](https://git.cafe/pingdotgg/t3code/commit/975c0819bcf72251867f53f62d0b96e572844f6f)<br>**New after-only rerun [4b55798444](https://git.cafe/pingdotgg/t3code/commit/4b557984448fd3d2e5bb506b3d9ff180e32f7748):** [ordered transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cebd77a341b470d9/R05-transcript.md) · [JSON](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4efbb139b434cae2/R05-transcript.json) (same outcome; no new still) | ![Diff0: >0/255](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c1628e7858662b65/R05-light-1440-diff0.png)<br>[fa2f4ff2a2](https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0) → [975c0819bc](https://git.cafe/pingdotgg/t3code/commit/975c0819bcf72251867f53f62d0b96e572844f6f) | ![DiffT: >8/255](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/363230378d1e3850/R05-light-1440-diffT8.png)<br>[fa2f4ff2a2](https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0) → [975c0819bc](https://git.cafe/pingdotgg/t3code/commit/975c0819bcf72251867f53f62d0b96e572844f6f) |
| R05 / 390×844 / light | ![Before](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/22a03055c1fc6321/R05-before-light-390-b.png)<br>[fa2f4ff2a2](https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0) | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d4988bf3877b3a00/R05-after-light-390-b.png)<br>[975c0819bc](https://git.cafe/pingdotgg/t3code/commit/975c0819bcf72251867f53f62d0b96e572844f6f)<br>**New after-only rerun [4b55798444](https://git.cafe/pingdotgg/t3code/commit/4b557984448fd3d2e5bb506b3d9ff180e32f7748):** [ordered transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cebd77a341b470d9/R05-transcript.md) · [JSON](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4efbb139b434cae2/R05-transcript.json) (same outcome; no new still) | ![Diff0: >0/255](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/44196bfceddf1484/R05-light-390-diff0.png)<br>[fa2f4ff2a2](https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0) → [975c0819bc](https://git.cafe/pingdotgg/t3code/commit/975c0819bcf72251867f53f62d0b96e572844f6f) | ![DiffT: >8/255](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f5f1f4bf66cb63f2/R05-light-390-diffT8.png)<br>[fa2f4ff2a2](https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0) → [975c0819bc](https://git.cafe/pingdotgg/t3code/commit/975c0819bcf72251867f53f62d0b96e572844f6f) |

Each selected B frame has a pixel-identical A frame 600ms earlier: [settled-pairs.zip](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/547ca076adda486c/settled-pairs.zip) · [still-settlement.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/380c9fab38159724/still-settlement.json). Diff0 saturates every nonzero maximum RGB delta to magenta, including one-level changes; DiffT saturates >8/255 to orange. [stills-diff-stats.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1284a1df341c387a/stills-diff-stats.json). All selected originals, diffs, sheets and video review sheets were opened and reviewed before upload; no stale overlays, ghosting, skeletons or unintended crops. Native prompt/breadcrumb ellipses are intentional UI truncation. Video metadata: [video-metadata.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/15d350b4e21ab450/video-metadata.json).

Scanning sheets: [1440 dark](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e94b25f8bae638e9/R05-dark-1440-sheet.png) · [390 dark](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/05d626e9b5ec3935/R05-dark-390-sheet.png) · [1440 light](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b915be5b9a58e8ee/R05-light-1440-sheet.png) · [390 light](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/171378a44c6fe284/R05-light-390-sheet.png).

### Named-test coverage and preserved matrix gaps

At the **original** after SHA [c88510a576](https://git.cafe/pingdotgg/t3code/commit/c88510a57629353853b405fbb6f0ca578e98fb40), 4 focused test files passed: **19 selected tests passed; 134 excluded by the name filter**. These tests were not rerun on the prior capture head. This is inherited deterministic harness/unit proof, not live-model proof. [head-bound verbose log](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ac2bca39408ffc92/named-tests-head.log) · [exact test command](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e03e571cf3fe1c75/named-tests.sh) · [final bounded follow-up counts](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f13d975ac36c38fd/no-follow-up-final.json). No full-suite or cross-platform claim.

| Matrix row | Evidence status / exact named test or reason |
|---|---|
| R01 | LIVE + UNIT: lists a background shell still running after the turn as pending work |
| R02 | LIVE + UNIT: removes a running background shell on a user Stop |
| R03 | LIVE + UNIT: leaves no work pending when Stop removes a shell during a turn; also removes a shell launched while Stop interrupts the turn |
| R04 | LIVE + shared UNIT: clears persisted pendingBackgroundTasks and terminalizes stale background items on settled runs |
| R05 | LIVE on prior capture head: successful natural completion, output, continuation text and exact web notification on both builds. GAP: failed/cancelled/unknown outcomes; R12 inherited partial unit coverage only |
| R06 | UNIT passed: lists a subagent's background shell under the subagent that started it |
| R07 | UNIT passed: lists a finished subagent's background shell as a plain command a Stop removes |
| R08 | UNIT passed: removes a shell launched by a wake still waiting for its continuation |
| R09 | UNIT passed: lists a subagent's shell from a held wake under the subagent once the wake runs |
| R10 | UNIT passed: removes a subagent's shell from a held wake that Stop discards |
| R11 | UNIT passed: removes a shell launched while Stop removes another |
| R12 | UNIT passed: continues a wake that a stopped shell shares with a finished one |
| R13 | GAP preserved: shell preservation during steer/non-user interrupt not directly asserted |
| R14 | GAP preserved: successful reconnect prune/backfill variants not directly exercised |
| R15 | UNIT passed: keeps a background shell tracked when its check fails after a reconnect. GAP preserved: timeout/many concurrent checks |
| R16 | UNIT passed: clears a background shell from the roster when the stream cannot reconnect; no live transport-failure claim |
| R17 | GAP preserved: end-before-launch/malformed metadata/filter variants; R09/R12 replay aspects only |
| R18 | GAP preserved: full remove-error/timeout/directory-change outcomes; R12 partial failure context only |
| R19 | GAP preserved: shell-specific idle pin/rollback/handoff integration not run |
| R20 | UNIT passed: wakes the run whose subagent lost its shell, past a wake cut before it started; names a lost subagent by the id the agent resumes it with; plus R06/R07 shape tests |
| R21 | GAP preserved: multiple-root/nested isolation and same-length roster mutations; R06/R07 simple ancestry only |
| U01 | OPTIONAL VISUAL retained; no extra capture. R08 unit passes; fallback-label visual not staged |
| U02 | OPTIONAL VISUAL retained; no extra capture. R12 unit passes; count-transition visual not staged |
| U03 | OPTIONAL VISUAL retained; no extra capture. R06/R07 unit pass; mixed-child sheet not staged |
| U04 | OPTIONAL VISUAL retained; R01 shows Details opening with `sleep 500` / Running. Dialog closing and long/multiline variants are not captured |
| U05 | OPTIONAL VISUAL retained; R02 captures real pending/Stop/absence. Auth/error/retry variants not captured; inherited source coverage not re-run |

**Other unverified surfaces:** native desktop shell, native mobile, relay/tunnel/remote browser modes, macOS/Windows process termination, OpenCode v1 and other providers. Desktop shares the web components but was not independently run. No new UI entry points or contract changes are claimed.


### Reproduction scripts and review artifacts

Use [browser-driver.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0bce39d6bfb9fec8/browser-driver.md) for exact setup, prompts, browser interactions, UTC steps and cleanup. [drivers.zip](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9e7a9ff09839fd76/drivers.zip) contains every new seed/driver/analysis script plus the synthetic fixture. Private provider configuration, runtime databases, raw CLI files and server logs are excluded. New independent runs require substituting fresh thread ids/PIDs in observer/compiler targets. `build-proof.py` and `verify-no-child.py` are inherited unused reference helpers; `compile-proof.py` is the active compiler. Original capture scripts remain linked in the [first-round complete index](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ff75a2f3a0edd2a6/evidence.md).

- [README.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f35f4d53355e603b/README.md)
- [artifact-manifest.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/834f3ee2dcea61ef/artifact-manifest.json)
- [browser-driver.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0bce39d6bfb9fec8/browser-driver.md)
- [browser-privacy-clock.js](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/942c6b19e612d645/browser-privacy-clock.js)
- [build-index.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a55adfb6bf19901a/build-index.py)
- [build-proof.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c3a618f8633b332d/build-proof.py)
- [check-stills.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/06a13aa711a605d7/check-stills.py)
- [cleanup-capture.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5f0a9ae626d5edb1/cleanup-capture.py)
- [cleanup.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4afa608f0e0cbae7/cleanup.json)
- [compile-proof.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8c51392f31ce4874/compile-proof.py)
- [diff-stills.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/36d24edcf8e385c7/diff-stills.py)
- [live-seed.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/dbf30e29a4b0ddb2/live-seed.sh)
- [natural-pair.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/06cb668ef294a603/natural-pair.py)
- [observe.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6ffabc9bed2532e0/observe.py)
- [prepare-natural.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/afa3030e2ecd35fd/prepare-natural.sh)
- [review-videos.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5794fcd860ffd9d3/review-videos.py)
- [setup-recapture.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d77e27016d09abbd/setup-recapture.py)
- [upload-assets.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/69082de91a9b33ec/upload-assets.py)
- [verify-no-child.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ad9a9e0040cd5f4a/verify-no-child.py)
- [wait-processes.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/130d46e1db6c6e33/wait-processes.py)

**Previous capture cleanup (retained):** both owned preview tabs closed; all recorded own backend/web/watch/dev-runner processes terminated; all four owned ports closed; before worktree removed. After checkout clean at requested head; private scratch retained. [cleanup.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4afa608f0e0cbae7/cleanup.json). Free disk 102 GiB. No process or file in the implementation worktree was touched.

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

### Verbatim ghdrop output

[browser-driver.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0bce39d6bfb9fec8/browser-driver.md)
[browser-privacy-clock.js](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/942c6b19e612d645/browser-privacy-clock.js)
[build-index.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a55adfb6bf19901a/build-index.py)
[build-proof.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c3a618f8633b332d/build-proof.py)
[check-stills.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/06a13aa711a605d7/check-stills.py)
[cleanup-capture.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5f0a9ae626d5edb1/cleanup-capture.py)
[compile-proof.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8c51392f31ce4874/compile-proof.py)
[diff-stills.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/36d24edcf8e385c7/diff-stills.py)
[README.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f35f4d53355e603b/README.md)
[live-seed.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/dbf30e29a4b0ddb2/live-seed.sh)
[natural-pair.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/06cb668ef294a603/natural-pair.py)
[observe.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6ffabc9bed2532e0/observe.py)
[prepare-natural.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/afa3030e2ecd35fd/prepare-natural.sh)
[review-videos.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5794fcd860ffd9d3/review-videos.py)
[setup-recapture.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d77e27016d09abbd/setup-recapture.py)
[upload-assets.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/69082de91a9b33ec/upload-assets.py)
[verify-no-child.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ad9a9e0040cd5f4a/verify-no-child.py)
[wait-processes.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/130d46e1db6c6e33/wait-processes.py)
[drivers.zip](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9e7a9ff09839fd76/drivers.zip)
[settled-pairs.zip](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/547ca076adda486c/settled-pairs.zip)
[still-settlement.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/380c9fab38159724/still-settlement.json)
[stills-diff-stats.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1284a1df341c387a/stills-diff-stats.json)
[video-metadata.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/15d350b4e21ab450/video-metadata.json)
[cleanup.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4afa608f0e0cbae7/cleanup.json)
[R01-transcript.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6535498ddd88c286/R01-transcript.md)
[R01-transcript.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fd42b87cfe95a6c9/R01-transcript.json)
[R02-transcript.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2d424a9964b5e6c0/R02-transcript.md)
[R02-transcript.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bf0832d3ffe81488/R02-transcript.json)
[R04-transcript.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b775bc37f23ead54/R04-transcript.md)
[R04-transcript.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b018605d7e62855a/R04-transcript.json)
[R05-transcript.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3ce0146f422547b5/R05-transcript.md)
[R05-transcript.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f281ea43f76fe836/R05-transcript.json)
![R05-before-dark-1440-b.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6abc322400d18293/R05-before-dark-1440-b.png)
![R05-after-dark-1440-b.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e114906f838266a1/R05-after-dark-1440-b.png)
![R05-dark-1440-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3d5e68374a6b4681/R05-dark-1440-diff0.png)
![R05-dark-1440-diffT8.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e7fa10f42e9e0e73/R05-dark-1440-diffT8.png)
![R05-dark-1440-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e94b25f8bae638e9/R05-dark-1440-sheet.png)
![R05-before-dark-390-b.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d2fd58bc56d10d90/R05-before-dark-390-b.png)
![R05-after-dark-390-b.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1e74e754cdeb1179/R05-after-dark-390-b.png)
![R05-dark-390-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d342db1fbd5dc4cf/R05-dark-390-diff0.png)
![R05-dark-390-diffT8.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/32e389c08fd46ae5/R05-dark-390-diffT8.png)
![R05-dark-390-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/05d626e9b5ec3935/R05-dark-390-sheet.png)
![R05-before-light-1440-b.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/57f437846e6f3be3/R05-before-light-1440-b.png)
![R05-after-light-1440-b.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bdb0729bebaadf13/R05-after-light-1440-b.png)
![R05-light-1440-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c1628e7858662b65/R05-light-1440-diff0.png)
![R05-light-1440-diffT8.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/363230378d1e3850/R05-light-1440-diffT8.png)
![R05-light-1440-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b915be5b9a58e8ee/R05-light-1440-sheet.png)
![R05-before-light-390-b.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/22a03055c1fc6321/R05-before-light-390-b.png)
![R05-after-light-390-b.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d4988bf3877b3a00/R05-after-light-390-b.png)
![R05-light-390-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/44196bfceddf1484/R05-light-390-diff0.png)
![R05-light-390-diffT8.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f5f1f4bf66cb63f2/R05-light-390-diffT8.png)
![R05-light-390-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/171378a44c6fe284/R05-light-390-sheet.png)
[R02-after-idle-stop-complete.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0eeeed3a39f5619a/R02-after-idle-stop-complete.mp4)
![R02-after-idle-stop-complete-review-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0950af39e6e24700/R02-after-idle-stop-complete-review-sheet.png)
[R05-before-natural-completion.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1c8b453efba827cf/R05-before-natural-completion.mp4)
![R05-before-natural-completion-review-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b87b9e7d1f812174/R05-before-natural-completion-review-sheet.png)
[R05-after-natural-completion.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a708feea059ab234/R05-after-natural-completion.mp4)
![R05-after-natural-completion-review-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f2836721638df125/R05-after-natural-completion-review-sheet.png)
[artifact-manifest.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/834f3ee2dcea61ef/artifact-manifest.json)


### Third capture: new public artifacts

[R03-before-midturn-stop.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9fb24297dd4b9b17/R03-before-midturn-stop.mp4)
[R03-after-midturn-stop.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6d6d6ba2b521ac36/R03-after-midturn-stop.mp4)
![R03-before-first.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ebcb594dcfd92bb3/R03-before-first.png)
![R03-before-last.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e0cac950b9db63ac/R03-before-last.png)
![R03-before-running.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/427f3d109e0d4f35/R03-before-running.png)
![R03-after-first.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7285c298a11e0969/R03-after-first.png)
![R03-after-last.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/25116acade165f31/R03-after-last.png)
![R03-after-running.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7112f4f0cbb0ee41/R03-after-running.png)
![R03-before-after-review-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ea76751a7a6ed7c0/R03-before-after-review-sheet.png)
[R03-transcript.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5d27323cafa6c59d/R03-transcript.md)
[R03-transcript.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b840170e20e070aa/R03-transcript.json)
[browser-driver.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/62e48b3a7ae10e76/browser-driver.md)
[browser-privacy-clock.js](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bab223085e463a36/browser-privacy-clock.js)
[browser-observations.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/36b23f3957c8af9f/browser-observations.json)
[midturn-driver.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/28cc901e67e2754d/midturn-driver.py)
[observe.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6144a55b3750920e/observe.py)
[setup-recapture.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/88947fdd18b67c02/setup-recapture.py)
[compile-proof.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a5fa8aa08616e8b7/compile-proof.py)
[review-videos.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1c7fb16c7c503708/review-videos.py)
[video-metadata.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c6bdc2a590d11b05/video-metadata.json)
[cleanup.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/eaa415adef6a5bde/cleanup.json)
[artifact-manifest.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/75cac9fa29a14c72/artifact-manifest.json)

Teardown verified at 2026-11-10T13:11:31.758102+00:00: both owned browser tabs closed; all tracked servers, OpenCode runtimes, fixture sleep processes and CLI drivers absent; all four owned ports unbound; both own detached worktrees removed. [cleanup verification](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/eaa415adef6a5bde/cleanup.json). No source changes, commits, pushes, or PR edits. Scratch retains private configuration/logs locally; only the reviewed evidence allowlist was uploaded.

FRICTION:
brief | The requested visible background-row disappearance cannot occur in this same-turn fixture because the product hides that row while working; the recording shows interrupted/settled absence and the ordered transcript proves roster clearing. | Specify row disappearance for idle R02 and composer interruption plus empty roster for active R03.
tool | preview_open rejects about:blank, and preview_evaluate rejects leading/trailing whitespace; the documented blank-tab invocation and trimmed script succeeded. | Omit url for a blank tab and trim expressions.

### Fourth capture public artifacts

[R01-transcript.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3fbadd58f80d3ae3/R01-transcript.md)
[R01-transcript.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fbf4e5955ce9f2b2/R01-transcript.json)
[R02-transcript.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2a0e4286965c33e6/R02-transcript.md)
[R02-transcript.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7a17023e771c232d/R02-transcript.json)
[R03-transcript.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a36e1b72ae829c4e/R03-transcript.md)
[R03-transcript.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9d00c7b7b44efd63/R03-transcript.json)
[R04-transcript.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/89513467aa4e47fb/R04-transcript.md)
[R04-transcript.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1c906248a0080385/R04-transcript.json)
[R05-transcript.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cebd77a341b470d9/R05-transcript.md)
[R05-transcript.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4efbb139b434cae2/R05-transcript.json)
[R02-after-idle-stop.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ca5a863f258cde25/R02-after-idle-stop.mp4)
[R03-after-midturn-stop.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/60ef2c4a4b515828/R03-after-midturn-stop.mp4)
![R02-first.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d5f01d7b778c488f/R02-first.png)
![R02-last.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4a66b6dc21729c27/R02-last.png)
![R03-first.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2400d00837feed07/R03-first.png)
![R03-last.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8e9e330422e0c220/R03-last.png)
![recording-review-sheet.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/da19c083f3b70ce6/recording-review-sheet.png)
[video-metadata.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/70666556355a27cc/video-metadata.json)
[browser-driver.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/64847b1511003725/browser-driver.md)
[browser-observations.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2ca1353b2e372687/browser-observations.json)
[browser-privacy-clock.js](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5993592ad29ed3c0/browser-privacy-clock.js)
[outcome-notes.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5e123139157d090f/outcome-notes.json)
[observe.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3aad8c5308cb7b2b/observe.py)
[seed.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d7de6c93a0ae4d20/seed.py)
[send.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1b5a468cb23336e6/send.py)
[midturn-driver.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9f368f7e10c5820c/midturn-driver.py)
[natural-observe.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/565fe1fa4dda9d41/natural-observe.py)
[compile-proof.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/59b4a405b3fad88b/compile-proof.py)
[review-videos.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4ddcf6d171a7aa04/review-videos.py)
[drivers.zip](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/717e4e5f3c387d6f/drivers.zip)
[cleanup.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f1f400940f0476f6/cleanup.json)
[artifact-manifest.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fe56f60cbdca41d2/artifact-manifest.json)
[build-index.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b82c42ca61263f98/build-index.py)

FRICTION:
tool | Preview selector syntax rejected one sidebar target and an unsupported exact attribute; snapshot refs and the supported role locator succeeded. | Use snapshot refs or documented role locator attributes.
infra | System Python lacked Pillow; the prior capture’s existing virtualenv completed frame review. | Run the review script with capture-1/pyenv/bin/python.
runbook | The initial bounded samples straddled the independent restart fixture; fresh final Stop runs supplied uninterrupted windows over 120 seconds. | Run restart first, then Stop captures and bounded observations.
