Skip to content

[feat] Add ability to queue chat message while AI is taking turn. #6287

@Honga1

Description

@Honga1

What specific problem does this solve?

Story

As a developer running roo on wreck everything mode ( * permitted, all actions approved)
I want to be able to steer the output without interrupting it.
So that when I can catch bugs, or add reminders as they pop into my mind it does not cost time or tokens.

Additional context (optional)

No response

Roo Code Task Links (Optional)

No response

Request checklist

  • I've searched existing Issues and Discussions for duplicates
  • This describes a specific problem with clear impact and context

Interested in implementing this?

  • Yes, I'd like to help implement this feature

Implementation requirements

  • I understand this needs approval before implementation begins

How should this be solved? (REQUIRED if contributing, optional otherwise)

Potential Feature Design 1 - Queue of one
When the machine is working, instead of the "send" arrow being greyed out, it instead becomes a third state like "queue up". When a chat message is queued it's inserted into the conversation at the next possible chance.

I can imagine it's UX is kind of like staging. You press queue, and it's now waiting to go into the chat context. You also have the option to edit it (it may or may not need destaging/dequeuing), or dequeuing it.

Potential Feature Design 2 - Queue of many
You can unleash as many chat items into the queue as you want, but you can't edit them even before they're sent. They can appear in chat context like

Queue (2):
Oops a daisy silly me .... 
The quick brown fox  .... 

note the ellipsis to stop filling full lines into the screen and stop wild layout shifts.

How will we know it works? (Acceptance Criteria - REQUIRED if contributing, optional otherwise)

Minimal

  1. LLM Is chugging away, busy in it's agent loop presumably on auto-approve
  2. User chat box shows queue icon instead of submit text icon
  3. User enters text into the chat box, queue icon is lively to show the affordance of a submit
  4. User presses the queue button. The chat box shows that it has "Queued" text. Queue icon changes to dequeue
  5. On next "turn" check, queued text is inserted before the LLM if the LLM won the turn. Else the text is entered as normal

Technical considerations (REQUIRED if contributing, optional otherwise)

Positive Side effects
Currently they're a little bit of a panic/UX issue where when the machine is running it's blocking the UI and it feels as though it's doing more than it should. When UI is blocked we think of crashes, OOM, those kinds of things, and that leads us to panic, not trust the output, or think the tool is rubbish. I think this fix gives you an affordance besides cancelling, or unticking the auto-approve checkbox.

Trade-offs and risks (REQUIRED if contributing, optional otherwise)

  • Possible divergence from Cline.
  • User interface clunk

Metadata

Metadata

Assignees

No one assigned

    Labels

    Issue/PR - TriageNew issue. Needs quick review to confirm validity and assign labels.enhancementNew feature or requestproposal

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions