Evidence method
Linux x86_64, Codex CLI 0.163.0, separate worktrees and fresh isolated T3 dev servers.
Each worktree installed with vp i and ran T3CODE_DEV_SEED=0 vp run dev.
Web client used for sidebar Settle; real T3 CLI used for thread launch and follow-up.
No copied live database. Identical synthetic project, prompt, credentials source, and MCP configuration.
No explicit thread unload-delay override in provider launch arguments or Codex config.

These videos record the live server process/wire observer, not the app UI.
The observer samples the recorded MCP PID under /proc every 200 ms and records native Codex method names.
ffmpeg records that live output at 1280x800, 5 fps, identical dark appearance.
Clips trim only leading idle time. Each still-readable event time remains relative to its original observer start.
No tests or simulated provider were used as evidence. The ping tool actually ran.

Primary run: settle, observe for 10 seconds, send follow-up calling ping, await reply.
Base: initial PID alive through 11.34 seconds; it exits when the resume is processed. No thread/closed observed.
Head: thread/closed at 0.014 seconds; initial MCP PID first sampled exited at 0.02 seconds.
Both: follow-up starts a new MCP PID, calls ping, returns MCP_PROBE_OK.

Immediate run: same resumed thread, settle again; observer launches the send CLI at first observed unsubscribe.
Native thread/resume arrives approximately 0.73 seconds after unsubscribe on base and 0.70 seconds on head.
Both return MCP_PROBE_OK. Head thread/closed arrives before resume, so no native closing error or retry was observed.
This verifies successful immediate-send continuation but does not exercise the closing-error recovery branch.

Scripts
probe.py: minimal identifiable stdio MCP server.
codex-wrapper.py: transparent stdio relay recording selected method names; machine-specific binary path generalized for publication.
observe.py: live process observer, recorder, and follow-up sender, used unchanged for both sides.
seed-and-drive.sh: parameterized setup/launch recipe corresponding to the executed setup and CLI commands; private paths and model selection supplied through environment variables.
observations.jsonl: actual observer samples underlying each video.
summary.json: extracted timings and process IDs.

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