Skip to content

[FEATURE]: Add ability to unqueue messages #4821

Description

@Mishkun

Feature hasn't been suggested before.

  • I have verified this feature I'm about to request hasn't been suggested before.

Describe the enhancement you want to request

Right now If I queue message there is no way to "unqueue" it. Sometimes I overcorrect the agent and It invents the fix simualteniously with me so I end up wasting its attention by parroting the solution. I want to be able unqueue the message. e.g. by clicking on it

Activity

  1. added
    discussionUsed for feature requests, proposals, ideas, etc. Open discussion
    on Nov 27, 2025
  2. github-actions commented on Nov 27, 2025

    @github-actions
    Contributor

    This issue might be a duplicate of an existing feature request. Please check:

    Feel free to ignore if this addresses a different specific case.

  3. self-assigned this
    on Dec 1, 2025
  4. rekram1-node commented on Dec 1, 2025

    @rekram1-node
    Collaborator

    @Mishkun would the ability to /undo a queued message be good?

  5. Mishkun commented on Dec 1, 2025

    @Mishkun
    ContributorAuthor

    @rekram1-node I guess so

  6. JosXa commented on Dec 1, 2025

    @JosXa
    Contributor

    @Mishkun would the ability to /undo a queued message be good?

    Yes, I second that. Clicking on it and "revert"ing it was my first instinct - principle of least surprise.

  7. rekram1-node commented on Dec 1, 2025

    @rekram1-node
    Collaborator

    i guess i didnt see the note about clicking yeah rhat should be fine too

  8. thedaneeffect commented on Dec 5, 2025

    @thedaneeffect

    It would be nice to do something similar to Claude Code where if you hit UP if the latest message is in queue then it pulls it out of queue and into your prompt. Gives you a chance to modify it or simply CTRL+C to clear it out.

  9. rekram1-node commented on Dec 6, 2025

    @rekram1-node
    Collaborator

    I think I like that better, very good suggestion!

  10. JosXa commented on Dec 6, 2025

    @JosXa
    Contributor

    Me too. But clicking on it should then either be disabled, host fewer options, or the revert should still do something useful.

  11. kostrse commented on Jan 5, 2026

    @kostrse

    There could be both scenarious supported: mouse-centric (clicking the message) and keyboard-centric

  12. alexandersumer commented on Feb 18, 2026

    @alexandersumer

    I like the way Codex implements this. When you hit up arrow it dequeues and allows you to edit. It's not idea, but it is better than not being able to dequeue or edit the queued messages.

  13. ayqazi commented on Apr 17, 2026

    @ayqazi

    This would be so useful, especially in a Github Copilot situation where that queued message is a wasted premium request staring me in the face ☹️

  14. Orionblue commented on Apr 17, 2026

    @Orionblue

    Just throwing my vote in for this being a necessary feature

  15. bangbangsheshotmedown commented on Apr 30, 2026

    @bangbangsheshotmedown

    in the game of LLM, they can't even implement basic functionality, LE MAO

  16. 5 remaining items

  17. e-magon commented on Jul 1, 2026

    @e-magon

    @rekram1-node updates?

  18. Baksalyar commented on Jul 16, 2026

    @Baksalyar

    Still not implemented? The absence of such a basic thing is really annoying, guys!

  19. Moti-Velz commented on Jul 20, 2026

    @Moti-Velz

    Bumping as this seems like low-lift high QOL changes, pls guys. Happy to implement it if that can help.

  20. ThomasMldr commented on Jul 23, 2026

    @ThomasMldr

    I nearly opened a new issue for this issue again, but when looking through the backlog I found a jungle of issues and PR's and I ran a research task to aggregate everything I could find, because I don't think this encourages anyone to pick any of this up again, this issue has been open since Nov 27, 2025. In that time, four contributors independently built implementations — all auto-closed without maintainer review. Before a fifth attempt starts, it's worth knowing what already exists, or if one of these could be actually used.
    There also seems to be misunderstanding about what /undo is supposed to do (revert actual code or only undo the last queued message?)
    Anyway, I'm sorry if this comment seems belittling or something, I genuinely wanted to get an overview of what's hanging and preventing this from getting fixed.

    What was previously built, but never really merged:

    PR #6271 (@anntnzrb, Jan 2026) — most architecturally complete TUI implementation:

    • <leader>i to edit last queued message, <leader>d to discard
    • New API endpoints: GET/DELETE /session/:id/queue/:msgID
    • File and image attachment preservation on edit
    • Visual EDITING badge in prompt
    • Closed by author after 3 rebases. Zero maintainer feedback.

    PR #24471 (@mortenfc, May 2026) — most complete cross-surface implementation:

    • Edit and cancel queued messages (X button + UP arrow)
    • steer mode: inject queued message into current LLM turn immediately
    • wrap mode: finish current step then halt
    • Works in TUI and desktop/web
    • 38 commits. Author confirmed still working on it when bot auto-closed it. Community asked for reopen in June 2026.

    PR #27399 (@veenified, Jun 2026) — Cancel button via SDK in message dialog. Auto-closed 2 weeks before this comment.

    PR #5415 (@sachnun) — UP arrow to pull queued msg back into composer. Auto-closed.

    Related bugs not fixed:

    The ask:

    Can PR #6271 or #24471 get maintainer eyes before being rebuilt a fifth time? If the approach is wrong, a rejection comment would save the next contributor significant effort. If the approach is right, both implementations are close to mergeable.


    @rekram1-node — you're assigned to both this issue (#4821, unqueue) and the /undo revert bugs (#5474, #7196, #7282). A question on the intended contract: should /undo ever operate on queued messages, or is it strictly for completed turns? Right now, /undo with a queued message in the buffer kills the active operation instead of dequeuing (#7196) — which seems like an accident rather than a design decision. Clarifying this would unblock both tracks: contributors building queue controls would know not to wire through /undo, and contributors fixing the revert behavior would have a clear scope. What's the intended behavior?


    Full reference map — all related issues and PRs:

    # Type Title Status Author
    #4821 Issue Add ability to unqueue messages Open @Mishkun
    #5333 Issue Graceful handling of queued messages after session interrupt Open @thoughtlesslabs
    #5474 Issue /undo only rolls back conversation, not file changes Open @sdivens
    #6942 Issue Edit queued message prompts Closed: not planned @aspiers
    #8685 Issue Better controls/UX for queued messages Closed @art-shen
    #20090 Issue How do you dequeue a message? Closed: not planned @david-saint
    #21906 Issue prompts queue + change, cancel and forward Closed: not planned @Leohanhart
    #24298 Issue Allow forcing immediate reading of queued messages (Steering) Closed: not planned @omatheusmesmo
    #3623 Issue Queued bugging — cancel kills both running + queued task Closed ghost
    #2609 Issue BUG: Compact + Queue interaction Closed @neriousy
    #5770 Issue force push message keybind Closed: not planned @mynameistito
    #7196 Issue Undo stopped running operation instead of removing queued message Closed: not planned @vimulatus
    #4548 Issue /undo does not update Modified Files list Closed @fwang
    #7282 Issue TUI /undo cannot roll back code version Closed @ANIAN0
    #8098 Issue /undo just undo conversation, not file Closed @ERAIT
    #14290 Issue "undo" is not working properly Closed: not planned @jsxzhub
    #10287 Issue Critical bug: revert undo reverts to weeks-old state (~1300 lines deleted) Closed @Genrie9
    #13481 Issue /dev/null shown when reverting message with file creation Closed: not planned @OpeOginni
    #5415 PR feat(tui): cancel queued messages with history_previous Closed (auto, Feb 10 2026) @sachnun
    #6271 PR feat(tui): add edit and discard actions for queued messages Closed by author (Jan 8 2026) @anntnzrb
    #24471 PR feat: Add queued message editing, steering, and wrap-up behavior Closed (auto, May 26 2026) @mortenfc
    #27399 PR feat(opencode): Add "Cancel" action on Message Actions Dialog Closed (auto, Jun 14 2026) @veenified

  21. katsar0v commented on Aug 5, 2026

    @katsar0v

    Any update? I think this is something a lot of people want as a feature.

  22. aagrawal207 commented on Aug 12, 2026

    @aagrawal207

    Any updates? Pretty important feature which is available in all the other coding harnesses.

  23. 7heMech commented on Aug 21, 2026

    @7heMech

    Is this hard to do??? what if I did a PR? but then again looking at how many it's probably gonna be ignored.

  24. 7heMech commented on Aug 21, 2026

    @7heMech

    It would be nice to do something similar to Claude Code where if you hit UP if the latest message is in queue then it pulls it out of queue and into your prompt. Gives you a chance to modify it or simply CTRL+C to clear it out.

    This would be good

  25. UQuark commented on Aug 21, 2026

    @UQuark

    I feel like it's time to fork this crap anyway

  26. ricardobeat commented on Aug 26, 2026

    @ricardobeat

    This is a critical feature to have, and one of the main reasons I avoid OC at the moment. There have been 4-5 PRs implementing this already, all closed?

  27. crash83k commented on Aug 27, 2026

    @crash83k

    I agree. Hitting "undo previous message" fully stops whatever process was going, even though you're only stopping the queued message. Then you have to tell the model to "proceed" or whatever to get it to pick up where it left off (if it can).

  28. pompydev commented on Aug 28, 2026

    @pompydev

    Not really a solution but using openchamber allows you to unqueue messages while using opencode under the hood.

  29. neriousy commented on Oct 1, 2026

    @neriousy
    Member

    Queued messages can now be cancelled in OpenCode v2. A prompt you send while the agent is busy waits in the session inbox until it's delivered, and you can remove it before then: select the pending message in the TUI and choose Delete, or call the session.inbox.cancel API.

    Added in #42109; the first version came in #40922.

    Closing as completed. If something doesn't work on v2, please open a new issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions