diff --git a/.openclaw-sync/source.json b/.openclaw-sync/source.json index 6f43bdbcc..a78df6637 100644 --- a/.openclaw-sync/source.json +++ b/.openclaw-sync/source.json @@ -1,5 +1,5 @@ { "repository": "openclaw/openclaw", - "sha": "8c4c12a6dd20bcfb5a976f64ae4addac2748194c", - "syncedAt": "2026-05-02T02:55:24.064Z" + "sha": "82c11deaa2cbd43e751ece2ae21a1a65a2cf32bd", + "syncedAt": "2026-05-02T03:07:13.838Z" } diff --git a/docs/plugins/hooks.md b/docs/plugins/hooks.md index 5cc106798..bf1e9607f 100644 --- a/docs/plugins/hooks.md +++ b/docs/plugins/hooks.md @@ -212,6 +212,11 @@ Cron-driven runs also expose `ctx.jobId` (the originating cron job id) so plugin hooks can scope metrics, side effects, or state to a specific scheduled job. +For channel-originated runs, `ctx.messageProvider` is the provider surface such +as `discord` or `telegram`, while `ctx.channelId` is the conversation target +identifier when OpenClaw can derive one from the session key or delivery +metadata. + `agent_end` is an observation hook and runs fire-and-forget after the turn. The hook runner applies a 30 second timeout so a wedged plugin or embedding endpoint cannot leave the hook promise pending forever. A timeout is logged and