feat(desktop): per-session mid-turn message queue (enqueue-on-inflight, drain-once-per-turn, strip UI)

This commit is contained in:
ZiyaZhang
2026-07-20 01:59:23 -07:00
parent 0207b5edd2
commit 830579ab50
12 changed files with 1052 additions and 8 deletions

View File

@@ -104,6 +104,17 @@ a toggle), and `context/message` / `steering/message` events surface as
and why. A `Cancel` button appears mid-turn and cuts the stream via
`session/cancel`.
The wire accepts only one in-flight prompt per session, so pressing Enter
while a turn is running **queues** your message instead of erroring: a strip
above the composer shows one chip per queued message with a `queued N`
counter, and each chip lets you edit the text inline, delete it, or bump it to
the front (**send next**). When the turn ends, the head of the queue is sent
automatically — one message per turn completion — so a burst of follow-ups
plays out in order without you babysitting each turn. The queue is
per-session (switching sessions shows that session's queue), survives a
cancelled turn, and is cleared with a notice if the runtime restarts or you
switch profiles.
![](docs/readme-shots/03-chat.png)
#### Session Tree