Skip to content

fix(web): dispatch queued follow-ups after leaving the thread - #41

Closed
macodev00 wants to merge 1 commit into
mainfrom
cursor/fix-queued-follow-up-dispatch-6e6e
Closed

macodev00 wants to merge 1 commit into
mainfrom
cursor/fix-queued-follow-up-dispatch-6e6e

Conversation

@macodev00

Copy link
Copy Markdown
Owner

What Changed

Queued follow-ups now start while you are in another thread. The working-time counter should show time already spent when you come back.

  • A coordinator mounted for the whole app sends queued follow-ups once a tool finishes or the turn ends.
  • The open thread, including a draft route that has already promoted to a server thread, still uses the chat send path, so Stop restores the message to the composer.
  • The checkout branch selected when the message was queued is stored with it and applied when the follow-up is dispatched.
  • Stopping a claimed background send writes that prompt back into the composer draft. It is not returned to the queue as a held row, so the draft is not lost while a metadata or runtime update is still pending.

Fixes pingdotgg#13319

Why

With follow-up behavior set to Queue, a message sent during a running turn lived only inside the open chat view. Leaving the thread deferred thread.turn.start until that thread was selected again, so the counter looked like it started near zero after a long wait.

Stop drains the queue into the composer, but a send that has already claimed the message is no longer in that drain. Cancellation now restores the claimed message to the composer instead of calling holdAtFront.

UI Changes

None (behavior-only). Queued messages dispatch in the background; returning to the thread shows elapsed working time. Stop puts the in-flight prompt back in the composer.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes
Open in Web Open in Cursor 

Queue behavior held follow-ups in the open chat view, so leaving the thread delayed thread.turn.start until it was selected again. An app-wide coordinator now sends them when a tool finishes or the turn ends. Stopping a claimed background send restores that prompt to the composer instead of parking it as a held queue row.

Co-authored-by: maco <macodev00@users.noreply.github.com>
@github-actions github-actions Bot added size:XL vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. labels Sep 24, 2026
@macodev00

Copy link
Copy Markdown
Owner Author

Superseded: upstream pingdotgg#13393 opened and closed after Macroscope Not approved (cap HIT).

@macodev00 macodev00 closed this Sep 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Sent message appears to start working only after returning to its thread

1 participant