mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-29 18:46:59 +00:00
The desktop's queue promises "run this AFTER the current turn", but the promise broke on a race the user can't see: a drain that fired when the client observed idle while the server was still unwinding the turn landed in _handle_busy_submit, which applied busy_input_mode — redirecting or interrupting the live turn with text the user explicitly queued. That's why force-sending the queue felt like a dice roll: the same gesture steered, interrupted, or queued depending on a millisecond settle race. prompt.submit now carries queued:true on every fromQueue drain (composer auto-drain, send-now, background drain), and the gateway's busy path honors it by forcing queue semantics — never steer, never redirect, never interrupt. Lose the race and the text simply waits its turn, which is what queueing meant all along. Covered on both sides: a gateway test proving a queued drain cannot touch redirect/steer/interrupt on the live agent, and the desktop drain tests now assert the flag rides every prompt.submit shape (direct, background, resume-retry). |
||
|---|---|---|
| .. | ||
| bootstrap-installer | ||
| desktop | ||
| shared | ||