# Rebuild the after recapture

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

Captured revision: [0148848580](https://git.cafe/pingdotgg/t3code/commit/01488485806f410e664a35a738df2bbee28517cc). Captures had already been recorded when the lead announced [309f4c73a5](https://git.cafe/pingdotgg/t3code/commit/309f4c73a5a73e973d23e15fb64a401d3201e97c). That later commit only resets line-link reveal bookkeeping when the scroll container changes; none of these rows opens a file through a line link. All before artifacts are reused unchanged from the prior evidence set.

1. Create an isolated checkout next to the main checkout, at the captured revision. Run `vp install`. Run `seed.sh /absolute/scratch/run-<timestamp>-after`; each attempt uses a new run directory. The generated fixture is an independent tiny git repository; no real database or application data is copied.
2. Start with `T3CODE_DEV_SEED=0 NODE_OPTIONS=--require=<absolute-path>/freeze-clock.cjs vp run dev`. Read ports from the dev-runner line and pair a dedicated preview browser using its startup pairing URL. Keep pairing URLs, credentials, server logs and install logs private. Never set VITE_HTTP_URL or VITE_WS_URL. The recorded ports were web 6918 and server 14958.
3. Use T3 Browser preview, Chromium 156.0.0.0 on Linux x86_64, no device emulation, DPR 2, 100% zoom, default font scaling (root 16px). Resize to 1600 by 1000 CSS pixels, dark. Evaluate browser-prelude.js after pairing and every full navigation. This freezes wall time at 2026-11-09T16:00:00Z and suppresses transitions/animations/caret without changing timers or monotonic time. The tool cannot override prefers-reduced-motion, so identical CSS suppression is used on both sides. Full-surface PNG exports are tool-scaled to 1280 by 800; native videos are 3200 by 2000. Light 1440 by 1000 exports to 1280 by 889.
4. Add project using Local folder and the generated repo-fixture path. Choose dev Replay and its neutral Multi turn fixture before recording. Send `Reply with the single word ok.`, wait for `first fixture turn complete`, rename Thread A. Create B with `Reply with the single word yes.`, wait and rename Thread B. The New thread helper must wait for the /draft/ route before typing. Disable thread details. Return to A, open right panel / Files / math.ts, hide explorer. Default file panel width is 540 CSS pixels, source scrolled to top. Frozen equal timestamps sort synthetic threads by ID; recreate through the actual UI if necessary so B precedes A, matching the unchanged before frames. Expand Working if collapsed.
5. Instantiate captureDriver with the preview-tool facade, tab ID, browser-prelude text and an output collector. Replay action-plans.json minimum. It adds A at L2, switches to empty B, adds B at L6, returns through A/B/A, reloads and closes/reopens the actual file tab. Main recording: A submit by 2.4s; empty B at 13–25s; B submit/return A at 26–28s; final B/A at 50–52s; Ctrl+R at 66s does not navigate this browser; same-URL navigation at 84.5s; source restored by 92s; Close math.ts at 113s; reopen at 120–122s. The continuous recording is retained unchanged.
6. For a normal location.reload supplement, start recording in the same A state, call location.reload(), wait 1.5 seconds, reapply browser-prelude, await synchronized A messages and comment, then capture M2. Close the actual math.ts tab and reopen using right panel / Files / math.ts, outside click, capture M3, stop. No comment is submitted in this supplement. It removes the main recording's cached relative-time label artifact from final stills. Capture the light key still from this restored A state at 1440 by 1000, light, without resubmission.
7. For main O3 restore original math.ts through actual editor input, then create a fresh completed Multi turn thread called Edit proof. Open source. Replay the O3 plan: add A L2, focus editor, Control+Home then Enter to insert one first blank line; outside click and allow save; sidebar B then Edit proof; focus source, Control+Z, outside click. At 38–42s the comment and chip remain L3 and the blank first line remains. The remounted editor has no prior edit to undo.
8. For the normalized O3 still, restore the original source through editor input and confirm the saved file matches the seed. Create fresh completed Remap proof, open math.ts, hide main sidebar. Start supplemental recording, add L2 and insert a first blank line, allow save, navigate to actual B route and back, reapply prelude early after each full navigation, await synchronization. Press Undo after returning and capture. The source and body observations before/after Undo are in o3-observations.json. Main recording proves sidebar target switching; the supplement establishes the matching normalized still. Supplemental tool completion times: edit 2s, B navigation dispatch 14.5s, return dispatch 20s, Undo 26.4s; the recording ends around 29s. Inspect 26–29s for restored L3 and Undo. Browser recording frames may compress idle gaps between tool calls; use the contact sheet and actual tool timing log together.
9. Before each retained still, wait for fonts and resource idle, refuse loading/syncing states, and take two full-surface frames 500ms apart. Verify they are pixel-identical using PIL. make-diffs.py compares existing before originals to new after originals, generating Diff0 absolute RGB x32 at zero threshold and DiffT maximum-channel difference >16/255, without crop, mask, alignment or normalization. Review every retained still, diff and sheet, plus milestone frames from recordings.
10. Upload only synthetic captures and scripts with ghdrop upload -m. build-evidence.py combines the prior public before/optional links with new recapture links. Stop servers by owners of their ports after verifying /proc/<pid>/cwd belongs to this checkout, close owned browser tabs and remove the temporary worktree. Keep uploaded originals and evidence.md for the lead.

O1, O2, O4, O5, O6 were intentionally reused at [34e0e58371](https://git.cafe/pingdotgg/t3code/commit/34e0e583712d760bf3dc5d5ea4772a4e4ec6345f). Their original reproduction scripts remain linked in the evidence. The production diff from that revision to the captured revision only changes thread-switch handling to remount the editable surface; stored-comment restoration on mount is unchanged. No source changes or commits were made for this capture task.
