# History-boundary reproduction

Run each checkout's own server with T3CODE_DEV_SEED=0 and its own fresh state. Put seed.mjs and the executable claude-agent-acp fixture in the same scratch directory. Run `node seed.mjs <checkout> <server-port>` separately for base and head. The script sends real RPC commands; the fixture sends ACP protocol events through the real provider adapter. No response interception or database edits are used.

The two synthetic threads create an agent, then resume it during a second turn with 300 failed synthetic shell commands and a final reply. Each turn finishes after an 11-second fixture delay. Earlier context pushes the original prompt beyond the server's 1 MiB history window. The partial scenario additionally retains two earlier command items and their reply before the resumed card.

Open each proofready thread in the real browser client. Use a 1280 x 800 CSS viewport and light theme. Collapse sidebar and thread details. Reload and wait for Load earlier turns and the completed reply. Blur the composer. Capture twice 500 ms apart and require identical PNGs. Record the reload as well.

Base: the current Worked for control precedes the current prompt. Head: current prompt, Worked for, and reply appear in that order. The partial scenario retains its earlier Worked for and reply above these.

Recordings have a white rectangle over the upper-right notification region to redact environment labels. The standalone base recording retains the synthetic thread sidebar, unlike the head recording; use the matching sidebar-collapsed stills for layout comparison. Recordings are supplementary reload evidence, not timing benchmarks.

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