fix(gateway): send feedback when text messages are queued during active session#31612
Conversation
a7e1b02 to
418bcd6
Compare
✅ Ready to MergeAll CI checks are green and this PR is mergeable. Summary: fix(gateway): send feedback when text messages are queued during active session CI Status: All 6 test slices passing, lint clean, no conflicts. Requesting merge when convenient. Thanks! |
418bcd6 to
903e373
Compare
|
🔄 Rebased onto latest main (0219b04). All conflicts resolved. CI green. Ready for review. |
903e373 to
2ccb8c5
Compare
2ccb8c5 to
974867d
Compare
|
🔄 Updated: Rebased onto latest main. Now includes:
|
974867d to
ff587a9
Compare
ff587a9 to
ecb67e5
Compare
The busy feedback feature (PR NousResearch#31612) sends a '⏳ Agent is busy' notice for ALL text messages queued during an active session. Update the three TestNonBypassStillQueued tests to expect 1 sent response instead of 0, while still verifying the message is queued as pending (not dispatched).
ecb67e5 to
419cbc8
Compare
…to avoid race
The grandchild script wrote its PID to a file but didn't flush/close the
handle explicitly, causing a race where the parent reads an empty file
and int('') raises ValueError. Use + explicit flush to ensure the
content is on disk before the grandchild enters the busy loop.
|
🤖 Review Request — Bump This PR has been open for 8 days with all CI green and no conflicts. It has been rebased 3 times to stay current with Summary: Sends feedback to the user when text messages are queued during an active session — prevents silent message loss. All test slices passing, mergeable, ready for review. |
|
Unsubscribe
…On Mon, Jun 1, 2026 at 7:39 AM Spider-Vers ***@***.***> wrote:
*alaamohanad169-ship-it* left a comment (NousResearch/hermes-agent#31612)
<#31612 (comment)>
🤖 *Review Request — Bump*
This PR has been open for 8 days with all CI green and no conflicts. It
has been rebased 3 times to stay current with main.
*Summary:* Sends feedback to the user when text messages are queued
during an active session — prevents silent message loss.
All test slices passing, mergeable, ready for review.
—
Reply to this email directly, view it on GitHub
<#31612?email_source=notifications&email_token=BVAK7EIIDQVQBDLUX2SNFK345VTODA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTINJZGIYTSOBVHA2KM4TFMFZW63VKON2WE43DOJUWEZLEUVSXMZLOOSWGM33PORSXEX3DNRUWG2Y#issuecomment-4592198584>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/BVAK7EJHVXQO2TNH62Q6C6T45VTODAVCNFSM6AAAAACZLKLAISVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHM2DKOJSGE4TQNJYGQ>
.
Triage notifications, keep track of coding agent tasks and review pull
requests on the go with GitHub Mobile for iOS
<https://github.com/notifications/mobile/ios/BVAK7EPPT7G3URW2S4PYYFD45VTODA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTINJZGIYTSOBVHA2KM4TFMFZW63VKON2WE43DOJUWEZLEUVSXMZLOOSVGM33PORSXEX3JN5ZQ>
and Android
<https://github.com/notifications/mobile/android/BVAK7EL7C4PNSQLQBPVJQQD45VTODA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTINJZGIYTSOBVHA2KM4TFMFZW63VKON2WE43DOJUWEZLEUVSXMZLOOSXGM33PORSXEX3BNZSHE33JMQ>.
Download it today!
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
|
🔄 This PR was auto-closed when the head branch was recreated during auto-rebase. The rebased version is now tracked by #37114. |
The busy feedback feature (PR NousResearch#31612) sends a '⏳ Agent is busy' notice for ALL text messages queued during an active session. Update the three TestNonBypassStillQueued tests to expect 1 sent response instead of 0, while still verifying the message is queued as pending (not dispatched).
Summary
When the agent is actively running (executing tool calls), incoming text messages from the user are silently queued with no feedback. The user has no way to know their message was received, and the only escape hatch is
/stop, which is not discoverable in the moment.Fixes #31588
Changes
gateway/platforms/base.py: Whenbusy_session_handlerdoes not intercept the message and the session is active, send a brief acknowledgment before queuing the message:_send_with_retrywithreply_to=event.message_idso it appears as a reply on platforms that support it.Why this approach
gateway/run.py(which handles draining/steer modes with their own logic)._handle_active_session_busy_messagewhich returnsTruebefore reaching this code. Steer mode is unaffected.Test plan