{"repo":"NousResearch/hermes-agent","public_id":"2174","display_label":"Mattermost gateway @-mention filter feature requests","summary":"Multiple related proposals for adding a configurable mode to the Mattermost gateway adapter that restricts bot responses to messages containing @-mentions. The members appear to be duplicate or closely related feature requests for the same functionality.","subsystem":"gateway","counts":{"members":3,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":1},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":2443,"merged_at":"2026-03-22T10:50:35+00:00"},"resolution":{"state":"resolved","by":"pr-2443"},"freshness":{"state":"stale","last_verified_at":"2026-03-22T10:50:35+00:00","is_stale":true},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.6666666666666666},"fix_edges":[{"issue_number":2174,"pr_number":2443,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-03-22T10:50:35+00:00"}],"members":[{"kind":"issue","number":2174,"title":"Feature: @-mention-only mode for Mattermost gateway adapter","url":null,"state":"closed"},{"kind":"pr","number":2279,"title":"feat(gateway): add @-mention-only filter for Mattermost channels","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#2443","number":2443}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":2443,"title":"feat(gateway): add @-mention-only filter for Mattermost channels","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["gateway/platforms/mattermost.py"],"fix_hunks":[{"file":"gateway/platforms/mattermost.py","hunks":["@@ -580,6 +580,24 @@ async def _handle_ws_event(self, event: Dict[str, Any]) -> None:\n         # For DMs, user_id is sufficient.  For channels, check for @mention.\n         message_text = post.get(\"message\", \"\")\n \n+        # Mention-only mode: skip channel messages that don't @mention the bot.\n+        # DMs (type \"D\") are always processed.\n+        if channel_type_raw != \"D\":\n+            mention_patterns = [\n+                f\"@{self._bot_username}\",\n+                f\"@{self._bot_user_id}\",\n+            ]\n+            has_mention = any(\n+                pattern.lower() in message_text.lower()\n+                for pattern in mention_patterns\n+            )\n+            if not has_mention:\n+                logger.debug(\n+                    \"Mattermost: skipping non-DM message without @mention (channel=%s)\",\n+                    channel_id,\n+                )\n+                return\n+\n         # Resolve sender info.\n         sender_id = post.get(\"user_id\", \"\")\n         sender_name = data.get(\"sender_name\", \"\").lstrip(\"@\") or sender_id\n"]}]}],"trust":{"default_tier":"verified","includes_suggested":false}}