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
- In the Mac desktop app, send a prompt that starts a long-running task.
- While the turn is still running, send a follow-up message.
- 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
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 inae7e2eb3f(chore(app): remove queued follow-ups for now, Apr 3) and every path back to them is now hard-wired shut inpackages/app/src/context/settings.tsx:"queue"to"steer"(L353-356),followupgetter maps"queue"to"steer"(L372-375),setFollowupmaps"queue"to"steer"on write (L376-378),"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 makesqueueEnabledinpackages/app/src/pages/session.tsx(L1754-1758) permanently false. TheshouldQueuebranch inpackages/app/src/components/prompt-input/submit.ts(L482) is therefore dead code:onQueue/queueFollowupand 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
Expected
Either the follow-up is queued behind the running turn (the old
followup: queuebehavior), or the composer clearly offers queue-vs-interrupt so sending mid-turn does not silently kill the running work.Related