Handle Codex turns missing completion#85107
Conversation
|
Codex review: needs maintainer review before merge. Workflow note: Future ClawSweeper reviews update this same comment in place. How this review workflow works
Summary Reproducibility: yes. The linked issue has live Discord/Telegram logs for PR rating Rank-up moves:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. Real behavior proof Risk before merge
Maintainer options:
Next step before merge Security Review detailsBest possible solution: Land the focused recovery path after maintainer review accepts the side-effect-aware replay semantics and keeps the deterministic Crabbox plus live Codex proof attached to the PR verification record. Do we have a high-confidence way to reproduce the issue? Yes. The linked issue has live Discord/Telegram logs for Is this the best way to solve the issue? Yes as a bounded first fix. The PR avoids automatic replay after possible side effects, surfaces a specific timeout outcome, and leaves broader automatic resume policy to maintainer judgment. Label changes:
Label justifications:
What I checked:
Likely related people:
Codex review notes: model gpt-5.5, reasoning high; reviewed against 0ab1449215f5. |
|
ClawSweeper PR egg ✨ Hatched: 🥚 common Tiny Clawlet Hatch commandComment Hatchability rules:
Rarity: 🥚 common. What is this egg doing here?
|
* fix(codex): handle missing turn completion * docs: add changelog for Codex completion fix
* fix(codex): handle missing turn completion * docs: add changelog for Codex completion fix
* fix(codex): handle missing turn completion * docs: add changelog for Codex completion fix
* fix(codex): handle missing turn completion * docs: add changelog for Codex completion fix
* fix(codex): handle missing turn completion * docs: add changelog for Codex completion fix
* fix(codex): handle missing turn completion * docs: add changelog for Codex completion fix
* fix(codex): handle missing turn completion * docs: add changelog for Codex completion fix
* fix(codex): handle missing turn completion * docs: add changelog for Codex completion fix
* fix(codex): handle missing turn completion * docs: add changelog for Codex completion fix
* fix(codex): handle missing turn completion * docs: add changelog for Codex completion fix
* fix(codex): handle missing turn completion * docs: add changelog for Codex completion fix
Summary
turn/completedFixes #84076.
Verification
node scripts/run-vitest.mjs extensions/codex/src/app-server/dynamic-tools.test.ts extensions/codex/src/app-server/event-projector.test.ts -- --reporter=dotnode scripts/run-vitest.mjs extensions/codex/src/app-server/run-attempt.test.ts -- --reporter=dotnode scripts/run-vitest.mjs extensions/codex/src/app-server/side-question.test.ts extensions/codex/src/conversation-turn-collector.test.ts src/agents/pi-embedded-runner/run.overflow-compaction.loop.test.ts -- --reporter=dotgit diff --checkAUTOREVIEW_AUTO_TESTS=0 .agents/skills/autoreview/scripts/autoreview --mode localrun_05062ccbfbc4, provideraws, leasecbx_2de871a3b3ca, exit0run_b218cba3016f, provideraws, leasecbx_3bdfe3ed80bf, exit0Real behavior proof
Behavior addressed: Codex app-server may produce evidence of work and then stop before OpenClaw receives a matching
turn/completed; OpenClaw should not leave the session stuck or imply retry safety after possible side effects.Real environment tested: Direct AWS Crabbox (
provider=aws) with a built OpenClaw gateway and bundled Codex plugin; then a live Codex provider Docker harness usingOPENCLAW_LIVE_CODEX_HARNESS_AUTH=api-key.Exact steps or command run after this patch: Deterministic Crabbox E2E drove a real gateway through the Codex plugin with a fake app-server that completed a command item and withheld
turn/completed, then sent a second turn. Live sanity ranpnpm test:docker:live-codex-harnesson AWS with optional image/MCP/subagent/guardian probes disabled.Evidence after fix: Deterministic run
run_05062ccbfbc4on leasecbx_2de871a3b3careturned first turnstatus=timeout,aborted=true,replayInvalid=true,livenessState=abandoned, and the replay-unsafe timeout text; second turn returnedstatus=okandSECOND_RUN_OK. Live runrun_b218cba3016fon leasecbx_3bdfe3ed80bfpassedsrc/gateway/gateway-codex-harness.live.test.tswith 1 passed, 1 skipped.Observed result after fix: Missing terminal confirmation after possible side effects produces an abandoned replay-invalid timeout and releases the session; normal live Codex app-server turns still complete and resume through the gateway.
What was not tested: A naturally occurring live provider omission of
turn/completed; the deterministic E2E injects that boundary failure because live reproduction is not reliable on demand.