diff --git a/.openclaw-sync/source.json b/.openclaw-sync/source.json index b20fca5e8..75565bf6a 100644 --- a/.openclaw-sync/source.json +++ b/.openclaw-sync/source.json @@ -1,5 +1,5 @@ { "repository": "openclaw/openclaw", - "sha": "204ef7f1c45b5377fe272b068fdec15e32789247", - "syncedAt": "2026-04-29T14:42:03.374Z" + "sha": "240362bf6d0e6ee4d73e8d8191c58afc356a14f4", + "syncedAt": "2026-04-29T15:36:52.016Z" } diff --git a/docs/channels/discord.md b/docs/channels/discord.md index ae7003351..8f228f556 100644 --- a/docs/channels/discord.md +++ b/docs/channels/discord.md @@ -390,11 +390,11 @@ Example: - `channels.discord.dmPolicy` controls DM access (legacy: `channels.discord.dm.policy`): + `channels.discord.dmPolicy` controls DM access. `channels.discord.allowFrom` is the canonical DM allowlist. - `pairing` (default) - `allowlist` - - `open` (requires `channels.discord.allowFrom` to include `"*"`; legacy: `channels.discord.dm.allowFrom`) + - `open` (requires `channels.discord.allowFrom` to include `"*"`) - `disabled` If DM policy is not open, unknown users are blocked (or prompted for pairing in `pairing` mode). @@ -406,6 +406,8 @@ Example: - Named accounts inherit `channels.discord.allowFrom` when their own `allowFrom` and legacy `dm.allowFrom` are unset. - Named accounts do not inherit `channels.discord.accounts.default.allowFrom`. + Legacy `channels.discord.dm.policy` and `channels.discord.dm.allowFrom` still read for compatibility. `openclaw doctor --fix` migrates them to `dmPolicy` and `allowFrom` when it can do so without changing access. + DM target format for delivery: - `user:` diff --git a/docs/channels/slack.md b/docs/channels/slack.md index 8675f51af..aef634818 100644 --- a/docs/channels/slack.md +++ b/docs/channels/slack.md @@ -464,17 +464,17 @@ Current Slack message actions include `send`, `upload-file`, `download-file`, `r - `channels.slack.dmPolicy` controls DM access (legacy: `channels.slack.dm.policy`): + `channels.slack.dmPolicy` controls DM access. `channels.slack.allowFrom` is the canonical DM allowlist. - `pairing` (default) - `allowlist` - - `open` (requires `channels.slack.allowFrom` to include `"*"`; legacy: `channels.slack.dm.allowFrom`) + - `open` (requires `channels.slack.allowFrom` to include `"*"`) - `disabled` DM flags: - `dm.enabled` (default true) - - `channels.slack.allowFrom` (preferred) + - `channels.slack.allowFrom` - `dm.allowFrom` (legacy) - `dm.groupEnabled` (group DMs default false) - `dm.groupChannels` (optional MPIM allowlist) @@ -485,6 +485,8 @@ Current Slack message actions include `send`, `upload-file`, `download-file`, `r - Named accounts inherit `channels.slack.allowFrom` when their own `allowFrom` is unset. - Named accounts do not inherit `channels.slack.accounts.default.allowFrom`. + Legacy `channels.slack.dm.policy` and `channels.slack.dm.allowFrom` still read for compatibility. `openclaw doctor --fix` migrates them to `dmPolicy` and `allowFrom` when it can do so without changing access. + Pairing in DMs uses `openclaw pairing approve slack `. diff --git a/docs/plugins/sdk-channel-plugins.md b/docs/plugins/sdk-channel-plugins.md index 2f823ae26..0d7678198 100644 --- a/docs/plugins/sdk-channel-plugins.md +++ b/docs/plugins/sdk-channel-plugins.md @@ -472,6 +472,8 @@ should use `resolveInboundMentionDecision({ facts, policy })`. }); ``` + For channels that accept both canonical top-level DM keys and legacy nested keys, use the helpers from `plugin-sdk/channel-config-helpers`: `resolveChannelDmAccess`, `resolveChannelDmPolicy`, `resolveChannelDmAllowFrom`, and `normalizeChannelDmPolicy` keep account-local values ahead of inherited root values. Pair the same resolver with doctor repair through `normalizeLegacyDmAliases` so runtime and migration read the same contract. + Instead of implementing low-level adapter interfaces manually, you pass declarative options and the builder composes them: diff --git a/docs/plugins/sdk-migration.md b/docs/plugins/sdk-migration.md index 8eb3024b7..9ce2c8d3f 100644 --- a/docs/plugins/sdk-migration.md +++ b/docs/plugins/sdk-migration.md @@ -387,7 +387,7 @@ releases. | `plugin-sdk/channel-setup` | Setup wizard adapters | `createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`, `createOptionalChannelSetupWizard`, plus `DEFAULT_ACCOUNT_ID`, `createTopLevelChannelDmPolicy`, `setSetupChannelEnabled`, `splitSetupEntries` | | `plugin-sdk/channel-pairing` | DM pairing primitives | `createChannelPairingController` | | `plugin-sdk/channel-reply-pipeline` | Reply prefix, typing, and source-delivery wiring | `createChannelReplyPipeline`, `resolveChannelSourceReplyDeliveryMode` | - | `plugin-sdk/channel-config-helpers` | Config adapter factories | `createHybridChannelConfigAdapter` | + | `plugin-sdk/channel-config-helpers` | Config adapter factories and DM access helpers | `createHybridChannelConfigAdapter`, `resolveChannelDmAccess`, `resolveChannelDmAllowFrom`, `resolveChannelDmPolicy`, `normalizeChannelDmPolicy`, `normalizeLegacyDmAliases` | | `plugin-sdk/channel-config-schema` | Config schema builders | Shared channel config schema primitives and the generic builder only | | `plugin-sdk/bundled-channel-config-schema` | Bundled config schemas | OpenClaw-maintained bundled plugins only; new plugins must define plugin-local schemas | | `plugin-sdk/channel-config-schema-legacy` | Deprecated bundled config schemas | Compatibility alias only; use `plugin-sdk/bundled-channel-config-schema` for maintained bundled plugins | diff --git a/docs/plugins/sdk-subpaths.md b/docs/plugins/sdk-subpaths.md index 58bdaac32..cb2180cde 100644 --- a/docs/plugins/sdk-subpaths.md +++ b/docs/plugins/sdk-subpaths.md @@ -57,7 +57,7 @@ For the plugin authoring guide, see [Plugin SDK overview](/plugins/sdk-overview) | `plugin-sdk/account-helpers` | Narrow account-list/account-action helpers | | `plugin-sdk/channel-pairing` | `createChannelPairingController` | | `plugin-sdk/channel-reply-pipeline` | `createChannelReplyPipeline`, `resolveChannelSourceReplyDeliveryMode` | - | `plugin-sdk/channel-config-helpers` | `createHybridChannelConfigAdapter` | + | `plugin-sdk/channel-config-helpers` | `createHybridChannelConfigAdapter`, `resolveChannelDmAccess`, `resolveChannelDmAllowFrom`, `resolveChannelDmPolicy`, `normalizeChannelDmPolicy`, `normalizeLegacyDmAliases` | | `plugin-sdk/channel-config-schema` | Shared channel config schema primitives and generic builder | | `plugin-sdk/bundled-channel-config-schema` | Bundled OpenClaw channel config schemas for maintained bundled plugins only | | `plugin-sdk/channel-config-schema-legacy` | Deprecated compatibility alias for bundled-channel config schemas |