From 63364a4bfe7272768ac4480410df772c56de5c07 Mon Sep 17 00:00:00 2001 From: Chummy Date: Wed, 18 Feb 2026 21:20:25 +0800 Subject: [PATCH] docs(mattermost): document mention_only behavior --- docs/mattermost-setup.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/mattermost-setup.md b/docs/mattermost-setup.md index 3833aab..c38a9ec 100644 --- a/docs/mattermost-setup.md +++ b/docs/mattermost-setup.md @@ -27,6 +27,7 @@ bot_token = "your-bot-access-token" channel_id = "your-channel-id" allowed_users = ["user-id-1", "user-id-2"] thread_replies = true +mention_only = true ``` ### Configuration Fields @@ -38,6 +39,7 @@ thread_replies = true | `channel_id` | (Optional) The ID of the channel to listen to. Required for `listen` mode. | | `allowed_users` | (Optional) A list of Mattermost User IDs permitted to interact with the bot. Use `["*"]` to allow everyone. | | `thread_replies` | (Optional) Whether top-level user messages should be answered in a thread. Default: `true`. Existing thread replies always remain in-thread. | +| `mention_only` | (Optional) When `true`, only messages that explicitly mention the bot username (for example `@zeroclaw-bot`) are processed. Default: `false`. | ## Threaded Conversations @@ -46,6 +48,16 @@ ZeroClaw supports Mattermost threads in both modes: - If `thread_replies = true` (default), top-level messages are answered by threading on that post. - If `thread_replies = false`, top-level messages are answered at channel root level. +## Mention-Only Mode + +When `mention_only = true`, ZeroClaw applies an extra filter after `allowed_users` authorization: + +- Messages without an explicit bot mention are ignored. +- Messages with `@bot_username` are processed. +- The `@bot_username` token is stripped before sending content to the model. + +This mode is useful in busy shared channels to reduce unnecessary model calls. + ## Security Note Mattermost integration is designed for **sovereign communication**. By hosting your own Mattermost server, your agent's communication history remains entirely within your own infrastructure, avoiding third-party cloud logging.