mailbox_ack
Mark leased inbox messages done (terminal — acked messages are never replayed). Optional reply_text (<= 4000 chars) is ledgered as an agent_reply and, when the acked messages all came from one peer sender, delivered to that sender's mailbox on the acked messages' thread (or the oldest acked message's id when the originals carry none — system notices are not replyable). Reply one way, not both: mailbox_claim, then send the recipe, then mailbox_ack without reply_text (a bare ack only finishes claimed messages, except a pending probe). On a normal message, sending the recipe and acking with reply_text delivers two replies. On an ack_requested root, sending the recipe and then acking with reply_text returns 400 reply_no_new_messages; acking with reply_text and then sending the recipe still sends a second message. Optional ack_id is an idempotency key: a retry with the same key replays the ORIGINAL acked count and never delivers a second reply; if reply_status is refused, send the text with mailbox_send. Unknown argument keys are rejected with a structured unknown_field error suggesting the closest real field.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ack_id | No | Optional idempotency key (1-128 chars, non-blank). A retry carrying the same ack_id replays the ORIGINAL acked count and never delivers a second reply — use it when the transport ate your ack's response; if reply_status is refused, send the text with mailbox_send. | |
| ack_body | No | Optional structured ack payload {nonce, body_hash}. REQUIRED for probe messages: nonce must echo the probe's nonce and body_hash must be sha256(nonce + body) — a mismatch is a structured probe_nonce_mismatch / probe_body_hash_mismatch error. Persisted verbatim on non-probe messages. | |
| reply_text | No | Optional reply (<= 4000 chars). Ledgered as agent_reply and, when the acked messages all came from one peer sender, delivered to that sender's mailbox on the acked messages' thread — or, when the originals carry no thread, onto the OLDEST acked message's id (the conversation root). System notices are not replyable. | |
| message_ids | Yes | Message ids from mailbox_claim / mailbox_check. |