PR #23724 real-development verification, Linux Boat VM, 2026-11-10 baseline: github/main d756fed7aaac06134bc68cbe0047e6f14b0e9aa2 PR: acc79aa229f95275eabc16e2a76b86219bb54ca0 (exact head, no source changes) Setup git worktree add ../main github/main timeout 600 vp i # main, passed setsid nohup vp run dev # background; main ports 16733/8693 git switch --detach github/pr-23724 timeout 600 vp i # PR, passed stopped main using captured process-group PID 154938 copied the task's isolated app-created development state after shutdown setsid nohup vp run dev --home-dir /home/user/t3code/.t3 # background; PR ports 13773/5733 Real client/provider path Playwright 1.60.0 from repo dependencies, /usr/bin/google-chrome. Created acp-history-verification Git repository using the app's New project flow. Added a local ACP provider in Settings > Providers, executable codex-acp 0.16.0. Used real gpt-6.1-sol through the VM's local proxy, no replay provider or fixtures. Built 10 real ACP turns on main, running pwd/git status/git log shell tools. Used command palette > Restart agent session, then sent a follow-up. Main response: ACP-10 cedar-23724 (token remembered from turn 1). PR restart response: ACP-11 cedar-23724. PR live continuation response: ACP-12 cedar-23724. Native Codex adapter: BASELINE-CODEX-OK on main, PR-NATIVE-CODEX-OK on PR. Original bug reproduced through the running server Attached Node's debugger to the task-owned server without editing its source. Main breakpoint: provider-acp/src/server/adapter.ts:4533, new Map(current.messages). Real session/load replay hit this line 27 times with map sizes 0,1,...,26. That copies 351 existing entries, plus inserts the 27 replay messages. Main live-turn snapshot writes also hit the whole-map-copy line at 2647. PR breakpoint: adapter.ts:4530, current.messages.set(key, {...}). Real session/load replay hit this direct update 30 times, sizes 0,1,...,29. No history-map constructor runs on that changed replay path. PR live completion hits adapter.ts:2648, current.messages.set(key, message). The histories differ by one completed turn (27 versus 30 replay messages). These are observed operation counts, not a wall-clock speedup benchmark. Debugger overhead makes these runs unsuitable for latency claims. Neighboring behavior Real shell tool execution and streaming completed after restart and without restart. Switched threads and reopened the preserved ACP history in the PR client. Read-only comparison of both task-isolated databases: PASS: all 30 baseline messages preserve id, role, text, createdAt and order after PR resume and live follow-up (36 total). Native Codex follow-up completed with real shell tool execution. Checks blacksmith-check: focused replay test passed. blacksmith-check: vp test run apps/server/src/orchestration-v2/Adapters/AcpAdapterV2.test.ts PASS: 101 tests, 1 file, 38.51 seconds. GitHub PR checks: all reported required checks passed; unrelated jobs skipped. No code changes, commits, pushes, or new test files. Limits Did not create thousands of real turns or measure large-history reopen latency. Did not verify native desktop, iOS/Android, macOS/Windows, remote/relay/tunnel, every ACP implementation, or rollback through the real client. codex-acp 2.6.0 could not create a session through T3's provider probe on main; the working 0.16.0 executable was used consistently for main and PR runtime checks.