From d82e26323159a02ea10448e188720b1373c7f0c3 Mon Sep 17 00:00:00 2001 From: "openclaw-docs-sync[bot]" Date: Sat, 2 May 2026 03:09:12 +0000 Subject: [PATCH] chore(sync): mirror docs from openclaw/openclaw@82c11deaa2cbd43e751ece2ae21a1a65a2cf32bd --- .openclaw-sync/source.json | 4 ++-- docs/plugins/hooks.md | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) 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