# Missing terminal folder: final bounded evidence index

Issue [#16923](https://git.cafe/pingdotgg/t3code/issues/16923). **Partial matrix coverage; deterministic C2 remains unverified.** Four real-app lifecycle pairs, eight videos, 16 checkpoint pairs, 48 difference images. All captures are from T3 Preview against the actual isolated development app; no errors or sessions were fabricated.

Before: production files restored from [b5a226e49c](https://git.cafe/pingdotgg/t3code/commit/b5a226e49c52ecab4ddc2d678a7012d97e651a6a), fixture overlay retained at [a3da62d35b](https://git.cafe/pingdotgg/t3code/commit/a3da62d35b554e53cf41bcd5c31fde28b82ece62). This was a coordinated three-file source overlay, **not a checkout whose HEAD was the baseline**. Parent restarted the same isolated sandbox, baseline ready 01:04:17 UTC. After: clean production HEAD [a3da62d35b](https://git.cafe/pingdotgg/t3code/commit/a3da62d35b554e53cf41bcd5c31fde28b82ece62), implementation inherited from [ca0ff3e90c](https://git.cafe/pingdotgg/t3code/commit/ca0ff3e90c); parent restart ready 01:09:10 UTC. Identical dependencies/browser and fixture IDs were reused. Eight videos below are the final accepted set; earlier initial-head captures are superseded.

Browser/server capture ownership released to parent at 01:12:30 UTC. Folder restored. No further browser actions by this agent. Parent owns server session60622 and will stop it after the independent auditor's rebuild. No production changes, PR, comments, push or merge by this evidence task.

## Read this before interpreting the pixels

Dates were frozen through the committed fixture, but existing relative-time subscriptions still advanced; sidebar labels differ (18m/27m, 23m/32m, or now). Wide left sidebar width was not successfully normalized: baseline is visibly narrower than final head, moving header/composer/terminal origin and changing thread truncation. The source viewport dimensions and themes match, but these are **not strict pixel-identical fixtures**. The raw diffs retain all incidental changes; no masking, alignment, cropping or threshold suppression was applied. Narrow web sidebar is closed on both sides.

The named “cold” checkpoint means first open, and “warm” means subsequent New Terminal in the same page; those names describe actions and do not by themselves prove the surface/error causal ordering. Final W-L trace observes New Terminal's live surface ready at performance.now 52906.1ms and error write at 53198.2ms (292.1ms later), with no intervening reset. Baseline W-L has surface-ready with no error write and remains blank through cold/warm/stable. This is useful natural-race evidence, but error-arrival time and output/version invariants were not captured. Other cells often receive the error during setup. A browser-only attempt to delay actual WebSocket responses did not intercept the already-live socket (zero held/released events), and is **not a successful timing gate**. No deterministic mounted/error-only claim is made.

Recordings have a written timestamp narration below; no audio track was added. Offsets are tool-completion observations relative to the logged recording-start completion, rounded to 0.01s; browser-tool latency means they are approximate video seek points. External rename/restore events are recorded in the log and narrated; the filesystem action has no in-page animation. “Stable” is a second checkpoint without another mutation, not a complete truth-table test.

## Recordings and narrated timelines

Contact sheets (before left, after right; rows cold/warm/stable/recovery): [comparison-W-L.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9cb6ae96304559e5/comparison-W-L.png), [comparison-W-D.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5bda6ac0a6bbddac/comparison-W-D.png), [comparison-N-L.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/63accd25ebb198c2/comparison-N-L.png), [comparison-N-D.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d95785288a9f5843/comparison-N-D.png)

Upload integrity: all 80 public PNGs downloaded and matched local SHA-256; zero mismatches. A default Python User-Agent returned403; Mozilla User-Agent succeeded. Shell locale, exact font binaries, OS scaling and color profile were not measured. Source revision attribution follows the parent-controlled restart/restore messages, not an independent process source hash.

### W-L: 1440×900 CSS, light

**Before** — recording metadata start `2026-10-22T01:05:23.740Z`. Fixture was reset and folder renamed before recording. 3.60s click Toggle terminal drawer; 6.22s cold checkpoint; 9.10s click New Terminal while missing; 11.19s warm checkpoint; 12.95s unchanged-session checkpoint; 15.20s external rename restores exact original folder; 16.99s click New Terminal; send real bash printf command; 18.63s RECOVERED checkpoint; 20.50s stop.

[Before W-L lifecycle recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b50b1bf55c5e4d01/before-W-L.mp4)

**After** — recording metadata start `2026-10-22T01:10:08.925Z`. Fixture was reset and folder renamed before recording. 2.41s click Toggle terminal drawer; 6.08s cold checkpoint; 12.48s click New Terminal while missing; 15.18s warm checkpoint; 18.87s unchanged-session checkpoint; 22.39s external rename restores exact original folder; 24.29s click New Terminal; send real bash printf command; 25.88s RECOVERED checkpoint; 28.10s stop.

[After W-L lifecycle recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b875a32cd733403f/after-W-L.mp4)

### W-D: 1440×900 CSS, dark

**Before** — recording metadata start `2026-10-22T01:05:54.005Z`. Fixture was reset and folder renamed before recording. 1.78s click Toggle terminal drawer; 3.97s cold checkpoint; 7.71s click New Terminal while missing; 10.21s warm checkpoint; 12.88s unchanged-session checkpoint; 14.57s external rename restores exact original folder; 16.09s click New Terminal; send real bash printf command; 17.81s RECOVERED checkpoint; 19.69s stop.

[Before W-D lifecycle recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a1b0ff82e4e4a3de/before-W-D.mp4)

**After** — recording metadata start `2026-10-22T01:11:07.946Z`. Fixture was reset and folder renamed before recording. 3.70s click Toggle terminal drawer; 7.40s cold checkpoint; 11.96s click New Terminal while missing; 14.58s warm checkpoint; 18.89s unchanged-session checkpoint; 25.12s external rename restores exact original folder; 31.37s click New Terminal; send real bash printf command; 35.88s RECOVERED checkpoint; 38.89s stop.

[After W-D lifecycle recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2695b98b33003483/after-W-D.mp4)

### N-L: 390×844 CSS, light

**Before** — recording metadata start `2026-10-22T01:06:42.115Z`. Fixture was reset and folder renamed before recording. 1.40s click Toggle terminal drawer; 4.81s cold checkpoint; 7.52s click New Terminal while missing; 9.61s warm checkpoint; 12.39s unchanged-session checkpoint; 15.18s external rename restores exact original folder; 16.93s click New Terminal; send real bash printf command; 18.32s RECOVERED checkpoint; 21.59s stop.

[Before N-L lifecycle recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a1ddc443b2360504/before-N-L.mp4)

**After** — recording metadata start `2026-10-22T01:11:53.409Z`. Fixture was reset and folder renamed before recording. 1.71s click Toggle terminal drawer; 3.90s cold checkpoint; 7.98s click New Terminal while missing; 10.79s warm checkpoint; 12.37s unchanged-session checkpoint; 14.69s external rename restores exact original folder; 16.18s click New Terminal; send real bash printf command; 17.61s RECOVERED checkpoint; 19.51s stop.

[After N-L lifecycle recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5856a60e4aa85902/after-N-L.mp4)

### N-D: 390×844 CSS, dark

**Before** — recording metadata start `2026-10-22T01:07:24.521Z`. Fixture was reset and folder renamed before recording. 1.30s click Toggle terminal drawer; 3.40s cold checkpoint; 5.77s click New Terminal while missing; 7.86s warm checkpoint; 9.69s unchanged-session checkpoint; 11.78s external rename restores exact original folder; 13.78s click New Terminal; send real bash printf command; 14.67s RECOVERED checkpoint; 16.46s stop.

[Before N-D lifecycle recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3c10d99e9b59fe70/before-N-D.mp4)

**After** — recording metadata start `2026-10-22T01:12:19.548Z`. Fixture was reset and folder renamed before recording. 0.81s click Toggle terminal drawer; 2.53s cold checkpoint; 4.65s click New Terminal while missing; 6.71s warm checkpoint; 8.31s unchanged-session checkpoint; 9.83s external rename restores exact original folder; 11.03s click New Terminal; send real bash printf command; 12.20s RECOVERED checkpoint; 13.12s stop.

[After N-D lifecycle recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ebfc051f5b9c2fb3/after-N-D.mp4)

## Visible differences, inspected across all 16 checkpoint pairs

- **W-L cold/warm/stable:** baseline terminal is blank; final head displays `[terminal] Terminal folder does not exist: /tmp/triage-16923/project. Restore the folder at this path before retrying.` once. On wide layouts the full error fits one terminal line. Warm/stable show two single-session groups with Terminal 2 selected; the intended active session matches across revisions. First open uses overlay controls; additional sessions reserve the right sidebar. Wide sidebar geometry, text truncation, relative timestamps and resulting main-column/composer shifts differ as disclosed above. The cold title tooltip differs; stable title tooltip is present on both. Cursor position follows the newly printed line.
- **W-D cold/warm/stable:** baseline prints the old shorter `Terminal cwd does not exist: /tmp/triage-16923/project`; final prints the full restore instruction. Both fit one terminal line at this width. Session/group identity and selected Terminal 2 match at warm/stable. Same wide geometry/time differences apply. Final cold has a title tooltip absent in baseline cold; both stable frames have it. Dark theme remains dark throughout.
- **N-L and N-D cold:** old text wraps to two lines, full new instruction wraps to three; actual folder path is retained. Overlay terminal controls cross the first text line on both revisions, obscuring a small portion at the right; originals retain this existing layout limitation. The baseline title tooltip is present and final cold tooltip absent. Caret moves down with the additional line; light cold cursor blink/phase also differs. Header, composer and drawer geometry otherwise visually match.
- **N-L and N-D warm/stable:** reserved group sidebar reduces text area. Old error wraps to three lines and full restore instruction to five; no horizontal scrolling was introduced in these captures. Terminal 2 is selected in both. Warm title tooltip is absent on both, stable tooltip present on both. Cursor follows final wrapped line. Narrow navigation/header/composer and terminal controls visually match outside tooltip/cursor/text pixels.
- **Recovery, all four cells:** both sides show one `RECOVERED` marker and the `fixture$` prompt from a real new bash PTY; Terminal 3 selected, three single groups, New Terminal tooltip visible. Both narrow recovery pairs (N-L and N-D) are exactly pixel-equal at zero threshold. Wide recovery retains sidebar geometry/time/composer displacement. Recovery allocates a new terminal, and does not establish automatic retry, preserved prior-session error history, or original terminal focus behavior. Input was sent through the actual terminal write RPC, not typed via keyboard; this proves live shell input/output, not keyboard-focus correctness.
- No toast was visible in the named still endpoints. No claim is made that no transient toast existed during the videos. No changes were observed to header/composer labels or terminal controls beyond the disclosed shifts, truncation, tooltips and cursor phase. These observations are visual inspection, not a guarantee that every differing pixel has a known cause.

## Checkpoints and difference method

Original whole-viewport screenshots below are unmodified. Diff0 is absolute RGB difference, gain1, threshold0; Diff0 ×4 is a clipped fourfold diagnostic amplification. DiffT8 is white where max absolute RGB channel delta is strictly >8/255. Counts are changed pixels / total pixels, not changed channels. No mask or antialias exclusion. `python3 diff.py` regenerates the files with Pillow/NumPy. Video metadata and all raw observations are in the final manifest and evidence bundle.


W-L = 1440×900 CSS light; W-D = 1440×900 CSS dark; N-L = 390×844 CSS light; N-D = 390×844 CSS dark. Narrow cells are web.

| Cell / checkpoint | Before [b5a226e49c](https://git.cafe/pingdotgg/t3code/commit/b5a226e49c52ecab4ddc2d678a7012d97e651a6a) (production overlay) | After [a3da62d35b](https://git.cafe/pingdotgg/t3code/commit/a3da62d35b554e53cf41bcd5c31fde28b82ece62) | Diff0 gain1 [b5a226e49c](https://git.cafe/pingdotgg/t3code/commit/b5a226e49c52ecab4ddc2d678a7012d97e651a6a)→[a3da62d35b](https://git.cafe/pingdotgg/t3code/commit/a3da62d35b554e53cf41bcd5c31fde28b82ece62) | Diff0 ×4 [b5a226e49c](https://git.cafe/pingdotgg/t3code/commit/b5a226e49c52ecab4ddc2d678a7012d97e651a6a)→[a3da62d35b](https://git.cafe/pingdotgg/t3code/commit/a3da62d35b554e53cf41bcd5c31fde28b82ece62) | DiffT >8/255 [b5a226e49c](https://git.cafe/pingdotgg/t3code/commit/b5a226e49c52ecab4ddc2d678a7012d97e651a6a)→[a3da62d35b](https://git.cafe/pingdotgg/t3code/commit/a3da62d35b554e53cf41bcd5c31fde28b82ece62) | Changed pixels: Diff0 / DiffT |
|---|---|---|---|---|---|---|
| W-L / cold | ![before-W-L-cold.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8721f294a6d1c63f/before-W-L-cold.png) | ![after-W-L-cold.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a41f3dba2b7d58ff/after-W-L-cold.png) | ![Diff0-W-L-cold.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3cd90770e86860fe/Diff0-W-L-cold.png) | ![Diff0-gain4-W-L-cold.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c6f2b7afaaf756af/Diff0-gain4-W-L-cold.png) | ![DiffT8-W-L-cold.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5681171afa4feb17/DiffT8-W-L-cold.png) | 68316/1024000 (6.671484%) / 22027/1024000 (2.151074%) |
| W-L / warm | ![before-W-L-warm.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f84ff057a5919e39/before-W-L-warm.png) | ![after-W-L-warm.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9e834977027e4460/after-W-L-warm.png) | ![Diff0-W-L-warm.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c026aa162d83ecad/Diff0-W-L-warm.png) | ![Diff0-gain4-W-L-warm.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cdc257be143163e1/Diff0-gain4-W-L-warm.png) | ![DiffT8-W-L-warm.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cf154c7ebda9bdeb/DiffT8-W-L-warm.png) | 64702/1024000 (6.318555%) / 21742/1024000 (2.123242%) |
| W-L / stable | ![before-W-L-stable.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6a09e0a048bbcd6d/before-W-L-stable.png) | ![after-W-L-stable.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6159d3cc216bedb4/after-W-L-stable.png) | ![Diff0-W-L-stable.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/984c1b01560bacb8/Diff0-W-L-stable.png) | ![Diff0-gain4-W-L-stable.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/673027431f82c6bc/Diff0-gain4-W-L-stable.png) | ![DiffT8-W-L-stable.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7922a0193d6e88ac/DiffT8-W-L-stable.png) | 68293/1024000 (6.669238%) / 22968/1024000 (2.242969%) |
| W-L / recovery | ![before-W-L-recovery.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/94db82298925a5be/before-W-L-recovery.png) | ![after-W-L-recovery.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9ac5aa4c62fc81d6/after-W-L-recovery.png) | ![Diff0-W-L-recovery.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/335b05a3cda799bb/Diff0-W-L-recovery.png) | ![Diff0-gain4-W-L-recovery.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/abaa4c29d8cd2126/Diff0-gain4-W-L-recovery.png) | ![DiffT8-W-L-recovery.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ca6377fcc058ef73/DiffT8-W-L-recovery.png) | 62180/1024000 (6.072266%) / 19657/1024000 (1.919629%) |
| W-D / cold | ![before-W-D-cold.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/98694f8aadbc2bac/before-W-D-cold.png) | ![after-W-D-cold.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a5edf9a31376065b/after-W-D-cold.png) | ![Diff0-W-D-cold.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8342e30478bb7e99/Diff0-W-D-cold.png) | ![Diff0-gain4-W-D-cold.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8ea791a65f45c5e3/Diff0-gain4-W-D-cold.png) | ![DiffT8-W-D-cold.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3265fb01a5bfcd4d/DiffT8-W-D-cold.png) | 63644/1024000 (6.215234%) / 24569/1024000 (2.399316%) |
| W-D / warm | ![before-W-D-warm.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/573c0e3aa19627d0/before-W-D-warm.png) | ![after-W-D-warm.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2499e1ac5ddaa05d/after-W-D-warm.png) | ![Diff0-W-D-warm.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d575b44e43174be3/Diff0-W-D-warm.png) | ![Diff0-gain4-W-D-warm.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bb0e041d7ea6fe81/Diff0-gain4-W-D-warm.png) | ![DiffT8-W-D-warm.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e336b1212e9809da/DiffT8-W-D-warm.png) | 65561/1024000 (6.402441%) / 25165/1024000 (2.457520%) |
| W-D / stable | ![before-W-D-stable.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3808c133e5037c9f/before-W-D-stable.png) | ![after-W-D-stable.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1b2de55c2dd2b5b2/after-W-D-stable.png) | ![Diff0-W-D-stable.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bbec327595ad60be/Diff0-W-D-stable.png) | ![Diff0-gain4-W-D-stable.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4ef294c42abe8928/Diff0-gain4-W-D-stable.png) | ![DiffT8-W-D-stable.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b57454d0604d778b/DiffT8-W-D-stable.png) | 63993/1024000 (6.249316%) / 25120/1024000 (2.453125%) |
| W-D / recovery | ![before-W-D-recovery.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9eeb03b3ed5eea22/before-W-D-recovery.png) | ![after-W-D-recovery.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0a06b5f42741ac9e/after-W-D-recovery.png) | ![Diff0-W-D-recovery.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fee3f90dfb9113ec/Diff0-W-D-recovery.png) | ![Diff0-gain4-W-D-recovery.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/88b78dc8a6627b44/Diff0-gain4-W-D-recovery.png) | ![DiffT8-W-D-recovery.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f4752c518c7e0c2d/DiffT8-W-D-recovery.png) | 57174/1024000 (5.583398%) / 20936/1024000 (2.044531%) |
| N-L / cold | ![before-N-L-cold.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cbea602cf969603f/before-N-L-cold.png) | ![after-N-L-cold.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c4b3fcc5c42f4cfe/after-N-L-cold.png) | ![Diff0-N-L-cold.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0fa117e744581cf8/Diff0-N-L-cold.png) | ![Diff0-gain4-N-L-cold.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3bb560c0b35ecf76/Diff0-gain4-N-L-cold.png) | ![DiffT8-N-L-cold.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/74627c5c8aebaed8/DiffT8-N-L-cold.png) | 39584/1316640 (3.006441%) / 18072/1316640 (1.372585%) |
| N-L / warm | ![before-N-L-warm.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/84fb7e046cfacbb1/before-N-L-warm.png) | ![after-N-L-warm.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/43dd92e45f4092d9/after-N-L-warm.png) | ![Diff0-N-L-warm.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f1ff5b58f19cb4af/Diff0-N-L-warm.png) | ![Diff0-gain4-N-L-warm.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5796ea90e9426ba9/Diff0-gain4-N-L-warm.png) | ![DiffT8-N-L-warm.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8e4fc90bde777268/DiffT8-N-L-warm.png) | 14619/1316640 (1.110326%) / 13851/1316640 (1.051996%) |
| N-L / stable | ![before-N-L-stable.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a88413aeacd36be4/before-N-L-stable.png) | ![after-N-L-stable.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6c93d1ac73173ad6/after-N-L-stable.png) | ![Diff0-N-L-stable.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6b6893ae883a5b74/Diff0-N-L-stable.png) | ![Diff0-gain4-N-L-stable.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f031b422d96bf0c1/Diff0-gain4-N-L-stable.png) | ![DiffT8-N-L-stable.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f51352f9816828f5/DiffT8-N-L-stable.png) | 14125/1316640 (1.072807%) / 13356/1316640 (1.014400%) |
| N-L / recovery | ![before-N-L-recovery.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7ce182d0572a4b1d/before-N-L-recovery.png) | ![after-N-L-recovery.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b3f0ede742f294dc/after-N-L-recovery.png) | ![Diff0-N-L-recovery.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/03b16cb47714dc5b/Diff0-N-L-recovery.png) | ![Diff0-gain4-N-L-recovery.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/24cb6f98d36006e5/Diff0-gain4-N-L-recovery.png) | ![DiffT8-N-L-recovery.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/528626374341407d/DiffT8-N-L-recovery.png) | 0/1316640 (0.000000%) / 0/1316640 (0.000000%) |
| N-D / cold | ![before-N-D-cold.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/83b0435bd377fb4f/before-N-D-cold.png) | ![after-N-D-cold.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8908446d7e3bb641/after-N-D-cold.png) | ![Diff0-N-D-cold.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/76798a762f4f383b/Diff0-N-D-cold.png) | ![Diff0-gain4-N-D-cold.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0ca83d3a2c198911/Diff0-gain4-N-D-cold.png) | ![DiffT8-N-D-cold.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6cf3b1a6cbd03daa/DiffT8-N-D-cold.png) | 38899/1316640 (2.954414%) / 15988/1316640 (1.214303%) |
| N-D / warm | ![before-N-D-warm.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e54b37e9d8d77ee9/before-N-D-warm.png) | ![after-N-D-warm.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/655318f36b816563/after-N-D-warm.png) | ![Diff0-N-D-warm.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9eadee543ac3b8f3/Diff0-N-D-warm.png) | ![Diff0-gain4-N-D-warm.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b259d617496f002f/Diff0-gain4-N-D-warm.png) | ![DiffT8-N-D-warm.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e162b245992da1f0/DiffT8-N-D-warm.png) | 15151/1316640 (1.150732%) / 14214/1316640 (1.079566%) |
| N-D / stable | ![before-N-D-stable.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5840a857f1817b57/before-N-D-stable.png) | ![after-N-D-stable.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/88595de02c9923c9/after-N-D-stable.png) | ![Diff0-N-D-stable.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8da366f7d73daa70/Diff0-N-D-stable.png) | ![Diff0-gain4-N-D-stable.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/56d5d6ac5443b6d1/Diff0-gain4-N-D-stable.png) | ![DiffT8-N-D-stable.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fcae924b17733ebc/DiffT8-N-D-stable.png) | 14085/1316640 (1.069769%) / 13144/1316640 (0.998299%) |
| N-D / recovery | ![before-N-D-recovery.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/04123459ec5f1b28/before-N-D-recovery.png) | ![after-N-D-recovery.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9b4a1f4b1b775886/after-N-D-recovery.png) | ![Diff0-N-D-recovery.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a64497059b7022d8/Diff0-N-D-recovery.png) | ![Diff0-gain4-N-D-recovery.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/54bdd90a91b86bc2/Diff0-gain4-N-D-recovery.png) | ![DiffT8-N-D-recovery.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a1ad3331acd8d5e4/DiffT8-N-D-recovery.png) | 0/1316640 (0.000000%) / 0/1316640 (0.000000%) |

## Matrix disposition

| Row | Result within this task |
|---|---|
| C1 | Partial: first-open copy/wrapping captured all four cells; exact cold error-before-ready classification not guaranteed |
| C2 | **U for deterministic mounted/error-only proof**; four New Terminal recordings, W-L blank baseline/full head and natural surface-ready/write trace, missing error-arrival/counter invariant |
| C3 | Partial: no-op endpoint and recovery recorded; **U** null/same/different-error transitions, error clear/retry history and selection invariants |
| C4 | Observed all four: restore exact folder, new terminal, real RECOVERED marker; **U** preserved prior error history and keyboard focus |
| C5 | Partial: toolbar toggle and New Terminal observed; **U** palette, configured keybindings, splits, focus aliases |
| L1 | Partial: single→multiple session/group sidebar observed; **U** complete empty→single→multi→empty, group switching/remount |
| L2 | **U** horizontal/vertical split, focus, close and cap |
| L3 | **U** right panel, focus/return, drawer resize |
| L4 | **U** hidden/persistent, hide/show, thread switch, group remount, session-key changes |
| L5 | **U** long Unicode worktree path, launch overrides/runtime env, script/code-block Run; long fixture seeded only |
| L6 | Partial real shell output; **U** selection, append/reset/version0, status/exit/close/reconnect, WASM fallback |
| H1 | **U** exact mounted guard truth table; no harness created |
| O1 | **U** onboarding install/setup terminal and later mounted attach race |
| S1 | Source exclusion from proof matrix; not a runtime pass |
| P1 | **U** Electron desktop and WSL2 unavailable in this capture task |
| P2 | **U** iOS and Android; narrow WEB is not native mobile evidence |
| P3 | **U** remote, relay, tunnel and multiple environments; local single environment only |
| P4 | Source exclusion for providers/scheduler per proof matrix; no provider/agent/MCP/scheduler runtime pass |
| D1 | **U** NotDirectory/Stat/other error-only variants, denied/read-only grants, null project/cwd, cap/malformed UI-state behavior |

The requested full minimum C+L matrix is not complete: four C pairs supplied, all four L pairs and optional H remain uncaptured. Deadline and unstable browser/server setup consumed the available session; those gaps are explicit rather than silently passed.


# Evidence capture limitations

Task deadline: 2026-10-22 01:26 UTC. Started 00:26 UTC.

Head production source: ca0ff3e90c; fixture commits b3cd960504 and a3da62d35b.
Base requested: b5a226e49c. The parent owns the dev server and source switching.
No PR, comment, push, merge, or implementation edit was performed by the evidence agent.

## Coverage boundary

Four head real-app lifecycle recordings cover opening a terminal with a missing
project directory, New Terminal while missing, restoring the original directory,
and New Terminal plus real shell output RECOVERED. No synthetic error strings were
injected. Surface observation wraps actual Ghostty calls without replacing behavior.

Cold classification is based on the initial missing-folder open. Surface setup
and an asynchronous attach can race: a write immediately after surface-ready can
come from setup reading the latest error. Do not claim every New Terminal attempt
proves the changed warm effect. Final normalized wide/light head observed a write 292.1 ms after
surface-ready with no output reset, while other cells often wrote during setup.
No error-arrival timestamp was captured, so exact causal ordering remains limited.

Unverified portions: C2 deterministic mount-before-error in every cell; C3 exact
null/same/different-error truth table; C5 palette and keybinding aliases; L1 empty
return/group switching beyond incidental multi-session sidebar; L2 horizontal and
vertical splits/cap; L3 right panel and resize; L4 hidden/remount/thread switching;
L5 long worktree path/script/code-block Run; L6 selection, exit, append/reset and
reconnect regression; H1; O1 onboarding; P1 Electron and WSL2; P2 iOS and Android;
P3 remote/relay/tunnel/multi-environment; D1 alternative path errors/grants.
S1 and P4 remain source exclusions from the proof matrix, not runtime passes.

## Environment

Linux 6.1.102 x86_64; Google Chrome 154.0.8037.92; SwiftShader Vulkan renderer;
DPR 2; visualViewport.scale 1 (100% page zoom); 24-bit screen color. CSS viewports:
1440x900 wide and 390x844 narrow. Narrow is web, never native mobile proof.
T3 Preview saved wide PNGs at 1280x800 and narrow PNGs at 780x1688. Wide video is
2880x1800; narrow video is 780x1688. Originals are retained without resizing.
MP4/H.264 uses variable frame rate; ffprobe metrics are in video-environment.json.
No claim of a fixed 30 fps is made.

Theme preferences explicitly light/dark through the app's persisted theme keys
and storage event. Default terminal size 13; app font system sans; terminal family
fallback includes Liberation Mono and Symbols Nerd Font Mono. Exact resolved font
binary versions and OS font scaling/color profile were not independently measured.
Reduced motion false. Animations and cursor blinking remain enabled; cursor phase
is not locked and contributes unexplained pixels. Scroll coordinates 0,0.
Date replaced in the page after authentication with 2026-10-21T12:00:00Z; monotonic
performance time and timers remain real. Shell is real bash with original startup
prompt; recovery input unsets PROMPT_COMMAND, sets PS1 to fixture$ and clears its
own terminal before printf RECOVERED. The recording retains the original shell
prompt during startup. No personal files or provider output were included.

## Friction

FRICTION AUTH: parent login did not authenticate this agent tab; minted a fresh
one-time token against isolated .t3 and filled/continued privately. No token output
or screenshot is published.

FRICTION SERVER: check/test temporary files repeatedly restarted the watched
server, yielding splash, 502, 503 and reconnect states. Parent stopped test activity;
captures began only after the server stabilized.

FRICTION PREVIEW: multiple evaluate timeouts and one server-browser disconnect;
kept using T3 Preview per test-t3-app. No alternate browser was launched.

FRICTION FIXTURE: close-before-unmount could recreate an attached PTY. Fixture
reset was corrected to clear the UI first, wait two animation frames, then close
the recorded sessions. Only fixture source/data/README were committed.

FRICTION TIMING: natural attach timing frequently made a nominal New Terminal
attempt cold at Ghostty readiness. This is disclosed as incomplete warm proof.

FRICTION COVERAGE: broad layout/caller/native/transport rows remain unverified.

FRICTION COMMUNICATION: initial progress was sent as commentary and an async
question; later readiness was also explicitly steered to the parent thread.


## Fixture commits and verification

Only reproducible fixture source/data/README were committed, under `apps/web/test/fixtures/missing-terminal-folder/`: [b3cd960504](https://git.cafe/pingdotgg/t3code/commit/b3cd960504bd3cb5e153cb17ad3db88473e45c42), [a3da62d35b](https://git.cafe/pingdotgg/t3code/commit/a3da62d35b554e53cf41bcd5c31fde28b82ece62). Fixture Node syntax, targeted lint and format passed. Parent separately reported 29 affected-package typechecks and six focused tests passed; these are parent results, not re-run during capture. No evidence captures or agent scratch files committed. The README contains exact seed/browser import/reset commands.
