Escape should cancel the current task and focus the pending queued prompt (not discard it)
- Lingua principale
- Shell
- Stelle
- 11.2k
- Fork
- 1.9k
- Merge medio
- 14h 16m
- PR unite (30g)
- 6
Descrizione
### Describe the bug
When a task is running and I've already typed/queued a follow-up prompt, pressing **Escape** to cancel the current task just stops everything — the pending (queued) prompt is dropped/ignored rather than being picked up. I expected Escape to cancel the *current* task and then hand control to the pending prompt.
### Current behavior
1. Agent is working on task A.
2. While A runs, I queue a follow-up prompt B (or it's sitting in the input as a pending message).
3. I press **Escape** to interrupt A.
4. The session stops A and goes idle — **B is discarded / not surfaced**. There's no transition to B at all.
### Expected behavior
Pressing **Escape** should:
1. Stop/cancel the currently running task (A), then
2. **Focus the pending queued prompt (B)** — i.e. surface it in the input (ready to edit/submit) or run it — rather than throwing it away.
This makes "interrupt the current thing and pivot to what I just typed" a single, natural Escape action, instead of losing the queued prompt and having to retype it.
### Why this matters
A very common flow is: the agent goes down the wrong path, so you type the correction *while it's still working*, then hit Escape to stop it and pivot. Today that correction is lost on Escape, which is exactly when you most want it preserved.
### Related issues
This is distinct from the existing "cancel queued messages without stopping the current task" requests (#2378, #2055, #1857). This is the opposite direction: **stop the current task but preserve/focus the queued prompt.**
### Environment
- Copilot CLI v1.0.60-0
- macOS, Ghostty terminal
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
No files or tests are named. Start by tracing the CLI's Escape-key handling and the state that stores queued prompts; reproduce the sequence with a running task and a pending prompt. Done means Escape cancels the current task while preserving and focusing or running the pending prompt, with coverage for that flow.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- shell
- Ambito
- cli
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Tranquilla
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 55/100