From 21ae664e8bc7b3bc4feff20394676a2d11df31c0 Mon Sep 17 00:00:00 2001 From: "openclaw-docs-i18n[bot]" Date: Tue, 7 Apr 2026 03:26:14 +0000 Subject: [PATCH] chore(i18n): refresh uk translations --- docs/uk/channels/matrix.md | 621 +++++++++++++++++++------------------ 1 file changed, 313 insertions(+), 308 deletions(-) diff --git a/docs/uk/channels/matrix.md b/docs/uk/channels/matrix.md index 9d240eb54..c5bb1b291 100644 --- a/docs/uk/channels/matrix.md +++ b/docs/uk/channels/matrix.md @@ -1,57 +1,57 @@ --- read_when: - Налаштування Matrix в OpenClaw - - Налаштування Matrix E2EE і верифікації -summary: Статус підтримки Matrix, налаштування та приклади конфігурації + - Налаштування E2EE та верифікації Matrix +summary: Стан підтримки Matrix, налаштування та приклади конфігурації title: Matrix x-i18n: - generated_at: "2026-04-06T15:30:18Z" + generated_at: "2026-04-07T03:26:13Z" model: gpt-5.4 provider: openai - source_hash: 22d10be40bb7c2cc197f5ab4ba7c8067b67867bff477efb374b930dd79aefe8a + source_hash: d53baa2ea5916cd00a99cae0ded3be41ffa13c9a69e8ea8461eb7baa6a99e13c source_path: channels/matrix.md workflow: 15 --- # Matrix -Matrix — це вбудований плагін каналу Matrix для OpenClaw. -Він використовує офіційний `matrix-js-sdk` і підтримує DM, кімнати, треди, медіа, реакції, опитування, локацію та E2EE. +Matrix — це вбудований канальний plugin Matrix для OpenClaw. +Він використовує офіційний `matrix-js-sdk` і підтримує особисті повідомлення, кімнати, треди, медіа, реакції, опитування, місцезнаходження та E2EE. -## Вбудований плагін +## Вбудований plugin -Matrix постачається як вбудований плагін у поточних випусках OpenClaw, тому звичайні -пакетні збірки не потребують окремого встановлення. +Matrix постачається як вбудований plugin у поточних релізах OpenClaw, тому звичайним +пакетованим збіркам не потрібне окреме встановлення. -Якщо ви використовуєте старішу збірку або кастомне встановлення без Matrix, установіть +Якщо ви використовуєте старішу збірку або спеціальне встановлення без Matrix, встановіть його вручну: -Установлення з npm: +Встановлення з npm: ```bash openclaw plugins install @openclaw/matrix ``` -Установлення з локального checkout: +Встановлення з локального checkout: ```bash openclaw plugins install ./path/to/local/matrix-plugin ``` -Див. [Plugins](/uk/tools/plugin) щодо поведінки плагінів і правил встановлення. +Див. [Plugins](/uk/tools/plugin), щоб дізнатися про поведінку plugin і правила встановлення. ## Налаштування -1. Переконайтеся, що плагін Matrix доступний. - - У поточних пакетних випусках OpenClaw він уже вбудований. - - У старіших/кастомних установленнях його можна додати вручну командами вище. +1. Переконайтеся, що plugin Matrix доступний. + - У поточних пакетованих релізах OpenClaw він уже вбудований. + - У старіших або спеціальних встановленнях його можна додати вручну наведеними вище командами. 2. Створіть обліковий запис Matrix на вашому homeserver. -3. Налаштуйте `channels.matrix` одним із варіантів: +3. Налаштуйте `channels.matrix` одним із таких способів: - `homeserver` + `accessToken`, або - `homeserver` + `userId` + `password`. -4. Перезапустіть gateway. -5. Почніть DM із ботом або запросіть його до кімнати. - - Нові запрошення Matrix працюють лише тоді, коли `channels.matrix.autoJoin` дозволяє їх. +4. Перезапустіть шлюз. +5. Почніть DM з ботом або запросіть його до кімнати. + - Нові запрошення Matrix працюють лише тоді, коли їх дозволяє `channels.matrix.autoJoin`. Шляхи інтерактивного налаштування: @@ -64,26 +64,32 @@ openclaw configure --section channels - URL homeserver - метод автентифікації: access token або пароль -- ID користувача, лише якщо ви обираєте автентифікацію паролем +- user ID лише якщо ви вибрали автентифікацію паролем - необов’язкова назва пристрою - чи вмикати E2EE -- чи налаштувати доступ до кімнат Matrix зараз +- чи налаштовувати доступ до кімнат Matrix зараз +- чи налаштовувати автоматичне приєднання до запрошень Matrix зараз +- якщо автоматичне приєднання до запрошень увімкнено, чи має це бути `allowlist`, `always` або `off` -Важлива поведінка майстра: +Поведінка майстра, яку важливо знати: -- Якщо для вибраного облікового запису вже існують змінні середовища автентифікації Matrix, і для цього облікового запису ще не збережено автентифікацію в config, майстер пропонує скористатися env і записує лише `enabled: true` для цього облікового запису. -- Коли ви інтерактивно додаєте ще один обліковий запис Matrix, введене ім’я облікового запису нормалізується в ID облікового запису, який використовується в config і env vars. Наприклад, `Ops Bot` перетворюється на `ops-bot`. -- Підказки allowlist для DM одразу приймають повні значення `@user:server`. Відображувані імена працюють лише тоді, коли живий пошук у каталозі знаходить один точний збіг; інакше майстер попросить повторити спробу з повним Matrix ID. -- Підказки allowlist для кімнат напряму приймають ID кімнат і псевдоніми. Вони також можуть у реальному часі визначати назви приєднаних кімнат, але нерозпізнані назви під час налаштування лише зберігаються як введені й пізніше ігноруються під час runtime-розв’язання allowlist. Віддавайте перевагу `!room:server` або `#alias:server`. -- Ідентичність кімнати/сесії під час runtime використовує стабільний ID кімнати Matrix. Псевдоніми, оголошені в кімнаті, використовуються лише як вхідні дані для пошуку, а не як довгостроковий ключ сесії чи стабільна ідентичність групи. -- Щоб визначити назви кімнат перед їх збереженням, використовуйте `openclaw channels resolve --channel matrix "Project Room"`. +- Якщо для вибраного облікового запису вже існують змінні середовища автентифікації Matrix і в конфігурації для цього облікового запису ще не збережено автентифікацію, майстер пропонує скорочений варіант із env, щоб під час налаштування зберегти автентифікацію в змінних середовища замість копіювання секретів у конфігурацію. +- Коли ви інтерактивно додаєте ще один обліковий запис Matrix, введене ім’я облікового запису нормалізується в ID облікового запису, який використовується в конфігурації та змінних середовища. Наприклад, `Ops Bot` стає `ops-bot`. +- Запити allowlist для DM одразу приймають повні значення `@user:server`. Відображувані імена працюють лише тоді, коли живий пошук у каталозі знаходить один точний збіг; інакше майстер попросить повторити спробу з повним Matrix ID. +- Запити allowlist для кімнат приймають ID кімнат і псевдоніми безпосередньо. Вони також можуть у реальному часі визначати назви вже приєднаних кімнат, але невизначені назви зберігаються лише в тому вигляді, як їх введено під час налаштування, і пізніше ігноруються під час виконання резолюції allowlist. Віддавайте перевагу `!room:server` або `#alias:server`. +- Тепер майстер показує явне попередження перед кроком автоматичного приєднання до запрошень, оскільки `channels.matrix.autoJoin` за замовчуванням має значення `off`; агенти не приєднуватимуться до запрошених кімнат або нових запрошень у стилі DM, якщо ви це не ввімкнете. +- У режимі allowlist для автоматичного приєднання до запрошень використовуйте лише стабільні цілі запрошень: `!roomId:server`, `#alias:server` або `*`. Прості назви кімнат відхиляються. +- Ідентичність кімнати/сеансу під час виконання використовує стабільний ID кімнати Matrix. Оголошені в кімнаті псевдоніми використовуються лише як вхідні дані для пошуку, а не як довгостроковий ключ сеансу чи стабільна ідентичність групи. +- Щоб визначити назви кімнат перед збереженням, використовуйте `openclaw channels resolve --channel matrix "Project Room"`. `channels.matrix.autoJoin` за замовчуванням має значення `off`. -Якщо залишити його невстановленим, бот не приєднуватиметься до запрошених кімнат або нових запрошень у стилі DM, тому він не з’являтиметься в нових групах або запрошених DM, якщо ви спершу не приєднаєтеся вручну. +Якщо ви не встановите його, бот не приєднуватиметься до запрошених кімнат або нових запрошень у стилі DM, тому не з’являтиметься в нових групах або запрошених DM, якщо ви спочатку не приєднаєтеся вручну. Установіть `autoJoin: "allowlist"` разом із `autoJoinAllowlist`, щоб обмежити, які запрошення він приймає, або встановіть `autoJoin: "always"`, якщо хочете, щоб він приєднувався до кожного запрошення. + +У режимі `allowlist` `autoJoinAllowlist` приймає лише `!roomId:server`, `#alias:server` або `*`. Приклад allowlist: @@ -149,9 +155,9 @@ openclaw configure --section channels Matrix зберігає кешовані облікові дані в `~/.openclaw/credentials/matrix/`. Обліковий запис за замовчуванням використовує `credentials.json`; іменовані облікові записи — `credentials-.json`. -Коли там існують кешовані облікові дані, OpenClaw вважає Matrix налаштованим для setup, doctor і виявлення статусу каналу, навіть якщо поточну автентифікацію не встановлено безпосередньо в config. +Коли там є кешовані облікові дані, OpenClaw вважає Matrix налаштованим для виявлення під час setup, doctor і channel-status, навіть якщо поточна автентифікація не задана безпосередньо в конфігурації. -Еквіваленти змінних середовища (використовуються, коли ключ config не встановлено): +Відповідні змінні середовища (використовуються, коли ключ конфігурації не задано): - `MATRIX_HOMESERVER` - `MATRIX_ACCESS_TOKEN` @@ -160,7 +166,7 @@ Matrix зберігає кешовані облікові дані в `~/.opencl - `MATRIX_DEVICE_ID` - `MATRIX_DEVICE_NAME` -Для облікових записів не за замовчуванням використовуйте env vars з областю дії облікового запису: +Для облікових записів не за замовчуванням використовуйте змінні середовища з областю облікового запису: - `MATRIX__HOMESERVER` - `MATRIX__ACCESS_TOKEN` @@ -179,14 +185,14 @@ Matrix зберігає кешовані облікові дані в `~/.opencl - `MATRIX_OPS_X2D_BOT_HOMESERVER` - `MATRIX_OPS_X2D_BOT_ACCESS_TOKEN` -Matrix екранує розділові знаки в ID облікових записів, щоб уникнути колізій env vars з областю дії. +Matrix екранує розділові знаки в ID облікових записів, щоб змінні середовища з областю дії не конфліктували. Наприклад, `-` стає `_X2D_`, тому `ops-prod` перетворюється на `MATRIX_OPS_X2D_PROD_*`. -Інтерактивний майстер пропонує скористатися env vars лише тоді, коли ці env vars автентифікації вже присутні і для вибраного облікового запису ще не збережено автентифікацію Matrix у config. +Інтерактивний майстер пропонує скорочений варіант зі змінними середовища лише тоді, коли ці env-змінні автентифікації вже існують і для вибраного облікового запису ще не збережено автентифікацію Matrix у конфігурації. ## Приклад конфігурації -Це практична базова конфігурація з pairing для DM, allowlist кімнат і увімкненим E2EE: +Це практичний базовий конфіг із DM pairing, allowlist кімнат і ввімкненим E2EE: ```json5 { @@ -222,19 +228,18 @@ Matrix екранує розділові знаки в ID облікових з ``` `autoJoin` застосовується до запрошень Matrix загалом, а не лише до запрошень у кімнати/групи. -Це включає нові запрошення у стилі DM. Під час запрошення OpenClaw не може надійно визначити, чи -запрошена кімната зрештою вважатиметься DM чи групою, тому всі запрошення спочатку проходять через однакове -рішення `autoJoin`. `dm.policy` усе одно застосовується після того, як бот приєднається і кімнату буде -класифіковано як DM, тож `autoJoin` керує поведінкою приєднання, а `dm.policy` — поведінкою -відповідей/доступу. +Це включає нові запрошення в стилі DM. У момент запрошення OpenClaw не завжди може надійно визначити, чи +запрошена кімната в підсумку вважатиметься DM чи групою, тому всі запрошення спочатку проходять через однакове +рішення `autoJoin`. `dm.policy` усе одно застосовується після того, як бот приєднався й кімнату +класифіковано як DM, тому `autoJoin` керує поведінкою приєднання, а `dm.policy` — поведінкою відповіді/доступу. -## Попередній перегляд потокових відповідей +## Попередній перегляд streaming -Потокове передавання відповідей у Matrix є opt-in. +Streaming відповідей Matrix вмикається за бажанням. Установіть `channels.matrix.streaming` у значення `"partial"`, якщо хочете, щоб OpenClaw надсилав одну живу -відповідь попереднього перегляду, редагував цей попередній перегляд на місці, поки модель генерує текст, а -потім завершував його, коли відповідь буде готова: +відповідь попереднього перегляду, редагував її на місці, поки модель генерує текст, а потім завершував її, +коли відповідь буде готова: ```json5 { @@ -247,37 +252,37 @@ Matrix екранує розділові знаки в ID облікових з ``` - `streaming: "off"` — значення за замовчуванням. OpenClaw чекає на фінальну відповідь і надсилає її один раз. -- `streaming: "partial"` створює одне редаговане повідомлення попереднього перегляду для поточного блоку асистента, використовуючи звичайні текстові повідомлення Matrix. Це зберігає застарілу поведінку Matrix "спочатку попередній перегляд", тому стандартні клієнти можуть надсилати сповіщення за першим потоковим текстом попереднього перегляду, а не за завершеним блоком. -- `streaming: "quiet"` створює одне редаговане тихе повідомлення-попередній перегляд для поточного блоку асистента. Використовуйте це лише тоді, коли ви також налаштували push rules одержувачів для фіналізованих редагувань попереднього перегляду. -- `blockStreaming: true` вмикає окремі повідомлення про прогрес у Matrix. Якщо попередній перегляд потокового передавання увімкнено, Matrix зберігає живу чернетку для поточного блоку й залишає завершені блоки як окремі повідомлення. -- Коли попередній перегляд потокового передавання увімкнений, а `blockStreaming` вимкнено, Matrix редагує живу чернетку на місці й фіналізує ту саму подію, коли блок або хід завершуються. -- Якщо попередній перегляд більше не вміщується в одну подію Matrix, OpenClaw припиняє потокове передавання попереднього перегляду й повертається до звичайної фінальної доставки. -- Відповіді з медіа, як і раніше, надсилають вкладення звичайним способом. Якщо застарілий попередній перегляд більше не можна безпечно використати повторно, OpenClaw редагує його перед надсиланням фінальної відповіді з медіа. -- Редагування попереднього перегляду потребують додаткових викликів Matrix API. Залишайте streaming вимкненим, якщо хочете найконсервативнішу поведінку щодо обмежень швидкості. +- `streaming: "partial"` створює одне редаговане повідомлення попереднього перегляду для поточного блоку відповіді помічника, використовуючи звичайні текстові повідомлення Matrix. Це зберігає успадковану поведінку Matrix із попереднім сповіщенням за першим прев’ю, тож стандартні клієнти можуть сповіщати про перший текст streamed preview, а не про завершений блок. +- `streaming: "quiet"` створює одне редаговане тихе повідомлення попереднього перегляду для поточного блоку відповіді помічника. Використовуйте це лише тоді, коли ви також налаштували push rules одержувача для фіналізованих редагувань прев’ю. +- `blockStreaming: true` вмикає окремі повідомлення прогресу Matrix. Якщо streaming попереднього перегляду ввімкнено, Matrix зберігає живу чернетку для поточного блоку та залишає завершені блоки як окремі повідомлення. +- Коли preview streaming увімкнено, а `blockStreaming` вимкнено, Matrix редагує живу чернетку на місці й фіналізує ту саму подію, коли блок або хід завершується. +- Якщо preview більше не вміщується в одну подію Matrix, OpenClaw припиняє preview streaming і повертається до звичайної фінальної доставки. +- Відповіді з медіа, як і раніше, надсилають вкладення звичайним способом. Якщо застаріле прев’ю більше не можна безпечно повторно використати, OpenClaw редагує його перед надсиланням фінальної відповіді з медіа. +- Редагування прев’ю збільшують кількість викликів API Matrix. Якщо ви хочете максимально консервативну поведінку щодо rate limit, залиште streaming вимкненим. `blockStreaming` сам по собі не вмикає чернетки попереднього перегляду. -Використовуйте `streaming: "partial"` або `streaming: "quiet"` для редагувань попереднього перегляду; потім додавайте `blockStreaming: true` лише якщо також хочете, щоб завершені блоки асистента залишалися видимими як окремі повідомлення про прогрес. +Використовуйте `streaming: "partial"` або `streaming: "quiet"` для редагувань попереднього перегляду; потім додайте `blockStreaming: true`, лише якщо також хочете, щоб завершені блоки відповіді помічника залишалися видимими як окремі повідомлення прогресу. -Якщо вам потрібні стандартні сповіщення Matrix без кастомних push rules, використовуйте `streaming: "partial"` для поведінки "спочатку попередній перегляд" або залиште `streaming` вимкненим для доставки лише фінальної відповіді. З `streaming: "off"`: +Якщо вам потрібні стандартні сповіщення Matrix без власних push rules, використовуйте `streaming: "partial"` для поведінки з попереднім прев’ю або залиште `streaming` вимкненим для доставки лише фінальної відповіді. Для `streaming: "off"`: - `blockStreaming: true` надсилає кожен завершений блок як звичайне повідомлення Matrix зі сповіщенням. - `blockStreaming: false` надсилає лише фінальну завершену відповідь як звичайне повідомлення Matrix зі сповіщенням. -### Власні push rules для тихих фіналізованих попередніх переглядів +### Self-hosted push rules для тихих фіналізованих прев’ю -Якщо ви використовуєте власну інфраструктуру Matrix і хочете, щоб тихі попередні перегляди надсилали сповіщення лише тоді, коли блок або -фінальна відповідь завершені, установіть `streaming: "quiet"` і додайте push rule для кожного користувача для фіналізованих редагувань попереднього перегляду. +Якщо ви використовуєте власну інфраструктуру Matrix і хочете, щоб тихі прев’ю сповіщали лише тоді, коли блок або +фінальна відповідь завершені, установіть `streaming: "quiet"` і додайте push rule для кожного користувача для фіналізованих редагувань прев’ю. -Зазвичай це налаштування на боці користувача-одержувача, а не глобальна зміна config homeserver: +Зазвичай це налаштовується на боці користувача-одержувача, а не як глобальна зміна конфігурації homeserver: Швидка схема перед початком: -- користувач-одержувач = людина, яка має отримати сповіщення -- користувач-бот = обліковий запис Matrix OpenClaw, який надсилає відповідь -- для викликів API нижче використовуйте access token користувача-одержувача -- у push rule зіставляйте `sender` із повним MXID користувача-бота +- recipient user = людина, яка має отримати сповіщення +- bot user = обліковий запис Matrix OpenClaw, який надсилає відповідь +- використовуйте access token користувача-одержувача для наведених нижче викликів API +- зіставляйте `sender` у push rule з повним MXID користувача-бота -1. Налаштуйте OpenClaw на використання тихих попередніх переглядів: +1. Налаштуйте OpenClaw на використання тихих прев’ю: ```json5 { @@ -289,13 +294,13 @@ Matrix екранує розділові знаки в ID облікових з } ``` -2. Переконайтеся, що обліковий запис одержувача вже отримує звичайні push-сповіщення Matrix. Правила для тихих попередніх переглядів - працюють лише тоді, коли в цього користувача вже налаштовані pushers/пристрої. +2. Переконайтеся, що обліковий запис одержувача вже отримує звичайні push-сповіщення Matrix. Правила тихих прев’ю + працюють лише якщо для цього користувача вже працюють pushers/пристрої. 3. Отримайте access token користувача-одержувача. - Використовуйте токен користувача, який отримує повідомлення, а не токен бота. - Найпростіше зазвичай повторно використати токен існуючої сесії клієнта. - - Якщо потрібно створити новий токен, можна ввійти через стандартний Matrix Client-Server API: + - Якщо потрібно випустити новий токен, можна увійти через стандартний Matrix Client-Server API: ```bash curl -sS -X POST \ @@ -319,10 +324,10 @@ curl -sS \ "https://matrix.example.org/_matrix/client/v3/pushers" ``` -Якщо це повертає відсутність активних pushers/пристроїв, спершу виправте звичайні сповіщення Matrix, перш ніж додавати +Якщо це повертає відсутність активних pushers/пристроїв, спочатку виправте звичайні сповіщення Matrix, а вже потім додавайте правило OpenClaw нижче. -OpenClaw позначає фіналізовані редагування попереднього перегляду лише тексту таким чином: +OpenClaw позначає фіналізовані редагування прев’ю лише з текстом так: ```json { @@ -360,23 +365,23 @@ curl -sS -X PUT \ }' ``` -Замініть ці значення перед запуском команди: +Замініть ці значення перед виконанням команди: - `https://matrix.example.org`: базовий URL вашого homeserver -- `$USER_ACCESS_TOKEN`: access token користувача, який отримує повідомлення -- `openclaw-finalized-preview-botname`: ID правила, унікальний для цього бота для цього користувача -- `@bot:example.org`: MXID вашого Matrix-бота OpenClaw, а не MXID користувача-одержувача +- `$USER_ACCESS_TOKEN`: access token користувача-одержувача +- `openclaw-finalized-preview-botname`: `rule ID`, унікальний для цього бота для цього користувача-одержувача +- `@bot:example.org`: MXID вашого бота Matrix OpenClaw, а не MXID користувача-одержувача -Важливо для конфігурацій із кількома ботами: +Важливо для сценаріїв із кількома ботами: -- Ключем для push rules є `ruleId`. Повторний запуск `PUT` для того самого ID правила оновлює саме це правило. -- Якщо один користувач-одержувач має отримувати сповіщення від кількох облікових записів Matrix OpenClaw, створіть окреме правило для кожного бота з унікальним ID правила для кожного збігу `sender`. +- Push rules прив’язані до `ruleId`. Повторний запуск `PUT` для того самого rule ID оновлює саме це правило. +- Якщо один користувач-одержувач повинен отримувати сповіщення від кількох облікових записів ботів Matrix OpenClaw, створіть по одному правилу на кожного бота з унікальним rule ID для кожного збігу sender. - Простий шаблон — `openclaw-finalized-preview-`, наприклад `openclaw-finalized-preview-ops` або `openclaw-finalized-preview-support`. -Правило оцінюється відносно відправника події: +Правило оцінюється щодо відправника події: - автентифікуйтеся токеном користувача-одержувача -- зіставте `sender` з MXID бота OpenClaw +- зіставляйте `sender` з MXID бота OpenClaw 6. Перевірте, що правило існує: @@ -386,10 +391,10 @@ curl -sS \ "https://matrix.example.org/_matrix/client/v3/pushrules/global/override/openclaw-finalized-preview-botname" ``` -7. Протестуйте потокову відповідь. У тихому режимі кімната повинна показувати тиху чернетку попереднього перегляду, а фінальне - редагування на місці має надіслати сповіщення після завершення блоку або ходу. +7. Протестуйте streamed reply. У тихому режимі в кімнаті має з’явитися тиха чернетка прев’ю, а фінальне + редагування на місці має надіслати сповіщення, коли блок або хід завершиться. -Якщо вам потрібно видалити правило пізніше, видаліть той самий ID правила токеном користувача-одержувача: +Якщо згодом потрібно видалити правило, видаліть той самий rule ID токеном користувача-одержувача: ```bash curl -sS -X DELETE \ @@ -400,36 +405,36 @@ curl -sS -X DELETE \ Примітки: - Створюйте правило з access token користувача-одержувача, а не бота. -- Нові користувацькі правила `override` вставляються перед стандартними правилами придушення, тож додатковий параметр порядку не потрібен. -- Це впливає лише на редагування попереднього перегляду лише тексту, які OpenClaw може безпечно фіналізувати на місці. Відкат до медіа та відкат через застарілий попередній перегляд, як і раніше, використовують звичайну доставку Matrix. -- Якщо `GET /_matrix/client/v3/pushers` не показує pushers, користувач ще не має налаштованої доставки push-повідомлень Matrix для цього облікового запису/пристрою. +- Нові визначені користувачем правила `override` вставляються перед стандартними правилами придушення, тому додатковий параметр порядку не потрібен. +- Це впливає лише на редагування прев’ю, що містять лише текст, які OpenClaw може безпечно фіналізувати на місці. Випадки повернення до медіа та застарілих прев’ю все одно використовують звичайну доставку Matrix. +- Якщо `GET /_matrix/client/v3/pushers` показує відсутність pushers, у користувача ще не налаштована робоча доставка push у Matrix для цього облікового запису/пристрою. #### Synapse -Для Synapse наведеного вище налаштування зазвичай вже достатньо: +Для Synapse наведеного вище налаштування зазвичай достатньо: -- Жодних спеціальних змін у `homeserver.yaml` для сповіщень про фіналізований попередній перегляд OpenClaw не потрібно. -- Якщо ваше розгортання Synapse вже надсилає звичайні push-сповіщення Matrix, основним кроком налаштування є токен користувача + виклик `pushrules` вище. -- Якщо ви запускаєте Synapse за reverse proxy або workers, переконайтеся, що `/_matrix/client/.../pushrules/` коректно доходить до Synapse. -- Якщо ви використовуєте workers Synapse, переконайтеся, що pushers працюють справно. Доставкою push-повідомлень займається основний процес або `synapse.app.pusher` / налаштовані pusher workers. +- Жодних спеціальних змін у `homeserver.yaml` для сповіщень про фіналізовані прев’ю OpenClaw не потрібно. +- Якщо ваше розгортання Synapse уже надсилає звичайні push-сповіщення Matrix, основним кроком налаштування є токен користувача + виклик `pushrules` вище. +- Якщо ви запускаєте Synapse за reverse proxy або workers, переконайтеся, що `/_matrix/client/.../pushrules/` правильно потрапляє до Synapse. +- Якщо ви використовуєте workers у Synapse, переконайтеся, що pushers працюють справно. Доставка push обробляється головним процесом або `synapse.app.pusher` / налаштованими pusher workers. #### Tuwunel -Для Tuwunel використовуйте той самий сценарій налаштування та виклик API `pushrules`, наведений вище: +Для Tuwunel використовуйте той самий процес налаштування й той самий виклик API `push-rule`, наведений вище: -- Жодної конфігурації, специфічної для Tuwunel, для самого маркера фіналізованого попереднього перегляду не потрібно. +- Жодної специфічної для Tuwunel конфігурації для самого маркера фіналізованого прев’ю не потрібно. - Якщо звичайні сповіщення Matrix уже працюють для цього користувача, основним кроком налаштування є токен користувача + виклик `pushrules` вище. -- Якщо здається, що сповіщення зникають, поки користувач активний на іншому пристрої, перевірте, чи увімкнено `suppress_push_when_active`. Tuwunel додав цю опцію у Tuwunel 1.4.2 12 вересня 2025 року, і вона може навмисно пригнічувати push-повідомлення на інші пристрої, поки один пристрій активний. +- Якщо сповіщення наче зникають, поки користувач активний на іншому пристрої, перевірте, чи ввімкнено `suppress_push_when_active`. Tuwunel додав цю опцію у Tuwunel 1.4.2 12 вересня 2025 року, і вона може навмисно приглушувати push на інші пристрої, поки один пристрій активний. ## Шифрування та верифікація -В зашифрованих (E2EE) кімнатах вихідні події із зображеннями використовують `thumbnail_file`, тому попередній перегляд зображення шифрується разом із повним вкладенням. Незашифровані кімнати, як і раніше, використовують звичайний `thumbnail_url`. Конфігурація не потрібна — плагін автоматично визначає стан E2EE. +У зашифрованих кімнатах (E2EE) вихідні події зображень використовують `thumbnail_file`, тому прев’ю зображень шифруються разом із повним вкладенням. Незашифровані кімнати, як і раніше, використовують звичайний `thumbnail_url`. Налаштування не потрібні — plugin автоматично визначає стан E2EE. -### Кімнати бот-до-бота +### Кімнати bot-to-bot За замовчуванням повідомлення Matrix від інших налаштованих облікових записів Matrix OpenClaw ігноруються. -Використовуйте `allowBots`, якщо ви навмисно хочете дозволити міжагентний трафік Matrix: +Використовуйте `allowBots`, якщо ви свідомо хочете дозволити міжагентний трафік Matrix: ```json5 { @@ -449,10 +454,10 @@ curl -sS -X DELETE \ - `allowBots: true` приймає повідомлення від інших налаштованих облікових записів ботів Matrix у дозволених кімнатах і DM. - `allowBots: "mentions"` приймає такі повідомлення лише тоді, коли вони явно згадують цього бота в кімнатах. DM усе одно дозволені. - `groups..allowBots` перевизначає налаштування рівня облікового запису для однієї кімнати. -- OpenClaw, як і раніше, ігнорує повідомлення від того самого Matrix user ID, щоб уникнути циклів самовідповіді. -- Matrix тут не надає нативного прапорця бота; OpenClaw трактує "написане ботом" як "надіслане іншим налаштованим обліковим записом Matrix на цьому gateway OpenClaw". +- OpenClaw усе одно ігнорує повідомлення від того самого Matrix user ID, щоб уникнути циклів самовідповіді. +- Matrix тут не надає вбудованого прапорця бота; OpenClaw трактує «створено ботом» як «надіслано іншим налаштованим обліковим записом Matrix на цьому шлюзі OpenClaw». -Використовуйте суворі allowlist кімнат і вимоги до згадування, коли вмикаєте трафік бот-до-бота в спільних кімнатах. +Використовуйте суворі allowlist для кімнат і вимоги згадки, коли вмикаєте bot-to-bot трафік у спільних кімнатах. Увімкнення шифрування: @@ -482,7 +487,7 @@ openclaw matrix verify status openclaw matrix verify status --verbose ``` -Включення збереженого recovery key у машинозчитуваний вивід: +Включити збережений recovery key у машинозчитуваний вивід: ```bash openclaw matrix verify status --include-recovery-key --json @@ -494,7 +499,7 @@ openclaw matrix verify status --include-recovery-key --json openclaw matrix verify bootstrap ``` -Підтримка кількох облікових записів: використовуйте `channels.matrix.accounts` з обліковими даними для кожного облікового запису та необов’язковим `name`. Див. [Configuration reference](/uk/gateway/configuration-reference#multi-account-all-channels) щодо спільного шаблону. +Підтримка кількох облікових записів: використовуйте `channels.matrix.accounts` з обліковими даними для кожного облікового запису й необов’язковим `name`. Див. [Configuration reference](/uk/gateway/configuration-reference#multi-account-all-channels), щоб ознайомитися зі спільним шаблоном. Докладна діагностика bootstrap: @@ -502,7 +507,7 @@ openclaw matrix verify bootstrap openclaw matrix verify bootstrap --verbose ``` -Примусово скинути поточну identity cross-signing перед bootstrap: +Примусово скинути identity cross-signing перед bootstrap: ```bash openclaw matrix verify bootstrap --force-reset-cross-signing @@ -520,7 +525,7 @@ openclaw matrix verify device "" openclaw matrix verify device "" --verbose ``` -Перевірка стану резервного копіювання ключів кімнати: +Перевірити стан резервного копіювання ключів кімнат: ```bash openclaw matrix verify backup status @@ -532,7 +537,7 @@ openclaw matrix verify backup status openclaw matrix verify backup status --verbose ``` -Відновлення ключів кімнати з резервної копії на сервері: +Відновити ключі кімнат із резервної копії на сервері: ```bash openclaw matrix verify backup restore @@ -544,20 +549,20 @@ openclaw matrix verify backup restore openclaw matrix verify backup restore --verbose ``` -Видалити поточну резервну копію на сервері й створити нову базову лінію резервного копіювання. Якщо збережений -ключ резервної копії не вдається коректно завантажити, це скидання також може відтворити secret storage, щоб -майбутні холодні запуски могли завантажувати новий ключ резервної копії: +Видалити поточну серверну резервну копію та створити нову базову резервну копію. Якщо збережений +ключ резервної копії неможливо коректно завантажити, це скидання також може повторно створити secret storage, щоб +майбутні cold start могли завантажувати новий ключ резервної копії: ```bash openclaw matrix verify backup reset --yes ``` Усі команди `verify` за замовчуванням лаконічні (включно з тихим внутрішнім логуванням SDK) і показують детальну діагностику лише з `--verbose`. -Використовуйте `--json` для повного машинозчитуваного виводу в сценаріях. +Для сценаріїв використовуйте `--json`, щоб отримати повний машинозчитуваний вивід. -У конфігураціях із кількома обліковими записами команди CLI Matrix використовують неявний обліковий запис Matrix за замовчуванням, якщо ви не передасте `--account `. -Якщо ви налаштуєте кілька іменованих облікових записів, спочатку встановіть `channels.matrix.defaultAccount`, інакше такі неявні операції CLI зупиняться й попросять вас явно вибрати обліковий запис. -Використовуйте `--account`, коли хочете, щоб операції верифікації або роботи з пристроями явно були націлені на іменований обліковий запис: +У конфігураціях із кількома обліковими записами CLI-команди Matrix використовують неявний обліковий запис Matrix за замовчуванням, якщо ви не передасте `--account `. +Якщо у вас налаштовано кілька іменованих облікових записів, спочатку встановіть `channels.matrix.defaultAccount`, інакше такі неявні CLI-операції зупиняться й попросять вас явно вибрати обліковий запис. +Використовуйте `--account`, коли хочете, щоб операції верифікації або з пристроями були явно спрямовані на певний іменований обліковий запис: ```bash openclaw matrix verify status --account assistant @@ -565,7 +570,7 @@ openclaw matrix verify backup restore --account assistant openclaw matrix devices list --account assistant ``` -Коли шифрування вимкнене або недоступне для іменованого облікового запису, попередження Matrix і помилки верифікації вказують на ключ config цього облікового запису, наприклад `channels.matrix.accounts.assistant.encryption`. +Коли шифрування вимкнено або недоступне для іменованого облікового запису, попередження Matrix і помилки верифікації вказують на ключ конфігурації цього облікового запису, наприклад `channels.matrix.accounts.assistant.encryption`. ### Що означає "verified" @@ -574,34 +579,34 @@ OpenClaw вважає цей пристрій Matrix верифікованим - `Locally trusted`: цьому пристрою довіряє лише поточний клієнт - `Cross-signing verified`: SDK повідомляє, що пристрій верифіковано через cross-signing -- `Signed by owner`: пристрій підписано вашим власним self-signing key +- `Signed by owner`: пристрій підписаний вашим власним self-signing key -`Verified by owner` стає `yes` лише тоді, коли присутня верифікація через cross-signing або підпис власника. -Локальної довіри самої по собі недостатньо, щоб OpenClaw вважав пристрій повністю верифікованим. +`Verified by owner` стає `yes` лише тоді, коли присутня верифікація cross-signing або підпис власника. +Однієї лише локальної довіри недостатньо, щоб OpenClaw вважав пристрій повністю верифікованим. ### Що робить bootstrap -`openclaw matrix verify bootstrap` — це команда відновлення та налаштування для зашифрованих облікових записів Matrix. -Вона виконує все наведене нижче у такому порядку: +`openclaw matrix verify bootstrap` — це команда відновлення й налаштування для зашифрованих облікових записів Matrix. +Вона виконує все наведене нижче в такому порядку: -- ініціалізує secret storage, повторно використовуючи наявний recovery key, коли це можливо +- ініціалізує secret storage, повторно використовуючи наявний recovery key, якщо це можливо - ініціалізує cross-signing і завантажує відсутні публічні ключі cross-signing -- намагається позначити та підписати поточний пристрій через cross-signing -- створює нову серверну резервну копію ключів кімнат, якщо вона ще не існує +- намагається позначити й підписати поточний пристрій через cross-signing +- створює нову серверну резервну копію ключів кімнат, якщо її ще не існує -Якщо homeserver вимагає інтерактивної автентифікації для завантаження ключів cross-signing, OpenClaw спочатку пробує завантаження без автентифікації, потім із `m.login.dummy`, а потім із `m.login.password`, коли налаштовано `channels.matrix.password`. +Якщо homeserver вимагає інтерактивної автентифікації для завантаження ключів cross-signing, OpenClaw спочатку намагається завантажити їх без автентифікації, потім із `m.login.dummy`, а потім із `m.login.password`, якщо налаштовано `channels.matrix.password`. -Використовуйте `--force-reset-cross-signing` лише тоді, коли ви свідомо хочете відкинути поточну identity cross-signing і створити нову. +Використовуйте `--force-reset-cross-signing`, лише якщо ви свідомо хочете відкинути поточну identity cross-signing і створити нову. -Якщо ви свідомо хочете відкинути поточну резервну копію ключів кімнат і розпочати нову -базову лінію резервного копіювання для майбутніх повідомлень, використовуйте `openclaw matrix verify backup reset --yes`. -Робіть це лише тоді, коли ви погоджуєтеся, що стару зашифровану історію, яку неможливо відновити, буде -недоступно й надалі, і що OpenClaw може перевідтворити secret storage, якщо поточний секрет +Якщо ви навмисно хочете відкинути поточну резервну копію ключів кімнат і почати нову +базову резервну копію для майбутніх повідомлень, використовуйте `openclaw matrix verify backup reset --yes`. +Робіть це лише тоді, коли приймаєте, що невідновна стара зашифрована історія залишиться +недоступною і що OpenClaw може повторно створити secret storage, якщо поточний секрет резервної копії неможливо безпечно завантажити. -### Нова базова лінія резервного копіювання +### Нова базова резервна копія -Якщо ви хочете зберегти працездатність майбутніх зашифрованих повідомлень і погоджуєтеся втратити стару історію, яку неможливо відновити, виконайте ці команди в такому порядку: +Якщо ви хочете, щоб майбутні зашифровані повідомлення працювали, і погоджуєтеся втратити невідновну стару історію, виконайте ці команди по черзі: ```bash openclaw matrix verify backup reset --yes @@ -609,107 +614,107 @@ openclaw matrix verify backup status --verbose openclaw matrix verify status ``` -Додавайте `--account ` до кожної команди, якщо хочете явно націлити її на іменований обліковий запис Matrix. +Додавайте `--account ` до кожної команди, якщо хочете явно націлити їх на певний іменований обліковий запис Matrix. ### Поведінка під час запуску Коли `encryption: true`, Matrix за замовчуванням встановлює `startupVerification` у `"if-unverified"`. -Під час запуску, якщо цей пристрій досі не верифікований, Matrix надішле запит на самоверифікацію в іншому клієнті Matrix, -пропустить дублікати запитів, якщо один уже очікує, і застосує локальний cooldown перед повторною спробою після перезапусків. -За замовчуванням невдалі спроби запитів повторюються швидше, ніж успішне створення запиту. +Під час запуску, якщо цей пристрій усе ще не верифікований, Matrix надішле запит на самоверифікацію в іншому клієнті Matrix, +пропустить дубльовані запити, якщо один уже очікує, і застосує локальний cooldown перед повторною спробою після перезапусків. +Невдалі спроби запитів за замовчуванням повторюються раніше, ніж успішне створення запиту. Установіть `startupVerification: "off"`, щоб вимкнути автоматичні запити під час запуску, або налаштуйте `startupVerificationCooldownHours`, -якщо хочете коротше або довше вікно повторної спроби. +якщо вам потрібне коротше або довше вікно повторних спроб. -Під час запуску також автоматично виконується консервативний прохід bootstrap криптографії. -Цей прохід спершу намагається повторно використати поточні secret storage та identity cross-signing і уникає скидання cross-signing, якщо ви не запускаєте явний сценарій відновлення bootstrap. +Під час запуску також автоматично виконується консервативний прохід bootstrap для crypto. +Цей прохід спочатку намагається повторно використати поточні secret storage та identity cross-signing і не скидає cross-signing, якщо ви не запускаєте явний потік відновлення bootstrap. -Якщо під час запуску виявлено зіпсований стан bootstrap і налаштовано `channels.matrix.password`, OpenClaw може спробувати суворіший шлях відновлення. -Якщо поточний пристрій уже підписаний власником, OpenClaw зберігає цю identity, а не скидає її автоматично. +Якщо під час запуску виявлено пошкоджений стан bootstrap і налаштовано `channels.matrix.password`, OpenClaw може спробувати суворіший шлях відновлення. +Якщо поточний пристрій уже підписаний власником, OpenClaw зберігає цю identity замість автоматичного скидання. -Оновлення з попереднього публічного плагіна Matrix: +Оновлення з попереднього публічного plugin Matrix: - OpenClaw автоматично повторно використовує той самий обліковий запис Matrix, access token і identity пристрою, коли це можливо. -- Перш ніж буде виконано будь-які дієві зміни міграції Matrix, OpenClaw створює або повторно використовує recovery snapshot у `~/Backups/openclaw-migrations/`. -- Якщо ви використовуєте кілька облікових записів Matrix, встановіть `channels.matrix.defaultAccount` перед оновленням зі старого макета flat-store, щоб OpenClaw знав, який обліковий запис має отримати цей спільний застарілий стан. -- Якщо попередній плагін зберігав локально ключ дешифрування резервної копії ключів кімнати Matrix, під час запуску або `openclaw doctor --fix` його буде автоматично імпортовано в новий сценарій recovery key. -- Якщо access token Matrix змінився після підготовки міграції, під час запуску тепер виконується сканування сусідніх кореневих каталогів сховища token-hash у пошуках очікуваного застарілого стану відновлення перед тим, як відмовитися від автоматичного відновлення резервної копії. -- Якщо access token Matrix змінюється пізніше для того самого облікового запису, homeserver і користувача, OpenClaw тепер віддає перевагу повторному використанню найповнішого наявного кореневого каталогу token-hash замість початку з порожнього каталогу стану Matrix. -- Під час наступного запуску gateway резервні копії ключів кімнат автоматично відновлюються в нове crypto store. -- Якщо старий плагін мав лише локальні ключі кімнат, які ніколи не резервувалися, OpenClaw чітко попередить про це. Ці ключі не можна автоматично експортувати з попереднього rust crypto store, тому частина старої зашифрованої історії може залишатися недоступною, доки її не буде відновлено вручну. -- Див. [Matrix migration](/uk/install/migrating-matrix) щодо повного сценарію оновлення, обмежень, команд відновлення й типових повідомлень міграції. +- Перед запуском будь-яких практичних змін міграції Matrix OpenClaw створює або повторно використовує snapshot відновлення в `~/Backups/openclaw-migrations/`. +- Якщо ви використовуєте кілька облікових записів Matrix, установіть `channels.matrix.defaultAccount` перед оновленням зі старої плоскої схеми зберігання, щоб OpenClaw знав, який обліковий запис має отримати цей спільний застарілий стан. +- Якщо попередній plugin зберігав локально ключ дешифрування резервної копії ключів кімнат Matrix, запуск або `openclaw doctor --fix` автоматично імпортує його в новий потік recovery key. +- Якщо access token Matrix змінився після підготовки міграції, під час запуску тепер виконується сканування сусідніх коренів сховища з хешами токенів на наявність очікуваного стану застарілого відновлення перед тим, як відмовитися від автоматичного відновлення резервної копії. +- Якщо access token Matrix зміниться пізніше для того самого облікового запису, homeserver і користувача, OpenClaw тепер надає перевагу повторному використанню найповнішого наявного кореня сховища з хешем токена замість старту з порожнього каталогу стану Matrix. +- Під час наступного запуску шлюзу резервні ключі кімнат автоматично відновляться в нове crypto store. +- Якщо старий plugin мав лише локальні ключі кімнат, які ніколи не резервувалися, OpenClaw чітко попередить про це. Ці ключі не можна автоматично експортувати з попереднього rust crypto store, тому частина старої зашифрованої історії може залишатися недоступною, доки її не буде відновлено вручну. +- Див. [Matrix migration](/uk/install/migrating-matrix), щоб ознайомитися з повним процесом оновлення, обмеженнями, командами відновлення та поширеними повідомленнями міграції. -Зашифрований runtime state організовано в кореневих каталогах token-hash для кожного облікового запису й користувача в -`~/.openclaw/matrix/accounts//__//`. +Зашифрований стан під час виконання організовано в коренях із хешами токенів для кожного облікового запису й користувача +у `~/.openclaw/matrix/accounts//__//`. Цей каталог містить sync store (`bot-storage.json`), crypto store (`crypto/`), файл recovery key (`recovery-key.json`), snapshot IndexedDB (`crypto-idb-snapshot.json`), -прив’язки тредів (`thread-bindings.json`) і стан верифікації під час запуску (`startup-verification.json`), +прив’язки тредів (`thread-bindings.json`) і стан startup verification (`startup-verification.json`), коли ці можливості використовуються. Коли токен змінюється, але identity облікового запису лишається тією самою, OpenClaw повторно використовує найкращий наявний -кореневий каталог для цього кортежу account/homeserver/user, щоб попередній sync state, crypto state, прив’язки тредів -і стан верифікації під час запуску залишалися доступними. +корінь для цього кортежу account/homeserver/user, щоб попередній sync state, crypto state, прив’язки тредів +і стан startup verification залишалися видимими. ### Модель Node crypto store -Matrix E2EE у цьому плагіні використовує офіційний шлях Rust crypto з `matrix-js-sdk` у Node. +Matrix E2EE у цьому plugin використовує офіційний шлях Rust crypto з `matrix-js-sdk` у Node. Цей шлях очікує збереження на основі IndexedDB, якщо ви хочете, щоб crypto state переживав перезапуски. -Наразі OpenClaw надає це в Node таким чином: +Наразі OpenClaw забезпечує це в Node так: -- використовує `fake-indexeddb` як shim IndexedDB API, який очікує SDK -- відновлює вміст IndexedDB Rust crypto з `crypto-idb-snapshot.json` перед `initRustCrypto` -- зберігає оновлений вміст IndexedDB назад у `crypto-idb-snapshot.json` після init і під час runtime -- серіалізує відновлення та збереження snapshot відносно `crypto-idb-snapshot.json` за допомогою дорадчого file lock, щоб збереження під час роботи gateway і обслуговування CLI не змагалися за один і той самий файл snapshot +- використовує `fake-indexeddb` як shim API IndexedDB, який очікує SDK +- відновлює вміст Rust crypto IndexedDB з `crypto-idb-snapshot.json` перед `initRustCrypto` +- зберігає оновлений вміст IndexedDB назад у `crypto-idb-snapshot.json` після ініціалізації та під час виконання +- серіалізує відновлення та збереження snapshot для `crypto-idb-snapshot.json` за допомогою advisory file lock, щоб збереження під час виконання шлюзу й обслуговування CLI не конфліктували через один і той самий файл snapshot -Це plumbing сумісності/зберігання, а не кастомна реалізація криптографії. -Файл snapshot є чутливим runtime state і зберігається з обмежувальними правами доступу до файлів. -У межах моделі безпеки OpenClaw хост gateway і локальний каталог стану OpenClaw уже входять до довіреної межі оператора, тому це насамперед операційне питання надійності, а не окрема межа віддаленої довіри. +Це інфраструктура сумісності/зберігання, а не власна реалізація crypto. +Файл snapshot є чутливим станом під час виконання і зберігається з обмежувальними правами доступу до файлу. +У межах моделі безпеки OpenClaw хост шлюзу й локальний каталог стану OpenClaw уже входять до довіреної межі оператора, тож це передусім операційне питання надійності, а не окрема віддалена межа довіри. Заплановане покращення: -- додати підтримку SecretRef для постійного ключового матеріалу Matrix, щоб recovery keys і пов’язані секрети шифрування сховища можна було брати з провайдерів секретів OpenClaw, а не лише з локальних файлів +- додати підтримку SecretRef для постійного ключового матеріалу Matrix, щоб recovery keys і пов’язані секрети шифрування сховища могли надходити з провайдерів секретів OpenClaw, а не лише з локальних файлів ## Керування профілем -Оновіть self-profile Matrix для вибраного облікового запису за допомогою: +Оновіть self-profile Matrix для вибраного облікового запису так: ```bash openclaw matrix profile set --name "OpenClaw Assistant" openclaw matrix profile set --avatar-url https://cdn.example.org/avatar.png ``` -Додайте `--account `, якщо хочете явно націлити команду на іменований обліковий запис Matrix. +Додайте `--account `, якщо хочете явно націлити команду на певний іменований обліковий запис Matrix. -Matrix напряму приймає URL аватарів `mxc://`. Коли ви передаєте URL аватара `http://` або `https://`, OpenClaw спочатку завантажує його в Matrix, а потім зберігає визначений URL `mxc://` назад у `channels.matrix.avatarUrl` (або у вибране перевизначення облікового запису). +Matrix приймає URL аватарів `mxc://` напряму. Якщо ви передаєте URL аватара `http://` або `https://`, OpenClaw спочатку завантажує його в Matrix, а потім зберігає отриманий URL `mxc://` назад у `channels.matrix.avatarUrl` (або в перевизначення вибраного облікового запису). -## Автоматичні повідомлення про верифікацію +## Автоматичні сповіщення про верифікацію -Matrix тепер публікує повідомлення про життєвий цикл верифікації безпосередньо в сувору DM-кімнату верифікації як повідомлення `m.notice`. +Тепер Matrix публікує сповіщення про життєвий цикл верифікації безпосередньо в сувору DM-кімнату верифікації як повідомлення `m.notice`. Це включає: -- повідомлення про запит верифікації -- повідомлення про готовність до верифікації (з явною підказкою "Verify by emoji") -- повідомлення про початок і завершення верифікації -- деталі SAS (emoji і десяткові числа), коли вони доступні +- сповіщення про запит верифікації +- сповіщення про готовність до верифікації (з явною підказкою "Verify by emoji") +- сповіщення про початок і завершення верифікації +- відомості SAS (emoji і десяткові значення), коли вони доступні -Вхідні запити верифікації від іншого клієнта Matrix відстежуються й автоматично приймаються OpenClaw. -Для сценаріїв самоверифікації OpenClaw також автоматично запускає сценарій SAS, коли стає доступною верифікація emoji, і підтверджує свою сторону. -Для запитів верифікації від іншого користувача/пристрою Matrix OpenClaw автоматично приймає запит, а потім чекає, поки сценарій SAS продовжиться звичайним чином. -Щоб завершити верифікацію, вам усе одно потрібно порівняти emoji або десятковий SAS у вашому клієнті Matrix і там підтвердити "They match". +Вхідні запити на верифікацію від іншого клієнта Matrix відстежуються та автоматично приймаються OpenClaw. +Для потоків самоверифікації OpenClaw також автоматично запускає потік SAS, коли стає доступною верифікація за emoji, і підтверджує свій бік. +Для запитів на верифікацію від іншого користувача/пристрою Matrix OpenClaw автоматично приймає запит, а потім чекає, поки потік SAS продовжиться звичайним чином. +Вам усе одно потрібно порівняти emoji або десятковий SAS у вашому клієнті Matrix і підтвердити "They match" там, щоб завершити верифікацію. -OpenClaw не приймає сліпо автоматично дубльовані сценарії, ініційовані ним самим. Під час запуску створення нового запиту пропускається, якщо запит на самоверифікацію вже очікує. +OpenClaw не приймає бездумно дубльовані потоки, ініційовані ним самим. Під час запуску не створюється новий запит, якщо запит на самоверифікацію вже очікує. -Повідомлення протоколу/системи верифікації не пересилаються в конвеєр чату агента, тому вони не створюють `NO_REPLY`. +Сповіщення протоколу/системи верифікації не пересилаються в конвеєр чату агента, тому вони не спричиняють `NO_REPLY`. ### Гігієна пристроїв -Старі пристрої Matrix, керовані OpenClaw, можуть накопичуватися в обліковому записі й ускладнювати розуміння довіри в зашифрованих кімнатах. -Перегляньте їх за допомогою: +Старі керовані OpenClaw пристрої Matrix можуть накопичуватися в обліковому записі й ускладнювати розуміння довіри в зашифрованих кімнатах. +Перелічіть їх так: ```bash openclaw matrix devices list ``` -Видаліть застарілі пристрої Matrix, керовані OpenClaw, за допомогою: +Видаліть застарілі керовані OpenClaw пристрої так: ```bash openclaw matrix devices prune-stale @@ -717,65 +722,65 @@ openclaw matrix devices prune-stale ### Відновлення Direct Room -Якщо стан direct-message виходить із синхронізації, OpenClaw може отримати застарілі зіставлення `m.direct`, які вказують на старі окремі кімнати замість активного DM. Щоб перевірити поточне зіставлення для співрозмовника, використовуйте: +Якщо стан direct-message виходить із синхронізації, OpenClaw може залишити застарілі зіставлення `m.direct`, що вказують на старі solo-кімнати замість актуального DM. Переглянути поточне зіставлення для співрозмовника можна так: ```bash openclaw matrix direct inspect --user-id @alice:example.org ``` -Щоб відновити його: +Виправити це можна так: ```bash openclaw matrix direct repair --user-id @alice:example.org ``` -Відновлення зберігає логіку, специфічну для Matrix, усередині плагіна: +Відновлення зберігає логіку, специфічну для Matrix, усередині plugin: -- воно надає перевагу суворому 1:1 DM, який уже зіставлено в `m.direct` -- інакше повертається до будь-якого поточного приєднаного суворого 1:1 DM із цим користувачем -- якщо справного DM не існує, створює нову direct room і переписує `m.direct`, щоб вона вказувала на неї +- воно надає перевагу суворому DM 1:1, який уже відображений у `m.direct` +- інакше повертається до будь-якого поточного strict 1:1 DM з цим користувачем, до якого вже виконано приєднання +- якщо здорового DM не існує, створює нову direct room і переписує `m.direct`, щоб вона вказувала на неї -Сценарій відновлення не видаляє старі кімнати автоматично. Він лише вибирає справний DM і оновлює зіставлення, щоб нові надсилання Matrix, повідомлення про верифікацію та інші сценарії direct-message знову потрапляли до правильної кімнати. +Потік відновлення не видаляє старі кімнати автоматично. Він лише вибирає здоровий DM і оновлює зіставлення, щоб нові надсилання Matrix, сповіщення про верифікацію й інші потоки direct-message знову спрямовувалися до правильної кімнати. ## Треди Matrix підтримує нативні треди Matrix як для автоматичних відповідей, так і для надсилань через message-tool. -- `dm.sessionScope: "per-user"` (за замовчуванням) зберігає маршрутизацію Matrix DM з областю дії відправника, тому кілька DM-кімнат можуть спільно використовувати одну сесію, якщо вони визначаються як той самий співрозмовник. -- `dm.sessionScope: "per-room"` ізолює кожну Matrix DM-кімнату у власний ключ сесії, водночас використовуючи звичайні перевірки автентифікації DM і allowlist. -- Явні прив’язки розмов Matrix усе одно мають пріоритет над `dm.sessionScope`, тому прив’язані кімнати й треди зберігають вибрану цільову сесію. -- `threadReplies: "off"` залишає відповіді на верхньому рівні й зберігає вхідні повідомлення з тредів на батьківській сесії. -- `threadReplies: "inbound"` відповідає всередині треду лише тоді, коли вхідне повідомлення вже було в цьому треді. -- `threadReplies: "always"` зберігає відповіді в кімнаті всередині треду, коренем якого є повідомлення-тригер, і маршрутизує цю розмову через відповідну сесію з областю дії треду від першого повідомлення-тригера. -- `dm.threadReplies` перевизначає налаштування верхнього рівня лише для DM. Наприклад, ви можете ізолювати треди кімнат, залишаючи DM пласкими. -- Вхідні повідомлення з тредів включають кореневе повідомлення треду як додатковий контекст агента. -- Надсилання через message-tool тепер автоматично успадковують поточний тред Matrix, коли ціль — та сама кімната або той самий цільовий користувач DM, якщо не вказано явний `threadId`. -- Повторне використання цілі користувача DM для тієї самої сесії спрацьовує лише тоді, коли метадані поточної сесії підтверджують того самого співрозмовника DM у тому самому обліковому записі Matrix; інакше OpenClaw повертається до звичайної маршрутизації з областю дії користувача. -- Коли OpenClaw бачить, що кімната Matrix DM конфліктує з іншою DM-кімнатою в тій самій спільній сесії Matrix DM, він публікує одноразове `m.notice` у цій кімнаті з аварійним варіантом `/focus`, коли ввімкнено прив’язки тредів і підказку `dm.sessionScope`. -- Runtime-прив’язки тредів підтримуються для Matrix. `/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age` і прив’язаний до треду `/acp spawn` тепер працюють у кімнатах і DM Matrix. -- `/focus` верхнього рівня в кімнаті/DM Matrix створює новий тред Matrix і прив’язує його до цільової сесії, коли `threadBindings.spawnSubagentSessions=true`. -- Виконання `/focus` або `/acp spawn --thread here` всередині наявного треду Matrix натомість прив’язує цей поточний тред. +- `dm.sessionScope: "per-user"` (за замовчуванням) зберігає маршрутизацію DM Matrix прив’язаною до відправника, тому кілька кімнат DM можуть ділити один сеанс, якщо вони визначаються як один і той самий співрозмовник. +- `dm.sessionScope: "per-room"` ізолює кожну кімнату DM Matrix у власний ключ сеансу, зберігаючи водночас звичайну автентифікацію DM і перевірки allowlist. +- Явні прив’язки розмов Matrix усе одно мають пріоритет над `dm.sessionScope`, тому прив’язані кімнати й треди зберігають вибраний цільовий сеанс. +- `threadReplies: "off"` залишає відповіді на верхньому рівні та зберігає вхідні threaded messages на батьківському сеансі. +- `threadReplies: "inbound"` відповідає всередині треда лише тоді, коли вхідне повідомлення вже було в цьому треді. +- `threadReplies: "always"` залишає відповіді в треді, коренем якого є повідомлення-тригер, і спрямовує цю розмову через відповідний сеанс із областю треда від першого повідомлення-тригера. +- `dm.threadReplies` перевизначає налаштування верхнього рівня лише для DM. Наприклад, ви можете ізолювати треди в кімнатах, залишивши DM пласкими. +- Вхідні threaded messages включають кореневе повідомлення треда як додатковий контекст агента. +- Надсилання через message-tool тепер автоматично успадковують поточний тред Matrix, коли ціллю є та сама кімната або той самий DM-користувач, якщо явно не вказано `threadId`. +- Повторне використання цілі DM-користувача в тому самому сеансі спрацьовує лише тоді, коли метадані поточного сеансу підтверджують того самого DM-співрозмовника в тому самому обліковому записі Matrix; інакше OpenClaw повертається до звичайної маршрутизації за користувачем. +- Коли OpenClaw бачить, що кімната DM Matrix конфліктує з іншою кімнатою DM у тому самому спільному сеансі DM Matrix, він публікує в цій кімнаті одноразове `m.notice` із запасним варіантом `/focus`, коли прив’язки тредів увімкнені, і з підказкою `dm.sessionScope`. +- Прив’язки тредів під час виконання підтримуються для Matrix. `/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age` і прив’язаний до треда `/acp spawn` тепер працюють у кімнатах і DM Matrix. +- `/focus` верхнього рівня в кімнаті/DM Matrix створює новий тред Matrix і прив’язує його до цільового сеансу, коли `threadBindings.spawnSubagentSessions=true`. +- Виконання `/focus` або `/acp spawn --thread here` всередині наявного треда Matrix прив’язує натомість поточний тред. ## Прив’язки розмов ACP -Кімнати, DM та наявні треди Matrix можна перетворювати на довговічні робочі простори ACP без зміни поверхні чату. +Кімнати Matrix, DM і наявні треди Matrix можна перетворити на довговічні робочі простори ACP без зміни поверхні чату. -Швидкий сценарій для оператора: +Швидкий операторський потік: -- Виконайте `/acp spawn codex --bind here` всередині Matrix DM, кімнати або наявного треду, який ви хочете й надалі використовувати. -- У Matrix DM або кімнаті верхнього рівня поточний DM/кімната залишається поверхнею чату, а майбутні повідомлення маршрутизуються до створеної сесії ACP. -- Усередині наявного треду Matrix `--bind here` прив’язує цей поточний тред на місці. -- `/new` і `/reset` скидають ту саму прив’язану сесію ACP на місці. -- `/acp close` закриває сесію ACP і видаляє прив’язку. +- Виконайте `/acp spawn codex --bind here` всередині DM, кімнати або наявного треда Matrix, які ви хочете й надалі використовувати. +- У DM або кімнаті Matrix верхнього рівня поточний DM/кімната лишається поверхнею чату, а майбутні повідомлення маршрутизуються до створеного сеансу ACP. +- Усередині наявного треда Matrix `--bind here` прив’язує цей поточний тред на місці. +- `/new` і `/reset` скидають той самий прив’язаний сеанс ACP на місці. +- `/acp close` закриває сеанс ACP і видаляє прив’язку. Примітки: - `--bind here` не створює дочірній тред Matrix. -- `threadBindings.spawnAcpSessions` потрібен лише для `/acp spawn --thread auto|here`, коли OpenClaw потрібно створити або прив’язати дочірній тред Matrix. +- `threadBindings.spawnAcpSessions` потрібен лише для `/acp spawn --thread auto|here`, коли OpenClaw має створити або прив’язати дочірній тред Matrix. -### Конфігурація прив’язок тредів +### Конфігурація прив’язки тредів -Matrix успадковує глобальні значення за замовчуванням із `session.threadBindings`, а також підтримує перевизначення для каналу: +Matrix успадковує глобальні значення за замовчуванням із `session.threadBindings`, а також підтримує перевизначення для конкретного каналу: - `threadBindings.enabled` - `threadBindings.idleHours` @@ -783,29 +788,29 @@ Matrix успадковує глобальні значення за замов - `threadBindings.spawnSubagentSessions` - `threadBindings.spawnAcpSessions` -Прапорці створення з прив’язкою до тредів у Matrix мають режим opt-in: +Прапорці запуску, прив’язаного до тредів Matrix, вмикаються за бажанням: -- Установіть `threadBindings.spawnSubagentSessions: true`, щоб дозволити верхньорівневому `/focus` створювати й прив’язувати нові треди Matrix. -- Установіть `threadBindings.spawnAcpSessions: true`, щоб дозволити `/acp spawn --thread auto|here` прив’язувати сесії ACP до тредів Matrix. +- Установіть `threadBindings.spawnSubagentSessions: true`, щоб дозволити `/focus` верхнього рівня створювати й прив’язувати нові треди Matrix. +- Установіть `threadBindings.spawnAcpSessions: true`, щоб дозволити `/acp spawn --thread auto|here` прив’язувати сеанси ACP до тредів Matrix. ## Реакції -Matrix підтримує вихідні дії з реакціями, вхідні сповіщення про реакції та вхідні ack reactions. +Matrix підтримує дії вихідних реакцій, вхідні сповіщення про реакції та вхідні ack reactions. -- Інструменти вихідних реакцій контролюються `channels["matrix"].actions.reactions`. +- Інструменти вихідних реакцій контролюються через `channels["matrix"].actions.reactions`. - `react` додає реакцію до конкретної події Matrix. -- `reactions` показує поточний зведений список реакцій для конкретної події Matrix. -- `emoji=""` видаляє власні реакції облікового запису бота на цій події. -- `remove: true` видаляє з облікового запису бота лише реакцію із зазначеним emoji. +- `reactions` показує поточне зведення реакцій для конкретної події Matrix. +- `emoji=""` видаляє власні реакції облікового запису бота на цю подію. +- `remove: true` видаляє лише вказану реакцію emoji від облікового запису бота. -Область дії ack reactions визначається у стандартному порядку OpenClaw: +Область ack reactions визначається у стандартному порядку резолюції OpenClaw: - `channels["matrix"].accounts..ackReaction` - `channels["matrix"].ackReaction` - `messages.ackReaction` - резервний emoji identity агента -Область дії ack reaction визначається в такому порядку: +Область ack reaction визначається в такому порядку: - `channels["matrix"].accounts..ackReactionScope` - `channels["matrix"].ackReactionScope` @@ -819,29 +824,29 @@ Matrix підтримує вихідні дії з реакціями, вхід Поточна поведінка: -- `reactionNotifications: "own"` пересилає додані події `m.reaction`, коли вони націлені на повідомлення Matrix, створені ботом. +- `reactionNotifications: "own"` пересилає додані події `m.reaction`, коли вони націлені на створені ботом повідомлення Matrix. - `reactionNotifications: "off"` вимикає системні події реакцій. -- Видалення реакцій як і раніше не синтезується в системні події, оскільки Matrix показує це як redactions, а не як окреме видалення `m.reaction`. +- Видалення реакцій усе ще не синтезуються в системні події, оскільки Matrix відображає їх як редагування, а не як окремі видалення `m.reaction`. ## Контекст історії -- `channels.matrix.historyLimit` керує тим, скільки останніх повідомлень кімнати включається як `InboundHistory`, коли повідомлення кімнати Matrix запускає агента. -- Використовується fallback до `messages.groupChat.historyLimit`. Якщо обидва значення не встановлено, фактичне значення за замовчуванням — `0`, тому повідомлення кімнати з вимогою згадування не буферизуються. Установіть `0`, щоб вимкнути. -- Історія кімнат Matrix обмежується лише кімнатою. DM, як і раніше, використовують звичайну історію сесії. -- Історія кімнат Matrix є лише pending: OpenClaw буферизує повідомлення кімнати, які ще не спричинили відповідь, а потім робить snapshot цього вікна, коли надходить згадування або інший тригер. -- Поточне повідомлення-тригер не включається в `InboundHistory`; воно залишається в основному вхідному тілі для цього ходу. -- Повторні спроби для тієї самої події Matrix повторно використовують оригінальний snapshot історії, а не зсуваються вперед до новіших повідомлень кімнати. +- `channels.matrix.historyLimit` керує тим, скільки нещодавніх повідомлень кімнати включається як `InboundHistory`, коли повідомлення кімнати Matrix запускає агента. +- Резервно використовується `messages.groupChat.historyLimit`. Якщо обидва значення не задані, ефективне значення за замовчуванням — `0`, тому повідомлення кімнати з обов’язковою згадкою не буферизуються. Установіть `0`, щоб вимкнути. +- Історія кімнати Matrix стосується лише кімнати. DM продовжують використовувати звичайну історію сеансу. +- Історія кімнати Matrix є лише для очікування: OpenClaw буферизує повідомлення кімнати, які ще не спричинили відповідь, а потім фіксує це вікно, коли надходить згадка або інший тригер. +- Поточне повідомлення-тригер не включається до `InboundHistory`; воно залишається в основному вхідному тілі цього ходу. +- Повторні спроби для тієї самої події Matrix повторно використовують початковий snapshot історії замість дрейфу вперед до новіших повідомлень кімнати. ## Видимість контексту -Matrix підтримує спільний елемент керування `contextVisibility` для додаткового контексту кімнати, наприклад отриманого тексту відповіді, коренів тредів і pending history. +Matrix підтримує спільний елемент керування `contextVisibility` для додаткового контексту кімнати, наприклад отриманого тексту відповіді, коренів тредів і історії, що очікує. -- `contextVisibility: "all"` — значення за замовчуванням. Додатковий контекст зберігається як отримано. -- `contextVisibility: "allowlist"` фільтрує додатковий контекст до відправників, дозволених активними перевірками allowlist кімнати/користувача. -- `contextVisibility: "allowlist_quote"` поводиться як `allowlist`, але все одно зберігає одну явну цитовану відповідь. +- `contextVisibility: "all"` — значення за замовчуванням. Додатковий контекст зберігається в отриманому вигляді. +- `contextVisibility: "allowlist"` фільтрує додатковий контекст до відправників, дозволених активними перевірками allowlist для кімнати/користувача. +- `contextVisibility: "allowlist_quote"` працює як `allowlist`, але все одно зберігає одну явну процитовану відповідь. -Це налаштування впливає на видимість додаткового контексту, а не на те, чи може саме вхідне повідомлення запустити відповідь. -Авторизація тригера, як і раніше, походить із налаштувань `groupPolicy`, `groups`, `groupAllowFrom` і політики DM. +Це налаштування впливає на видимість додаткового контексту, а не на те, чи може саме вхідне повідомлення запускати відповідь. +Авторизація тригера, як і раніше, визначається `groupPolicy`, `groups`, `groupAllowFrom` і налаштуваннями політики DM. ## Приклад політики DM і кімнат @@ -866,56 +871,56 @@ Matrix підтримує спільний елемент керування `co } ``` -Див. [Groups](/uk/channels/groups) щодо поведінки з вимогою згадування та allowlist. +Див. [Groups](/uk/channels/groups), щоб дізнатися про обов’язкові згадки та поведінку allowlist. -Приклад pairing для Matrix DM: +Приклад pairing для DM Matrix: ```bash openclaw pairing list matrix openclaw pairing approve matrix ``` -Якщо користувач Matrix без схвалення продовжує писати вам до схвалення, OpenClaw повторно використовує той самий pending code pairing і може знову надіслати нагадування після короткого cooldown замість створення нового коду. +Якщо неавторизований користувач Matrix продовжує писати вам до схвалення, OpenClaw повторно використовує той самий код pairing, що очікує, і після короткого cooldown може знову надіслати відповідь-нагадування замість створення нового коду. -Див. [Pairing](/uk/channels/pairing) щодо спільного сценарію pairing для DM і структури зберігання. +Див. [Pairing](/uk/channels/pairing), щоб дізнатися про спільний потік pairing для DM і структуру зберігання. -## Підтвердження exec +## Погодження exec -Matrix може діяти як клієнт підтвердження exec для облікового запису Matrix. +Matrix може виступати клієнтом погодження exec для облікового запису Matrix. - `channels.matrix.execApprovals.enabled` -- `channels.matrix.execApprovals.approvers` (необов’язково; fallback до `channels.matrix.dm.allowFrom`) +- `channels.matrix.execApprovals.approvers` (необов’язково; резервно використовується `channels.matrix.dm.allowFrom`) - `channels.matrix.execApprovals.target` (`dm` | `channel` | `both`, за замовчуванням: `dm`) - `channels.matrix.execApprovals.agentFilter` - `channels.matrix.execApprovals.sessionFilter` -Погоджувачами мають бути Matrix user ID, наприклад `@owner:example.org`. Matrix автоматично вмикає нативні підтвердження exec, коли `enabled` не встановлено або має значення `"auto"` і принаймні одного погоджувача можна визначити або з `execApprovals.approvers`, або з `channels.matrix.dm.allowFrom`. Установіть `enabled: false`, щоб явно вимкнути Matrix як нативний клієнт підтверджень. Інакше запити на підтвердження повертаються до інших налаштованих маршрутів підтвердження або fallback policy для підтвердження exec. +Особи, що погоджують, мають бути Matrix user ID, наприклад `@owner:example.org`. Matrix автоматично вмикає нативні погодження exec, коли `enabled` не задано або має значення `"auto"` і принаймні одного погоджувача можна визначити або з `execApprovals.approvers`, або з `channels.matrix.dm.allowFrom`. Установіть `enabled: false`, щоб явно вимкнути Matrix як нативний клієнт погодження. Інакше запити на погодження резервно пересилаються до інших налаштованих маршрутів погодження або до резервної політики погодження exec. -Нативна маршрутизація Matrix наразі працює лише для exec: +Нативна маршрутизація Matrix наразі стосується лише exec: -- `channels.matrix.execApprovals.*` керує нативною маршрутизацією DM/каналу лише для підтверджень exec. -- Підтвердження плагінів, як і раніше, використовують спільне `/approve` у тому самому чаті плюс будь-яке налаштоване пересилання `approvals.plugin`. -- Matrix усе ще може повторно використовувати `channels.matrix.dm.allowFrom` для авторизації підтверджень плагінів, коли може безпечно визначити погоджувачів, але не надає окремого нативного шляху fanout DM/каналу для підтверджень плагінів. +- `channels.matrix.execApprovals.*` керує нативною маршрутизацією в DM/канал для погоджень exec. +- Погодження plugin і далі використовують спільний `/approve` у тому самому чаті плюс будь-яке налаштоване пересилання `approvals.plugin`. +- Matrix і далі може повторно використовувати `channels.matrix.dm.allowFrom` для авторизації погоджень plugin, коли може безпечно визначити погоджувачів, але не надає окремого нативного шляху fanout DM/каналу для погоджень plugin. Правила доставки: -- `target: "dm"` надсилає запити на підтвердження в DM погоджувачів -- `target: "channel"` надсилає запит назад до вихідної кімнати Matrix або DM -- `target: "both"` надсилає запити і в DM погоджувачів, і до вихідної кімнати Matrix або DM +- `target: "dm"` надсилає запити на погодження в DM погоджувачам +- `target: "channel"` надсилає запит назад у початкову кімнату або DM Matrix +- `target: "both"` надсилає погоджувачам у DM і в початкову кімнату або DM Matrix -Запити на підтвердження Matrix додають ярлики реакцій до основного повідомлення підтвердження: +Запити на погодження в Matrix ініціалізують швидкі реакції в основному повідомленні погодження: - `✅` = дозволити один раз -- `❌` = відхилити -- `♾️` = дозволити завжди, якщо таке рішення дозволене ефективною політикою exec +- `❌` = заборонити +- `♾️` = дозволити завжди, коли таке рішення дозволене чинною політикою exec -Погоджувачі можуть реагувати на це повідомлення або використати резервні slash-команди: `/approve allow-once`, `/approve allow-always` або `/approve deny`. +Погоджувачі можуть реагувати на це повідомлення або використовувати резервні slash-команди: `/approve allow-once`, `/approve allow-always` або `/approve deny`. -Лише визначені погоджувачі можуть схвалювати або відхиляти. Доставка в канал включає текст команди, тому вмикайте `channel` або `both` лише в довірених кімнатах. +Лише визначені погоджувачі можуть дозволяти або забороняти. Доставка в канал включає текст команди, тому вмикайте `channel` або `both` лише в довірених кімнатах. -Запити на підтвердження Matrix повторно використовують спільний core approval planner. Нативна поверхня, специфічна для Matrix, є лише транспортним рівнем для підтверджень exec: маршрутизація кімнат/DM і поведінка надсилання/оновлення/видалення повідомлень. +Запити на погодження в Matrix повторно використовують спільний core approval planner. Нативна поверхня Matrix є transport only для погоджень exec: маршрутизація кімнат/DM і поведінка надсилання/оновлення/видалення повідомлень. -Перевизначення для облікового запису: +Перевизначення для окремого облікового запису: - `channels.matrix.accounts..execApprovals` @@ -951,19 +956,19 @@ Matrix може діяти як клієнт підтвердження exec д } ``` -Значення верхнього рівня `channels.matrix` діють як значення за замовчуванням для іменованих облікових записів, якщо обліковий запис не перевизначає їх. -Ви можете обмежити успадковані записи кімнат одним обліковим записом Matrix за допомогою `groups..account` (або застарілого `rooms..account`). -Записи без `account` залишаються спільними для всіх облікових записів Matrix, а записи з `account: "default"` усе ще працюють, коли обліковий запис за замовчуванням налаштовано безпосередньо на верхньому рівні `channels.matrix.*`. -Часткові спільні значення автентифікації за замовчуванням самі по собі не створюють окремий неявний обліковий запис за замовчуванням. OpenClaw синтезує верхньорівневий обліковий запис `default` лише тоді, коли цей обліковий запис за замовчуванням має актуальну автентифікацію (`homeserver` плюс `accessToken`, або `homeserver` плюс `userId` і `password`); іменовані облікові записи все ще можуть лишатися доступними для виявлення з `homeserver` плюс `userId`, коли кешовані облікові дані задовольнять автентифікацію пізніше. -Якщо Matrix уже має рівно один іменований обліковий запис або `defaultAccount` вказує на наявний ключ іменованого облікового запису, просування налаштування/відновлення від одного облікового запису до кількох зберігає цей обліковий запис замість створення нового запису `accounts.default`. До просунутого облікового запису переміщуються лише ключі автентифікації/bootstrap Matrix; спільні ключі політики доставки залишаються на верхньому рівні. +Значення верхнього рівня `channels.matrix` діють як значення за замовчуванням для іменованих облікових записів, якщо обліковий запис їх не перевизначає. +Ви можете обмежити успадкований запис кімнати одним обліковим записом Matrix через `groups..account` (або застарілий `rooms..account`). +Записи без `account` залишаються спільними для всіх облікових записів Matrix, а записи з `account: "default"` і далі працюють, коли обліковий запис за замовчуванням налаштовано безпосередньо на верхньому рівні `channels.matrix.*`. +Часткові спільні значення автентифікації за замовчуванням самі по собі не створюють окремий неявний обліковий запис за замовчуванням. OpenClaw синтезує верхньорівневий обліковий запис `default` лише тоді, коли цей default має актуальну автентифікацію (`homeserver` плюс `accessToken`, або `homeserver` плюс `userId` і `password`); іменовані облікові записи все одно можуть залишатися доступними для виявлення через `homeserver` плюс `userId`, коли кешовані облікові дані пізніше задовольняють автентифікацію. +Якщо Matrix уже має рівно один іменований обліковий запис або `defaultAccount` вказує на наявний ключ іменованого облікового запису, просування з одного облікового запису до кількох під час відновлення/налаштування зберігає цей обліковий запис замість створення нового запису `accounts.default`. У цей просунутий обліковий запис переміщуються лише ключі автентифікації/bootstrap Matrix; спільні ключі політики доставки залишаються на верхньому рівні. Установіть `defaultAccount`, якщо хочете, щоб OpenClaw віддавав перевагу одному іменованому обліковому запису Matrix для неявної маршрутизації, probing і операцій CLI. -Якщо ви налаштували кілька іменованих облікових записів, установіть `defaultAccount` або передавайте `--account ` для команд CLI, які покладаються на неявний вибір облікового запису. +Якщо у вас налаштовано кілька іменованих облікових записів, установіть `defaultAccount` або передавайте `--account ` для CLI-команд, які покладаються на неявний вибір облікового запису. Передавайте `--account ` до `openclaw matrix verify ...` і `openclaw matrix devices ...`, якщо хочете перевизначити цей неявний вибір для однієї команди. ## Приватні/LAN homeserver -За замовчуванням OpenClaw блокує приватні/внутрішні Matrix homeserver для захисту від SSRF, якщо ви -явно не ввімкнете це для кожного облікового запису окремо. +За замовчуванням OpenClaw блокує приватні/внутрішні homeserver Matrix для захисту від SSRF, якщо ви +явно не дозволите їх для кожного облікового запису. Якщо ваш homeserver працює на localhost, LAN/Tailscale IP або внутрішньому hostname, увімкніть `network.dangerouslyAllowPrivateNetwork` для цього облікового запису Matrix: @@ -992,12 +997,12 @@ openclaw matrix account add \ --access-token syt_ops_xxx ``` -Цей opt-in дозволяє лише довірені приватні/внутрішні цілі. Публічні незашифровані homeserver, наприклад -`http://matrix.example.org:8008`, як і раніше, блокуються. За можливості віддавайте перевагу `https://`. +Це явне ввімкнення дозволяє лише довірені приватні/внутрішні цілі. Публічні незашифровані homeserver, такі як +`http://matrix.example.org:8008`, як і раніше, блокуються. За можливості надавайте перевагу `https://`. ## Проксіювання трафіку Matrix -Якщо для вашого розгортання Matrix потрібен явний вихідний HTTP(S) proxy, установіть `channels.matrix.proxy`: +Якщо вашому розгортанню Matrix потрібен явний вихідний HTTP(S)-проксі, установіть `channels.matrix.proxy`: ```json5 { @@ -1012,9 +1017,9 @@ openclaw matrix account add \ ``` Іменовані облікові записи можуть перевизначати верхньорівневе значення за замовчуванням через `channels.matrix.accounts..proxy`. -OpenClaw використовує той самий параметр proxy для runtime-трафіку Matrix і перевірок статусу облікового запису. +OpenClaw використовує це саме налаштування проксі для трафіку Matrix під час виконання та для probes стану облікового запису. -## Розв’язання цілей +## Визначення цілі Matrix приймає такі форми цілей усюди, де OpenClaw просить вас указати ціль кімнати або користувача: @@ -1024,74 +1029,74 @@ Matrix приймає такі форми цілей усюди, де OpenClaw Живий пошук у каталозі використовує обліковий запис Matrix, у який виконано вхід: -- Пошук користувачів звертається до каталогу користувачів Matrix на цьому homeserver. -- Пошук кімнат напряму приймає явні ID кімнат і псевдоніми, а потім повертається до пошуку назв приєднаних кімнат для цього облікового запису. -- Пошук за назвою приєднаної кімнати працює за принципом best-effort. Якщо назву кімнати не вдається визначити як ID або псевдонім, вона ігнорується під час runtime-розв’язання allowlist. +- Пошук користувачів виконує запити до каталогу користувачів Matrix на цьому homeserver. +- Пошук кімнат безпосередньо приймає явні ID кімнат і псевдоніми, а потім резервно переходить до пошуку за назвами кімнат, до яких приєднався цей обліковий запис. +- Пошук за назвами приєднаних кімнат є best-effort. Якщо назву кімнати не вдається визначити як ID або псевдонім, її буде проігноровано під час виконання резолюції allowlist. -## Довідник конфігурації +## Довідка з конфігурації - `enabled`: увімкнути або вимкнути канал. - `name`: необов’язкова мітка для облікового запису. - `defaultAccount`: бажаний ID облікового запису, коли налаштовано кілька облікових записів Matrix. - `homeserver`: URL homeserver, наприклад `https://matrix.example.org`. -- `network.dangerouslyAllowPrivateNetwork`: дозволити цьому обліковому запису Matrix підключатися до приватних/внутрішніх homeserver. Увімкніть це, коли homeserver визначається як `localhost`, LAN/Tailscale IP або внутрішній хост на кшталт `matrix-synapse`. -- `proxy`: необов’язковий URL HTTP(S) proxy для трафіку Matrix. Іменовані облікові записи можуть перевизначати верхньорівневе значення за замовчуванням власним `proxy`. -- `userId`: повний Matrix user ID, наприклад `@bot:example.org`. +- `network.dangerouslyAllowPrivateNetwork`: дозволити цьому обліковому запису Matrix підключатися до приватних/внутрішніх homeserver. Увімкніть це, коли homeserver визначається як `localhost`, LAN/Tailscale IP або внутрішній хост, наприклад `matrix-synapse`. +- `proxy`: необов’язковий URL HTTP(S)-проксі для трафіку Matrix. Іменовані облікові записи можуть перевизначати верхньорівневе значення за замовчуванням власним `proxy`. +- `userId`: повний ID користувача Matrix, наприклад `@bot:example.org`. - `accessToken`: access token для автентифікації на основі токена. Для `channels.matrix.accessToken` і `channels.matrix.accounts..accessToken` підтримуються звичайні текстові значення та значення SecretRef у провайдерах env/file/exec. Див. [Secrets Management](/uk/gateway/secrets). - `password`: пароль для входу на основі пароля. Підтримуються звичайні текстові значення та значення SecretRef. -- `deviceId`: явний Matrix device ID. -- `deviceName`: display name пристрою для входу за паролем. -- `avatarUrl`: збережений URL власного аватара для синхронізації профілю й оновлень `set-profile`. +- `deviceId`: явний ID пристрою Matrix. +- `deviceName`: відображувана назва пристрою для входу за паролем. +- `avatarUrl`: збережений URL власного аватара для синхронізації профілю та оновлень `set-profile`. - `initialSyncLimit`: ліміт подій синхронізації під час запуску. - `encryption`: увімкнути E2EE. -- `allowlistOnly`: примусова поведінка лише за allowlist для DM і кімнат. -- `allowBots`: дозволити повідомлення від інших налаштованих облікових записів Matrix OpenClaw (`true` або `"mentions"`). +- `allowlistOnly`: примусово вмикати поведінку лише за allowlist для DM і кімнат. +- `allowBots`: дозволяти повідомлення від інших налаштованих облікових записів Matrix OpenClaw (`true` або `"mentions"`). - `groupPolicy`: `open`, `allowlist` або `disabled`. - `contextVisibility`: режим видимості додаткового контексту кімнати (`all`, `allowlist`, `allowlist_quote`). -- `groupAllowFrom`: allowlist user ID для трафіку кімнат. -- Записи `groupAllowFrom` мають бути повними Matrix user ID. Нерозпізнані імена ігноруються під час runtime. -- `historyLimit`: максимальна кількість повідомлень кімнати, які включаються як контекст історії групи. Використовує fallback до `messages.groupChat.historyLimit`; якщо обидва значення не встановлено, фактичне значення за замовчуванням — `0`. Установіть `0`, щоб вимкнути. +- `groupAllowFrom`: allowlist user ID для трафіку в кімнатах. +- Записи `groupAllowFrom` мають бути повними Matrix user ID. Невизначені імена ігноруються під час виконання. +- `historyLimit`: максимальна кількість повідомлень кімнати, що включаються як контекст історії групи. Резервно використовується `messages.groupChat.historyLimit`; якщо обидва значення не задані, ефективне значення за замовчуванням — `0`. Установіть `0`, щоб вимкнути. - `replyToMode`: `off`, `first`, `all` або `batched`. - `markdown`: необов’язкова конфігурація рендерингу Markdown для вихідного тексту Matrix. -- `streaming`: `off` (за замовчуванням), `partial`, `quiet`, `true` або `false`. `partial` і `true` вмикають оновлення чернеток за принципом "спочатку попередній перегляд" зі звичайними текстовими повідомленнями Matrix. `quiet` використовує попередні тихі повідомлення для власних конфігурацій push rules. -- `blockStreaming`: `true` вмикає окремі повідомлення про прогрес для завершених блоків асистента, поки активне потокове передавання чернетки попереднього перегляду. +- `streaming`: `off` (за замовчуванням), `partial`, `quiet`, `true` або `false`. `partial` і `true` вмикають оновлення чернеток із попереднім прев’ю через звичайні текстові повідомлення Matrix. `quiet` використовує прев’ю-сповіщення без нотифікацій для self-hosted сценаріїв з push-rule. +- `blockStreaming`: `true` вмикає окремі повідомлення прогресу для завершених блоків відповіді помічника, поки активний streaming чернетки. - `threadReplies`: `off`, `inbound` або `always`. -- `threadBindings`: перевизначення для каналу для маршрутизації та життєвого циклу сесій, прив’язаних до тредів. -- `startupVerification`: режим автоматичного запиту самоверифікації під час запуску (`if-unverified`, `off`). -- `startupVerificationCooldownHours`: cooldown перед повторною спробою автоматичних запитів верифікації під час запуску. -- `textChunkLimit`: розмір chunk для вихідного повідомлення. +- `threadBindings`: перевизначення для конкретного каналу для маршрутизації та життєвого циклу сеансів, прив’язаних до тредів. +- `startupVerification`: режим автоматичного запиту на самоверифікацію під час запуску (`if-unverified`, `off`). +- `startupVerificationCooldownHours`: cooldown перед повторною спробою автоматичних запитів на верифікацію під час запуску. +- `textChunkLimit`: розмір фрагмента вихідного повідомлення. - `chunkMode`: `length` або `newline`. - `responsePrefix`: необов’язковий префікс повідомлення для вихідних відповідей. - `ackReaction`: необов’язкове перевизначення ack reaction для цього каналу/облікового запису. -- `ackReactionScope`: необов’язкове перевизначення області дії ack reaction (`group-mentions`, `group-all`, `direct`, `all`, `none`, `off`). +- `ackReactionScope`: необов’язкове перевизначення області ack reaction (`group-mentions`, `group-all`, `direct`, `all`, `none`, `off`). - `reactionNotifications`: режим вхідних сповіщень про реакції (`own`, `off`). -- `mediaMaxMb`: обмеження розміру медіа в МБ для обробки медіа в Matrix. Застосовується до вихідних надсилань і обробки вхідних медіа. -- `autoJoin`: політика автоматичного приєднання до запрошень (`always`, `allowlist`, `off`). За замовчуванням: `off`. Це застосовується до запрошень Matrix загалом, включно із запрошеннями у стилі DM, а не лише до запрошень у кімнати/групи. OpenClaw ухвалює це рішення під час запрошення, до того як може надійно класифікувати приєднану кімнату як DM або групу. -- `autoJoinAllowlist`: кімнати/псевдоніми, дозволені, коли `autoJoin` має значення `allowlist`. Записи з псевдонімами визначаються в ID кімнат під час обробки запрошення; OpenClaw не довіряє стану псевдоніма, заявленому запрошеною кімнатою. +- `mediaMaxMb`: обмеження розміру медіа в MB для обробки медіа Matrix. Воно застосовується до вихідних надсилань і обробки вхідних медіа. +- `autoJoin`: політика автоматичного приєднання до запрошень (`always`, `allowlist`, `off`). За замовчуванням: `off`. Це застосовується до запрошень Matrix загалом, включно із запрошеннями в стилі DM, а не лише до запрошень у кімнати/групи. OpenClaw приймає це рішення в момент запрошення, до того як може надійно класифікувати приєднану кімнату як DM або групу. +- `autoJoinAllowlist`: кімнати/псевдоніми, дозволені, коли `autoJoin` має значення `allowlist`. Псевдоніми визначаються в ID кімнат під час обробки запрошень; OpenClaw не довіряє стану псевдоніма, який заявляє запрошена кімната. - `dm`: блок політики DM (`enabled`, `policy`, `allowFrom`, `sessionScope`, `threadReplies`). -- `dm.policy`: керує доступом до DM після того, як OpenClaw приєднався до кімнати й класифікував її як DM. Це не змінює того, чи буде запрошення автоматично прийняте. -- Записи `dm.allowFrom` мають бути повними Matrix user ID, якщо ви вже не визначили їх через живий пошук у каталозі. -- `dm.sessionScope`: `per-user` (за замовчуванням) або `per-room`. Використовуйте `per-room`, якщо хочете, щоб кожна кімната Matrix DM зберігала окремий контекст, навіть якщо співрозмовник той самий. -- `dm.threadReplies`: перевизначення політики тредів лише для DM (`off`, `inbound`, `always`). Воно перевизначає верхньорівневе налаштування `threadReplies` як для розміщення відповідей, так і для ізоляції сесій у DM. -- `execApprovals`: нативна доставка підтверджень exec у Matrix (`enabled`, `approvers`, `target`, `agentFilter`, `sessionFilter`). -- `execApprovals.approvers`: Matrix user ID, яким дозволено схвалювати запити exec. Необов’язкове, якщо `dm.allowFrom` уже визначає погоджувачів. +- `dm.policy`: керує доступом до DM після того, як OpenClaw приєднався до кімнати й класифікував її як DM. Це не змінює того, чи буде автоматично прийняте запрошення. +- Записи `dm.allowFrom` мають бути повними Matrix user ID, якщо тільки ви вже не визначили їх за допомогою живого пошуку в каталозі. +- `dm.sessionScope`: `per-user` (за замовчуванням) або `per-room`. Використовуйте `per-room`, якщо хочете, щоб кожна кімната DM Matrix зберігала окремий контекст, навіть якщо співрозмовник той самий. +- `dm.threadReplies`: перевизначення політики тредів лише для DM (`off`, `inbound`, `always`). Воно перевизначає верхньорівневе налаштування `threadReplies` як для розміщення відповідей, так і для ізоляції сеансів у DM. +- `execApprovals`: нативна доставка погоджень exec через Matrix (`enabled`, `approvers`, `target`, `agentFilter`, `sessionFilter`). +- `execApprovals.approvers`: Matrix user ID, яким дозволено погоджувати запити exec. Необов’язково, якщо `dm.allowFrom` уже визначає погоджувачів. - `execApprovals.target`: `dm | channel | both` (за замовчуванням: `dm`). - `accounts`: іменовані перевизначення для кожного облікового запису. Значення верхнього рівня `channels.matrix` діють як значення за замовчуванням для цих записів. -- `groups`: карта політик для кімнат. Віддавайте перевагу ID кімнат або псевдонімам; нерозпізнані назви кімнат ігноруються під час runtime. Ідентичність сесії/групи після визначення використовує стабільний ID кімнати, тоді як людиночитані мітки й далі походять із назв кімнат. +- `groups`: мапа політик для кожної кімнати. Віддавайте перевагу ID кімнат або псевдонімам; невизначені назви кімнат ігноруються під час виконання. Ідентичність сеансу/групи після резолюції використовує стабільний ID кімнати, а зрозумілі людині мітки, як і раніше, походять із назв кімнат. - `groups..account`: обмежити один успадкований запис кімнати конкретним обліковим записом Matrix у конфігураціях із кількома обліковими записами. -- `groups..allowBots`: перевизначення на рівні кімнати для відправників із налаштованих ботів (`true` або `"mentions"`). +- `groups..allowBots`: перевизначення на рівні кімнати для відправників — налаштованих ботів (`true` або `"mentions"`). - `groups..users`: allowlist відправників для конкретної кімнати. -- `groups..tools`: перевизначення allow/deny інструментів для конкретної кімнати. -- `groups..autoReply`: перевизначення вимоги згадування на рівні кімнати. `true` вимикає вимоги до згадування для цієї кімнати; `false` примусово вмикає їх знову. -- `groups..skills`: необов’язковий фільтр Skills на рівні кімнати. -- `groups..systemPrompt`: необов’язковий фрагмент system prompt на рівні кімнати. +- `groups..tools`: перевизначення дозволу/заборони інструментів для конкретної кімнати. +- `groups..autoReply`: перевизначення вимоги згадки на рівні кімнати. `true` вимикає вимогу згадки для цієї кімнати; `false` знову примусово вмикає її. +- `groups..skills`: необов’язковий фільтр Skills для конкретної кімнати. +- `groups..systemPrompt`: необов’язковий фрагмент system prompt для конкретної кімнати. - `rooms`: застарілий псевдонім для `groups`. -- `actions`: контроль доступу до інструментів для окремих дій (`messages`, `reactions`, `pins`, `profile`, `memberInfo`, `channelInfo`, `verification`). +- `actions`: керування інструментами для конкретних дій (`messages`, `reactions`, `pins`, `profile`, `memberInfo`, `channelInfo`, `verification`). ## Пов’язане - [Channels Overview](/uk/channels) — усі підтримувані канали -- [Pairing](/uk/channels/pairing) — автентифікація DM і сценарій pairing -- [Groups](/uk/channels/groups) — поведінка групового чату та вимога згадування -- [Channel Routing](/uk/channels/channel-routing) — маршрутизація сесій для повідомлень +- [Pairing](/uk/channels/pairing) — автентифікація DM і потік pairing +- [Groups](/uk/channels/groups) — поведінка групового чату та обов’язкові згадки +- [Channel Routing](/uk/channels/channel-routing) — маршрутизація сеансів для повідомлень - [Security](/uk/gateway/security) — модель доступу та посилення безпеки