fix(codex): time out silent app-server turns#82142
Conversation
|
Codex review: needs real behavior proof before merge. Summary Reproducibility: yes. Current main source shows the accepted-turn path calls Real behavior proof Next step before merge Security Review detailsBest possible solution: Merge this narrow Codex plugin fix after maintainer-approved checks/proof, then close #82129 as fixed by the landed PR. Do we have a high-confidence way to reproduce the issue? Yes. Current main source shows the accepted-turn path calls Is this the best way to solve the issue? Yes. The PR uses the existing completion-idle watchdog at the accepted-turn boundary and preserves queued early progress handling, which is the narrow maintainable fix for the observed gap. Acceptance criteria:
What I checked:
Likely related people:
Remaining risk / open question:
Codex review notes: model gpt-5.5, reasoning high; reviewed against d91f58ee25b5. Re-review progress:
|
1bb4916 to
c9d8990
Compare
|
Landing proof for rebased head
Known proof gap: no live Codex app-server/OAuth model call; covered by mocked app-server regression tests plus changed gates. |
|
Landed via rebase onto
Thanks @Francois3d for the report. |
Summary
turn/startaccepts a turn, before replaying queued notifications.Fixes #82129.
Verification
Behavior addressed: Codex app-server turns accepted by
turn/startbut emitting no current-turn progress now interrupt and release the OpenClaw session lane afterappServer.turnCompletionIdleTimeoutMsinstead of waiting for the outer model timeout.Real environment tested: Blacksmith Testbox
tbx_01krntdyatxvkm91rap5bb69sr; local Codex review.Exact steps or command run after this patch:
pnpm test extensions/codex/src/app-server/run-attempt.test.ts -- --reporter=verbosenode scripts/run-vitest.mjs extensions/codex/src/app-server/run-attempt.test.ts -t "releases the session when Codex accepts|does not treat global rate-limit notifications as turn progress|does not time out when turn progress arrives"pnpm check:changedcodex review --uncommittedgit diff --checkpnpm docs:listEvidence after fix:
run-attempt.test.tsnow proves accepted/no-progress turns use the short completion-idle watchdog, global rate-limit notifications do not reset turn progress, and queuedturn/startedprogress beforeturn/startreturns does not falsely time out.Observed result after fix: focused Codex app-server Vitest passed 119 tests; targeted Codex review Vitest passed 3 selected tests; Testbox
pnpm check:changedexited 0; Codex review reported no actionable correctness issues.What was not tested: live Codex app-server/OAuth model call; coverage is via mocked app-server harness plus changed-check lanes.