diff --git a/docs/uk/web/webchat.md b/docs/uk/web/webchat.md
index aae819bf3..a966a0a5f 100644
--- a/docs/uk/web/webchat.md
+++ b/docs/uk/web/webchat.md
@@ -4,68 +4,69 @@ read_when:
summary: Статичний хост Loopback WebChat і використання Gateway WS для інтерфейсу чату
title: Вебчат
x-i18n:
- generated_at: "2026-05-02T23:43:16Z"
+ generated_at: "2026-05-03T04:33:34Z"
model: gpt-5.5
provider: openai
- source_hash: fe6d3cb30ed18d651b0d0ca8fd188b47c5f1d186410ee340deb79315f194ed8d
+ source_hash: 48024e58259901c6feb67168c5c1ce32f46b8ad9b6f4511e56d2000478a3ed60
source_path: web/webchat.md
workflow: 16
---
-Статус: macOS/iOS SwiftUI UI чату напряму взаємодіє з Gateway WebSocket.
+Стан: чат-інтерфейс SwiftUI для macOS/iOS напряму взаємодіє з Gateway WebSocket.
## Що це таке
-- Нативний UI чату для Gateway (без вбудованого браузера й без локального статичного сервера).
-- Використовує ті самі сеанси та правила маршрутизації, що й інші канали.
+- Нативний чат-інтерфейс для шлюзу (без вбудованого браузера і без локального статичного сервера).
+- Використовує ті самі сесії та правила маршрутизації, що й інші канали.
- Детермінована маршрутизація: відповіді завжди повертаються до WebChat.
## Швидкий старт
-1. Запустіть Gateway.
-2. Відкрийте UI WebChat (застосунок macOS/iOS) або вкладку чату Control UI.
-3. Переконайтеся, що налаштовано дійсний шлях автентифікації Gateway (типово shared-secret,
+1. Запустіть шлюз.
+2. Відкрийте інтерфейс WebChat (застосунок macOS/iOS) або вкладку чату Control UI.
+3. Переконайтеся, що налаштовано чинний шлях автентифікації шлюзу (`shared-secret` за замовчуванням,
навіть на loopback).
## Як це працює (поведінка)
- UI підключається до Gateway WebSocket і використовує `chat.history`, `chat.send` та `chat.inject`.
-- `chat.history` обмежено для стабільності: Gateway може обрізати довгі текстові поля, пропускати важкі метадані та замінювати надмірно великі записи на `[chat.history omitted: message too large]`.
-- `chat.history` слідує активній гілці транскрипту для сучасних append-only файлів сеансів, тому покинуті гілки перезапису та замінені копії промптів не відображаються у WebChat.
-- Control UI запам’ятовує базовий `sessionId` Gateway, повернений `chat.history`, і додає його до наступних викликів `chat.send`, тому повторні підключення та оновлення сторінки продовжують ту саму збережену розмову, якщо користувач не почне або не скине сеанс.
-- Control UI об’єднує дублікати поточних надсилань для того самого сеансу, повідомлення та вкладень перед створенням нового ідентифікатора запуску `chat.send`; Gateway усе одно дедуплікує повторні запити, які повторно використовують той самий ключ ідемпотентності.
+- `chat.history` обмежено для стабільності: Gateway може обрізати довгі текстові поля, пропускати важкі метадані та замінювати завеликі записи на `[chat.history omitted: message too large]`.
+- `chat.history` дотримується активної гілки транскрипту для сучасних append-only файлів сесій, тому покинуті гілки перезапису та замінені копії промптів не відображаються у WebChat.
+- Записи Compaction відображаються як явний розділювач ущільненої історії. Розділювач пояснює, що попередні ходи збережено в контрольній точці, і посилається на елементи керування контрольними точками сесій, де оператори можуть створити гілку або відновити подання до Compaction, якщо їхні дозволи це допускають.
+- Control UI запам’ятовує базовий `sessionId` Gateway, повернений `chat.history`, і додає його до наступних викликів `chat.send`, тому повторні підключення та оновлення сторінки продовжують ту саму збережену розмову, якщо користувач не запускає або не скидає сесію.
+- Control UI об’єднує дублікати відправлень у польоті для тієї самої сесії, повідомлення та вкладень перед створенням нового ідентифікатора запуску `chat.send`; Gateway усе одно дедуплікує повторні запити, які повторно використовують той самий ключ ідемпотентності.
- `chat.history` також нормалізується для відображення: контекст OpenClaw лише часу виконання,
- обгортки вхідних конвертів, вбудовані теги директив доставки,
- як-от `[[reply_to_*]]` і `[[audio_as_voice]]`, XML-навантаження викликів інструментів у звичайному тексті
+ обгортки вхідних конвертів, вбудовані теги директив доставлення
+ на кшталт `[[reply_to_*]]` і `[[audio_as_voice]]`, plain-text XML-навантаження викликів інструментів
(зокрема `...`,
`...`, `...`,
`...` та обрізані блоки викликів інструментів), а також
- витоки ASCII/повноширинних токенів керування моделлю вилучаються з видимого тексту,
- а записи асистента, увесь видимий текст яких є лише точним тихим
+ витеклі ASCII/повноширинні токени керування моделлю вилучаються з видимого тексту,
+ а записи асистента, увесь видимий текст яких є лише точним silent
токеном `NO_REPLY` / `no_reply`, пропускаються.
-- Навантаження відповідей із прапорцем reasoning (`isReasoning: true`) виключаються з вмісту асистента у WebChat, тексту повторного відтворення транскрипту та блоків аудіовмісту, тому навантаження лише для міркування не з’являються як видимі повідомлення асистента або відтворюване аудіо.
-- `chat.inject` додає нотатку асистента безпосередньо до транскрипту й транслює її в UI (без запуску агента).
-- Перервані запуски можуть зберігати частковий вивід асистента видимим в UI.
+- Навантаження відповідей, позначені як міркування (`isReasoning: true`), виключаються з вмісту асистента WebChat, тексту повторного відтворення транскрипту та аудіоблоків, тому навантаження лише для мислення не з’являються як видимі повідомлення асистента або відтворюване аудіо.
+- `chat.inject` додає нотатку асистента безпосередньо до транскрипту та транслює її в UI (без запуску агента).
+- Перервані запуски можуть залишати частковий вивід асистента видимим в UI.
- Gateway зберігає перерваний частковий текст асистента в історії транскрипту, коли існує буферизований вивід, і позначає ці записи метаданими переривання.
-- Історія завжди отримується з Gateway (без локального відстеження файлів).
-- Якщо Gateway недоступний, WebChat працює лише для читання.
+- Історія завжди отримується зі шлюзу (без локального спостереження за файлами).
+- Якщо шлюз недоступний, WebChat доступний лише для читання.
## Панель інструментів агентів Control UI
-- Панель Tools у Control UI `/agents` має два окремі подання:
- - **Доступно просто зараз** використовує `tools.effective(sessionKey=...)` і показує, що поточний
- сеанс фактично може використовувати під час виконання, зокрема інструменти ядра, plugin і каналу.
+- Панель інструментів Control UI `/agents` має два окремі подання:
+ - **Доступні прямо зараз** використовує `tools.effective(sessionKey=...)` і показує, що поточна
+ сесія фактично може використовувати під час виконання, зокрема інструменти ядра, Plugin і каналу.
- **Конфігурація інструментів** використовує `tools.catalog` і зосереджується на профілях, перевизначеннях і
семантиці каталогу.
-- Доступність під час виконання обмежена сеансом. Перемикання сеансів на тому самому агенті може змінити
- список **Доступно просто зараз**.
+- Доступність під час виконання прив’язана до сесії. Перемикання сесій для того самого агента може змінити
+ список **Доступні прямо зараз**.
- Редактор конфігурації не означає доступність під час виконання; ефективний доступ усе одно дотримується пріоритету політик
- (`allow`/`deny`, перевизначення для окремих агентів і provider/каналів).
+ (`allow`/`deny`, перевизначення для окремих агентів і провайдерів/каналів).
## Віддалене використання
- Віддалений режим тунелює Gateway WebSocket через SSH/Tailscale.
-- Не потрібно запускати окремий сервер WebChat.
+- Вам не потрібно запускати окремий сервер WebChat.
## Довідник конфігурації (WebChat)
@@ -73,20 +74,20 @@ x-i18n:
Параметри WebChat:
-- `gateway.webchat.chatHistoryMaxChars`: максимальна кількість символів для текстових полів у відповідях `chat.history`. Коли запис транскрипту перевищує цей ліміт, Gateway обрізає довгі текстові поля та може замінювати надмірно великі повідомлення заповнювачем. Клієнт також може надіслати `maxChars` для окремого запиту, щоб перевизначити це типове значення для одного виклику `chat.history`.
+- `gateway.webchat.chatHistoryMaxChars`: максимальна кількість символів для текстових полів у відповідях `chat.history`. Коли запис транскрипту перевищує це обмеження, Gateway обрізає довгі текстові поля та може замінити завеликі повідомлення заповнювачем. Клієнт також може надіслати `maxChars` для окремого запиту, щоб перевизначити це значення за замовчуванням для одного виклику `chat.history`.
Пов’язані глобальні параметри:
- `gateway.port`, `gateway.bind`: хост/порт WebSocket.
- `gateway.auth.mode`, `gateway.auth.token`, `gateway.auth.password`:
- автентифікація WebSocket за shared-secret.
+ автентифікація WebSocket зі спільним секретом.
- `gateway.auth.allowTailscale`: вкладка чату браузерного Control UI може використовувати заголовки ідентичності Tailscale
Serve, коли це ввімкнено.
-- `gateway.auth.mode: "trusted-proxy"`: автентифікація через зворотний проксі для браузерних клієнтів за identity-aware джерелом проксі **не-loopback** (див. [Автентифікація довіреного проксі](/uk/gateway/trusted-proxy-auth)).
-- `gateway.remote.url`, `gateway.remote.token`, `gateway.remote.password`: ціль віддаленого Gateway.
-- `session.*`: сховище сеансів і типові значення основного ключа.
+- `gateway.auth.mode: "trusted-proxy"`: автентифікація через зворотний проксі для браузерних клієнтів за identity-aware **non-loopback** джерелом проксі (див. [автентифікація довіреного проксі](/uk/gateway/trusted-proxy-auth)).
+- `gateway.remote.url`, `gateway.remote.token`, `gateway.remote.password`: ціль віддаленого шлюзу.
+- `session.*`: сховище сесій і типові значення основного ключа.
## Пов’язане
- [Control UI](/uk/web/control-ui)
-- [Панель керування](/uk/web/dashboard)
+- [Панель моніторингу](/uk/web/dashboard)