Skip to content

feat(bluebubbles): support group mention gating - #37091

Merged
teknium1 merged 3 commits into
mainfrom
hermes/hermes-b04dec98
Jun 2, 2026
Merged

feat(bluebubbles): support group mention gating#37091
teknium1 merged 3 commits into
mainfrom
hermes/hermes-b04dec98

Conversation

@teknium1

@teknium1 teknium1 commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

Summary

BlueBubbles/iMessage group chats can now opt into mention gating — Hermes only responds when addressed by a wake word, matching the 8 other platforms that already support require_mention.

Salvage of #35606 by @tmchow (Trevin Chow), cherry-picked onto current main with authorship preserved, plus a follow-up refactor that trims the helper boilerplate.

Changes

  • gateway/platforms/bluebubbles.py: add require_mention + mention_patterns (config.yaml + env), conservative default hermes/hermes agent wake words, strip the leading wake word before dispatch. Group-only; DMs and default behavior unchanged.
  • gateway/config.py: BLUEBUBBLES_REQUIRE_MENTION / BLUEBUBBLES_MENTION_PATTERNS env overrides.
  • scripts/release.py: AUTHOR_MAP entry for the contributor.
  • website/docs/.../bluebubbles.md: config/env docs.
  • Follow-up refactor (teknium1): collapsed three mention-parsing helpers into one _compile_mention_patterns, inlined the bool coercion to match the signal/dingtalk convention. Same behavior, 16 fewer lines on the adapter.

Validation

Result
tests/gateway/test_bluebubbles.py 56 passed
ruff check gateway/platforms/bluebubbles.py clean
E2E (default match/ignore/strip, custom patterns override, off-by-default, empty/invalid patterns) all pass

Replaces #35606.

Infographic

bluebubbles-group-mention-gating

tmchow and others added 3 commits June 1, 2026 17:36
Collapse the three mention-parsing helpers into one _compile_mention_patterns
that handles list/string/None inputs, and inline the require_mention bool
coercion to match the signal/dingtalk convention. Same behavior, 16 fewer
lines, no per-instance state in the staticmethod.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants