diff --git a/.openclaw-sync/source.json b/.openclaw-sync/source.json
index 9a52505bd..2b163e0e3 100644
--- a/.openclaw-sync/source.json
+++ b/.openclaw-sync/source.json
@@ -1,5 +1,5 @@
{
"repository": "openclaw/openclaw",
- "sha": "b7c8c53af20fbe63dd2ff1237b492108cdd01895",
- "syncedAt": "2026-04-25T00:18:01.760Z"
+ "sha": "da773175f2eb0897b36dcae36c40ba9f0500259f",
+ "syncedAt": "2026-04-25T00:21:03.627Z"
}
diff --git a/docs/web/control-ui.md b/docs/web/control-ui.md
index 5aa4e1017..addde88a9 100644
--- a/docs/web/control-ui.md
+++ b/docs/web/control-ui.md
@@ -156,6 +156,10 @@ Cron jobs panel notes:
- `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.
+- When fresh Gateway session usage reports show high context pressure, the chat
+ composer area shows a context notice and, at recommended compaction levels, a
+ compact button that runs the normal session compaction path. Stale token
+ snapshots are hidden until the Gateway reports fresh usage again.
- Talk mode uses a registered realtime voice provider that supports browser
WebRTC sessions. Configure OpenAI with `talk.provider: "openai"` plus
`talk.providers.openai.apiKey`, or reuse the Voice Call realtime provider