diff --git a/.openclaw-sync/source.json b/.openclaw-sync/source.json index ce23eb2a9..c2e13917a 100644 --- a/.openclaw-sync/source.json +++ b/.openclaw-sync/source.json @@ -1,5 +1,5 @@ { "repository": "openclaw/openclaw", - "sha": "08e7561972b73f78a8770be6ac77e4111005a35c", - "syncedAt": "2026-04-27T20:04:16.208Z" + "sha": "465b621cf1ab06805f364435305ce548efc6dfa8", + "syncedAt": "2026-04-27T20:12:30.334Z" } diff --git a/docs/channels/channel-routing.md b/docs/channels/channel-routing.md index c42cc6c3b..c74944b46 100644 --- a/docs/channels/channel-routing.md +++ b/docs/channels/channel-routing.md @@ -59,6 +59,13 @@ OpenClaw infers a pinned owner from `allowFrom` when all of these are true: In that mismatch case, OpenClaw still records inbound session metadata, but it skips updating the main session `lastRoute`. +## Guarded inbound recording + +Channel plugins can mark an inbound session record as `createIfMissing: false` +when a guarded path must not create a new OpenClaw session. In that mode, +OpenClaw may update metadata and `lastRoute` for an existing session, but it +does not create a route-only session entry just because a message was observed. + ## Routing rules (how an agent is chosen) Routing picks **one agent** for each inbound message: