From bc910942e20cf6eddc50c62174bdc680a6e4abe6 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sat, 4 Apr 2026 22:21:26 +0100 Subject: [PATCH] docs: refresh history sanitization tag mirrors --- docs/concepts/delegate-architecture.md | 12 +++++++----- docs/concepts/multi-agent.md | 8 +++++--- docs/concepts/session-tool.md | 5 +++-- docs/gateway/protocol.md | 9 +++++---- docs/platforms/android.md | 9 +++++---- docs/platforms/mac/webchat.md | 10 ++++++---- docs/tools/index.md | 8 +++++--- docs/tools/multi-agent-sandbox-tools.md | 8 +++++--- docs/tools/subagents.md | 5 +++-- docs/web/control-ui.md | 2 +- docs/web/webchat.md | 4 +++- 11 files changed, 48 insertions(+), 32 deletions(-) diff --git a/docs/concepts/delegate-architecture.md b/docs/concepts/delegate-architecture.md index 14fd006c82c..e5c2e9d7a56 100644 --- a/docs/concepts/delegate-architecture.md +++ b/docs/concepts/delegate-architecture.md @@ -285,11 +285,13 @@ The delegate's `AGENTS.md` defines its autonomous authority — what it may do w If you grant `sessions_history`, remember it is a bounded, safety-filtered recall view. OpenClaw redacts credential/token-like text, truncates long content, strips thinking tags / `` scaffolding / plain-text -tool-call XML payloads (including `` and truncated tool-call -blocks) / downgraded tool-call scaffolding / leaked ASCII/full-width model -control tokens / malformed MiniMax tool-call XML from assistant recall, and -can replace oversized rows with `[sessions_history omitted: message too -large]` instead of returning a raw transcript dump. +tool-call XML payloads (including `...`, +`...`, `...`, +`...`, and truncated tool-call blocks) / +downgraded tool-call scaffolding / leaked ASCII/full-width model control +tokens / malformed MiniMax tool-call XML from assistant recall, and can +replace oversized rows with `[sessions_history omitted: message too large]` +instead of returning a raw transcript dump. ## Scaling pattern diff --git a/docs/concepts/multi-agent.md b/docs/concepts/multi-agent.md index 7d05d58b29f..05d66b578b4 100644 --- a/docs/concepts/multi-agent.md +++ b/docs/concepts/multi-agent.md @@ -26,9 +26,11 @@ Auth profiles are **per-agent**. Each agent reads from its own: `sessions_history` is the safer cross-session recall path here too: it returns a bounded, sanitized view, not a raw transcript dump. Assistant recall strips thinking tags, `` scaffolding, plain-text tool-call XML -payloads (including `` and truncated tool-call blocks), downgraded -tool-call scaffolding, leaked ASCII/full-width model control tokens, and -malformed MiniMax tool-call XML before redaction/truncation. +payloads (including `...`, +`...`, `...`, +`...`, and truncated tool-call blocks), +downgraded tool-call scaffolding, leaked ASCII/full-width model control +tokens, and malformed MiniMax tool-call XML before redaction/truncation. Main agent credentials are **not** shared automatically. Never reuse `agentDir` across agents (it causes auth/session collisions). If you want to share creds, diff --git a/docs/concepts/session-tool.md b/docs/concepts/session-tool.md index f30558f4c00..2c019c7f0ee 100644 --- a/docs/concepts/session-tool.md +++ b/docs/concepts/session-tool.md @@ -38,8 +38,9 @@ The returned view is intentionally bounded and safety-filtered: - thinking tags are stripped - `` / `` scaffolding blocks are stripped - plain-text tool-call XML payload blocks such as `...`, - `...`, and `...` - are stripped, including truncated payloads that never close cleanly + `...`, `...`, and + `...` are stripped, including truncated + payloads that never close cleanly - downgraded tool-call/result scaffolding such as `[Tool Call: ...]`, `[Tool Result ...]`, and `[Historical context ...]` is stripped - leaked model control tokens such as `<|assistant|>`, other ASCII diff --git a/docs/gateway/protocol.md b/docs/gateway/protocol.md index 6020ec8b40f..09f5f718d00 100644 --- a/docs/gateway/protocol.md +++ b/docs/gateway/protocol.md @@ -349,10 +349,11 @@ implemented in `src/gateway/server-methods/*.ts`. `chat.inject`. - `chat.history` is display-normalized for UI clients: inline directive tags are stripped from visible text, plain-text tool-call XML payloads (including - `` and truncated tool-call blocks) and leaked ASCII/full-width - model control tokens are stripped, pure silent-token assistant rows such as - exact `NO_REPLY` / `no_reply` are omitted, and oversized rows can be - replaced with placeholders. + `...`, `...`, + `...`, `...`, and + truncated tool-call blocks) and leaked ASCII/full-width model control tokens + are stripped, pure silent-token assistant rows such as exact `NO_REPLY` / + `no_reply` are omitted, and oversized rows can be replaced with placeholders. #### Device pairing and device tokens diff --git a/docs/platforms/android.md b/docs/platforms/android.md index 6e605bee10a..22e2dbb10cb 100644 --- a/docs/platforms/android.md +++ b/docs/platforms/android.md @@ -139,10 +139,11 @@ The Android Chat tab supports session selection (default `main`, plus other exis - History: `chat.history` (display-normalized; inline directive tags are stripped from visible text, plain-text tool-call XML payloads (including - `` and truncated tool-call blocks) and leaked ASCII/full-width - model control tokens are stripped, pure silent-token assistant rows such as - exact `NO_REPLY` / `no_reply` are omitted, and oversized rows can be - replaced with placeholders) + `...`, `...`, + `...`, `...`, and + truncated tool-call blocks) and leaked ASCII/full-width model control tokens + are stripped, pure silent-token assistant rows such as exact `NO_REPLY` / + `no_reply` are omitted, and oversized rows can be replaced with placeholders) - Send: `chat.send` - Push updates (best-effort): `chat.subscribe` → `event:"chat"` diff --git a/docs/platforms/mac/webchat.md b/docs/platforms/mac/webchat.md index e63386f3f1b..65f76e05e44 100644 --- a/docs/platforms/mac/webchat.md +++ b/docs/platforms/mac/webchat.md @@ -32,10 +32,12 @@ agent (with a session switcher for other sessions). `chat.inject` and events `chat`, `agent`, `presence`, `tick`, `health`. - `chat.history` returns display-normalized transcript rows: inline directive tags are stripped from visible text, plain-text tool-call XML payloads - (including `` and truncated tool-call blocks) and leaked - ASCII/full-width model control tokens are stripped, pure silent-token - assistant rows such as exact `NO_REPLY` / `no_reply` are omitted, and - oversized rows can be replaced with placeholders. + (including `...`, + `...`, `...`, + `...`, and truncated tool-call blocks) and + leaked ASCII/full-width model control tokens are stripped, pure + silent-token assistant rows such as exact `NO_REPLY` / `no_reply` are + omitted, and oversized rows can be replaced with placeholders. - Session: defaults to the primary session (`main`, or `global` when scope is global). The UI can switch between sessions. - Onboarding uses a dedicated session to keep first‑run setup separate. diff --git a/docs/tools/index.md b/docs/tools/index.md index 4b3f881c9df..e47679cf289 100644 --- a/docs/tools/index.md +++ b/docs/tools/index.md @@ -149,9 +149,11 @@ Use `group:*` shorthands in allow/deny lists: `sessions_history` returns a bounded, safety-filtered recall view. It strips thinking tags, `` scaffolding, plain-text tool-call XML -payloads (including `` and truncated tool-call blocks), downgraded -tool-call scaffolding, leaked ASCII/full-width model control tokens, and -malformed MiniMax tool-call XML from assistant text, then applies +payloads (including `...`, +`...`, `...`, +`...`, and truncated tool-call blocks), +downgraded tool-call scaffolding, leaked ASCII/full-width model control +tokens, and malformed MiniMax tool-call XML from assistant text, then applies redaction/truncation and possible oversized-row placeholders instead of acting as a raw transcript dump. diff --git a/docs/tools/multi-agent-sandbox-tools.md b/docs/tools/multi-agent-sandbox-tools.md index 378aff8d37d..9389797ef60 100644 --- a/docs/tools/multi-agent-sandbox-tools.md +++ b/docs/tools/multi-agent-sandbox-tools.md @@ -298,9 +298,11 @@ Legacy `agent.*` configs are migrated by `openclaw doctor`; prefer `agents.defau `sessions_history` in this profile still returns a bounded, sanitized recall view rather than a raw transcript dump. Assistant recall strips thinking tags, `` scaffolding, plain-text tool-call XML payloads -(including `` and truncated tool-call blocks), downgraded -tool-call scaffolding, leaked ASCII/full-width model control tokens, and -malformed MiniMax tool-call XML before redaction/truncation. +(including `...`, +`...`, `...`, +`...`, and truncated tool-call blocks), +downgraded tool-call scaffolding, leaked ASCII/full-width model control +tokens, and malformed MiniMax tool-call XML before redaction/truncation. --- diff --git a/docs/tools/subagents.md b/docs/tools/subagents.md index 6811c6d3bea..0271bfcdb29 100644 --- a/docs/tools/subagents.md +++ b/docs/tools/subagents.md @@ -268,8 +268,9 @@ Announce payloads include a stats line at the end (even when wrapped): - thinking tags are stripped - `` / `` scaffolding blocks are stripped - plain-text tool-call XML payload blocks such as `...`, - `...`, and `...` - are stripped, including truncated payloads that never close cleanly + `...`, `...`, and + `...` are stripped, including truncated + payloads that never close cleanly - downgraded tool-call/result scaffolding and historical-context markers are stripped - leaked model control tokens such as `<|assistant|>`, other ASCII `<|...|>` tokens, and full-width `<|...|>` variants are stripped diff --git a/docs/web/control-ui.md b/docs/web/control-ui.md index bcf24ab9a35..6c2b23a97ad 100644 --- a/docs/web/control-ui.md +++ b/docs/web/control-ui.md @@ -123,7 +123,7 @@ Cron jobs panel notes: - `chat.send` is **non-blocking**: it acks immediately with `{ runId, status: "started" }` and the response streams via `chat` events. - Re-sending with the same `idempotencyKey` returns `{ status: "in_flight" }` while running, and `{ status: "ok" }` after completion. - `chat.history` responses are size-bounded for UI safety. When transcript entries are too large, Gateway may truncate long text fields, omit heavy metadata blocks, and replace oversized messages with a placeholder (`[chat.history omitted: message too large]`). -- `chat.history` also strips display-only inline directive tags from visible assistant text (for example `[[reply_to_*]]` and `[[audio_as_voice]]`), plain-text tool-call XML payloads (including `` and truncated tool-call blocks), and leaked ASCII/full-width model control tokens, and omits assistant entries whose whole visible text is only the exact silent token `NO_REPLY` / `no_reply`. +- `chat.history` also strips display-only inline directive tags from visible assistant text (for example `[[reply_to_*]]` and `[[audio_as_voice]]`), plain-text tool-call XML payloads (including `...`, `...`, `...`, `...`, and truncated tool-call blocks), and leaked ASCII/full-width model control tokens, and omits assistant entries whose whole visible text is only the exact silent token `NO_REPLY` / `no_reply`. - `chat.inject` appends an assistant note to the session transcript and broadcasts a `chat` event for UI-only updates (no agent run, no channel delivery). - The chat header model and thinking pickers patch the active session immediately through `sessions.patch`; they are persistent session overrides, not one-turn-only send options. - Stop: diff --git a/docs/web/webchat.md b/docs/web/webchat.md index 81252bd3350..e31f0d83be2 100644 --- a/docs/web/webchat.md +++ b/docs/web/webchat.md @@ -28,7 +28,9 @@ Status: the macOS/iOS SwiftUI chat UI talks directly to the Gateway WebSocket. - `chat.history` is bounded for stability: Gateway may truncate long text fields, omit heavy metadata, and replace oversized entries with `[chat.history omitted: message too large]`. - `chat.history` is also display-normalized: inline delivery directive tags such as `[[reply_to_*]]` and `[[audio_as_voice]]`, plain-text tool-call XML - payloads (including `` and truncated tool-call blocks), and + payloads (including `...`, + `...`, `...`, + `...`, and truncated tool-call blocks), and leaked ASCII/full-width model control tokens are stripped from visible text, and assistant entries whose whole visible text is only the exact silent token `NO_REPLY` / `no_reply` are omitted.