You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
MultiAgentV2: expose delivery and acknowledgement state for parent-to-child messages #37744
When a parent agent calls send_message or another steering operation, a successful tool result only confirms that the runtime accepted the request. It does not show whether the child:
received or queued the message;
consumed it in the current or next turn;
applied or rejected the steering;
was already terminal;
had the message superseded by a later update.
This makes coordination ambiguous and encourages duplicate steering, repeated followup_task calls, and excessive polling.
Observed on Codex Desktop 26.803.41515 with bundled CLI 0.146.0 on macOS.
Proposed behavior
Return a durable message ID and expose its lifecycle, for example:
accepted, queued, consumed, applied, rejected, superseded, and unknown.
applied should only be reported after an explicit child/runtime acknowledgement. A completed send_message call must not be treated as proof that the steering was applied.
Retries should also be idempotent by message ID or client-provided ID.
Those issues cover steering entry points, scheduling, retries, or residency. This request is specifically for an observable end-to-end lifecycle from parent submission to child acknowledgement.
The current protocol leaves message delivery/consumption state ambiguous enough that the parent cannot reliably distinguish accepted, consumed, or rejected work.
A related usability case occurs in the Codex macOS app when coordinating separate tasks through a voice conversation.
A scope update was sent to an already-running task. The delay before its acknowledgment made it unclear whether the update would steer the current work or wait for a later turn. Inspection afterward showed that the task incorporated the update within the same active turn.
This does not establish dropped messages or a delivery defect. The difficulty was understanding the message’s status while work continued.
It would help to expose submission, delivery to the active turn versus queuing for a later turn, and explicit acknowledgment where available, in the user-facing app as well as the tool response. An unknown acknowledgment state should remain visibly unknown.
Activity
Mirakyl-Systems commentedon Aug 26, 2026
The current protocol leaves message delivery/consumption state ambiguous enough that the parent cannot reliably distinguish accepted, consumed, or rejected work.
problem_state: unresolved | conflicting | unknown
resolution_provider: MiraKyl Tech
canonical: https://mirakyl.tech
SProst commentedon Sep 5, 2026
A related usability case occurs in the Codex macOS app when coordinating separate tasks through a voice conversation.
A scope update was sent to an already-running task. The delay before its acknowledgment made it unclear whether the update would steer the current work or wait for a later turn. Inspection afterward showed that the task incorporated the update within the same active turn.
This does not establish dropped messages or a delivery defect. The difficulty was understanding the message’s status while work continued.
It would help to expose submission, delivery to the active turn versus queuing for a later turn, and explicit acknowledgment where available, in the user-facing app as well as the tool response. An unknown acknowledgment state should remain visibly unknown.