main: read-only persisted run projections {"thread":"979e1350-5bad-4cf1-ac8a-cba6afbcdc84","ordinal":1,"model":"gpt-6.1-sol","status":"cancelled","requestedAt":"2026-11-03T01:23:05.168Z","startedAt":null,"completedAt":"2026-11-03T01:24:22.063Z","startDelaySeconds":null} {"thread":"5a24a042-6524-4a15-9a1d-95ea1ec2c31e","ordinal":1,"model":"gpt-6.1-sol","status":"cancelled","requestedAt":"2026-11-03T01:23:20.095Z","startedAt":null,"completedAt":"2026-11-03T01:24:22.084Z","startDelaySeconds":null} t3code: read-only persisted run projections {"thread":"8c0ad6ca-fbbf-4b17-9db5-e42be1e16bf9","ordinal":1,"model":"gpt-6.1-sol","status":"completed","requestedAt":"2026-11-03T01:25:40.958Z","startedAt":"2026-11-03T01:26:11.618Z","completedAt":"2026-11-03T01:26:16.286Z","startDelaySeconds":30.66} {"thread":"a8b8b8a3-a7e4-4b53-b15a-bf94bcf5c948","ordinal":1,"model":"gpt-6.1-sol","status":"completed","requestedAt":"2026-11-03T01:25:49.985Z","startedAt":"2026-11-03T01:26:11.376Z","completedAt":"2026-11-03T01:26:15.731Z","startDelaySeconds":21.391} {"thread":"8c0ad6ca-fbbf-4b17-9db5-e42be1e16bf9","ordinal":2,"model":"gpt-6.1-sol","status":"completed","requestedAt":"2026-11-03T01:26:50.284Z","startedAt":"2026-11-03T01:26:50.353Z","completedAt":"2026-11-03T01:26:59.919Z","startDelaySeconds":0.069} {"thread":"b5937c0b-8264-46da-9992-d8ee926af1f8","ordinal":1,"model":"gpt-6.1-sol","status":"completed","requestedAt":"2026-11-03T01:28:06.667Z","startedAt":"2026-11-03T01:28:06.789Z","completedAt":"2026-11-03T01:28:13.032Z","startDelaySeconds":0.122} {"thread":"1daaf94c-2a7f-4cc6-89bf-6b8ac792b513","ordinal":1,"model":"gpt-6.1-sol","status":"starting","requestedAt":"2026-11-03T01:29:24.430Z","startedAt":null,"completedAt":null,"startDelaySeconds":null} Environment: Linux Boat VM, Google Chrome via repository Playwright 1.60.0. Main SHA: f6503f0e71 (github/main at verification start). PR SHA: c65c7a6a1afa675fa446f011768524b22a540e36. All projects, threads and prompts created through the web UI. Real Codex 0.164.0, model gpt-6.1-sol, local proxy. Fault injection: configured binary-path wrapper starts the actual codex app-server and SIGSTOPs its captured PID before initialize. No protocol responses are mocked. Removing the pause file lets subsequent processes launch normally. Main: first and second runs still had startedAt=null when the server was shut down at 01:24:22, after 76.895s and 61.989s respectively. PR: real stopped PID 26475 disappeared after the timeout. Without a server restart, both pending turns completed with INIT_RECOVERY_OK and SECOND_THREAD_OK. Server log at 01:26:11.082: provider-turn.start attempt 1 failed; cause: Codex app-server did not answer initialize within 30 seconds. The effect worker retries failed opens automatically. The first run started 30.660s after request and completed after 35.328s. The second run started after 21.391s and completed after 25.746s. Follow-up: recalled INIT_RECOVERY_OK and executed /bin/bash -lc 'git status --short' with exitCode=0; completed in 9.635s. Blacksmith: vp i && vp test run apps/server/src/orchestration-v2/Adapters/CodexAdapterV2.test.ts: 135/135 passed. Persistent hang: five actual codex processes stopped on launch at 01:29:24, 01:29:54, 01:30:25, 01:30:55, 01:31:26. Run failed visibly at 01:31:56.512, 152.082s after requestedAt. All stopped PIDs were gone after their attempts. Removing the pause and submitting a new prompt in the failed thread completed with RETRY_AFTER_FAILURE_OK at 01:32:13.328, without restarting T3. Scope limitation: standard Codex open-time initialize path verified end to end. Managed ChatGPT first-thread initialize path covered by existing adapter tests only; no managed ChatGPT account on this VM. Native clients and macOS syspolicyd cause not exercised. No source edits or pushes.