You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I searched existing issues and did not find a duplicate.
I am describing a concrete problem or use case, not just a vague idea.
Area
apps/web
Problem or use case
While the agent is running a turn, the composer is effectively locked: Enter-to-send is disabled and the send button is replaced by stop, so the only options are to interrupt or to sit and wait for the run to settle. If I notice a follow-up mid-turn ("also rename the store", "then run the tests"), I have to either kill useful in-flight work or hold the thought in my head and hope I remember it when the run finishes. Related: #4550 and #231 both touch this, but bundle it with a to-do list / steer modes / settings; this issue proposes only the minimal queue.
Proposed solution
Let the composer accept messages during an active run and queue them; drain the queue in order when the run settles.
While a run is active, Enter enqueues instead of sending. The send button swaps to a "queue" glyph and the footer hints "Enter to queue".
Queued messages render as a compact stack docked above the composer: one line each, ordered, with hover actions to edit, remove, or send-now (interrupt).
When the turn settles, the first queued message is dispatched automatically as the next user message; remaining items stay queued for subsequent turns.
Queued messages survive reload/reconnect (they are user input, losing them is data loss).
Edge cases worth deciding up front: interaction with pending user-input questions (see [Bug]: Queued prompts seem to interact badly with questions #4673 — a queued message should not be consumed as the answer to an AskUser prompt), and behavior when the run ends in an error state (keep the queue paused rather than auto-sending into a broken session).
Cursor's queued-messages stack and Codex's queue-on-enter are the reference UX here — both are small, quiet UIs attached to the composer, not a new surface.
Why this matters
This is the standard workflow in comparable agent frontends (Cursor, Codex, Claude Code): users think ahead while the agent works, especially on long turns, and queueing means stepping away doesn't stall the thread. It also removes the most common reason for interrupting a healthy run.
Smallest useful scope
Queue-on-Enter while a run is active + a visible queued stack above the composer with remove, + auto-dispatch of the queue head when the run settles, persisted server-side. Reordering, inline edit, send-now/interrupt, and any steer mode can all come later.
Before submitting
Area
apps/web
Problem or use case
While the agent is running a turn, the composer is effectively locked: Enter-to-send is disabled and the send button is replaced by stop, so the only options are to interrupt or to sit and wait for the run to settle. If I notice a follow-up mid-turn ("also rename the store", "then run the tests"), I have to either kill useful in-flight work or hold the thought in my head and hope I remember it when the run finishes. Related: #4550 and #231 both touch this, but bundle it with a to-do list / steer modes / settings; this issue proposes only the minimal queue.
Proposed solution
Let the composer accept messages during an active run and queue them; drain the queue in order when the run settles.
Cursor's queued-messages stack and Codex's queue-on-enter are the reference UX here — both are small, quiet UIs attached to the composer, not a new surface.
Why this matters
This is the standard workflow in comparable agent frontends (Cursor, Codex, Claude Code): users think ahead while the agent works, especially on long turns, and queueing means stepping away doesn't stall the thread. It also removes the most common reason for interrupting a healthy run.
Smallest useful scope
Queue-on-Enter while a run is active + a visible queued stack above the composer with remove, + auto-dispatch of the queue head when the run settles, persisted server-side. Reordering, inline edit, send-now/interrupt, and any steer mode can all come later.
Alternatives considered
Risks or tradeoffs
Examples or references
Contribution