hermes - 💡(How to fix) Fix Signal adapter: add require_mention support for group chats [1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
NousResearch/hermes-agent#13478Fetched 2026-04-22 08:06:13
View on GitHub
Comments
0
Participants
1
Timeline
4
Reactions
0
Author
Participants
Timeline (top)
labeled ×4
RAW_BUFFERClick to expand / collapse

Feature Request

The Signal adapter currently lacks require_mention support that exists on all other group-capable platforms (Telegram, Discord, WhatsApp, Slack, Mattermost, Matrix).

Current behavior

When SIGNAL_GROUP_ALLOWED_USERS is set, the bot responds to every message in the group — there is no way to make it respond only when @mentioned.

Desired behavior

Add require_mention support matching the pattern used by other platforms:

  • SIGNAL_REQUIRE_MENTION=true (env var) or signal.require_mention: true (config.yaml)
  • When enabled, group messages without an @mention of the bot are silently dropped
  • DMs remain unrestricted
  • SIGNAL_FREE_RESPONSE_GROUPS allows bypassing per-group
  • Commands (/-prefixed) always pass through

Implementation notes

  • Signal encodes @mentions as \uFFFC with out-of-band metadata containing UUID/number
  • The _render_mentions() helper already parses these — detection can reuse the same data
  • The config bridge in gateway/config.py already handles require_mention generically (line ~573) for all platforms
  • Only signal.py changes needed: mention detection + gating logic before handle_message()
  • Env var bridge in config.py needs SIGNAL_REQUIRE_MENTIONconfig.extra mapping

Use case

Team group chats where the bot should observe context but only respond when explicitly asked — the standard pattern for other platforms.

extent analysis

TL;DR

To add require_mention support to the Signal adapter, modify the signal.py file to detect mentions and gate messages accordingly, and update the config.py file to handle the SIGNAL_REQUIRE_MENTION environment variable.

Guidance

  • Modify the signal.py file to reuse the _render_mentions() helper for mention detection and add logic to silently drop group messages without an @mention of the bot when require_mention is enabled.
  • Update the config.py file to map the SIGNAL_REQUIRE_MENTION environment variable to config.extra for the Signal adapter.
  • Ensure that the SIGNAL_FREE_RESPONSE_GROUPS setting allows bypassing the require_mention check per-group.
  • Verify that commands (/-prefixed) are not affected by the require_mention setting and always pass through.

Example

# signal.py
def handle_message(message):
    if config.extra.get('require_mention') and not _detect_mention(message):
        # Silently drop message if no mention is found
        return
    # Existing message handling logic

Notes

The implementation should be careful to handle the Signal-specific encoding of @mentions as \uFFFC with out-of-band metadata.

Recommendation

Apply the workaround by modifying the signal.py and config.py files as described, as this will provide the desired require_mention support for the Signal adapter.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

hermes - 💡(How to fix) Fix Signal adapter: add require_mention support for group chats [1 participants]