From ee4e4c1beea02dcc5512dfdb26b98430ee782156 Mon Sep 17 00:00:00 2001 From: "openclaw-docs-i18n[bot]" Date: Mon, 6 Apr 2026 01:20:16 +0000 Subject: [PATCH] chore(i18n): refresh uk translations --- docs/uk/channels/matrix.md | 615 +++++++++++++++++++------------------ 1 file changed, 315 insertions(+), 300 deletions(-) diff --git a/docs/uk/channels/matrix.md b/docs/uk/channels/matrix.md index 620dc2304..a1c31aef4 100644 --- a/docs/uk/channels/matrix.md +++ b/docs/uk/channels/matrix.md @@ -1,29 +1,29 @@ --- read_when: - Налаштування Matrix в OpenClaw - - Налаштування E2EE і верифікації Matrix + - Налаштування Matrix E2EE і верифікації summary: Стан підтримки Matrix, налаштування та приклади конфігурації title: Matrix x-i18n: - generated_at: "2026-04-06T00:22:45Z" + generated_at: "2026-04-06T01:20:16Z" model: gpt-5.4 provider: openai - source_hash: 5506f966d78d5f09d597c4850088f8ee1c91cf4d5f6a7b5cade80d89b5bdf1bc + source_hash: 3e2d84c08d7d5b96db14b914e54f08d25334401cdd92eb890bc8dfb37b0ca2dc source_path: channels/matrix.md workflow: 15 --- # Matrix -Matrix — це вбудований плагін каналу Matrix для OpenClaw. -Він використовує офіційний `matrix-js-sdk` і підтримує особисті повідомлення, кімнати, треди, медіа, реакції, опитування, геолокацію та E2EE. +Matrix — це вбудований канальний плагін Matrix для OpenClaw. +Він використовує офіційний `matrix-js-sdk` і підтримує DM, кімнати, гілки, медіа, реакції, опитування, місцезнаходження та E2EE. ## Вбудований плагін -Matrix постачається як вбудований плагін у поточних випусках OpenClaw, тому звичайні -паковані збірки не потребують окремого встановлення. +Matrix постачається як вбудований плагін у поточних випусках OpenClaw, тому звичайним +зібраним пакетам не потрібне окреме встановлення. -Якщо ви використовуєте старішу збірку або власне встановлення без Matrix, встановіть +Якщо у вас стара збірка або власне встановлення без Matrix, встановіть його вручну: Встановлення з npm: @@ -32,25 +32,25 @@ Matrix постачається як вбудований плагін у пот openclaw plugins install @openclaw/matrix ``` -Встановлення з локальної копії: +Встановлення з локального checkout: ```bash openclaw plugins install ./path/to/local/matrix-plugin ``` -Див. [Плагіни](/uk/tools/plugin), щоб дізнатися про поведінку плагінів і правила встановлення. +Див. [Плагіни](/uk/tools/plugin) щодо поведінки плагінів і правил встановлення. ## Налаштування 1. Переконайтеся, що плагін Matrix доступний. - - У поточних пакованих випусках OpenClaw він уже вбудований. - - У старіших/власних встановленнях його можна додати вручну командами вище. + - У поточних пакетних випусках OpenClaw він уже вбудований. + - У старих/кастомних встановленнях його можна додати вручну командами вище. 2. Створіть обліковий запис Matrix на своєму homeserver. 3. Налаштуйте `channels.matrix` одним із таких способів: - `homeserver` + `accessToken`, або - `homeserver` + `userId` + `password`. 4. Перезапустіть gateway. -5. Почніть особистий чат із ботом або запросіть його до кімнати. +5. Почніть DM із ботом або запросіть його до кімнати. Шляхи інтерактивного налаштування: @@ -62,22 +62,22 @@ openclaw configure --section channels Що саме запитує майстер Matrix: - URL homeserver -- спосіб автентифікації: токен доступу або пароль -- ID користувача лише якщо ви обрали автентифікацію за паролем +- метод автентифікації: access token або пароль +- ID користувача лише якщо ви вибрали автентифікацію паролем - необов’язкова назва пристрою -- чи потрібно ввімкнути E2EE -- чи потрібно налаштувати доступ до кімнат Matrix зараз +- чи вмикати E2EE +- чи налаштовувати доступ до кімнат Matrix зараз -Важлива поведінка майстра: +Важливі особливості роботи майстра: -- Якщо для вибраного облікового запису вже існують змінні середовища автентифікації Matrix, і цей обліковий запис ще не має збереженої автентифікації в конфігурації, майстер запропонує скорочений шлях через env і запише для цього облікового запису лише `enabled: true`. -- Коли ви інтерактивно додаєте інший обліковий запис Matrix, введена назва облікового запису нормалізується в ID облікового запису, який використовується в конфігурації та змінних середовища. Наприклад, `Ops Bot` стає `ops-bot`. -- Підказки allowlist для особистих повідомлень одразу приймають повні значення `@user:server`. Відображувані імена працюють лише тоді, коли живий пошук у каталозі знаходить один точний збіг; інакше майстер попросить повторити спробу з повним Matrix ID. -- Підказки allowlist для кімнат приймають ID кімнат і псевдоніми напряму. Вони також можуть у реальному часі знаходити назви приєднаних кімнат, але нерозпізнані назви зберігаються лише в тому вигляді, як їх введено під час налаштування, і надалі ігноруються під час розв’язання allowlist у runtime. Надавайте перевагу `!room:server` або `#alias:server`. -- Ідентичність кімнати/сесії в runtime використовує стабільний Matrix room ID. Псевдоніми, оголошені кімнатою, використовуються лише як вхідні дані для пошуку, а не як довгостроковий ключ сесії чи стабільна ідентичність групи. -- Щоб розв’язати назви кімнат перед збереженням, використовуйте `openclaw channels resolve --channel matrix "Project Room"`. +- Якщо для вибраного облікового запису вже існують змінні середовища автентифікації Matrix, і для цього облікового запису ще не збережено автентифікацію в конфігурації, майстер пропонує скористатися змінними середовища і записує лише `enabled: true` для цього облікового запису. +- Коли ви інтерактивно додаєте інший обліковий запис Matrix, введена назва облікового запису нормалізується до ID облікового запису, який використовується в конфігурації та змінних середовища. Наприклад, `Ops Bot` стає `ops-bot`. +- Підказки allowlist для DM одразу приймають повні значення `@user:server`. Відображувані імена працюють лише тоді, коли пошук у живому каталозі знаходить одну точну відповідність; інакше майстер просить повторити спробу з повним Matrix ID. +- Підказки allowlist для кімнат безпосередньо приймають ID кімнат і псевдоніми. Вони також можуть у реальному часі визначати назви приєднаних кімнат, але невизначені назви зберігаються лише у введеному вигляді під час налаштування і потім ігноруються під час визначення allowlist у runtime. Віддавайте перевагу `!room:server` або `#alias:server`. +- Ідентичність кімнати/сеансу в runtime використовує стабільний ID кімнати Matrix. Псевдоніми, оголошені в кімнаті, використовуються лише як вхідні дані для пошуку, а не як довгостроковий ключ сеансу чи стабільна ідентичність групи. +- Щоб визначити назви кімнат перед їх збереженням, використовуйте `openclaw channels resolve --channel matrix "Project Room"`. -Мінімальне налаштування на основі токена: +Мінімальне налаштування на основі token: ```json5 { @@ -92,7 +92,7 @@ openclaw configure --section channels } ``` -Налаштування на основі пароля (токен кешується після входу): +Налаштування на основі пароля (token кешується після входу): ```json5 { @@ -109,10 +109,10 @@ openclaw configure --section channels ``` Matrix зберігає кешовані облікові дані в `~/.openclaw/credentials/matrix/`. -Обліковий запис за замовчуванням використовує `credentials.json`; іменовані облікові записи використовують `credentials-.json`. -Коли там існують кешовані облікові дані, OpenClaw вважає Matrix налаштованим для setup, doctor і виявлення стану каналів, навіть якщо поточна автентифікація не задана безпосередньо в конфігурації. +Обліковий запис за замовчуванням використовує `credentials.json`; іменовані облікові записи — `credentials-.json`. +Коли кешовані облікові дані існують там, OpenClaw вважає Matrix налаштованим для setup, doctor і виявлення стану каналу, навіть якщо поточну автентифікацію не задано безпосередньо в конфігурації. -Відповідники змінних середовища (використовуються, коли ключ конфігурації не задано): +Еквіваленти змінних середовища (використовуються, коли ключ конфігурації не задано): - `MATRIX_HOMESERVER` - `MATRIX_ACCESS_TOKEN` @@ -121,7 +121,7 @@ Matrix зберігає кешовані облікові дані в `~/.opencl - `MATRIX_DEVICE_ID` - `MATRIX_DEVICE_NAME` -Для неосновних облікових записів використовуйте прив’язані до облікового запису змінні середовища: +Для неосновних облікових записів використовуйте змінні середовища з областю облікового запису: - `MATRIX__HOMESERVER` - `MATRIX__ACCESS_TOKEN` @@ -140,14 +140,14 @@ Matrix зберігає кешовані облікові дані в `~/.opencl - `MATRIX_OPS_X2D_BOT_HOMESERVER` - `MATRIX_OPS_X2D_BOT_ACCESS_TOKEN` -Matrix екранує розділові знаки в ID облікових записів, щоб уникнути колізій у прив’язаних змінних середовища. -Наприклад, `-` перетворюється на `_X2D_`, тому `ops-prod` мапиться на `MATRIX_OPS_X2D_PROD_*`. +Matrix екранує розділові знаки в ID облікових записів, щоб уникнути колізій у змінних середовища з областю облікового запису. +Наприклад, `-` стає `_X2D_`, тож `ops-prod` перетворюється на `MATRIX_OPS_X2D_PROD_*`. -Інтерактивний майстер пропонує скорочений шлях через змінні середовища лише тоді, коли ці змінні автентифікації вже присутні, а вибраний обліковий запис ще не має збереженої автентифікації Matrix у конфігурації. +Інтерактивний майстер пропонує скористатися змінними середовища лише тоді, коли ці змінні автентифікації вже наявні, а для вибраного облікового запису ще не збережено автентифікацію Matrix у конфігурації. ## Приклад конфігурації -Це практична базова конфігурація з pairing для особистих повідомлень, allowlist для кімнат і ввімкненим E2EE: +Це практична базова конфігурація з pairing для DM, allowlist для кімнат і ввімкненим E2EE: ```json5 { @@ -182,12 +182,12 @@ Matrix екранує розділові знаки в ID облікових з } ``` -## Попередній перегляд потокової відповіді +## Попередній перегляд під час streaming -Потокова передача відповідей Matrix вмикається лише за бажанням. +Потокове надсилання відповідей Matrix вмикається лише за бажанням. -Установіть `channels.matrix.streaming` у значення `"partial"`, якщо хочете, щоб OpenClaw надсилав один живий -попередній перегляд відповіді, редагував цей попередній перегляд на місці, поки модель генерує текст, а потім завершував його, коли +Установіть `channels.matrix.streaming` у `"partial"`, якщо хочете, щоб OpenClaw надсилав один живий попередній +варіант відповіді, редагував його на місці, поки модель генерує текст, а потім фіналізував його, коли відповідь буде готова: ```json5 @@ -201,35 +201,35 @@ Matrix екранує розділові знаки в ID облікових з ``` - `streaming: "off"` — значення за замовчуванням. OpenClaw чекає на фінальну відповідь і надсилає її один раз. -- `streaming: "partial"` створює одне редаговане повідомлення-попередній перегляд для поточного блоку відповіді асистента, використовуючи звичайні текстові повідомлення Matrix. Це зберігає застарілу поведінку Matrix із сповіщенням на перший попередній перегляд, тому стандартні клієнти можуть сповіщати про перший текст попереднього перегляду замість завершеного блоку. -- `streaming: "quiet"` створює одне редаговане тихе повідомлення-попередній перегляд для поточного блоку відповіді асистента. Використовуйте це лише тоді, коли ви також налаштували push-правила одержувача для завершених редагувань попереднього перегляду. -- `blockStreaming: true` вмикає окремі повідомлення про прогрес у Matrix. Коли потоковий попередній перегляд увімкнено, Matrix зберігає живу чернетку для поточного блоку та залишає завершені блоки як окремі повідомлення. -- Коли попередній перегляд увімкнено, а `blockStreaming` вимкнено, Matrix редагує живу чернетку на місці та завершує цю саму подію, коли блок або хід завершуються. -- Якщо попередній перегляд більше не вміщується в одну подію Matrix, OpenClaw зупиняє потоковий попередній перегляд і повертається до звичайної фінальної доставки. -- Медіавідповіді, як і раніше, надсилають вкладення звичайним способом. Якщо застарілий попередній перегляд більше не можна безпечно використати повторно, OpenClaw редагує його перед надсиланням фінальної медіавідповіді. -- Редагування попереднього перегляду потребує додаткових викликів Matrix API. Залишайте streaming вимкненим, якщо хочете найбільш консервативну поведінку щодо обмеження швидкості. +- `streaming: "partial"` створює одне редаговане повідомлення-попередній перегляд для поточного блоку відповіді асистента за допомогою звичайних текстових повідомлень Matrix. Це зберігає успадковану для Matrix поведінку сповіщень за першим попереднім переглядом, тож стандартні клієнти можуть сповіщати про перший потоковий текст попереднього перегляду, а не про завершений блок. +- `streaming: "quiet"` створює одне редаговане тихе повідомлення-попередній перегляд для поточного блоку відповіді асистента. Використовуйте це лише тоді, коли ви також налаштували правила push для одержувачів щодо фіналізованих редагувань попереднього перегляду. +- `blockStreaming: true` вмикає окремі повідомлення прогресу Matrix. Коли ввімкнено попередній перегляд під час streaming, Matrix зберігає живу чернетку для поточного блоку та залишає завершені блоки як окремі повідомлення. +- Коли попередній перегляд увімкнено, а `blockStreaming` вимкнено, Matrix редагує живу чернетку на місці й фіналізує цю саму подію, коли блок або хід завершується. +- Якщо попередній перегляд більше не вміщується в одну подію Matrix, OpenClaw припиняє streaming попереднього перегляду й повертається до звичайної фінальної доставки. +- Відповіді з медіа все одно надсилають вкладення звичайним способом. Якщо застарілий попередній перегляд більше не можна безпечно повторно використати, OpenClaw редагує його перед надсиланням фінальної відповіді з медіа. +- Редагування попереднього перегляду потребують додаткових викликів Matrix API. Залишайте streaming вимкненим, якщо хочете найконсервативнішу поведінку щодо обмеження швидкості. -`blockStreaming` саме по собі не вмикає попередній перегляд чернеток. -Використовуйте `streaming: "partial"` або `streaming: "quiet"` для редагування попереднього перегляду; потім додавайте `blockStreaming: true` лише якщо також хочете, щоб завершені блоки асистента залишалися видимими як окремі повідомлення про прогрес. +`blockStreaming` сам по собі не вмикає попередні чернетки. +Використовуйте `streaming: "partial"` або `streaming: "quiet"` для редагування попереднього перегляду; потім додайте `blockStreaming: true`, лише якщо також хочете, щоб завершені блоки асистента залишалися видимими як окремі повідомлення прогресу. -Якщо вам потрібні стандартні сповіщення Matrix без користувацьких push-правил, використовуйте `streaming: "partial"` для поведінки з попереднім переглядом спочатку або залиште `streaming` вимкненим для доставки лише фінального результату. З `streaming: "off"`: +Якщо вам потрібні стандартні сповіщення Matrix без власних push-правил, використовуйте `streaming: "partial"` для поведінки з попереднім переглядом спочатку або залиште `streaming` вимкненим для доставки лише фінальної відповіді. Коли `streaming: "off"`: - `blockStreaming: true` надсилає кожен завершений блок як звичайне повідомлення Matrix зі сповіщенням. - `blockStreaming: false` надсилає лише фінальну завершену відповідь як звичайне повідомлення Matrix зі сповіщенням. -### Самохостингові push-правила для тихих завершених попередніх переглядів +### Самохостинг push-правил для тихих фіналізованих попередніх переглядів -Якщо ви запускаєте власну інфраструктуру Matrix і хочете, щоб тихі попередні перегляди сповіщали лише тоді, коли блок або -фінальна відповідь завершені, установіть `streaming: "quiet"` і додайте push-правило для кожного користувача для завершених редагувань попереднього перегляду. +Якщо ви використовуєте власну інфраструктуру Matrix і хочете, щоб тихі попередні перегляди сповіщали лише тоді, коли блок або +фінальна відповідь готові, установіть `streaming: "quiet"` і додайте push-правило для кожного користувача для фіналізованих редагувань попереднього перегляду. Зазвичай це налаштування на рівні користувача-одержувача, а не глобальна зміна конфігурації homeserver: -Швидка схема перед початком: +Коротка схема перед початком: -- recipient user = людина, яка має отримувати сповіщення -- bot user = обліковий запис Matrix OpenClaw, який надсилає відповідь -- для викликів API нижче використовуйте токен доступу користувача-одержувача -- у push-правилі зіставляйте `sender` з повним MXID користувача-бота +- користувач-одержувач = людина, яка має отримати сповіщення +- бот-користувач = обліковий запис Matrix OpenClaw, який надсилає відповідь +- для викликів API нижче використовуйте access token користувача-одержувача +- у push-правилі зіставляйте `sender` з повним MXID бот-користувача 1. Налаштуйте OpenClaw на використання тихих попередніх переглядів: @@ -243,13 +243,13 @@ Matrix екранує розділові знаки в ID облікових з } ``` -2. Переконайтеся, що обліковий запис одержувача вже отримує звичайні push-сповіщення Matrix. Тихі правила попереднього перегляду - працюють лише тоді, коли в цього користувача вже є робочі pushers/пристрої. +2. Переконайтеся, що обліковий запис одержувача вже отримує звичайні push-сповіщення Matrix. Правила + тихого попереднього перегляду працюють лише тоді, коли в цього користувача вже налаштовано робочі pusher-и/пристрої. -3. Отримайте токен доступу користувача-одержувача. - - Використовуйте токен користувача, який отримує повідомлення, а не токен бота. - - Зазвичай найпростіше повторно використати токен наявної сесії клієнта. - - Якщо потрібно створити новий токен, можна увійти через стандартний Matrix Client-Server API: +3. Отримайте access token користувача-одержувача. + - Використовуйте token користувача, який отримує повідомлення, а не token бота. + - Зазвичай найпростіше повторно використати token наявної сесії клієнта. + - Якщо вам потрібно створити новий token, ви можете увійти через стандартний Matrix Client-Server API: ```bash curl -sS -X POST \ @@ -265,7 +265,7 @@ curl -sS -X POST \ }' ``` -4. Перевірте, що обліковий запис одержувача вже має pushers: +4. Переконайтеся, що обліковий запис одержувача вже має pusher-и: ```bash curl -sS \ @@ -273,10 +273,10 @@ curl -sS \ "https://matrix.example.org/_matrix/client/v3/pushers" ``` -Якщо це повертає відсутність активних pushers/пристроїв, спочатку виправте звичайні сповіщення Matrix, а вже потім додавайте +Якщо це повертає відсутність активних pusher-ів/пристроїв, спочатку виправте звичайні сповіщення Matrix, а вже потім додавайте наведене нижче правило OpenClaw. -OpenClaw позначає завершені редагування текстових попередніх переглядів так: +OpenClaw позначає фіналізовані редагування попереднього перегляду лише з текстом так: ```json { @@ -288,7 +288,7 @@ OpenClaw позначає завершені редагування тексто ```bash curl -sS -X PUT \ - "https://matrix.example.org/_matrix/client/v3/pushrules/global/override/openclaw-finalized-preview" \ + "https://matrix.example.org/_matrix/client/v3/pushrules/global/override/openclaw-finalized-preview-botname" \ -H "Authorization: Bearer $USER_ACCESS_TOKEN" \ -H "Content-Type: application/json" \ --data '{ @@ -317,52 +317,67 @@ curl -sS -X PUT \ Замініть ці значення перед запуском команди: - `https://matrix.example.org`: базовий URL вашого homeserver -- `$USER_ACCESS_TOKEN`: токен доступу користувача, який отримує повідомлення -- `@bot:example.org`: MXID вашого Matrix-бота OpenClaw, а не MXID користувача, який отримує повідомлення +- `$USER_ACCESS_TOKEN`: access token користувача, який отримує повідомлення +- `openclaw-finalized-preview-botname`: ID правила, унікальний для цього бота для цього користувача-одержувача +- `@bot:example.org`: MXID вашого бота Matrix OpenClaw, а не MXID користувача-одержувача -Правило обчислюється щодо відправника події: +Важливо для сценаріїв із кількома ботами: -- автентифікуйтеся токеном користувача, який отримує повідомлення -- зіставляйте `sender` з MXID бота OpenClaw +- Push-правила визначаються за `ruleId`. Повторний запуск `PUT` із тим самим ID правила оновлює саме це правило. +- Якщо один користувач-одержувач має отримувати сповіщення від кількох облікових записів ботів Matrix OpenClaw, створіть окреме правило для кожного бота з унікальним ID правила для кожного збігу `sender`. +- Простий шаблон — `openclaw-finalized-preview-`, наприклад `openclaw-finalized-preview-ops` або `openclaw-finalized-preview-support`. + +Правило оцінюється щодо відправника події: + +- автентифікуйтеся за допомогою token користувача-одержувача +- зіставте `sender` з MXID бота OpenClaw 6. Переконайтеся, що правило існує: ```bash curl -sS \ -H "Authorization: Bearer $USER_ACCESS_TOKEN" \ - "https://matrix.example.org/_matrix/client/v3/pushrules/global/override/openclaw-finalized-preview" + "https://matrix.example.org/_matrix/client/v3/pushrules/global/override/openclaw-finalized-preview-botname" ``` -7. Протестуйте потокову відповідь. У тихому режимі кімната має показати тихий попередній перегляд чернетки, а фінальне - редагування на місці має сповістити один раз, коли блок або хід завершиться. +7. Протестуйте потокову відповідь. У тихому режимі в кімнаті має з’явитися тиха чернетка попереднього перегляду, а фінальне + редагування на місці має надіслати сповіщення, щойно блок або хід завершиться. + +Якщо згодом вам потрібно видалити правило, видаліть той самий ID правила за допомогою token користувача-одержувача: + +```bash +curl -sS -X DELETE \ + -H "Authorization: Bearer $USER_ACCESS_TOKEN" \ + "https://matrix.example.org/_matrix/client/v3/pushrules/global/override/openclaw-finalized-preview-botname" +``` Примітки: -- Створюйте правило з токеном доступу користувача, який отримує повідомлення, а не з токеном бота. -- Нові визначені користувачем правила `override` вставляються перед правилами приглушення за замовчуванням, тому додатковий параметр порядку не потрібен. -- Це впливає лише на текстові редагування попереднього перегляду, які OpenClaw може безпечно завершити на місці. Відступ до медіадоставки та відступ для застарілого попереднього перегляду все одно використовують звичайну доставку Matrix. -- Якщо `GET /_matrix/client/v3/pushers` показує відсутність pushers, цей користувач ще не має робочої доставки push-сповіщень Matrix для цього облікового запису/пристрою. +- Створюйте правило за допомогою access token користувача-одержувача, а не бота. +- Нові користувацькі правила `override` вставляються перед типовими правилами приглушення, тому додатковий параметр порядку не потрібен. +- Це впливає лише на редагування попереднього перегляду лише з текстом, які OpenClaw може безпечно фіналізувати на місці. Відкати для медіа та застарілих попередніх переглядів, як і раніше, використовують звичайну доставку Matrix. +- Якщо `GET /_matrix/client/v3/pushers` не показує жодного pusher-а, у користувача ще не налаштовано робочу доставку push-повідомлень Matrix для цього облікового запису/пристрою. #### Synapse -Для Synapse наведеного вище налаштування зазвичай достатньо саме по собі: +Для Synapse зазвичай достатньо наведеного вище налаштування: -- Окрема зміна `homeserver.yaml` не потрібна для сповіщень про завершений попередній перегляд OpenClaw. -- Якщо ваше розгортання Synapse вже надсилає звичайні push-сповіщення Matrix, токен користувача + виклик `pushrules` вище є основним кроком налаштування. +- Спеціальна зміна `homeserver.yaml` для фіналізованих сповіщень попереднього перегляду OpenClaw не потрібна. +- Якщо ваше розгортання Synapse вже надсилає звичайні push-сповіщення Matrix, token користувача + наведений вище виклик `pushrules` — основний крок налаштування. - Якщо ви запускаєте Synapse за reverse proxy або workers, переконайтеся, що `/_matrix/client/.../pushrules/` коректно доходить до Synapse. -- Якщо ви використовуєте Synapse workers, переконайтеся, що pushers працюють справно. Доставка push-сповіщень обробляється основним процесом або `synapse.app.pusher` / налаштованими pusher workers. +- Якщо ви використовуєте Synapse workers, переконайтеся, що pusher-и працездатні. Доставка push-повідомлень обробляється головним процесом або `synapse.app.pusher` / налаштованими pusher workers. #### Tuwunel -Для Tuwunel використовуйте той самий сценарій налаштування та виклик API `pushrules`, наведений вище: +Для Tuwunel використовуйте той самий процес налаштування та виклик API `pushrules`, наведені вище: -- Спеціальна конфігурація Tuwunel для самого маркера завершеного попереднього перегляду не потрібна. -- Якщо звичайні сповіщення Matrix уже працюють для цього користувача, токен користувача + виклик `pushrules` вище є основним кроком налаштування. -- Якщо сповіщення ніби зникають, поки користувач активний на іншому пристрої, перевірте, чи ввімкнено `suppress_push_when_active`. Tuwunel додав цю опцію в Tuwunel 1.4.2 12 вересня 2025 року, і вона може навмисно приглушувати push-сповіщення на інших пристроях, поки один пристрій активний. +- Спеціальна конфігурація Tuwunel для самого маркера фіналізованого попереднього перегляду не потрібна. +- Якщо звичайні сповіщення Matrix уже працюють для цього користувача, token користувача + наведений вище виклик `pushrules` — основний крок налаштування. +- Якщо сповіщення наче зникають, коли користувач активний на іншому пристрої, перевірте, чи ввімкнено `suppress_push_when_active`. Tuwunel додав цей параметр у Tuwunel 1.4.2 12 вересня 2025 року, і він може навмисно приглушувати push-повідомлення на інші пристрої, поки один пристрій активний. -## Шифрування та верифікація +## Шифрування і верифікація -У зашифрованих (E2EE) кімнатах вихідні події зображень використовують `thumbnail_file`, тому попередні перегляди зображень шифруються разом із повним вкладенням. У незашифрованих кімнатах, як і раніше, використовується звичайний `thumbnail_url`. Додаткова конфігурація не потрібна — плагін автоматично визначає стан E2EE. +У зашифрованих (E2EE) кімнатах вихідні події зображень використовують `thumbnail_file`, тож попередні перегляди зображень шифруються разом із повним вкладенням. У незашифрованих кімнатах і далі використовується звичайний `thumbnail_url`. Конфігурація не потрібна — плагін автоматично визначає стан E2EE. ### Кімнати бот-до-бота @@ -385,13 +400,13 @@ curl -sS \ } ``` -- `allowBots: true` приймає повідомлення від інших налаштованих облікових записів Matrix-ботів у дозволених кімнатах і особистих повідомленнях. -- `allowBots: "mentions"` приймає ці повідомлення лише тоді, коли вони явно згадують цього бота в кімнатах. Особисті повідомлення все одно дозволені. +- `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 на цьому gateway OpenClaw». -Використовуйте суворі allowlist кімнат і вимоги до згадувань, коли вмикаєте трафік бот-до-бота в спільних кімнатах. +Використовуйте строгі allowlist для кімнат і вимоги щодо згадувань, коли вмикаєте трафік бот-до-бота в спільних кімнатах. Увімкнення шифрування: @@ -415,88 +430,88 @@ curl -sS \ openclaw matrix verify status ``` -Докладний стан (повна діагностика): +Розширений стан (повна діагностика): ```bash openclaw matrix verify status --verbose ``` -Додати збережений recovery key до машинозчитуваного виводу: +Включити збережений recovery key у машиночитний вивід: ```bash openclaw matrix verify status --include-recovery-key --json ``` -Ініціалізувати cross-signing і стан верифікації: +Ініціалізація cross-signing і стану верифікації: ```bash openclaw matrix verify bootstrap ``` -Підтримка кількох облікових записів: використовуйте `channels.matrix.accounts` з обліковими даними для кожного облікового запису та необов’язковим `name`. Див. [Довідник із конфігурації](/uk/gateway/configuration-reference#multi-account-all-channels) для спільного шаблону. +Підтримка кількох облікових записів: використовуйте `channels.matrix.accounts` з обліковими даними для кожного облікового запису та необов’язковим `name`. Див. [Довідник конфігурації](/uk/gateway/configuration-reference#multi-account-all-channels) для спільного шаблону. -Докладна діагностика bootstrap: +Розширена діагностика bootstrap: ```bash openclaw matrix verify bootstrap --verbose ``` -Примусово скинути identity cross-signing перед bootstrap: +Примусово скинути поточну identity cross-signing перед bootstrap: ```bash openclaw matrix verify bootstrap --force-reset-cross-signing ``` -Підтвердити цей пристрій за допомогою recovery key: +Верифікація цього пристрою за допомогою recovery key: ```bash openclaw matrix verify device "" ``` -Докладні відомості про верифікацію пристрою: +Докладна інформація про верифікацію пристрою: ```bash openclaw matrix verify device "" --verbose ``` -Перевірити стан резервного копіювання ключів кімнат: +Перевірка стану резервної копії ключів кімнат: ```bash openclaw matrix verify backup status ``` -Докладна діагностика стану резервного копіювання: +Розширена діагностика стану резервної копії: ```bash openclaw matrix verify backup status --verbose ``` -Відновити ключі кімнат із резервної копії на сервері: +Відновлення ключів кімнат із серверної резервної копії: ```bash openclaw matrix verify backup restore ``` -Докладна діагностика відновлення: +Розширена діагностика відновлення: ```bash openclaw matrix verify backup restore --verbose ``` Видалити поточну серверну резервну копію й створити нову базову резервну копію. Якщо збережений -ключ резервного копіювання не вдається коректно завантажити, цей скидання також може відтворити secret storage, щоб -майбутні холодні запуски могли завантажувати новий ключ резервного копіювання: +ключ резервної копії не вдається коректно завантажити, це скидання також може відтворити secret storage, щоб +майбутні холодні запуски могли завантажувати новий ключ резервної копії: ```bash openclaw matrix verify backup reset --yes ``` -Усі команди `verify` за замовчуванням є стислими (включно з тихим внутрішнім логуванням SDK) і показують детальну діагностику лише з `--verbose`. -Використовуйте `--json` для повного машинозчитуваного виводу в сценаріях автоматизації. +Усі команди `verify` за замовчуванням лаконічні (включно з тихим внутрішнім логуванням SDK) і показують детальну діагностику лише з `--verbose`. +Для скриптів використовуйте `--json` для повного машиночитного виводу. У конфігураціях із кількома обліковими записами команди Matrix CLI використовують неявний обліковий запис Matrix за замовчуванням, якщо ви не передасте `--account `. -Якщо ви налаштували кілька іменованих облікових записів, спочатку задайте `channels.matrix.defaultAccount`, інакше такі неявні операції CLI зупинятимуться й проситимуть вас явно вибрати обліковий запис. -Використовуйте `--account`, коли хочете, щоб операції верифікації або пристрою явно націлювалися на іменований обліковий запис: +Якщо у вас налаштовано кілька іменованих облікових записів, спочатку задайте `channels.matrix.defaultAccount`, інакше ці неявні операції CLI зупинятимуться й проситимуть вас явно вибрати обліковий запис. +Використовуйте `--account`, коли хочете, щоб операції верифікації або з пристроями явно були спрямовані на іменований обліковий запис: ```bash openclaw matrix verify status --account assistant @@ -506,39 +521,39 @@ openclaw matrix devices list --account assistant Коли шифрування вимкнено або недоступне для іменованого облікового запису, попередження Matrix і помилки верифікації вказують на ключ конфігурації цього облікового запису, наприклад `channels.matrix.accounts.assistant.encryption`. -### Що означає «верифіковано» +### Що означає "verified" -OpenClaw вважає цей пристрій Matrix верифікованим лише тоді, коли його верифікує ваша власна identity cross-signing. +OpenClaw вважає цей пристрій Matrix verified лише тоді, коли його верифіковано вашою власною identity cross-signing. На практиці `openclaw matrix verify status --verbose` показує три сигнали довіри: - `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. -Вона виконує все наведене нижче в такому порядку: +Вона послідовно робить усе наведене нижче: - ініціалізує secret storage, повторно використовуючи наявний recovery key, коли це можливо -- ініціалізує cross-signing і вивантажує відсутні відкриті ключі cross-signing -- намагається позначити й підписати поточний пристрій через 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 і створити нову. Якщо ви свідомо хочете відкинути поточну резервну копію ключів кімнат і почати нову -базову лінію резервного копіювання для майбутніх повідомлень, використовуйте `openclaw matrix verify backup reset --yes`. -Робіть це лише тоді, коли погоджуєтеся, що невідновлювана стара зашифрована історія -залишиться недоступною і що OpenClaw може відтворити secret storage, якщо поточний секрет резервного -копіювання не вдається безпечно завантажити. +базову резервну копію для майбутніх повідомлень, використовуйте `openclaw matrix verify backup reset --yes`. +Робіть це лише тоді, коли приймаєте, що невідновлювана стара зашифрована історія залишиться +недоступною й що OpenClaw може повторно створити secret storage, якщо поточний секрет резервної копії +не вдається безпечно завантажити. -### Нова базова лінія резервного копіювання +### Нова базова резервна копія Якщо ви хочете зберегти працездатність майбутніх зашифрованих повідомлень і погоджуєтеся втратити невідновлювану стару історію, виконайте ці команди по черзі: @@ -548,96 +563,96 @@ 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`, якщо хочете коротше чи довше вікно повторної спроби. -Під час запуску також автоматично виконується консервативний прохід crypto bootstrap. -Цей прохід спочатку намагається повторно використати поточні secret storage та identity cross-signing і уникає скидання cross-signing, якщо ви не запускаєте явний сценарій відновлення bootstrap. +Під час запуску також автоматично виконується консервативний прохід bootstrap для криптографії. +Цей прохід спочатку намагається повторно використати поточні secret storage та identity cross-signing і не скидає cross-signing, якщо ви не запускаєте явний потік відновлення bootstrap. -Якщо під час запуску виявлено зламаний стан bootstrap і налаштовано `channels.matrix.password`, OpenClaw може спробувати суворіший шлях відновлення. +Якщо під час запуску виявлено пошкоджений стан bootstrap і налаштовано `channels.matrix.password`, OpenClaw може спробувати суворіший шлях відновлення. Якщо поточний пристрій уже підписаний власником, OpenClaw зберігає цю identity замість автоматичного скидання. Оновлення з попереднього публічного плагіна Matrix: - OpenClaw автоматично повторно використовує той самий обліковий запис Matrix, access token і identity пристрою, коли це можливо. -- Перш ніж буде виконано будь-які придатні до дії зміни міграції Matrix, OpenClaw створює або повторно використовує recovery snapshot у `~/Backups/openclaw-migrations/`. -- Якщо ви використовуєте кілька облікових записів Matrix, установіть `channels.matrix.defaultAccount` перед оновленням зі старого плоского сховища, щоб OpenClaw знав, який обліковий запис має отримати цей спільний застарілий стан. -- Якщо попередній плагін зберігав локально ключ розшифрування резервної копії ключів кімнат Matrix, startup або `openclaw doctor --fix` автоматично імпортує його в новий сценарій recovery key. -- Якщо access token Matrix змінився після підготовки міграції, startup тепер сканує сусідні корені сховища хешів токенів на наявність очікуваного застарілого стану відновлення, перш ніж відмовитися від автоматичного відновлення резервної копії. -- Якщо access token Matrix зміниться пізніше для того самого облікового запису, homeserver і користувача, OpenClaw тепер надає перевагу повторному використанню найповнішого наявного кореня сховища хешів токенів замість початку з порожнього каталогу стану Matrix. -- Під час наступного запуску gateway резервно скопійовані ключі кімнат буде автоматично відновлено до нового crypto store. -- Якщо старий плагін мав лише локальні ключі кімнат, які ніколи не резервувалися, OpenClaw чітко попередить про це. Ці ключі не можна автоматично експортувати з попереднього rust crypto store, тому частина старої зашифрованої історії може залишатися недоступною, доки її не буде відновлено вручну. -- Див. [Міграція Matrix](/uk/install/migrating-matrix) для повного сценарію оновлення, обмежень, команд відновлення та поширених повідомлень міграції. +- Перш ніж застосовувати будь-які зміни міграції Matrix, OpenClaw створює або повторно використовує recovery snapshot у `~/Backups/openclaw-migrations/`. +- Якщо ви використовуєте кілька облікових записів Matrix, установіть `channels.matrix.defaultAccount` перед оновленням зі старого плоского layout сховища, щоб OpenClaw знав, який обліковий запис має отримати цей спільний застарілий стан. +- Якщо попередній плагін зберігав локально ключ розшифрування резервної копії ключів кімнат Matrix, startup або `openclaw doctor --fix` автоматично імпортують його в новий потік recovery key. +- Якщо access token Matrix змінився після підготовки міграції, startup тепер сканує сусідні корені сховища з hash token для очікуваного застарілого стану відновлення, перш ніж відмовитися від автоматичного відновлення резервної копії. +- Якщо access token Matrix пізніше зміниться для того самого облікового запису, homeserver і користувача, OpenClaw тепер надає перевагу повторному використанню найбільш повного наявного кореня сховища з hash token замість початку з порожнього каталогу стану Matrix. +- Під час наступного запуску gateway резервні ключі кімнат буде автоматично відновлено в нове криптосховище. +- Якщо старий плагін мав лише локальні ключі кімнат, які ніколи не резервувалися, OpenClaw чітко попередить про це. Ці ключі неможливо автоматично експортувати з попереднього rust crypto store, тому частина старої зашифрованої історії може залишатися недоступною, доки її не буде відновлено вручну. +- Див. [Міграція Matrix](/uk/install/migrating-matrix) для повного процесу оновлення, обмежень, команд відновлення та поширених повідомлень міграції. -Зашифрований стан runtime організовано в коренях для кожного облікового запису, користувача й хешу токена в +Зашифрований стан runtime організовано в коренях із hash token для кожного облікового запису й користувача в `~/.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 (`startup-verification.json`), -коли ці можливості використовуються. -Коли токен змінюється, але identity облікового запису залишається тією самою, OpenClaw повторно використовує найкращий наявний -корінь для цього кортежу account/homeserver/user, щоб попередній sync state, crypto state, прив’язки тредів -і стан startup verification залишалися видимими. +прив’язки гілок (`thread-bindings.json`) і стан startup verification (`startup-verification.json`), +коли ці функції використовуються. +Коли token змінюється, але identity облікового запису залишається тією самою, OpenClaw повторно використовує найкращий наявний +корінь для цього кортежу account/homeserver/user, щоб попередній стан sync, crypto state, прив’язки гілок +і стан startup verification залишалися доступними. ### Модель Node crypto store -Matrix E2EE у цьому плагіні використовує офіційний шлях Rust crypto `matrix-js-sdk` у Node. -Цей шлях очікує persistence на основі IndexedDB, якщо ви хочете, щоб crypto state зберігався між перезапусками. +Matrix E2EE у цьому плагіні використовує офіційний шлях Rust crypto з `matrix-js-sdk` у Node. +Цей шлях очікує persistence на основі IndexedDB, якщо ви хочете, щоб криптографічний стан переживав перезапуски. -Зараз OpenClaw надає це в Node таким чином: +Наразі OpenClaw забезпечує це в Node так: -- використовує `fake-indexeddb` як shim API IndexedDB, очікуваний SDK +- використовує `fake-indexeddb` як shim API IndexedDB, якого очікує SDK - відновлює вміст IndexedDB Rust crypto з `crypto-idb-snapshot.json` перед `initRustCrypto` - зберігає оновлений вміст IndexedDB назад у `crypto-idb-snapshot.json` після ініціалізації та під час runtime -- серіалізує відновлення та збереження snapshot відносно `crypto-idb-snapshot.json` за допомогою advisory file lock, щоб persistence runtime gateway і обслуговування CLI не змагалися за той самий файл snapshot +- серіалізує відновлення й збереження snapshot для `crypto-idb-snapshot.json` за допомогою advisory file lock, щоб persistence runtime gateway і обслуговування CLI не змагалися за один і той самий файл snapshot -Це plumbing для сумісності/зберігання, а не користувацька crypto-реалізація. -Файл snapshot є чутливим станом runtime і зберігається з обмежувальними правами доступу до файлу. -У межах моделі безпеки OpenClaw host gateway і локальний каталог стану OpenClaw уже перебувають у межах довіреного оператора, тому це насамперед операційне питання довговічності, а не окрема межа віддаленої довіри. +Це plumbing сумісності/сховища, а не власна реалізація криптографії. +Файл snapshot є чутливим станом runtime і зберігається з обмеженими правами доступу до файлів. +У межах моделі безпеки OpenClaw хост gateway і локальний каталог стану OpenClaw уже належать до довіреної межі оператора, тому це передусім питання операційної надійності, а не окрема віддалена межа довіри. Заплановане покращення: -- додати підтримку SecretRef для постійного ключового матеріалу Matrix, щоб recovery keys і пов’язані секрети шифрування сховища можна було отримувати з провайдерів секретів OpenClaw, а не лише з локальних файлів +- додати підтримку SecretRef для постійного матеріалу ключів Matrix, щоб recovery key та пов’язані секрети шифрування сховища можна було отримувати з постачальників секретів OpenClaw, а не лише з локальних файлів ## Керування профілем -Оновіть власний профіль 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 публікує повідомлення про життєвий цикл верифікації безпосередньо в сувору кімнату верифікації особистих повідомлень як повідомлення `m.notice`. +Тепер Matrix публікує повідомлення про життєвий цикл верифікації безпосередньо в строгій DM-кімнаті верифікації як повідомлення `m.notice`. Сюди входять: - повідомлення про запит верифікації -- повідомлення про готовність до верифікації (з явною підказкою «Verify by emoji») +- повідомлення про готовність до верифікації (з явною підказкою "Verify by emoji") - повідомлення про початок і завершення верифікації -- подробиці SAS (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 не приймає автоматично бездумно дубльовані процеси, ініційовані самим собою. Startup пропускає створення нового запиту, якщо запит на самоверифікацію вже очікує на виконання. +OpenClaw не приймає автоматично самостійно ініційовані дубльовані потоки бездумно. Під час startup він не створює новий запит, якщо запит на самоверифікацію вже очікує. -Протокольні/системні повідомлення верифікації не пересилаються до конвеєра чату агента, тому вони не створюють `NO_REPLY`. +Повідомлення протоколу/системи верифікації не пересилаються до конвеєра чату агента, тому вони не створюють `NO_REPLY`. ### Гігієна пристроїв @@ -648,7 +663,7 @@ OpenClaw не приймає автоматично бездумно дубль openclaw matrix devices list ``` -Видалити застарілі пристрої Matrix, керовані OpenClaw, можна так: +Видалити застарілі пристрої Matrix, керовані OpenClaw: ```bash openclaw matrix devices prune-stale @@ -656,63 +671,63 @@ openclaw matrix devices prune-stale ### Відновлення Direct Room -Якщо стан direct message виходить із синхронізації, OpenClaw може отримати застарілі зіставлення `m.direct`, які вказують на старі solo rooms замість живого DM. Перевірити поточне зіставлення для співрозмовника можна так: +Якщо стан direct-message виходить із синхронізації, OpenClaw може отримати застарілі прив’язки `m.direct`, які вказують на старі індивідуальні кімнати замість активного DM. Перегляньте поточне зіставлення для співрозмовника так: ```bash openclaw matrix direct inspect --user-id @alice:example.org ``` -Відновити його можна так: +Відновіть його так: ```bash openclaw matrix direct repair --user-id @alice:example.org ``` -Відновлення зберігає Matrix-специфічну логіку всередині плагіна: +Відновлення зберігає специфічну для Matrix логіку всередині плагіна: -- воно надає перевагу суворому DM 1:1, який уже зіставлено в `m.direct` -- інакше воно переходить до будь-якого поточного приєднаного суворого DM 1:1 з цим користувачем -- якщо справного DM не існує, воно створює нову direct room і переписує `m.direct`, щоб вона вказувала на неї +- воно надає перевагу строгому DM 1:1, який уже зіставлений у `m.direct` +- інакше повертається до будь-якого поточного приєднаного строгого DM 1:1 з цим користувачем +- якщо здорового DM не існує, воно створює нову direct room і переписує `m.direct`, щоб указувати на неї -Сценарій відновлення не видаляє старі кімнати автоматично. Він лише вибирає справний DM і оновлює зіставлення, щоб нові надсилання Matrix, повідомлення про верифікацію та інші direct-message сценарії знову були націлені на правильну кімнату. +Процес відновлення не видаляє старі кімнати автоматично. Він лише вибирає здоровий DM та оновлює зіставлення, щоб нові надсилання Matrix, повідомлення верифікації та інші direct-message потоки знову націлювалися на правильну кімнату. -## Треди +## Гілки -Matrix підтримує вбудовані треди Matrix як для автоматичних відповідей, так і для надсилань через message tool. +Matrix підтримує нативні гілки Matrix як для автоматичних відповідей, так і для надсилань через message-tool. -- `dm.sessionScope: "per-user"` (за замовчуванням) зберігає маршрутизацію DM Matrix у межах відправника, тому кілька DM-кімнат можуть спільно використовувати одну сесію, якщо вони розв’язуються до того самого співрозмовника. -- `dm.sessionScope: "per-room"` ізолює кожну DM-кімнату Matrix у власний ключ сесії, водночас зберігаючи звичайні перевірки автентифікації та allowlist для DM. -- Явні прив’язки розмов Matrix усе одно мають вищий пріоритет над `dm.sessionScope`, тому прив’язані кімнати й треди зберігають вибрану цільову сесію. -- `threadReplies: "off"` зберігає відповіді на верхньому рівні та залишає вхідні повідомлення з тредів у батьківській сесії. -- `threadReplies: "inbound"` відповідає всередині треду лише тоді, коли вхідне повідомлення вже було в цьому треді. -- `threadReplies: "always"` зберігає відповіді в кімнаті в треді, прив’язаному до повідомлення-тригера, і маршрутизує цю розмову через відповідну сесію з областю треду від першого повідомлення-тригера. -- `dm.threadReplies` перевизначає налаштування верхнього рівня лише для DM. Наприклад, ви можете ізолювати треди в кімнатах, залишивши DM плоскими. -- Вхідні повідомлення з тредів включають кореневе повідомлення треду як додатковий контекст агента. -- Надсилання через message tool тепер автоматично успадковують поточний тред Matrix, коли ціль — та сама кімната або той самий користувач DM, якщо явно не вказано `threadId`. -- Повторне використання DM-цілі того самого користувача в межах тієї самої сесії спрацьовує лише тоді, коли поточні метадані сесії підтверджують того самого співрозмовника DM в тому самому обліковому записі Matrix; інакше OpenClaw повертається до звичайної маршрутизації в межах користувача. -- Коли OpenClaw бачить, що DM-кімната Matrix конфліктує з іншою DM-кімнатою в тій самій спільній сесії DM Matrix, він публікує одноразове `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"` (за замовчуванням) зберігає маршрутизацію 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 user target для того самого сеансу спрацьовує лише тоді, коли метадані поточного сеансу підтверджують того самого співрозмовника DM в тому самому обліковому записі Matrix; інакше OpenClaw повертається до звичайної маршрутизації з областю користувача. +- Коли OpenClaw бачить, що Matrix DM-кімната конфліктує з іншою DM-кімнатою на тому самому спільному сеансі Matrix DM, він публікує одноразове `m.notice` у цій кімнаті з escape hatch `/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 натомість прив’язує саме цю поточну гілку. -## ACP conversation bindings +## Прив’язки розмов ACP -Кімнати Matrix, 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` у Matrix DM, кімнаті або наявній гілці, яку ви хочете й далі використовувати. +- У верхньорівневому Matrix DM або кімнаті поточний DM/кімната залишаються поверхнею чату, а майбутні повідомлення маршрутизуються до створеного сеансу ACP. +- Усередині наявної гілки Matrix `--bind here` прив’язує цю поточну гілку на місці. +- `/new` і `/reset` скидають той самий прив’язаний сеанс ACP на місці. +- `/acp close` закриває сеанс ACP і видаляє прив’язку. Примітки: -- `--bind here` не створює дочірній тред Matrix. -- `threadBindings.spawnAcpSessions` потрібен лише для `/acp spawn --thread auto|here`, коли OpenClaw потрібно створити або прив’язати дочірній тред Matrix. +- `--bind here` не створює дочірню гілку Matrix. +- `threadBindings.spawnAcpSessions` потрібен лише для `/acp spawn --thread auto|here`, коли OpenClaw потрібно створити або прив’язати дочірню гілку Matrix. -### Конфігурація прив’язки тредів +### Конфігурація прив’язки гілок Matrix успадковує глобальні значення за замовчуванням із `session.threadBindings`, а також підтримує перевизначення для каналу: @@ -722,29 +737,29 @@ Matrix успадковує глобальні значення за замов - `threadBindings.spawnSubagentSessions` - `threadBindings.spawnAcpSessions` -Прапорці створення для тредів Matrix вмикаються лише за бажанням: +Прапорці створення сеансів, прив’язаних до гілок 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 підтримує вихідні дії з реакціями, вхідні сповіщення про реакції та вхідні реакції-підтвердження. +Matrix підтримує вихідні дії з реакціями, вхідні сповіщення про реакції та вхідні ack reactions. -- Інструменти для вихідних реакцій контролюються через `channels["matrix"].actions.reactions`. -- `react` додає реакцію до певної події Matrix. -- `reactions` показує поточний підсумок реакцій для певної події Matrix. -- `emoji=""` видаляє власні реакції облікового запису бота на цій події. -- `remove: true` видаляє лише вказану emoji-реакцію з облікового запису бота. +- Інструменти вихідних реакцій контролюються через `channels["matrix"].actions.reactions`. +- `react` додає реакцію до конкретної події Matrix. +- `reactions` показує поточне зведення реакцій для конкретної події Matrix. +- `emoji=""` видаляє власні реакції облікового запису бота на цю подію. +- `remove: true` видаляє лише вказану реакцію emoji з облікового запису бота. -Область дії реакцій-підтверджень визначається в стандартному для OpenClaw порядку: +Область ack reactions визначається у стандартному порядку розв’язання OpenClaw: - `channels["matrix"].accounts..ackReaction` - `channels["matrix"].ackReaction` - `messages.ackReaction` -- резервний emoji ідентичності агента +- запасний emoji з identity агента -Область дії ack reaction визначається в такому порядку: +Область ack reaction визначається в такому порядку: - `channels["matrix"].accounts..ackReactionScope` - `channels["matrix"].ackReactionScope` @@ -754,35 +769,35 @@ Matrix підтримує вихідні дії з реакціями, вхід - `channels["matrix"].accounts..reactionNotifications` - `channels["matrix"].reactionNotifications` -- за замовчуванням: `own` +- значення за замовчуванням: `own` Поточна поведінка: - `reactionNotifications: "own"` пересилає додані події `m.reaction`, коли вони націлені на повідомлення Matrix, створені ботом. - `reactionNotifications: "off"` вимикає системні події реакцій. -- Видалення реакцій усе ще не синтезується в системні події, тому що Matrix подає їх як редагування, а не як окремі видалення `m.reaction`. +- Видалення реакцій усе ще не синтезуються в системні події, тому що Matrix представляє їх як redaction, а не як окремі видалення `m.reaction`. ## Контекст історії -- `channels.matrix.historyLimit` керує тим, скільки останніх повідомлень кімнати включається як `InboundHistory`, коли повідомлення Matrix у кімнаті запускає агента. -- Якщо значення не задано, використовується `messages.groupChat.historyLimit`. Установіть `0`, щоб вимкнути. -- Історія кімнат Matrix обмежується самою кімнатою. DM і далі використовують звичайну історію сесії. -- Історія кімнати Matrix працює в режимі pending-only: OpenClaw буферизує повідомлення кімнати, які ще не викликали відповіді, а потім робить snapshot цього вікна, коли надходить згадка чи інший тригер. -- Поточне повідомлення-тригер не включається до `InboundHistory`; воно залишається в основному тілі вхідного повідомлення для цього ходу. -- Повторні спроби для тієї самої події Matrix повторно використовують початковий snapshot історії замість зміщення вперед до новіших повідомлень кімнати. +- `channels.matrix.historyLimit` керує тим, скільки недавніх повідомлень кімнати включаються як `InboundHistory`, коли повідомлення Matrix у кімнаті запускає агента. +- Воно повертається до `messages.groupChat.historyLimit`. Установіть `0`, щоб вимкнути. +- Історія кімнати Matrix обмежується кімнатою. DM, як і раніше, використовують звичайну історію сеансу. +- Історія кімнати Matrix стосується лише pending: OpenClaw буферизує повідомлення кімнати, які ще не спричинили відповідь, а потім робить snapshot цього вікна, коли надходить згадка або інший тригер. +- Поточне повідомлення-тригер не включається до `InboundHistory`; воно залишається в основному вхідному тілі для цього ходу. +- Повторні спроби для тієї самої події Matrix повторно використовують вихідний snapshot історії замість зміщення вперед до новіших повідомлень кімнати. ## Видимість контексту -Matrix підтримує спільний контроль `contextVisibility` для додаткового контексту кімнати, як-от отриманий текст відповіді, корені тредів і очікувана історія. +Matrix підтримує спільний елемент керування `contextVisibility` для додаткового контексту кімнати, як-от отриманий текст відповіді, корені гілок і pending history. -- `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 і кімнат +## Приклад політики для DM і кімнат ```json5 { @@ -805,7 +820,7 @@ Matrix підтримує спільний контроль `contextVisibility` } ``` -Див. [Групи](/uk/channels/groups) щодо обмеження за згадуваннями та поведінки allowlist. +Див. [Групи](/uk/channels/groups) щодо поведінки mention-gating і allowlist. Приклад pairing для Matrix DM: @@ -814,51 +829,51 @@ openclaw pairing list matrix openclaw pairing approve matrix ``` -Якщо непідтверджений користувач Matrix продовжує писати вам до схвалення, OpenClaw повторно використовує той самий очікуваний код 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` (необов’язково; якщо не задано, використовується `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 як вбудований клієнт схвалення. Інакше запити на схвалення повертаються до інших налаштованих маршрутів схвалення або до резервної політики схвалення exec. +Погоджувачі мають бути Matrix user ID, наприклад `@owner:example.org`. Matrix автоматично вмикає нативні погодження exec, коли `enabled` не задано або дорівнює `"auto"` і можна визначити принаймні одного погоджувача — або з `execApprovals.approvers`, або з `channels.matrix.dm.allowFrom`. Установіть `enabled: false`, щоб явно вимкнути Matrix як нативний клієнт погодження. Інакше запити на погодження повертаються до інших налаштованих маршрутів погодження або до fallback policy погодження 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. +- Погодження плагінів і далі використовують спільну `/approve` у тому ж чаті плюс будь-яке налаштоване пересилання `approvals.plugin`. +- Matrix все ще може повторно використовувати `channels.matrix.dm.allowFrom` для авторизації погоджень плагінів, коли може безпечно визначити погоджувачів, але не надає окремого нативного шляху fanout DM/каналу для погодження плагінів. Правила доставки: -- `target: "dm"` надсилає запити на схвалення в DM схвалювачів +- `target: "dm"` надсилає запити на погодження в DM погоджувачів - `target: "channel"` надсилає запит назад у вихідну кімнату або DM Matrix -- `target: "both"` надсилає в DM схвалювачів і у вихідну кімнату або 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 повторно використовують спільний базовий planner схвалень. Вбудована Matrix-специфічна поверхня — це лише transport для схвалень exec: маршрутизація кімнат/DM і поведінка send/update/delete повідомлень. +Підказки погодження Matrix повторно використовують спільний core approval planner. Нативна поверхня, специфічна для Matrix, є лише транспортним шаром для погоджень exec: маршрутизація кімнати/DM і поведінка надсилання/оновлення/видалення повідомлень. Перевизначення для облікового запису: - `channels.matrix.accounts..execApprovals` -Пов’язана документація: [Схвалення exec](/uk/tools/exec-approvals) +Пов’язана документація: [Погодження exec](/uk/tools/exec-approvals) ## Приклад із кількома обліковими записами @@ -890,21 +905,21 @@ 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; спільні ключі політики доставки залишаються на верхньому рівні. -Установіть `defaultAccount`, якщо хочете, щоб OpenClaw надавав перевагу одному іменованому обліковому запису Matrix для неявної маршрутизації, probing і операцій CLI. -Якщо ви налаштовуєте кілька іменованих облікових записів, установіть `defaultAccount` або передавайте `--account ` для команд CLI, що покладаються на неявний вибір облікового запису. +Верхньорівневі значення `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`. До цього перенесеного облікового запису переміщуються лише ключі Matrix auth/bootstrap; спільні ключі політики доставки залишаються на верхньому рівні. +Установіть `defaultAccount`, якщо хочете, щоб OpenClaw надавав перевагу одному іменованому обліковому запису Matrix для неявної маршрутизації, probe і операцій CLI. +Якщо у вас налаштовано кілька іменованих облікових записів, установіть `defaultAccount` або передавайте `--account ` для команд CLI, які покладаються на неявний вибір облікового запису. Передавайте `--account ` до `openclaw matrix verify ...` і `openclaw matrix devices ...`, якщо хочете перевизначити цей неявний вибір для однієї команди. -## Приватні/LAN homeserver +## Приватні/LAN homeserver-и -За замовчуванням OpenClaw блокує приватні/внутрішні Matrix homeserver для захисту від SSRF, якщо ви -явно не дозволите це для кожного облікового запису. +За замовчуванням OpenClaw блокує приватні/внутрішні homeserver-и Matrix для захисту від SSRF, якщо ви +явно не ввімкнете це для кожного облікового запису. -Якщо ваш homeserver працює на localhost, LAN/Tailscale IP або внутрішньому імені хоста, увімкніть +Якщо ваш homeserver працює на localhost, LAN/Tailscale IP або внутрішньому hostname, увімкніть `allowPrivateNetwork` для цього облікового запису Matrix: ```json5 @@ -929,12 +944,12 @@ openclaw matrix account add \ --access-token syt_ops_xxx ``` -Ця згода дозволяє лише довірені приватні/внутрішні цілі. Публічні незашифровані homeserver, такі як -`http://matrix.example.org:8008`, залишаються заблокованими. За можливості надавайте перевагу `https://`. +Це явне ввімкнення дозволяє лише довірені приватні/внутрішні цілі. Публічні homeserver-и без шифрування, такі як +`http://matrix.example.org:8008`, і далі блокуються. За можливості віддавайте перевагу `https://`. ## Проксіювання трафіку Matrix -Якщо для вашого розгортання Matrix потрібен явний вихідний HTTP(S)-проксі, задайте `channels.matrix.proxy`: +Якщо для вашого розгортання Matrix потрібен явний вихідний HTTP(S) proxy, задайте `channels.matrix.proxy`: ```json5 { @@ -948,86 +963,86 @@ openclaw matrix account add \ } ``` -Іменовані облікові записи можуть перевизначати значення верхнього рівня через `channels.matrix.accounts..proxy`. -OpenClaw використовує те саме налаштування проксі для трафіку Matrix у runtime і для probing стану облікових записів. +Іменовані облікові записи можуть перевизначати верхньорівневе значення за замовчуванням через `channels.matrix.accounts..proxy`. +OpenClaw використовує те саме налаштування proxy як для runtime-трафіку Matrix, так і для probes стану облікового запису. -## Розв’язання цілей +## Визначення цілей -Matrix приймає такі форми цілей усюди, де OpenClaw просить вказати ціль кімнати або користувача: +Matrix приймає такі форми цілей скрізь, де OpenClaw просить вказати цільову кімнату або користувача: - Користувачі: `@user:server`, `user:@user:server` або `matrix:user:@user:server` - Кімнати: `!room:server`, `room:!room:server` або `matrix:room:!room:server` - Псевдоніми: `#alias:server`, `channel:#alias:server` або `matrix:channel:#alias:server` -Живий пошук у каталозі використовує обліковий запис Matrix, у який виконано вхід: +Пошук у живому каталозі використовує обліковий запис Matrix, під яким виконано вхід: - Пошук користувачів звертається до каталогу користувачів Matrix на цьому homeserver. -- Пошук кімнат напряму приймає явні ID кімнат і псевдоніми, а потім у разі потреби переходить до пошуку назв приєднаних кімнат для цього облікового запису. -- Пошук за назвами приєднаних кімнат є best-effort. Якщо назву кімнати не можна розв’язати в ID або псевдонім, під час розв’язання allowlist у runtime вона ігнорується. +- Пошук кімнат безпосередньо приймає явні ID кімнат і псевдоніми, а потім повертається до пошуку за назвами приєднаних кімнат для цього облікового запису. +- Пошук за назвою приєднаної кімнати працює за найкращим зусиллям. Якщо назву кімнати не вдається визначити як ID або псевдонім, вона ігнорується під час визначення allowlist у runtime. -## Довідник із конфігурації +## Довідник конфігурації - `enabled`: увімкнути або вимкнути канал. - `name`: необов’язкова мітка для облікового запису. - `defaultAccount`: бажаний ID облікового запису, коли налаштовано кілька облікових записів Matrix. - `homeserver`: URL homeserver, наприклад `https://matrix.example.org`. -- `allowPrivateNetwork`: дозволити цьому обліковому запису Matrix підключатися до приватних/внутрішніх homeserver. Увімкніть це, коли homeserver розв’язується в `localhost`, LAN/Tailscale IP або внутрішній хост, наприклад `matrix-synapse`. -- `proxy`: необов’язковий URL HTTP(S)-проксі для трафіку Matrix. Іменовані облікові записи можуть перевизначати значення верхнього рівня власним `proxy`. +- `allowPrivateNetwork`: дозволити цьому обліковому запису Matrix підключатися до приватних/внутрішніх homeserver-ів. Увімкніть це, якщо homeserver визначається як `localhost`, LAN/Tailscale IP або внутрішній хост, наприклад `matrix-synapse`. +- `proxy`: необов’язковий URL HTTP(S) proxy для трафіку Matrix. Іменовані облікові записи можуть перевизначати верхньорівневе значення за замовчуванням власним `proxy`. - `userId`: повний Matrix user ID, наприклад `@bot:example.org`. -- `accessToken`: токен доступу для автентифікації на основі токена. Для `channels.matrix.accessToken` і `channels.matrix.accounts..accessToken` підтримуються як відкриті значення, так і значення SecretRef через провайдери env/file/exec. Див. [Керування секретами](/uk/gateway/secrets). -- `password`: пароль для входу на основі пароля. Підтримуються як відкриті значення, так і значення SecretRef. +- `accessToken`: access token для автентифікації на основі token. Для `channels.matrix.accessToken` і `channels.matrix.accounts..accessToken` підтримуються значення у відкритому вигляді та значення SecretRef у постачальниках env/file/exec. Див. [Керування секретами](/uk/gateway/secrets). +- `password`: пароль для входу на основі пароля. Підтримуються значення у відкритому вигляді та значення SecretRef. - `deviceId`: явний Matrix device ID. - `deviceName`: відображувана назва пристрою для входу за паролем. - `avatarUrl`: збережений URL власного аватара для синхронізації профілю та оновлень `set-profile`. -- `initialSyncLimit`: ліміт подій синхронізації під час запуску. +- `initialSyncLimit`: ліміт подій startup sync. - `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`: максимальна кількість повідомлень кімнати, які включаються як контекст історії групи. Якщо значення не задано, використовується `messages.groupChat.historyLimit`. Установіть `0`, щоб вимкнути. +- Записи `groupAllowFrom` мають бути повними Matrix user ID. Невизначені імена ігноруються в runtime. +- `historyLimit`: максимальна кількість повідомлень кімнати, які включаються як контекст історії групи. Повертається до `messages.groupChat.historyLimit`. Установіть `0`, щоб вимкнути. - `replyToMode`: `off`, `first` або `all`. - `markdown`: необов’язкова конфігурація рендерингу Markdown для вихідного тексту Matrix. -- `streaming`: `off` (за замовчуванням), `partial`, `quiet`, `true` або `false`. `partial` і `true` вмикають оновлення чернетки з попереднім переглядом звичайними текстовими повідомленнями Matrix. `quiet` використовує попередні тихі повідомлення для самохостингових сценаріїв із push-правилами. -- `blockStreaming`: `true` вмикає окремі повідомлення про прогрес для завершених блоків асистента, поки активний потоковий попередній перегляд чернетки. +- `streaming`: `off` (за замовчуванням), `partial`, `quiet`, `true` або `false`. `partial` і `true` вмикають оновлення чернетки за схемою preview-first за допомогою звичайних текстових повідомлень Matrix. `quiet` використовує попередні повідомлення без сповіщень для самохостингових конфігурацій push-правил. +- `blockStreaming`: `true` вмикає окремі повідомлення прогресу для завершених блоків асистента, поки активне потокове надсилання чернетки попереднього перегляду. - `threadReplies`: `off`, `inbound` або `always`. -- `threadBindings`: перевизначення на рівні каналу для маршрутизації та життєвого циклу сесій, прив’язаних до тредів. +- `threadBindings`: перевизначення на рівні каналу для маршрутизації та життєвого циклу сеансів, прив’язаних до гілок. - `startupVerification`: режим автоматичного запиту на самоверифікацію під час запуску (`if-unverified`, `off`). - `startupVerificationCooldownHours`: cooldown перед повторною спробою автоматичних запитів на верифікацію під час запуску. -- `textChunkLimit`: розмір chunk для вихідних повідомлень. +- `textChunkLimit`: розмір фрагмента вихідного повідомлення. - `chunkMode`: `length` або `newline`. - `responsePrefix`: необов’язковий префікс повідомлення для вихідних відповідей. - `ackReaction`: необов’язкове перевизначення ack reaction для цього каналу/облікового запису. - `ackReactionScope`: необов’язкове перевизначення області ack reaction (`group-mentions`, `group-all`, `direct`, `all`, `none`, `off`). - `reactionNotifications`: режим вхідних сповіщень про реакції (`own`, `off`). -- `mediaMaxMb`: обмеження розміру медіа в МБ для обробки медіа в Matrix. Воно застосовується до вихідних надсилань і обробки вхідних медіа. +- `mediaMaxMb`: обмеження розміру медіа в MB для обробки медіа в Matrix. Застосовується до вихідних надсилань і обробки вхідних медіа. - `autoJoin`: політика автоматичного приєднання за запрошенням (`always`, `allowlist`, `off`). За замовчуванням: `off`. -- `autoJoinAllowlist`: кімнати/псевдоніми, дозволені, коли `autoJoin` має значення `allowlist`. Записи псевдонімів розв’язуються в ID кімнат під час обробки запрошення; OpenClaw не довіряє стану псевдоніма, заявленому запрошеною кімнатою. +- `autoJoinAllowlist`: кімнати/псевдоніми, дозволені, коли `autoJoin` дорівнює `allowlist`. Записи псевдонімів визначаються до ID кімнат під час обробки запрошень; OpenClaw не довіряє стану псевдоніма, заявленому запрошеною кімнатою. - `dm`: блок політики DM (`enabled`, `policy`, `allowFrom`, `sessionScope`, `threadReplies`). -- Записи `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` уже визначає схвалювачів. +- Записи `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` уже визначає погоджувачів. - `execApprovals.target`: `dm | channel | both` (за замовчуванням: `dm`). -- `accounts`: іменовані перевизначення для кожного облікового запису. Значення верхнього рівня `channels.matrix` діють як значення за замовчуванням для цих записів. -- `groups`: карта політик для кожної кімнати. Надавайте перевагу ID кімнат або псевдонімам; нерозв’язані назви кімнат ігноруються в runtime. Ідентичність сесії/групи використовує стабільний ID кімнати після розв’язання, тоді як зрозумілі людині мітки, як і раніше, походять із назв кімнат. +- `accounts`: іменовані перевизначення для окремих облікових записів. Верхньорівневі значення `channels.matrix` діють як значення за замовчуванням для цих записів. +- `groups`: мапа політик для кімнат. Віддавайте перевагу ID кімнат або псевдонімам; невизначені назви кімнат ігноруються в runtime. Ідентичність сеансу/групи після визначення використовує стабільний ID кімнати, тоді як читабельні мітки все ще походять із назв кімнат. - `groups..account`: обмежити один успадкований запис кімнати конкретним обліковим записом Matrix у конфігураціях із кількома обліковими записами. -- `groups..allowBots`: перевизначення на рівні кімнати для відправників-налаштованих-ботів (`true` або `"mentions"`). +- `groups..allowBots`: перевизначення на рівні кімнати для відправників-налаштованих ботів (`true` або `"mentions"`). - `groups..users`: allowlist відправників для кімнати. - `groups..tools`: перевизначення allow/deny інструментів для кімнати. -- `groups..autoReply`: перевизначення обмеження згадуваннями на рівні кімнати. `true` вимикає вимоги до згадувань для цієї кімнати; `false` примусово вмикає їх знову. +- `groups..autoReply`: перевизначення mention-gating на рівні кімнати. `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`). ## Пов’язане - [Огляд каналів](/uk/channels) — усі підтримувані канали -- [Pairing](/uk/channels/pairing) — автентифікація DM і сценарій pairing -- [Групи](/uk/channels/groups) — поведінка групового чату та обмеження за згадуваннями -- [Маршрутизація каналів](/uk/channels/channel-routing) — маршрутизація сесій для повідомлень -- [Безпека](/uk/gateway/security) — модель доступу та посилення захисту +- [Pairing](/uk/channels/pairing) — автентифікація DM і процес pairing +- [Групи](/uk/channels/groups) — поведінка групового чату та mention gating +- [Маршрутизація каналів](/uk/channels/channel-routing) — маршрутизація сеансів для повідомлень +- [Безпека](/uk/gateway/security) — модель доступу й посилення захисту