diff --git a/CHANGELOG.md b/CHANGELOG.md index 62a18be63af..82b03e107cb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -51,7 +51,7 @@ Docs: https://docs.openclaw.ai - Plugins/hooks: inject each plugin's resolved config into internal hook event context without mutating the shared event object. (#72888) Thanks @jalapeno777. - Agents/ACP: pass the resolved ACP agent directory into media understanding so per-agent media caches and config are used for ACP-dispatched image turns. (#72832) Thanks @luyao618. - Gateway/Bonjour: truncate mDNS service names and host labels to the 63-byte DNS label limit at valid UTF-8 boundaries. (#72809) Thanks @luyao618. -- Feishu: treat groups explicitly configured under channels.feishu.groups as admitted even when groupAllowFrom is empty, so per-group mention overrides work with the default allowlist policy. Fixes #67687. (#72789) Thanks @MoerAI. +- Feishu: treat groups explicitly configured under channels.feishu.groups as admitted even when groupAllowFrom is empty, while preserving groupPolicy: "disabled" as a hard group block and keeping groups.\* wildcard defaults non-admitting. Fixes #67687. (#72789) Thanks @MoerAI. - Gateway/startup: keep hot Gateway boot paths on leaf config imports and add max-RSS reporting to the gateway startup bench so low-memory startup regressions are visible before release. Thanks @vincentkoc. - WebChat: read `chat.history` from active transcript branches, drop stale streamed assistant tails once final history catches up, and coalesce duplicate in-flight Control UI submits, so rewritten prompts, completed replies, and rapid send events no longer render or process twice. Fixes #72975, #72963, and #72974. Thanks @dmagdici, @lhtpluto, and @Benjamin5281999. - WebChat/TTS: persist automatic final-mode TTS audio as a supplemental audio-only transcript update instead of adding a second assistant message with the same visible text. Fixes #72830. Thanks @lhtpluto. diff --git a/docs/.generated/config-baseline.sha256 b/docs/.generated/config-baseline.sha256 index e366e50b1e8..446aed311f4 100644 --- a/docs/.generated/config-baseline.sha256 +++ b/docs/.generated/config-baseline.sha256 @@ -1,4 +1,4 @@ -5e437b340f321aafa12697df2b77a2f13b33069042784fd49de4273ebacf46be config-baseline.json +5ffabe5ff76d8e4a0d121e89f74f84917b919447e63bf12e0e5b0e4c0211d451 config-baseline.json 7dcb21e47ddd5de98e2af1ecbc41e11ac0c5742819c359e6d851fbc39c0226e9 config-baseline.core.json c4f07c228d4f07e7afafa5b600b4a80f5b26aaed7267c7287a64d04a527be8e8 config-baseline.channel.json -10400fb5b294fe3f2e97ab69327c75308bb2bf014b399ec0e2d59b8cd9d16ff1 config-baseline.plugin.json +6938050627f0d120109d2045b4300aa8b508b35132542db434033ed0fe3e2b3a config-baseline.plugin.json diff --git a/docs/channels/feishu.md b/docs/channels/feishu.md index 3b93283e8cd..d55f81b5320 100644 --- a/docs/channels/feishu.md +++ b/docs/channels/feishu.md @@ -63,7 +63,7 @@ openclaw pairing approve feishu | ------------- | -------------------------------------------------------------------------------------------- | | `"open"` | Respond to all messages in groups | | `"allowlist"` | Only respond to groups in `groupAllowFrom` or explicitly configured under `groups.` | -| `"disabled"` | Disable all group messages | +| `"disabled"` | Disable all group messages; explicit `groups.` entries do not override this | Default: `allowlist` @@ -117,7 +117,7 @@ Default: `allowlist` } ``` -You can also admit a group by adding an explicit `groups.` entry. Wildcard defaults under `groups.*` configure matching groups, but they do not admit groups by themselves. +In `allowlist` mode, you can also admit a group by adding an explicit `groups.` entry. Explicit entries do not override `groupPolicy: "disabled"`. Wildcard defaults under `groups.*` configure matching groups, but they do not admit groups by themselves. ```json5 { diff --git a/docs/plugins/hooks.md b/docs/plugins/hooks.md index a46129680ea..3597319928d 100644 --- a/docs/plugins/hooks.md +++ b/docs/plugins/hooks.md @@ -52,6 +52,11 @@ export default definePluginEntry({ Hook handlers run sequentially in descending `priority`. Same-priority hooks keep registration order. +Each hook receives `event.context.pluginConfig`, the resolved config for the +plugin that registered that handler. Use it for hook decisions that need +current plugin options; OpenClaw injects it per handler without mutating the +shared event object seen by other plugins. + ## Hook catalog Hooks are grouped by the surface they extend. Names in **bold** accept a