{"version":"2.1.219","anchor":"interrupt-control-request-can-now-cancel-the-whole-queue-can","canonical_anchor":"interrupt-control-request-can-now-cancel-the-whole-queue-can","heading":"interrupt control request can now cancel the whole queue (cancel_queued)","tier":"use","area":"SDK Protocol","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.219\/e\/interrupt-control-request-can-now-cancel-the-whole-queue-can","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.219","markdown":"### interrupt control request can now cancel the whole queue (cancel_queued)\n\nAn interrupt can now clear your whole queued command backlog at once and report what it cancelled.\n\n**What**\n\nThe control-protocol `interrupt` request accepts an optional `cancel_queued` boolean that clears queued main-thread commands along with the in-flight turn, and reports which uuids it killed.\n\n**Details**\n\n- When `cancel_queued === !0`, every uuid-stamped main-thread command still queued, including ones dequeued for the imminent turn but not yet reachable by the abort, gets a terminal `cancelled` lifecycle event.\n- The response comes back with `still_queued: []` and the cancelled uuids on a new optional `cancelled` field.\n- Without the flag, the previous still_queued behaviour is unchanged.\n- The capability string `interrupt_cancel_queued_v1` is advertised on system\/init next to `interrupt_receipt_v1` and `msg_lifecycle_v1`, so clients can feature-detect it. None of these strings exist in v2.1.218.\n- The in-process SDK client's `interrupt()` wrapper does not send the flag, so this is for control-protocol consumers only.\n\n**Evidence**\n\n`interrupt_cancel_queued_v1`\n\n- Area: SDK Protocol\n- Names: `cancel_queued`, `interrupt_cancel_queued_v1`\n- Tier: Use it now\n- Useful: 4\/5\n- Signal: 0\/5"}