Skip to content

Allow users to cancel or remove enqueued messages before they are executed #1857

@dorlugasigal

Description

@dorlugasigal

Describe the feature or problem you'd like to solve

There is no way to cancel or remove a message or slash command that has been queued (via Ctrl+Q / Ctrl+Enter) while the agent is busy or during /compact. Once enqueued, messages are automatically processed in order when the agent finishes — even if the user has changed their mind or made a mistake.

Proposed solution

Add a mechanism to view and selectively cancel queued messages before they are executed. This could take the form of:

  • A /queue command to list pending messages, with /queue cancel <n> to remove a specific entry.
  • An interactive UI overlay (e.g., triggered by a keybinding) showing the queue with the ability to navigate and delete items.
  • A keybinding (e.g., Ctrl+Shift+Q) to clear the entire queue at once.

This would benefit Copilot CLI users by:

  • Preventing accidental or unwanted actions from queued messages the user no longer intends to send.
  • Complementing existing cancellation behavior (Ctrl+C for active operations, Escape for specific commands like /compact) with control over pending operations.
  • Improving confidence in the queueing workflow, encouraging users to queue more freely knowing they can course-correct.

Example prompts or workflows

  1. Accidental queue during compaction — User sends a message during /compact (auto-queued per v0.0.389), then realizes it was wrong. They want to remove it before compaction finishes and the message is sent to the model.
  2. Multiple queued commands — User queues several slash commands with Ctrl+Q while the agent is working, then decides the third one is no longer needed. They run /queue to see the list and /queue cancel 3 to drop it.
  3. Clear entire queue — User has queued several messages but the agent's response changes their plan entirely. They press Ctrl+Shift+Q (or run /queue clear) to discard all pending messages and start fresh.
  4. Review before execution — User wants to double-check what's queued before the agent finishes. They press a keybinding to see a transient overlay of queued items, then dismiss it or remove specific entries.

Additional context

  • Current queueing was introduced in v0.0.394 (Ctrl+D) and the keybinding was later changed to Ctrl+Q / Ctrl+Enter in v0.0.407.
  • Auto-queueing during /compact was added in v0.0.389.
  • Existing cancel mechanisms (Ctrl+C, Escape) only affect the currently running operation, not messages waiting in the queue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions