diff --git a/docs/channels/group-messages.md b/docs/channels/group-messages.md index b409443b404..14fbf017bda 100644 --- a/docs/channels/group-messages.md +++ b/docs/channels/group-messages.md @@ -7,7 +7,9 @@ title: "Group messages" Goal: let Clawd sit in WhatsApp groups, wake up only when pinged, and keep that thread separate from the personal DM session. -Note: `agents.list[].groupChat.mentionPatterns` is now used by Telegram/Discord/Slack/iMessage as well; this doc focuses on WhatsApp-specific behavior. For multi-agent setups, set `agents.list[].groupChat.mentionPatterns` per agent (or use `messages.groupChat.mentionPatterns` as a global fallback). + +`agents.list[].groupChat.mentionPatterns` is also used by Telegram, Discord, Slack, and iMessage. This doc focuses on WhatsApp-specific behavior. For multi-agent setups, set `agents.list[].groupChat.mentionPatterns` per agent, or use `messages.groupChat.mentionPatterns` as a global fallback. + ## Current implementation (2025-12-03) diff --git a/docs/channels/msteams.md b/docs/channels/msteams.md index e6a164eb19e..b5e89b8f5a3 100644 --- a/docs/channels/msteams.md +++ b/docs/channels/msteams.md @@ -39,7 +39,9 @@ teams login teams status # verify you're logged in and see your tenant info ``` -> **Note:** The Teams CLI is currently in preview. Commands and flags may change between releases. + +The Teams CLI is currently in preview. Commands and flags may change between releases. + **2. Start a tunnel** (Teams can't reach localhost) @@ -55,7 +57,9 @@ devtunnel host my-openclaw-bot # Your endpoint: https://.devtunnels.ms/api/messages ``` -> **Note:** `--allow-anonymous` is required because Teams can't authenticate with devtunnels. Each incoming bot request is still validated by the Teams SDK automatically. + +`--allow-anonymous` is required because Teams cannot authenticate with devtunnels. Each incoming bot request is still validated by the Teams SDK automatically. + Alternatives: `ngrok http 3978` or `tailscale funnel 3978` (but these may change URLs each session). @@ -112,7 +116,9 @@ This runs diagnostics across bot registration, AAD app config, manifest validity For production deployments, consider using [federated authentication](#federated-authentication-certificate--managed-identity) (certificate or managed identity) instead of client secrets. -Note: group chats are blocked by default (`channels.msteams.groupPolicy: "allowlist"`). To allow group replies, set `channels.msteams.groupAllowFrom` (or use `groupPolicy: "open"` to allow any member, mention-gated). + +Group chats are blocked by default (`channels.msteams.groupPolicy: "allowlist"`). To allow group replies, set `channels.msteams.groupAllowFrom`, or use `groupPolicy: "open"` to allow any member (mention-gated). + ## Goals @@ -217,7 +223,9 @@ If you can't use the Teams CLI, you can set up the bot manually through the Azur | **Type of App** | **Single Tenant** (recommended - see note below) | | **Creation type** | **Create new Microsoft App ID** | -> **Deprecation notice:** Creation of new multi-tenant bots was deprecated after 2025-07-31. Use **Single Tenant** for new bots. + +Creation of new multi-tenant bots was deprecated after 2025-07-31. Use **Single Tenant** for new bots. + 3. Click **Review + create** → **Create** (wait ~1-2 minutes) @@ -914,7 +922,9 @@ openclaw message send --channel msteams --target "conversation:19:abc...@thread. } ``` -Note: Without the `user:` prefix, names default to group/team resolution. Always use `user:` when targeting people by display name. + +Without the `user:` prefix, names default to group or team resolution. Always use `user:` when targeting people by display name. + ## Proactive messaging diff --git a/docs/channels/signal.md b/docs/channels/signal.md index 39346f43e25..f2ab951a865 100644 --- a/docs/channels/signal.md +++ b/docs/channels/signal.md @@ -152,7 +152,9 @@ openclaw channels status --probe - Approve code on the server: `openclaw pairing approve signal `. - Save the bot number as a contact on your phone to avoid "Unknown contact". -Important: registering a phone number account with `signal-cli` can de-authenticate the main Signal app session for that number. Prefer a dedicated bot number, or use QR link mode if you need to keep your existing phone app setup. + +Registering a phone number account with `signal-cli` can de-authenticate the main Signal app session for that number. Prefer a dedicated bot number, or use QR link mode if you need to keep your existing phone app setup. + Upstream references: diff --git a/docs/channels/slack.md b/docs/channels/slack.md index 1e4c3fd7971..5d14accc435 100644 --- a/docs/channels/slack.md +++ b/docs/channels/slack.md @@ -530,7 +530,9 @@ Manual reply tags are supported: - `[[reply_to_current]]` - `[[reply_to:]]` -Note: `replyToMode="off"` disables **all** reply threading in Slack, including explicit `[[reply_to_*]]` tags. This differs from Telegram, where explicit tags are still honored in `"off"` mode — Slack threads hide messages from the channel while Telegram replies stay visible inline. + +`replyToMode="off"` disables **all** reply threading in Slack, including explicit `[[reply_to_*]]` tags. This differs from Telegram, where explicit tags are still honored in `"off"` mode. Slack threads hide messages from the channel while Telegram replies stay visible inline. + ## Ack reactions diff --git a/docs/channels/whatsapp.md b/docs/channels/whatsapp.md index 194f15b1e74..ae3bfe97d10 100644 --- a/docs/channels/whatsapp.md +++ b/docs/channels/whatsapp.md @@ -567,7 +567,9 @@ The effective `direct` map is determined first: if the account defines its own ` 1. **Direct-specific system prompt** (`direct[""].systemPrompt`): used when the specific peer entry exists in the map **and** its `systemPrompt` key is defined. If `systemPrompt` is an empty string (`""`), the wildcard is suppressed and no system prompt is applied. 2. **Direct wildcard system prompt** (`direct["*"].systemPrompt`): used when the specific peer entry is absent from the map entirely, or when it exists but defines no `systemPrompt` key. -Note: `dms` remains the lightweight per-DM history override bucket (`dms..historyLimit`); prompt overrides live under `direct`. + +`dms` remains the lightweight per-DM history override bucket (`dms..historyLimit`). Prompt overrides live under `direct`. + **Difference from Telegram multi-account behavior:** In Telegram, root `groups` is intentionally suppressed for all accounts in a multi-account setup — even accounts that define no `groups` of their own — to prevent a bot from receiving group messages for groups it does not belong to. WhatsApp does not apply this guard: root `groups` and root `direct` are always inherited by accounts that define no account-level override, regardless of how many accounts are configured. In a multi-account WhatsApp setup, if you want per-account group or direct prompts, define the full map under each account explicitly rather than relying on root-level defaults.