diff --git a/docs/gateway/protocol.md b/docs/gateway/protocol.md index 8bb98dd989a..6020ec8b40f 100644 --- a/docs/gateway/protocol.md +++ b/docs/gateway/protocol.md @@ -350,8 +350,9 @@ implemented in `src/gateway/server-methods/*.ts`. - `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 `NO_REPLY` assistant rows are - omitted, and oversized rows can be replaced with placeholders. + 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 84ebbef9971..6e605bee10a 100644 --- a/docs/platforms/android.md +++ b/docs/platforms/android.md @@ -140,8 +140,9 @@ 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 `NO_REPLY` assistant rows are - omitted, and oversized rows can be replaced with placeholders) + 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 ffb8dcc0a74..e63386f3f1b 100644 --- a/docs/platforms/mac/webchat.md +++ b/docs/platforms/mac/webchat.md @@ -33,9 +33,9 @@ agent (with a session switcher for other sessions). - `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 `NO_REPLY` - assistant rows are omitted, and oversized rows can be replaced with - placeholders. + 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/web/control-ui.md b/docs/web/control-ui.md index e0c820f3553..bcf24ab9a35 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 `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 15c2c831f12..81252bd3350 100644 --- a/docs/web/webchat.md +++ b/docs/web/webchat.md @@ -30,8 +30,8 @@ Status: the macOS/iOS SwiftUI chat UI talks directly to the Gateway WebSocket. such as `[[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 are stripped from visible text, - and assistant entries whose whole visible text is only `NO_REPLY` are - omitted. + and assistant entries whose whole visible text is only the exact silent + token `NO_REPLY` / `no_reply` are omitted. - `chat.inject` appends an assistant note directly to the transcript and broadcasts it to the UI (no agent run). - Aborted runs can keep partial assistant output visible in the UI. - Gateway persists aborted partial assistant text into transcript history when buffered output exists, and marks those entries with abort metadata.