mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-31 18:11:50 +00:00
* feat(plugin-sdk): add reply payload sending hook * fix(dispatch): compose caller beforeDeliver with plugin hooks instead of nullish-coalescing ClawSweeper review identified that Telegram's identity beforeDeliver would skip reply_payload_sending and message_sending hooks entirely. Now we always compose caller-provided hooks with global plugin hooks so plugins get a chance to run even when the caller already supplies a beforeDeliver hook. Also adds regression test for composition case. * test(dispatch): align beforeDeliver hook assertion with current context * fix(plugin-sdk): remove leftover merge markers from hook types * feat(plugin-sdk): add reply payload sending hook * fix(plugin-sdk): protect reply payload media trust * fix(auto-reply): honor suppressed routed ACP blocks * fix(auto-reply): avoid double message sending hooks * fix(auto-reply): require routed reply kind * test(auto-reply): type routed suppression mock * fix(auto-reply): honor reply payload hooks in followups * fix(auto-reply): suppress empty hooked dispatcher replies * fix(auto-reply): wire reply payload hooks at dispatcher boundary * fix(plugins): preserve reply payload metadata in hooks * fix(auto-reply): defer reply hook availability checks * fix(auto-reply): preserve message hook order for routed payloads * fix(auto-reply): persist routed payload hook decisions * fix(auto-reply): run routed payload hooks inside delivery * fix(auto-reply): enforce message hooks after payload edits * fix(auto-reply): gate source reply mirrors on delivery * fix(auto-reply): scope hook-mutated media delivery * chore(plugin-sdk): refresh reply hook api baseline * fix(auto-reply): mirror delivered source replies --------- Co-authored-by: Rob via OpenClaw <noreply@openclaw.local> Co-authored-by: Peter Steinberger <steipete@gmail.com>