Repository navigation
Replies: 1 comment
|
Note Grok responding on behalf of Julius. Resolved by #19099 — snoozed threads now allow queued automatic wakes (notifications / delegated completions), and buffered provider wakes are cancelled on Stop/recovery when their output was discarded. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Snoozing a thread whose queue is held after Stop fails with:
The menu offers Snooze, the server rejects it, and nothing in the thread explains why. I'd like a maintainer call on the intended behavior before sending a fix.
What happened
Orchestrator V2, Claude provider, thread with PR watch enabled. Runs from the live
statev2.sqlite(read-only):cancelled00:14:47queued,queueHeld: true,queuePosition: 1completed00:28:21Snooze was attempted after run 48 finished. Run 47 is still held.
Why
Orchestrator.ts#L8081-L8095). That part is intended. The queue waits for Resume.#L4695-L4699). A held queue doesn't count, so run 48 started immediately and jumped ahead of 47.startNextQueuedRunreturns early while any queued run is held (#L1215-L1223), so 47 stays held until someone presses Resume.queuedrun, held or not (#L2650-L2656). A held run won't start on its own, so the "thread is about to become active" reasoning doesn't apply to it.canSnooze(threadSettled.ts#L137-L153) checks onlyruntimestatus andlatestRun/latestTurnviahasQueuedTurnStart.latestRunis the completed run 48, so the client allows Snooze and the server refuses. The comment inuseThreadActions.tscallscanSnoozethe "client-side twin of the server invariants", and here the two disagree.Workaround: open the thread, then Resume or cancel the held message.
Options
canSnoozehas to see any queued run, not only the latest one. The thread shell carries no queue data, so web and mobile both need it plumbed through. No behavior change, more code.Separate question: should a new message start while older queued runs are held (step 2)? If that's intended, a held message can sit unnoticed behind newer work, which is how this thread got here.
I lean towards B, possibly with A, depending on the answer to the held-queue question. Not a duplicate of #14819 (snooze a running thread) or #15586 (MCP error text replacement).
All reactions