You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Address three UI remarks on the thread-queue panel (#4155):
1. The queue panel now lists only *waiting* (ENQUEUED) messages. The
running/PENDING head is excluded — it's already rendered in the chat
body, so showing it in the queue too was duplicative.
2. The composer is no longer disabled while a run is in progress. A draft
sends even mid-run (the message enqueues behind the running gate;
concurrency=1 serializes the thread), so users can stack follow-ups.
New pure helper `resolveComposerAction({hasDraft,isStreaming,
isRunInProgress})` → send | stop | disabled, unit-tested; the primary
button flips Stop→Send the moment there's a draft.
3. The queue is now refreshed from SSE, not a 3s poll. Dropped
`refetchInterval`; the query re-fetches via `KEYS.threadQueue`
invalidation on send, on cancel, and on every `conn.status` run
start/end edge (the SSE stream the chat already consumes).
Verified live against a seeded stranded gate (1 PENDING head + 2 ENQUEUED):
panel shows only the 2 queued, input editable mid-run, per-item cancel +
refresh, and no recurring /queue/ polling in the network log.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
0 commit comments