fix: preserve messages when Codex steering lacks transcript acknowledgement#103916
Conversation
|
Codex review: needs real behavior proof before merge. Reviewed July 10, 2026, 4:07 PM ET / 20:07 UTC. Summary PR surface: Source +4, Tests +29. Total +33 across 2 files. Reproducibility: yes. at source level and in the targeted regression setup: current main can reject transcript-backed steering and continue without deferring the durable inbound message. No live Telegram/Codex artifact demonstrates the current or fixed behavior. Review metrics: none identified. 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:
Mantis proof suggestion Risk before merge
Maintainer options:
Next step before merge
Maintainer decision needed
Security Review detailsBest possible solution: Land the narrow queued fallback after real Telegram/Codex proof confirms exactly-once deferred delivery, while keeping same-turn transcript-backed steering disabled until Codex exposes durable idempotent acceptance. Do we have a high-confidence way to reproduce the issue? Yes at source level and in the targeted regression setup: current main can reject transcript-backed steering and continue without deferring the durable inbound message. No live Telegram/Codex artifact demonstrates the current or fixed behavior. Is this the best way to solve the issue? Yes. The patch uses the established queued lifecycle and is safer than best-effort steering because current Codex appends each accepted steer and does not deduplicate AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 1bcc4c5e7063. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Source +4, Tests +29. Total +33 across 2 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
|
|
@openclaw-mantis telegram live: reproduce a message arriving during an active Codex turn and capture a redacted transcript proving it is adopted and answered exactly once as a follow-up when transcript commit waiting is unsupported. |
(cherry picked from commit f68af64)
What Problem This Solves
Fixes an issue where a message arriving during an active Codex app-server turn could receive no response when Telegram required transcript-backed adoption and the runtime could not wait for a transcript commit.
Why This Change Was Made
When steering fails specifically with
transcript_commit_wait_unsupported, OpenClaw keeps the inbound message in the follow-up queue until the active run finishes. Other steering rejection reasons retain their existing admission behavior.User Impact
Messages are preserved and run after the active turn when Codex cannot provide the transcript acknowledgement required for safe same-turn steering.
Evidence
node scripts/run-vitest.mjs src/auto-reply/reply/agent-runner.runreplyagent.e2e.test.tsRelated: #98236