fix(signal): handle Note to Self messages with echo-back protection#2156
Merged
Conversation
added 2 commits
March 20, 2026 04:46
Support Signal 'Note to Self' messages in single-number setups where signal-cli is linked as a secondary device on the user's own account. syncMessage.sentMessage envelopes addressed to the bot's own account are now promoted to dataMessage for normal processing, while other sync events (read receipts, typing, etc.) are still filtered. Echo-back prevention mirrors the WhatsApp bridge pattern: - Track timestamps of recently sent messages (bounded set of 50) - When a Note to Self sync arrives, check if its timestamp matches a recent outbound — skip if so (agent echo-back) - Only process sync messages that are genuinely user-initiated Based on PR #2115 by @Stonelinks with added echo-back protection.
5 tasks
angelburgosrosado
pushed a commit
to angelburgosrosado/hermes-agent
that referenced
this pull request
Apr 27, 2026
…6757a563 fix(signal): handle Note to Self messages with echo-back protection
02356abc
pushed a commit
to 02356abc/hermes-agent
that referenced
this pull request
May 14, 2026
…6757a563 fix(signal): handle Note to Self messages with echo-back protection
olympus-terminal
pushed a commit
to olympus-terminal/hermes-agent
that referenced
this pull request
May 16, 2026
…6757a563 fix(signal): handle Note to Self messages with echo-back protection
gweeteve
pushed a commit
to gweeteve/hermes-agent
that referenced
this pull request
Jun 2, 2026
…6757a563 fix(signal): handle Note to Self messages with echo-back protection
Egavasyug
pushed a commit
to Egavasyug/hermes-agent
that referenced
this pull request
Jun 10, 2026
…6757a563 fix(signal): handle Note to Self messages with echo-back protection
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Salvage of #2115 by @Stonelinks with added echo-back protection modeled after the WhatsApp bridge.
Problem
Signal's "Note to Self" messages (sent to your own account) arrive as
syncMessage.sentMessageenvelopes, which were unconditionally filtered out. In single-number setups where signal-cli is linked as a secondary device, this was the only way to interact with the bot.What changed
Note to Self detection:
syncMessage.sentMessageenvelopes addressed to the bot's own account are now promoted todataMessagefor normal processing. Other sync events (read receipts, typing indicators) are still filtered.Echo-back protection (new vs #2115): Mirrors the WhatsApp bridge's
recentlySentIdspattern:_recent_sent_timestamps— bounded set (50) tracks timestamps of messages the bot sends_track_sent_timestamp()— called fromsend(),send_image(),send_document()The original PR #2115 bypassed the self-message filter entirely for Note to Self with no echo-back prevention, creating a loop risk if signal-cli ever received a sync of its own sends.
Test plan
Attribution
Based on PR #2115 by @Stonelinks.