fix(codex): clarify unsafe app-server completion stalls#87793
Conversation
|
Codex review: needs real behavior proof before merge. Reviewed June 29, 2026, 2:38 PM ET / 18:38 UTC. Summary PR surface: Source +9, Tests +29. Total +38 across 5 files. Reproducibility: yes. at source level: current main and v2026.6.10 still use the older replay-unsafe timeout copy and method-only item/completed activity. I did not run a live app-server timeout, and the contributor has not supplied real-run proof. Review metrics: 1 noteworthy metric.
Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Proof guidance:
Risk before merge
Maintainer options:
Next step before merge
Security Review findings
Review detailsBest possible solution: Rebase on current main, forward item/completed status/tool through typed structured timeout diagnostics or narrow the PR claim to log-only metadata, then attach redacted real Codex app-server timeout proof. Do we have a high-confidence way to reproduce the issue? Yes, at source level: current main and v2026.6.10 still use the older replay-unsafe timeout copy and method-only item/completed activity. I did not run a live app-server timeout, and the contributor has not supplied real-run proof. Is this the best way to solve the issue? No, not as submitted: the wording change is in the right Codex app-server attempt-result layer, but the diagnostic metadata half is incomplete because the new status/tool keys are dropped before the structured failure result. The safer path is to rebase, forward or intentionally omit those fields, and prove the changed real behavior. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 82dfd8910743. Label changesLabel justifications:
Evidence reviewedPR surface: Source +9, Tests +29. Total +38 across 5 files. View PR surface stats
What I checked:
Likely related people:
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. How this review workflow works
Review history (1 earlier review cycle)
|
|
Heads up: this PR needs to be updated against current |
|
@slatem thanks for the PR. ClawSweeper is still waiting on real behavior proof before this can move forward. Useful proof can be a screenshot, short video, terminal output, copied live output, linked artifact, or redacted logs that show the changed behavior after the fix. Please redact private tokens, phone numbers, private endpoints, customer data, and anything else sensitive. Once proof is added to the PR body or a comment, ClawSweeper or a maintainer can re-check it. |
|
@slatem thanks for the PR. ClawSweeper is still waiting on real behavior proof before this can move forward. Useful proof can be a screenshot, short video, terminal output, copied live output, linked artifact, or redacted logs that show the changed behavior after the fix. Please redact private tokens, phone numbers, private endpoints, customer data, and anything else sensitive. Once proof is added to the PR body or a comment, ClawSweeper or a maintainer can re-check it. |
|
This pull request has been automatically marked as stale due to inactivity. |
|
ClawSweeper status: review started. I am starting a fresh review of this pull request: fix(codex): clarify unsafe app-server completion stalls This is item 1/1 in the current shard. Shard 15/22. This placeholder means the worker is alive and reading the current context. I will edit this same comment with the actual review when the claws are done clicking. Crustacean status: shell secured, claws on keyboard, evidence pebbles being sorted. |
Summary
Why
When Codex app-server emits completed tool/item notifications but never sends the terminal
turn/completedevent, OpenClaw currently reports that work may already have happened but does not explain that replay was intentionally suppressed to avoid duplicate side effects. This makes the incident look like a generic bot failure instead of a replay-safety guard. The extra diagnostic fields also make future reports easier to triage from trajectory/log data.Tests
OPENCLAW_VITEST_INCLUDE_FILE=/tmp/openclaw-codex-tests.json node scripts/run-vitest.mjs run --config test/vitest/vitest.extension-codex.config.tspnpm exec oxfmt --check --threads=1 extensions/codex/src/app-server/attempt-notifications.ts extensions/codex/src/app-server/attempt-notifications.test.ts extensions/codex/src/app-server/attempt-results.ts extensions/codex/src/app-server/attempt-results.test.ts extensions/codex/src/app-server/run-attempt.turn-watches.test.tsRelated: #87781 handles replay-safe app-server stalls. This PR covers the replay-unsafe/user-facing side-effect path.