From e437b192d6612c3ba1f110376e3cb41d64de9340 Mon Sep 17 00:00:00 2001 From: "openclaw-docs-sync[bot]" Date: Fri, 1 May 2026 15:13:19 +0000 Subject: [PATCH] chore(sync): mirror docs from openclaw/openclaw@9c0975c1c20ed635532c7aa0f510154224adee7f --- .openclaw-sync/source.json | 4 ++-- docs/channels/mattermost.md | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.openclaw-sync/source.json b/.openclaw-sync/source.json index ead01ec32..5d0e30e1a 100644 --- a/.openclaw-sync/source.json +++ b/.openclaw-sync/source.json @@ -1,5 +1,5 @@ { "repository": "openclaw/openclaw", - "sha": "42584964ac08d824c5ce12cb196e70920a3e2f49", - "syncedAt": "2026-05-01T14:44:49.777Z" + "sha": "9c0975c1c20ed635532c7aa0f510154224adee7f", + "syncedAt": "2026-05-01T15:11:34.815Z" } diff --git a/docs/channels/mattermost.md b/docs/channels/mattermost.md index 067281147..da7e93c0f 100644 --- a/docs/channels/mattermost.md +++ b/docs/channels/mattermost.md @@ -93,7 +93,9 @@ Native slash commands are opt-in. When enabled, OpenClaw registers `oc_*` slash - If `callbackUrl` is omitted, OpenClaw derives one from gateway host/port + `callbackPath`. - For multi-account setups, `commands` can be set at the top level or under `channels.mattermost.accounts..commands` (account values override top-level fields). - Command callbacks are validated with the per-command tokens returned by Mattermost when OpenClaw registers `oc_*` commands. - - Slash callbacks fail closed when registration failed, startup was partial, or the callback token does not match one of the registered commands. + - OpenClaw refreshes current Mattermost command registration before accepting each callback so stale tokens from deleted or regenerated slash commands stop being accepted without a gateway restart. + - Callback validation fails closed if the Mattermost API cannot confirm the command is still current; failed validations are cached briefly, concurrent lookups are coalesced, and fresh lookup starts are rate-limited per command to bound replay pressure. + - Slash callbacks fail closed when registration failed, startup was partial, or the callback token does not match the resolved command's registered token (a token valid for one command cannot reach upstream validation for a different command).