Bug Description
When Hermes connects to Signal via signal-cli in daemon mode (linked device setup), group messages sent from the user's phone are silently dropped. Direct messages work correctly. No errors appear in the gateway log — it looks like the messages just never arrive.
Root Cause
In gateway/platforms/signal.py, the _handle_envelope() method's sync message handler only processes syncMessage events where destinationNumber equals the bot's own number (Note to Self). Group messages sent from linked devices have a groupInfo.groupId as their destination instead of a destinationNumber, and are silently dropped at the return on line ~460.
The relevant condition (line ~449):
if dest == self._account_normalized: # Only Note to Self gets through — group messages dropped
Steps to Reproduce
- Run
signal-cli daemon --http 127.0.0.1:8080 --account +<your-number> (linked device mode)
- Configure Signal adapter in
config.yaml with SIGNAL_HTTP_URL=http://127.0.0.1:8080
- Send a group message from the primary phone to a Signal group
- Observe: gateway logs show "Signal SSE: connected" but no response, no error
Expected Behavior
Group messages from linked devices should reach the agent and receive responses, just like direct messages.
Fix
Patch gateway/platforms/signal.py around line 449 to also pass through sync messages with a groupInfo.groupId:
sent_msg_group_info = sent_msg.get("groupInfo") or {}
sent_msg_group_id = sent_msg_group_info.get("groupId") if sent_msg_group_info else None
if dest == self._account_normalized or sent_msg_group_id:
# Now handles both Note to Self AND group messages from linked devices
⚠ Recurring revert: This fix lives in the local checkout. Every hermes update overwrites local patches — re-verify after updates.
Environment
- OS: Linux
- Signal setup: signal-cli daemon mode (linked device)
- Version: Hermes latest
Bug Description
When Hermes connects to Signal via signal-cli in daemon mode (linked device setup), group messages sent from the user's phone are silently dropped. Direct messages work correctly. No errors appear in the gateway log — it looks like the messages just never arrive.
Root Cause
In
gateway/platforms/signal.py, the_handle_envelope()method's sync message handler only processessyncMessageevents wheredestinationNumberequals the bot's own number (Note to Self). Group messages sent from linked devices have agroupInfo.groupIdas their destination instead of adestinationNumber, and are silently dropped at thereturnon line ~460.The relevant condition (line ~449):
Steps to Reproduce
signal-cli daemon --http 127.0.0.1:8080 --account +<your-number>(linked device mode)config.yamlwithSIGNAL_HTTP_URL=http://127.0.0.1:8080Expected Behavior
Group messages from linked devices should reach the agent and receive responses, just like direct messages.
Fix
Patch
gateway/platforms/signal.pyaround line 449 to also pass through sync messages with agroupInfo.groupId:⚠ Recurring revert: This fix lives in the local checkout. Every
hermes updateoverwrites local patches — re-verify after updates.Environment