anomalyco / anomalyco/opencode

[Bug] Desktop (Mac): sending a follow-up while a turn is running interrupts it, queued follow-ups are unreachable

Open
#48,203 2 comments 0 reactions 1 assignee View on GitHub

@Brendonovich is already working on this.

Since Sep 9, 2026.

Dominant language
TypeScript
Stars
209k
Forks
27.5k
PR merge metrics
PR metrics pending

Description

Description

On the Mac desktop app, sending a message while the agent is still working on the previous one interrupts the running turn. There is no queue: the follow-up steals the turn instead of waiting behind it, so the first task never finishes.

I traced it to the app code (current dev). Queued follow-ups were removed in ae7e2eb3f (chore(app): remove queued follow-ups for now, Apr 3) and every path back to them is now hard-wired shut in packages/app/src/context/settings.tsx:

  • the migration effect coerces any stored "queue" to "steer" (L353-356),
  • the followup getter maps "queue" to "steer" (L372-375),
  • setFollowup maps "queue" to "steer" on write (L376-378),
  • the default is "steer" (L187), and the same commit removed the mode toggle from the settings UI (settings-general.tsx).

So settings.general.followup() can never be "queue", which makes queueEnabled in packages/app/src/pages/session.tsx (L1754-1758) permanently false. The shouldQueue branch in packages/app/src/components/prompt-input/submit.ts (L482) is therefore dead code: onQueue/queueFollowup and the follow-up dock never fire, and the message goes down the normal submit path while a turn is in flight (which aborts/steers it, cf. L334). All the queue machinery is still in the tree, just unreachable.

OpenCode version

Desktop Mac app, server 1.18.25

Steps to reproduce
  1. In the Mac desktop app, send a prompt that starts a long-running task.
  2. While the turn is still running, send a follow-up message.
  3. The running turn is interrupted/steered instead of the follow-up being queued behind it. The first task never completes.
Expected

Either the follow-up is queued behind the running turn (the old followup: queue behavior), or the composer clearly offers queue-vs-interrupt so sending mid-turn does not silently kill the running work.

Related
  • #44108 (web UI has no way to queue follow-ups, steer-only since the queue setting was removed)
  • #37381 (prompt queue and interrupt controls for the composer)
  • #44716 (desktop: visual indicator for queued messages)
  • #46235 (queued prompt sent before previous completes, Windows/Git Bash client)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.