diff --git a/docs/channels/discord.md b/docs/channels/discord.md index db7f2b8a9a7..6a83acbe398 100644 --- a/docs/channels/discord.md +++ b/docs/channels/discord.md @@ -950,11 +950,11 @@ Default slash command settings: Config path: - `channels.discord.execApprovals.enabled` - - `channels.discord.execApprovals.approvers` (optional; falls back to owner IDs inferred from `allowFrom` and explicit DM `defaultTo` when possible) + - `channels.discord.execApprovals.approvers` (optional; falls back to `commands.ownerAllowFrom` when possible) - `channels.discord.execApprovals.target` (`dm` | `channel` | `both`, default: `dm`) - `agentFilter`, `sessionFilter`, `cleanupAfterResolve` - Discord auto-enables native exec approvals when `enabled` is unset or `"auto"` and at least one approver can be resolved, either from `execApprovals.approvers` or from the account's existing owner config (`allowFrom`, legacy `dm.allowFrom`, or explicit DM `defaultTo`). Set `enabled: false` to disable Discord as a native approval client explicitly. + Discord auto-enables native exec approvals when `enabled` is unset or `"auto"` and at least one approver can be resolved, either from `execApprovals.approvers` or from `commands.ownerAllowFrom`. Discord does not infer exec approvers from channel `allowFrom`, legacy `dm.allowFrom`, or direct-message `defaultTo`. Set `enabled: false` to disable Discord as a native approval client explicitly. When `target` is `channel` or `both`, the approval prompt is visible in the channel. Only resolved approvers can use the buttons; other users receive an ephemeral denial. Approval prompts include the command text, so only enable channel delivery in trusted channels. If the channel ID cannot be derived from the session key, OpenClaw falls back to DM delivery. diff --git a/docs/tools/exec-approvals.md b/docs/tools/exec-approvals.md index 8ed33c7e946..65f476ca816 100644 --- a/docs/tools/exec-approvals.md +++ b/docs/tools/exec-approvals.md @@ -540,7 +540,8 @@ Shared behavior: for same-chat `/approve` - when a native approval client auto-enables, the default native delivery target is approver DMs - for Discord and Telegram, only resolved approvers can approve or deny -- Discord and Telegram approvers can be explicit (`execApprovals.approvers`) or inferred from existing owner config (`allowFrom`, plus direct-message `defaultTo` where supported) +- Discord approvers can be explicit (`execApprovals.approvers`) or inferred from `commands.ownerAllowFrom` +- Telegram approvers can be explicit (`execApprovals.approvers`) or inferred from existing owner config (`allowFrom`, plus direct-message `defaultTo` where supported) - Slack approvers can be explicit (`execApprovals.approvers`) or inferred from `commands.ownerAllowFrom` - Slack native buttons preserve approval id kind, so `plugin:` ids can resolve plugin approvals without a second Slack-local fallback layer