{"version":"2.1.219","anchor":"sdk-interrupt-can-now-cancel-everything-queued-in-one-round-","canonical_anchor":"sdk-interrupt-can-now-cancel-everything-queued-in-one-round-","heading":"SDK interrupt can now cancel everything queued in one round-trip","tier":"use","area":"SDK Protocol","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.219\/e\/sdk-interrupt-can-now-cancel-everything-queued-in-one-round-","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.219","markdown":"### SDK interrupt can now cancel everything queued in one round-trip\n\nSend interrupt with cancel_queued true to stop the current turn and everything queued behind it.\n\n**What**\n\nThe interrupt control_request takes a new optional boolean `cancel_queued` that sweeps the whole main-thread queue along with the abort, so a remote UI can offer a \"Stop means stop everything\" button without walking uuids one at a time.\n\n**Details**\n\n- When true, every uuid-stamped main-thread command still queued, and any already dequeued for the imminent turn, is cancelled alongside the abort and emits a terminal 'cancelled' lifecycle\n- The response returns those uuids under a new `cancelled` array, with `still_queued` always empty\n- A wrapper that wants per-uuid control leaves the flag false and keeps using cancel_async_message\n- Absent or false preserves the existing interrupt_receipt_v1 behaviour exactly\n\n**Usage**\n\n`{\"type\":\"control_request\",\"request\":{\"subtype\":\"interrupt\",\"cancel_queued\":true}}` **Evidence** `When true, the interrupt also cancels every uuid-stamped main-thread command still in the queue`\n\n- Area: SDK Protocol\n- Names: `cancel_queued`, `interrupt`, `cancel_async_message`\n- Tier: Use it now\n- Useful: 4\/5\n- Signal: 0\/5"}