Skip to content

Conversation Acknowledge

Acknowledge exactly the oldest delivered user turn for a generation-leased conversation consumer.

MCP name: conversation_ack

Category: conversations

Mutates state (retry policy: replay)

Parameters

Name Type Required Description
action_snapshot_id string No Deprecated redundant echo of the targeted turn action_snapshot_id
consumer string Yes Stable consumer name supplied by the owning workflow
consumption_receipt_id string No Exact receipt returned by cowork_action_snapshot_get; required for a targeted turn and omitted otherwise
conversation_id string Yes Conversation ID
generation string Yes Current lease generation supplied by the owning workflow
message_id string Yes Exact user message ID returned by conversation_receive

Details

Advances the consumer cursor only when message_id is the currently delivered oldest turn. Out-of-order acknowledgements do not skip messages. When the delivered message context names an action_snapshot_id, the driver must first fetch it and echo the resulting consumption_receipt_id in conversation_ack; a missing, mismatched, or reply-less receipt does not advance the cursor. A driver should acknowledge only after its receipt-bound reply and any requested proposal/comment have succeeded.

After a generation restart, a predecessor receipt cannot authorize the successor's acknowledgement. The successor fetches the same exact turn, replays the deterministic reply with its newly minted receipt, and acknowledges with that receipt. This preserves generation authorization while reusing the already-durable reply only for an identical target and user turn.