Issue 16502 runtime reproduction, fs-24 (Linux x86_64), Codex CLI 0.163.0, real dev server (`vp run dev --no-seed`) + web client. Isolated state: /.t3. Model: GPT-6-Astra (Codex default). BEFORE: origin/main ed3f965e07 1. New Codex thread, "Reply exactly READY." -> READY. app-server: wrapper 1771458 -> native 1771493 (parent = our server pid 1770477, cwd = worktree). 2. kill -KILL 1771493 (both wrapper and native exit) 3. Follow-up on same thread -> "Provider error: The provider could not start this turn." No app-server respawned. Log: ProviderAdapterTurnStartError ... [cause]: CodexAppServerTransportError: Codex App Server transport operation 'read-process-exit-status' failed. [cause]: PlatformError: Unknown: ChildProcess.exitCode ... [cause]: Error: Process interrupted due to receipt of signal: 'SIGKILL' 4. Brand-new Codex thread "Reply exactly FRESH." -> "Provider turn failed to start: Codex App Server transport operation 'read-process-exit-status' failed." No app-server respawned. AFTER: fix/issue-16502 aa2d9455a8 (64c420301b merged with ed3f965e07) 1. New Codex thread -> READY. native app-server 1774637. 2. kill -KILL 1774637; follow-up "Reply exactly AGAIN." -> AGAIN. New app-server 1775663 spawned. 3. kill -KILL 1775663; brand-new Codex thread "Reply exactly FRESH." -> FRESH. New app-server 1776307. 4. Turn running `sleep 60 && echo done`; kill -KILL 1776307 mid-turn -> turn fails promptly: "Provider error: The provider event stream closed unexpectedly." (ProviderAdapterEventStreamError ... cause read-process-exit-status) 5. Follow-up "Reply exactly RECOVERED." -> RECOVERED. New app-server 1777538. 'read-process-exit-status' never surfaces as a turn-start failure on the fix branch. Regression tests (apps/server/src/orchestration-v2/Adapters/CodexAdapterV2.test.ts, "CodexAdapterV2 process exit", 4 cases numeric/SIGKILL x idle/active): - with main's CodexAdapterV2.ts + client.ts: 4 failed — AssertionError: dead Codex sessions must end their event stream - with the fix: 4 passed. `vp run check:changed`: format, lint, knip, typecheck (3 packages), tests (82) pass.