# Prompt recall capture index — partial evidence

[Issue #10056](https://github.com/pingdotgg/t3code/issues/10056), [PR #24116](https://github.com/pingdotgg/t3code/pull/24116). Evidence capture only; no merge-readiness claim.

Before: `fef851bee09102641061aeb78a3092c2ba2c72ab`. After: `b5d438e75bc09811186610d94a58b6636769d0a4`. Both checkout SHAs checked. All c58 baseline captures excluded. No after captures from 22f2. Web source unchanged between 22f2 and b5d per parent; captures were taken only after b5d readiness.

Rendering: T3 collaborative preview; Chromium 154 on Linux; desktop UA, NO device emulation; DPR 2; root font 16px; text-size-adjust 100%; 1440×900 and 390×844 CSS pixels, light/dark. 390 is responsive WEB, never native. Same profile/settings on both. Main sidebar/details collapsed; 390 editor expanded. Screenshots are full viewport at DPR2. Pair sheets scale whole screenshots for review; full originals and full-resolution diffs are in the bundle.

Clocks: an experimental client Date freeze was used only during baseline core sends/first light recall; server-owned persisted timestamps did not freeze. Remaining captures use real clocks. Thus time-dependent pixels are NOT identical and this requirement remains unmet. Source data/entered strings match, but environment IDs, generated IDs, server timestamps, and project workspace paths differ. Project display title normalized to Synthetic recall via supported command. Do not claim pixel identity outside intended changes.

Protocol fixture: repository Codex mock peer, no model output, not real Claude/Codex inference. Mock initialize reports 0.0.0, hence the same visible provider warning. Setup uses authenticated WS v2 commands; normal sends and image/file sends use real composer/attachment handlers. Legacy records use message.dispatch with omitted provenance, explicitly a historical-record fixture intake. Baseline schema drops composerRecall from invalid/generated-only fixtures; persisted transcripts show this. No projections/DB writes. Read-only isolated DB snapshots contain synthetic records only.

## Coverage

Complete matrix rows: **0/14**. Partial rows: **3/14** (W1, W2, W4). Unverified rows: **11/14**. Four web rendering variants of the captured core/legacy subset have paired recordings/stills. This does NOT complete all milestones in W1/W2.

| Row | Captured / remaining |
|---|---|
| W1 | Partial: ordinary, literal Ultrathink prefix, review XML, authored whitespace/newline/emoji, literal plan/bootstrap sends and recall; four width/theme recall variants. Real Claude-added effort prefix, range provenance, unsent nonempty draft restoration unverified. Send recording itself only 1440 light; no per-envelope repeat send. |
| W2 | Partial: historical terminal/element/preview/review XML, terminal label, unbacked link with whitespace, duplicate control, invalid range fallback, generated-only exclusion. Older legacy prefix/plan seeds were not reached in traversal; attributed automation/agent and assistant filters not seeded; history order/draft restoration not established. No claim full traversal. |
| W3 | Unverified: combined backed contexts/expired terminal/direct annotation fixture not provisioned in time. |
| W4 | Partial: real image-only and file-only upload/send plus recall recordings at 1440 light. Persisted empty recall shown after; all four visual envelopes and download action missing. |
| W5 | Unverified: held active run/queued edit fixture not provisioned; no no-op/edit/attachment drain interaction captured. |
| W6 | Unverified: no two-model fanout with distinct effort decoration fixture. |
| W7 | Unverified: no proposed-plan feedback/empty implementation fixture. Literal plan text is a control, not plan-action coverage. |
| W8 | Unverified: no new-thread plan implementation action. |
| W9 | Unverified: no pending approval fixture/plain feedback or blocked attachment/context retries. |
| W10 | Unverified: no rewind/restore interaction. |
| M1 | Not captured here; parent assigned native evidence to separate agent. No native result imported. |
| M2 | Not captured here, including recovered persisted pending draft milestone; separate agent owns native evidence. |
| M3 | Not captured here; separate agent owns native evidence. |
| L1 | Unverified: no old-host inlineMessageContext=false fixture on either client. |

Additional server-only proof/tests: not run or captured by this evidence agent. Parent reports focused tests separately; those transcripts must be linked separately and not inferred from screenshots.

## Narrated steps and timestamps

Core send recording: in order S ordinary → U literal Ultrathink → R literal review XML → W whitespace/emoji → P literal plan → B literal attachment-bootstrap sentence. Each uses real composer Submit and waits for its persisted echo/available settled composer. Recall recordings: start empty, ArrowUp at editor visual start, capture settled result, repeat; then ArrowDown at visual end back toward empty. Before core returns W,R,U-without-prefix,S; after returns B,P,W,R,U,S. The first baseline attempt with duplicate intermediate screenshots is excluded; reliable pass is explicitly named.

Legacy intake: legacy.json plus legacy-seed.js records the exact typed commands. Legacy recordings start empty and traverse older prompts; individual checkpoint texts/DOM, absolute UTC capture times, and screenshot paths are in capture-manifest.json. Repeated checkpoints at oldest reached text are retained honestly, not presented as additional coverage. Core and legacy are separate threads on each revision.

Attachment recording: inject synthetic PNG/file bytes into real file input, observe attachment preview, Submit image-only, then repeat text-file-only. This tests the production file-input handler/upload/send path, not OS file-picker automation. Recall after those two sends skips generated-only records: before reaches older whitespace, after reaches the older *literal* bootstrap control, which is correctly retained. These differing destinations are expected from the core behavior change.

Video files retain tool start/stop chronology; manifest has checkpoint UTC times and recording completion UTC. No audio narration; these written steps and checkpoint transcripts supply narration. Parent should review originals, not infer all interactions from the contact sheets.

## Diff method and visible changes

Each paired sheet is Before | After | amplified zero-threshold diff | threshold-16 diff. Full-resolution diffs compare max absolute RGB-channel delta at each pixel. At threshold 0 EVERY nonzero delta becomes full red (binary amplification, including a one-level delta). Threshold16 marks deltas >16/255 red. Background is a pale grayscale reference. No masks/crops. diff-stats.json lists changed pixel counts. The first-ArrowUp legacy row compares the same action: generated fixture before versus invalid-range prompt after (generated-only skipped). Other rows pair named recalled fixture milestones, not identical ArrowUp counts.

Visible changes: literal prefix/review/XML/links and authored whitespace survive recall after; larger recalled multiline content changes composer height and visible timeline area; unknown terminal/unbacked references render as inline badges in the rich editor; generated-only first recall moves to invalid-range text after. Literal plan/bootstrap are now recalled after in the core recording. Ordinary control is retained in both. Supplementary differences include server timestamps (not frozen), caret location/blink, scroll/reflow caused by composer height, and transient title-generation/settled status where visible. Project icon/title were normalized for after capture, but any remaining header differences must be judged from full images. No 'nothing else changed' claim, even above threshold16; zero-threshold differences remain in controls.

## FRICTION

Baseline correction invalidated early c58 captures; final after changed twice before release. After server repeatedly returned502/refused14920 while test-created Vite config triggered nodewatch restarts; seeding resumed once stable. No servers were started/stopped by capture agent. 390 reload initially collapses composer, so Expand composer is required; resizing an already-open desktop composer leaves it expanded. Caret movement needs rendering frames between Home and ArrowUp. Legacy traversal did not reach all seeds; cause not established, so order/oldest coverage remains unverified. Native was reassigned to another bounded agent; this agent started no simulator/build. Only /tmp scratch and supported commands against isolated .t3 state changed; no implementation, commits, forge comments, PR edits, push or merge.

PACKAGING CUTOFF: budget expired during slow image generation. Only four CORE paired sheets completed (1440/390 light/dark). Legacy paired sheets/diffs did NOT complete; legacy raw captures and recordings remain in bundle. diff-stats.json was not finalized. No legacy diff claim. Upload/packaging only after cutoff; no further capture. Core zero/16 diffs completed. Video contact-sheet review did not finish; original recordings have not all been frame-reviewed. The image review covers the delivered core sheets; this review limitation remains explicit.
![core-1440-light-paired.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/546bca68309ce64c/core-1440-light-paired.png)
![core-1440-dark-paired.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e75c70cfd1d5fed9/core-1440-dark-paired.png)
![core-390-light-paired.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/47767e0da56899f6/core-390-light-paired.png)
![core-390-dark-paired.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/dce547b9f00f909e/core-390-dark-paired.png)
[evidence-bundle.tar.gz](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a1a0424aa10b55b7/evidence-bundle.tar.gz)
