docs: refresh chat history scaffolding refs

This commit is contained in:
Peter Steinberger
2026-04-04 19:23:55 +01:00
parent 3b109c3419
commit fd222d3f07
5 changed files with 20 additions and 8 deletions
+4 -2
View File
@@ -317,8 +317,10 @@ Gateway exposes today.
- chat execution still uses `chat.history`, `chat.send`, `chat.abort`, and
`chat.inject`.
- `chat.history` is display-normalized for UI clients: inline directive tags are
stripped from visible text, pure `NO_REPLY` assistant rows are omitted, and
oversized rows can be replaced with placeholders.
stripped from visible text, leaked reasoning / relevant-memories scaffolding,
leaked XML tool-call blocks, and leaked provider control tokens are also
stripped from visible assistant text, pure `NO_REPLY` assistant rows are
omitted, and oversized rows can be replaced with placeholders.
#### Device pairing and device tokens
+4 -2
View File
@@ -138,8 +138,10 @@ Pairing details: [Pairing](/channels/pairing).
The Android Chat tab supports session selection (default `main`, plus other existing sessions):
- History: `chat.history` (display-normalized; inline directive tags are
stripped from visible text, pure `NO_REPLY` assistant rows are omitted, and
oversized rows can be replaced with placeholders)
stripped from visible text; leaked reasoning / relevant-memories
scaffolding, leaked XML tool-call blocks, and leaked provider control tokens
are also stripped from visible assistant text; pure `NO_REPLY` assistant rows
are omitted; oversized rows can be replaced with placeholders)
- Send: `chat.send`
- Push updates (best-effort): `chat.subscribe` → `event:"chat"`
+5 -2
View File
@@ -31,8 +31,11 @@ agent (with a session switcher for other sessions).
- Data plane: Gateway WS methods `chat.history`, `chat.send`, `chat.abort`,
`chat.inject` and events `chat`, `agent`, `presence`, `tick`, `health`.
- `chat.history` returns display-normalized transcript rows: inline directive
tags are stripped from visible text, pure `NO_REPLY` assistant rows are
omitted, and oversized rows can be replaced with placeholders.
tags are stripped from visible text; leaked reasoning /
relevant-memories scaffolding, leaked XML tool-call blocks, and leaked
provider control tokens are also stripped from visible assistant text; pure
`NO_REPLY` assistant rows are omitted; 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 firstrun setup separate.
+6 -1
View File
@@ -116,7 +116,12 @@ 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]]`) and omits assistant entries whose whole visible text is only `NO_REPLY`.
- `chat.history` also strips visible-text scaffolding from assistant output before rendering:
- inline directive tags such as `[[reply_to_*]]` and `[[audio_as_voice]]`
- leaked reasoning / relevant-memories blocks
- leaked XML tool-call scaffolding such as `<tool_call>` / `<function_calls>`
- leaked provider control tokens such as `<|assistant|>` and similar `<|...|>` / `<...>` markers
- assistant entries whose whole visible text is only `NO_REPLY` are omitted
- `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:
+1 -1
View File
@@ -26,7 +26,7 @@ Status: the macOS/iOS SwiftUI chat UI talks directly to the Gateway WebSocket.
- The UI connects to the Gateway WebSocket and uses `chat.history`, `chat.send`, and `chat.inject`.
- `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]]` are stripped from visible text, and assistant entries whose whole visible text is only `NO_REPLY` are omitted.
- `chat.history` is also display-normalized: inline delivery directive tags such as `[[reply_to_*]]` and `[[audio_as_voice]]`, leaked reasoning / relevant-memories scaffolding, leaked XML tool-call blocks, and leaked provider control tokens such as `<|assistant|>` are stripped from visible assistant text, and assistant entries whose whole visible text is only `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.