chore(i18n): refresh uk translations
This commit is contained in:
parent
6ec6309792
commit
0320fcd39a
@ -5,53 +5,53 @@ read_when:
|
||||
summary: Статус підтримки Matrix, налаштування та приклади конфігурації
|
||||
title: Matrix
|
||||
x-i18n:
|
||||
generated_at: "2026-04-24T03:41:28Z"
|
||||
generated_at: "2026-04-24T22:02:29Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: bf25a6f64ed310f33b72517ccd1526876e27caae240e9fa837a86ca2c392ab25
|
||||
source_hash: 9e764c837f34131f20d1e912c059ffdce61421227a44b7f91faa624a6f878ed2
|
||||
source_path: channels/matrix.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
Matrix — це вбудований channel Plugin для OpenClaw.
|
||||
Matrix — це вбудований plugin каналу для OpenClaw.
|
||||
Він використовує офіційний `matrix-js-sdk` і підтримує DM, кімнати, треди, медіа, реакції, опитування, геолокацію та E2EE.
|
||||
|
||||
## Вбудований Plugin
|
||||
## Вбудований plugin
|
||||
|
||||
Matrix постачається як вбудований Plugin у поточних релізах 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) щодо поведінки Plugin і правил встановлення.
|
||||
Див. [Plugins](/uk/tools/plugin) щодо поведінки plugin та правил встановлення.
|
||||
|
||||
## Налаштування
|
||||
|
||||
1. Переконайтеся, що Plugin Matrix доступний.
|
||||
- Поточні пакетні релізи OpenClaw уже містять його в комплекті.
|
||||
- У старіших/користувацьких встановленнях його можна додати вручну за допомогою наведених вище команд.
|
||||
2. Створіть обліковий запис Matrix на своєму homeserver.
|
||||
3. Налаштуйте `channels.matrix`, використовуючи один із варіантів:
|
||||
1. Переконайтеся, що plugin Matrix доступний.
|
||||
- Поточні пакетовані релізи OpenClaw уже містять його.
|
||||
- У старіших/власних встановленнях його можна додати вручну командами вище.
|
||||
2. Створіть обліковий запис Matrix на вашому homeserver.
|
||||
3. Налаштуйте `channels.matrix` одним із варіантів:
|
||||
- `homeserver` + `accessToken`, або
|
||||
- `homeserver` + `userId` + `password`.
|
||||
4. Перезапустіть Gateway.
|
||||
5. Почніть DM із ботом або запросіть його до кімнати.
|
||||
- Нові запрошення Matrix працюють лише тоді, коли `channels.matrix.autoJoin` це дозволяє.
|
||||
- Нові запрошення Matrix працюють лише тоді, коли це дозволяє `channels.matrix.autoJoin`.
|
||||
|
||||
Інтерактивні шляхи налаштування:
|
||||
Шляхи інтерактивного налаштування:
|
||||
|
||||
```bash
|
||||
openclaw channels add
|
||||
@ -61,25 +61,25 @@ openclaw configure --section channels
|
||||
Майстер Matrix запитує:
|
||||
|
||||
- URL homeserver
|
||||
- метод автентифікації: access token або пароль
|
||||
- метод автентифікації: токен доступу або пароль
|
||||
- ID користувача (лише для автентифікації паролем)
|
||||
- необов’язкову назву пристрою
|
||||
- чи вмикати E2EE
|
||||
- чи налаштовувати доступ до кімнат і автоприєднання за запрошенням
|
||||
- чи налаштовувати доступ до кімнат і автоматичне приєднання за запрошенням
|
||||
|
||||
Ключові особливості майстра:
|
||||
|
||||
- Якщо змінні середовища автентифікації Matrix уже існують і для цього облікового запису автентифікацію ще не збережено в конфігурації, майстер пропонує скорочений варіант із використанням env, щоб зберегти автентифікацію в змінних середовища.
|
||||
- Якщо змінні середовища автентифікації Matrix уже існують і для цього облікового запису ще не збережено автентифікацію в конфігурації, майстер запропонує скорочений варіант із env для збереження автентифікації в змінних середовища.
|
||||
- Назви облікових записів нормалізуються до ID облікового запису. Наприклад, `Ops Bot` стає `ops-bot`.
|
||||
- Записи allowlist для DM приймають `@user:server` напряму; відображувані імена працюють лише тоді, коли живий пошук у каталозі знаходить один точний збіг.
|
||||
- Записи allowlist для кімнат приймають ID кімнат і псевдоніми напряму. Віддавайте перевагу `!room:server` або `#alias:server`; нерозв’язані назви ігноруються під час виконання механізмом розв’язання allowlist.
|
||||
- У режимі allowlist для invite auto-join використовуйте лише стабільні цілі запрошень: `!roomId:server`, `#alias:server` або `*`. Звичайні назви кімнат відхиляються.
|
||||
- Записи allowlist для DM напряму приймають `@user:server`; відображувані імена працюють лише тоді, коли живий пошук у каталозі знаходить одну точну відповідність.
|
||||
- Записи allowlist для кімнат напряму приймають ID кімнат і псевдоніми. Надавайте перевагу `!room:server` або `#alias:server`; нерозв’язані назви ігноруються під час виконання механізмом розв’язання allowlist.
|
||||
- У режимі allowlist для авто-приєднання за запрошенням використовуйте лише стабільні цілі запрошень: `!roomId:server`, `#alias:server` або `*`. Звичайні назви кімнат відхиляються.
|
||||
- Щоб розв’язати назви кімнат перед збереженням, використайте `openclaw channels resolve --channel matrix "Project Room"`.
|
||||
|
||||
<Warning>
|
||||
`channels.matrix.autoJoin` типово має значення `off`.
|
||||
|
||||
Якщо залишити його невказаним, бот не приєднуватиметься до запрошених кімнат або нових запрошень у стилі DM, тож він не з’являтиметься в нових групах або запрошених DM, якщо ви спочатку не приєднаєтеся вручну.
|
||||
Якщо залишити його не заданим, бот не приєднуватиметься до запрошених кімнат або нових запрошень у стилі DM, тому він не з’являтиметься в нових групах чи запрошених DM, якщо ви спершу не приєднаєте його вручну.
|
||||
|
||||
Установіть `autoJoin: "allowlist"` разом із `autoJoinAllowlist`, щоб обмежити, які запрошення він приймає, або встановіть `autoJoin: "always"`, якщо хочете, щоб він приєднувався до кожного запрошення.
|
||||
|
||||
@ -149,7 +149,7 @@ openclaw configure --section channels
|
||||
|
||||
Matrix зберігає кешовані облікові дані в `~/.openclaw/credentials/matrix/`.
|
||||
Обліковий запис за замовчуванням використовує `credentials.json`; іменовані облікові записи використовують `credentials-<account>.json`.
|
||||
Коли там існують кешовані облікові дані, OpenClaw вважає Matrix налаштованим для налаштування, doctor і виявлення channel-status, навіть якщо поточна автентифікація не задана безпосередньо в конфігурації.
|
||||
Коли там існують кешовані облікові дані, OpenClaw вважає Matrix налаштованим для майстра налаштування, doctor і виявлення статусу каналу, навіть якщо поточну автентифікацію не задано безпосередньо в конфігурації.
|
||||
|
||||
Еквіваленти змінних середовища (використовуються, коли ключ конфігурації не задано):
|
||||
|
||||
@ -160,7 +160,7 @@ Matrix зберігає кешовані облікові дані в `~/.opencl
|
||||
- `MATRIX_DEVICE_ID`
|
||||
- `MATRIX_DEVICE_NAME`
|
||||
|
||||
Для облікових записів не за замовчуванням використовуйте змінні середовища з областю дії облікового запису:
|
||||
Для облікових записів, відмінних від типового, використовуйте змінні середовища з областю облікового запису:
|
||||
|
||||
- `MATRIX_<ACCOUNT_ID>_HOMESERVER`
|
||||
- `MATRIX_<ACCOUNT_ID>_ACCESS_TOKEN`
|
||||
@ -180,9 +180,9 @@ Matrix зберігає кешовані облікові дані в `~/.opencl
|
||||
- `MATRIX_OPS_X2D_BOT_ACCESS_TOKEN`
|
||||
|
||||
Matrix екранує розділові знаки в ID облікових записів, щоб уникнути колізій у змінних середовища з областю дії.
|
||||
Наприклад, `-` перетворюється на `_X2D_`, тому `ops-prod` мапиться на `MATRIX_OPS_X2D_PROD_*`.
|
||||
Наприклад, `-` перетворюється на `_X2D_`, тож `ops-prod` мапується на `MATRIX_OPS_X2D_PROD_*`.
|
||||
|
||||
Інтерактивний майстер пропонує скорочений варіант зі змінними середовища лише тоді, коли ці env-змінні автентифікації вже присутні, а для вибраного облікового запису автентифікацію Matrix ще не збережено в конфігурації.
|
||||
Інтерактивний майстер пропонує скорочений варіант через env vars лише тоді, коли ці змінні середовища автентифікації вже присутні і для вибраного облікового запису ще не збережено автентифікацію Matrix у конфігурації.
|
||||
|
||||
`MATRIX_HOMESERVER` не можна задавати з робочого `.env`; див. [Файли `.env` робочого простору](/uk/gateway/security).
|
||||
|
||||
@ -223,17 +223,17 @@ Matrix екранує розділові знаки в ID облікових з
|
||||
}
|
||||
```
|
||||
|
||||
`autoJoin` застосовується до всіх запрошень Matrix, включно із запрошеннями у стилі DM. OpenClaw не може надійно
|
||||
`autoJoin` застосовується до всіх запрошень Matrix, зокрема до запрошень у стилі DM. OpenClaw не може надійно
|
||||
класифікувати запрошену кімнату як DM або групу на момент запрошення, тому всі запрошення спочатку проходять через `autoJoin`.
|
||||
`dm.policy` застосовується після того, як бот уже приєднався, а кімнату класифіковано як DM.
|
||||
`dm.policy` застосовується після того, як бот приєднався і кімнату класифіковано як DM.
|
||||
|
||||
## Попередній перегляд потокових відповідей
|
||||
|
||||
Потокове передавання відповідей Matrix вмикається лише за бажанням.
|
||||
Потокові відповіді Matrix для reply вмикаються явно.
|
||||
|
||||
Установіть `channels.matrix.streaming` у `"partial"`, якщо хочете, щоб OpenClaw надсилав одну живу відповідь-попередній перегляд,
|
||||
редагував цей попередній перегляд на місці, поки модель генерує текст, а потім завершував його, коли
|
||||
відповідь буде готова:
|
||||
Установіть `channels.matrix.streaming` у значення `"partial"`, якщо хочете, щоб OpenClaw надсилав одну живу відповідь-попередній перегляд,
|
||||
редагував цей попередній перегляд на місці, поки модель генерує текст, а потім фіналізував його після
|
||||
завершення відповіді:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -245,30 +245,30 @@ Matrix екранує розділові знаки в ID облікових з
|
||||
}
|
||||
```
|
||||
|
||||
- `streaming: "off"` — це значення за замовчуванням. OpenClaw чекає на фінальну відповідь і надсилає її один раз.
|
||||
- `streaming: "partial"` створює одне редаговане повідомлення-попередній перегляд для поточного блоку відповіді асистента, використовуючи звичайні текстові повідомлення Matrix. Це зберігає застарілу поведінку Matrix зі сповіщенням за першим попереднім переглядом, тому стандартні клієнти можуть сповіщати про перший текст потокового попереднього перегляду, а не про завершений блок.
|
||||
- `streaming: "quiet"` створює одне редаговане тихе повідомлення-попередній перегляд для поточного блоку відповіді асистента. Використовуйте це лише тоді, коли ви також налаштували правила push для одержувачів для фіналізованих редагувань попереднього перегляду.
|
||||
- `blockStreaming: true` вмикає окремі повідомлення прогресу Matrix. Якщо ввімкнено потоковий попередній перегляд, Matrix зберігає живу чернетку для поточного блоку і залишає завершені блоки як окремі повідомлення.
|
||||
- Коли потоковий попередній перегляд увімкнено, а `blockStreaming` вимкнено, Matrix редагує живу чернетку на місці та фіналізує ту саму подію, коли блок або хід завершено.
|
||||
- Якщо попередній перегляд більше не поміщається в одну подію Matrix, OpenClaw зупиняє потоковий попередній перегляд і повертається до звичайної фінальної доставки.
|
||||
- Медіавідповіді, як і раніше, надсилають вкладення у звичайному режимі. Якщо застарілий попередній перегляд більше не можна безпечно перевикористати, OpenClaw редагує його перед надсиланням фінальної медіавідповіді.
|
||||
- Редагування попереднього перегляду потребують додаткових викликів API Matrix. Залишайте streaming вимкненим, якщо хочете максимально консервативну поведінку щодо rate limit.
|
||||
- `streaming: "off"` — це типове значення. OpenClaw чекає на фінальну відповідь і надсилає її один раз.
|
||||
- `streaming: "partial"` створює одне редаговане повідомлення попереднього перегляду для поточного блоку асистента, використовуючи звичайні текстові повідомлення Matrix. Це зберігає застарілу поведінку сповіщень Matrix із пріоритетом попереднього перегляду, тому стандартні клієнти можуть сповіщати про перший текст потокового попереднього перегляду, а не про завершений блок.
|
||||
- `streaming: "quiet"` створює одне редаговане тихе повідомлення-попередній перегляд для поточного блоку асистента. Використовуйте це лише тоді, коли також налаштуєте правила push для отримувачів для фіналізованих редагувань попереднього перегляду.
|
||||
- `blockStreaming: true` вмикає окремі повідомлення прогресу Matrix. Коли ввімкнено потоковий попередній перегляд, Matrix зберігає живу чернетку для поточного блоку та залишає завершені блоки як окремі повідомлення.
|
||||
- Коли попередній перегляд увімкнено, а `blockStreaming` вимкнено, Matrix редагує живу чернетку на місці та фіналізує ту саму подію після завершення блоку або ходу.
|
||||
- Якщо попередній перегляд більше не вміщується в одну подію Matrix, OpenClaw припиняє потоковий попередній перегляд і повертається до звичайної фінальної доставки.
|
||||
- Відповіді з медіа, як і раніше, надсилають вкладення у звичайний спосіб. Якщо застарілий попередній перегляд більше не можна безпечно повторно використати, OpenClaw редагує його перед надсиланням фінальної відповіді з медіа.
|
||||
- Редагування попереднього перегляду потребують додаткових викликів Matrix API. Залиште потоковий режим вимкненим, якщо хочете найконсервативнішу поведінку щодо обмеження частоти запитів.
|
||||
|
||||
`blockStreaming` сам по собі не вмикає попередні чернетки.
|
||||
Використовуйте `streaming: "partial"` або `streaming: "quiet"` для редагування попереднього перегляду; потім додавайте `blockStreaming: true`, лише якщо ви також хочете, щоб завершені блоки асистента залишалися видимими як окремі повідомлення прогресу.
|
||||
Використовуйте `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-правила для тихих фіналізованих попередніх переглядів
|
||||
|
||||
Тихий streaming (`streaming: "quiet"`) сповіщає одержувачів лише після фіналізації блоку або ходу — правило push для конкретного користувача має збігатися з маркером фіналізованого попереднього перегляду. Див. [Правила push Matrix для тихих попередніх переглядів](/uk/channels/matrix-push-rules) для повного налаштування (токен одержувача, перевірка pusher, встановлення правила, примітки для окремих homeserver).
|
||||
Тихий потоковий режим (`streaming: "quiet"`) сповіщає отримувачів лише після фіналізації блоку або ходу — правило push для кожного користувача має збігатися з маркером фіналізованого попереднього перегляду. Див. [Push-правила Matrix для тихих попередніх переглядів](/uk/channels/matrix-push-rules) для повного налаштування (токен отримувача, перевірка pusher, встановлення правил, примітки для кожного homeserver).
|
||||
|
||||
## Кімнати bot-to-bot
|
||||
|
||||
За замовчуванням повідомлення Matrix від інших налаштованих облікових записів OpenClaw Matrix ігноруються.
|
||||
Типово повідомлення Matrix від інших налаштованих облікових записів Matrix OpenClaw ігноруються.
|
||||
|
||||
Використовуйте `allowBots`, якщо ви навмисно хочете міжагентний трафік Matrix:
|
||||
|
||||
@ -287,17 +287,17 @@ Matrix екранує розділові знаки в ID облікових з
|
||||
}
|
||||
```
|
||||
|
||||
- `allowBots: true` приймає повідомлення від інших налаштованих облікових записів Matrix-ботів у дозволених кімнатах і DM.
|
||||
- `allowBots: "mentions"` приймає ці повідомлення лише тоді, коли вони явно згадують цього бота в кімнатах. DM усе одно дозволені.
|
||||
- `allowBots: true` приймає повідомлення від інших налаштованих облікових записів ботів Matrix у дозволених кімнатах і DM.
|
||||
- `allowBots: "mentions"` приймає такі повідомлення лише тоді, коли вони явно згадують цього бота в кімнатах. DM усе одно дозволені.
|
||||
- `groups.<room>.allowBots` перевизначає налаштування рівня облікового запису для однієї кімнати.
|
||||
- OpenClaw усе одно ігнорує повідомлення від того самого ID користувача Matrix, щоб уникнути циклів самовідповідей.
|
||||
- Matrix тут не надає вбудованого прапорця бота; OpenClaw трактує «створене ботом» як «надіслане іншим налаштованим обліковим записом Matrix на цьому Gateway OpenClaw».
|
||||
- OpenClaw, як і раніше, ігнорує повідомлення від того самого ID користувача Matrix, щоб уникнути циклів самовідповіді.
|
||||
- Тут Matrix не надає нативного прапорця бота; OpenClaw трактує «створено ботом» як «надіслано іншим налаштованим обліковим записом Matrix на цьому Gateway OpenClaw».
|
||||
|
||||
Використовуйте суворі allowlist кімнат і вимоги до згадування, коли вмикаєте bot-to-bot трафік у спільних кімнатах.
|
||||
Під час увімкнення трафіку bot-to-bot у спільних кімнатах використовуйте суворі allowlist кімнат і вимоги щодо згадування.
|
||||
|
||||
## Шифрування та верифікація
|
||||
|
||||
У зашифрованих кімнатах (E2EE) вихідні події зображень використовують `thumbnail_file`, тож попередній перегляд зображень шифрується разом із повним вкладенням. Незашифровані кімнати, як і раніше, використовують звичайний `thumbnail_url`. Конфігурація не потрібна — Plugin автоматично визначає стан E2EE.
|
||||
У зашифрованих (E2EE) кімнатах вихідні події зображень використовують `thumbnail_file`, тож попередній перегляд зображень шифрується разом із повним вкладенням. У незашифрованих кімнатах, як і раніше, використовується звичайний `thumbnail_url`. Ніякої конфігурації не потрібно — plugin автоматично визначає стан E2EE.
|
||||
|
||||
Увімкнути шифрування:
|
||||
|
||||
@ -315,22 +315,133 @@ Matrix екранує розділові знаки в ID облікових з
|
||||
}
|
||||
```
|
||||
|
||||
Команди верифікації (усі підтримують `--verbose` для діагностики та `--json` для машиночитаного виводу):
|
||||
Команди верифікації (усі приймають `--verbose` для діагностики та `--json` для машинозчитуваного виводу):
|
||||
|
||||
| Команда | Призначення |
|
||||
| -------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
|
||||
| `openclaw matrix verify status` | Перевірити стан cross-signing і верифікації пристрою |
|
||||
| `openclaw matrix verify status --include-recovery-key --json` | Включити збережений recovery key |
|
||||
| `openclaw matrix verify bootstrap` | Ініціалізувати cross-signing і верифікацію (див. нижче) |
|
||||
| `openclaw matrix verify bootstrap --force-reset-cross-signing` | Відкинути поточну identity cross-signing і створити нову |
|
||||
| `openclaw matrix verify device "<recovery-key>"` | Верифікувати цей пристрій за допомогою recovery key |
|
||||
| `openclaw matrix verify backup status` | Перевірити стан резервної копії room-key |
|
||||
| `openclaw matrix verify backup restore` | Відновити ключі кімнат із серверної резервної копії |
|
||||
| `openclaw matrix verify backup reset --yes` | Видалити поточну резервну копію та створити нову базову точку (може відтворити secret storage) |
|
||||
```bash
|
||||
openclaw matrix verify status
|
||||
```
|
||||
|
||||
У конфігураціях із кількома обліковими записами Matrix CLI-команди використовують неявний обліковий запис Matrix за замовчуванням, якщо ви не передасте `--account <id>`.
|
||||
Якщо ви налаштували кілька іменованих облікових записів, спочатку задайте `channels.matrix.defaultAccount`, інакше такі неявні CLI-операції зупинятимуться і проситимуть вас явно вибрати обліковий запис.
|
||||
Використовуйте `--account`, коли хочете, щоб операції верифікації або роботи з пристроями явно були спрямовані на іменований обліковий запис:
|
||||
Докладний статус (повна діагностика):
|
||||
|
||||
```bash
|
||||
openclaw matrix verify status --verbose
|
||||
```
|
||||
|
||||
Включити збережений ключ відновлення в машинозчитуваний вивід:
|
||||
|
||||
```bash
|
||||
openclaw matrix verify status --include-recovery-key --json
|
||||
```
|
||||
|
||||
Ініціалізувати стан cross-signing і верифікації:
|
||||
|
||||
```bash
|
||||
openclaw matrix verify bootstrap
|
||||
```
|
||||
|
||||
Докладна діагностика bootstrap:
|
||||
|
||||
```bash
|
||||
openclaw matrix verify bootstrap --verbose
|
||||
```
|
||||
|
||||
Примусово скинути ідентичність cross-signing перед bootstrap:
|
||||
|
||||
```bash
|
||||
openclaw matrix verify bootstrap --force-reset-cross-signing
|
||||
```
|
||||
|
||||
Верифікувати цей пристрій за допомогою ключа відновлення:
|
||||
|
||||
```bash
|
||||
openclaw matrix verify device "<your-recovery-key>"
|
||||
```
|
||||
|
||||
Ця команда повідомляє про три окремі стани:
|
||||
|
||||
- `Recovery key accepted`: Matrix прийняв ключ відновлення для секретного сховища або довіри до пристрою.
|
||||
- `Backup usable`: резервну копію ключів кімнати можна завантажити за допомогою довіреного матеріалу відновлення.
|
||||
- `Device verified by owner`: поточний пристрій OpenClaw має повну довіру до ідентичності Matrix cross-signing.
|
||||
|
||||
`Signed by owner` у докладному або JSON-виводі — лише діагностичний показник. OpenClaw не
|
||||
вважає цього достатнім, якщо `Cross-signing verified` також не має значення `yes`.
|
||||
|
||||
Команда все одно завершується з ненульовим кодом, коли повна довіра до ідентичності Matrix ще не завершена,
|
||||
навіть якщо ключ відновлення може розблокувати матеріал резервної копії. У такому разі завершіть
|
||||
самоверифікацію з іншого клієнта Matrix:
|
||||
|
||||
```bash
|
||||
openclaw matrix verify self
|
||||
```
|
||||
|
||||
Прийміть запит в іншому клієнті Matrix, порівняйте SAS emoji або десяткові числа
|
||||
і вводьте `yes` лише тоді, коли вони збігаються. Команда чекає, доки Matrix не повідомить
|
||||
`Cross-signing verified: yes`, перш ніж завершитися успішно.
|
||||
|
||||
Використовуйте `verify bootstrap --force-reset-cross-signing` лише тоді, коли ви навмисно
|
||||
хочете замінити поточну ідентичність cross-signing.
|
||||
|
||||
Докладні відомості про верифікацію пристрою:
|
||||
|
||||
```bash
|
||||
openclaw matrix verify device "<your-recovery-key>" --verbose
|
||||
```
|
||||
|
||||
Перевірити стан резервної копії ключів кімнати:
|
||||
|
||||
```bash
|
||||
openclaw matrix verify backup status
|
||||
```
|
||||
|
||||
Докладна діагностика стану резервної копії:
|
||||
|
||||
```bash
|
||||
openclaw matrix verify backup status --verbose
|
||||
```
|
||||
|
||||
Відновити ключі кімнат із серверної резервної копії:
|
||||
|
||||
```bash
|
||||
openclaw matrix verify backup restore
|
||||
```
|
||||
|
||||
Інтерактивний процес самоверифікації:
|
||||
|
||||
```bash
|
||||
openclaw matrix verify self
|
||||
```
|
||||
|
||||
Для нижчорівневих або вхідних запитів на верифікацію використовуйте:
|
||||
|
||||
```bash
|
||||
openclaw matrix verify accept <id>
|
||||
openclaw matrix verify start <id>
|
||||
openclaw matrix verify sas <id>
|
||||
openclaw matrix verify confirm-sas <id>
|
||||
```
|
||||
|
||||
Використовуйте `openclaw matrix verify cancel <id>`, щоб скасувати запит.
|
||||
|
||||
Докладна діагностика відновлення:
|
||||
|
||||
```bash
|
||||
openclaw matrix verify backup restore --verbose
|
||||
```
|
||||
|
||||
Видалити поточну серверну резервну копію та створити нову базову резервну копію. Якщо збережений
|
||||
ключ резервної копії неможливо коректно завантажити, це скидання також може заново створити секретне сховище, щоб
|
||||
майбутні холодні старти могли завантажувати новий ключ резервної копії:
|
||||
|
||||
```bash
|
||||
openclaw matrix verify backup reset --yes
|
||||
```
|
||||
|
||||
Усі команди `verify` типово є стислими (зокрема з тихим внутрішнім логуванням SDK) і показують докладну діагностику лише з `--verbose`.
|
||||
Використовуйте `--json` для повного машинозчитуваного виводу під час написання скриптів.
|
||||
|
||||
У конфігураціях із кількома обліковими записами команди Matrix CLI використовують неявний типовий обліковий запис Matrix, якщо ви не передасте `--account <id>`.
|
||||
Якщо ви налаштували кілька іменованих облікових записів, спочатку встановіть `channels.matrix.defaultAccount`, інакше ці неявні операції CLI зупиняться та попросять вас явно вибрати обліковий запис.
|
||||
Використовуйте `--account`, коли хочете, щоб операції верифікації або пристроїв були явно націлені на іменований обліковий запис:
|
||||
|
||||
```bash
|
||||
openclaw matrix verify status --account assistant
|
||||
@ -338,34 +449,36 @@ openclaw matrix verify backup restore --account assistant
|
||||
openclaw matrix devices list --account assistant
|
||||
```
|
||||
|
||||
Коли шифрування вимкнене або недоступне для іменованого облікового запису, попередження Matrix і помилки верифікації вказують на ключ конфігурації цього облікового запису, наприклад `channels.matrix.accounts.assistant.encryption`.
|
||||
Коли шифрування вимкнено або недоступне для іменованого облікового запису, попередження Matrix і помилки верифікації вказують на ключ конфігурації цього облікового запису, наприклад `channels.matrix.accounts.assistant.encryption`.
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Що означає verified">
|
||||
OpenClaw вважає пристрій verified лише тоді, коли його підписує ваша власна identity cross-signing. `verify status --verbose` показує три сигнали довіри:
|
||||
OpenClaw вважає пристрій verified лише тоді, коли його підписує ваша власна ідентичність cross-signing. `verify status --verbose` показує три сигнали довіри:
|
||||
|
||||
- `Locally trusted`: довірений лише цим клієнтом
|
||||
- `Cross-signing verified`: SDK повідомляє про верифікацію через cross-signing
|
||||
- `Signed by owner`: підписаний вашим власним self-signing key
|
||||
|
||||
`Verified by owner` стає `yes` лише тоді, коли присутній cross-signing або owner-signing. Лише локальної довіри недостатньо.
|
||||
`Verified by owner` стає `yes` лише тоді, коли присутня верифікація cross-signing.
|
||||
Локальної довіри або самого лише підпису власника недостатньо, щоб OpenClaw вважав
|
||||
пристрій повністю verified.
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Що робить bootstrap">
|
||||
`verify bootstrap` — це команда ремонту й налаштування для зашифрованих облікових записів. По черзі вона:
|
||||
`verify bootstrap` — це команда відновлення та налаштування для зашифрованих облікових записів. По черзі вона:
|
||||
|
||||
- ініціалізує secret storage, повторно використовуючи наявний recovery key, коли це можливо
|
||||
- ініціалізує секретне сховище, повторно використовуючи наявний ключ відновлення, коли це можливо
|
||||
- ініціалізує cross-signing і вивантажує відсутні публічні ключі cross-signing
|
||||
- позначає і підписує cross-signing для поточного пристрою
|
||||
- створює серверну резервну копію room-key, якщо вона ще не існує
|
||||
- позначає та підписує cross-signing поточний пристрій
|
||||
- створює серверну резервну копію ключів кімнати, якщо вона ще не існує
|
||||
|
||||
Якщо homeserver вимагає UIA для вивантаження ключів cross-signing, OpenClaw спочатку пробує без автентифікації, потім `m.login.dummy`, потім `m.login.password` (потребує `channels.matrix.password`). Використовуйте `--force-reset-cross-signing` лише тоді, коли свідомо відкидаєте поточну identity.
|
||||
Якщо homeserver вимагає UIA для вивантаження ключів cross-signing, OpenClaw спочатку пробує без автентифікації, потім `m.login.dummy`, потім `m.login.password` (потрібен `channels.matrix.password`). Використовуйте `--force-reset-cross-signing` лише тоді, коли навмисно відкидаєте поточну ідентичність.
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Нова базова точка резервної копії">
|
||||
Якщо ви хочете зберегти працездатність майбутніх зашифрованих повідомлень і погоджуєтеся втратити невідновлювану стару історію:
|
||||
<Accordion title="Нова базова резервна копія">
|
||||
Якщо ви хочете зберегти працездатність майбутніх зашифрованих повідомлень і погоджуєтеся втратити невідновну стару історію:
|
||||
|
||||
```bash
|
||||
openclaw matrix verify backup reset --yes
|
||||
@ -373,30 +486,30 @@ openclaw matrix verify backup status --verbose
|
||||
openclaw matrix verify status
|
||||
```
|
||||
|
||||
Додайте `--account <id>`, щоб націлити команду на іменований обліковий запис. Це також може відтворити secret storage, якщо поточний секрет резервної копії неможливо безпечно завантажити.
|
||||
Додайте `--account <id>`, щоб націлити команду на іменований обліковий запис. Це також може заново створити секретне сховище, якщо поточний секрет резервної копії неможливо безпечно завантажити.
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Поведінка під час запуску">
|
||||
За `encryption: true` `startupVerification` типово має значення `"if-unverified"`. Під час запуску неверифікований пристрій запитує self-verification в іншому клієнті Matrix, пропускаючи дублікати й застосовуючи cooldown. Налаштовуйте через `startupVerificationCooldownHours` або вимкніть за допомогою `startupVerification: "off"`.
|
||||
За `encryption: true` значенням за замовчуванням для `startupVerification` є `"if-unverified"`. Під час запуску неперевірений пристрій запитує самоверифікацію в іншому клієнті Matrix, пропускаючи дублікати та застосовуючи затримку між повтореннями. Налаштуйте це через `startupVerificationCooldownHours` або вимкніть за допомогою `startupVerification: "off"`.
|
||||
|
||||
Під час запуску також виконується консервативний прохід crypto bootstrap, який повторно використовує поточні secret storage та identity cross-signing. Якщо стан bootstrap пошкоджений, OpenClaw намагається виконати захищене відновлення навіть без `channels.matrix.password`; якщо homeserver вимагає password UIA, під час запуску записується попередження, але це не вважається фатальною помилкою. Уже підписані owner-підписом пристрої зберігаються.
|
||||
Під час запуску також виконується консервативний прохід crypto bootstrap, який повторно використовує поточне секретне сховище та ідентичність cross-signing. Якщо стан bootstrap пошкоджено, OpenClaw намагається виконати захищене відновлення навіть без `channels.matrix.password`; якщо homeserver вимагає UIA із паролем, під час запуску записується попередження, але це не є фатальним. Пристрої, уже підписані власником, зберігаються.
|
||||
|
||||
Повний процес оновлення див. у [Міграція Matrix](/uk/install/migrating-matrix).
|
||||
Див. [Міграція Matrix](/uk/install/migrating-matrix) для повного процесу оновлення.
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Повідомлення про верифікацію">
|
||||
Matrix публікує повідомлення про життєвий цикл верифікації в сувору DM-кімнату верифікації як повідомлення `m.notice`: запит, готовність (із підказкою "Verify by emoji"), початок/завершення та деталі SAS (emoji/десяткові), коли вони доступні.
|
||||
<Accordion title="Сповіщення верифікації">
|
||||
Matrix публікує сповіщення про життєвий цикл верифікації в сувору DM-кімнату верифікації як повідомлення `m.notice`: запит, готовність (із підказкою «Verify by emoji»), початок/завершення та подробиці SAS (emoji/десяткові числа), коли вони доступні.
|
||||
|
||||
Вхідні запити від іншого клієнта Matrix відстежуються й автоматично приймаються. Для self-verification OpenClaw автоматично запускає SAS-процес і підтверджує свій бік, щойно стає доступною верифікація за emoji — вам усе одно потрібно порівняти й підтвердити "They match" у своєму клієнті Matrix.
|
||||
Вхідні запити з іншого клієнта Matrix відстежуються та автоматично приймаються. Для самоверифікації OpenClaw автоматично запускає SAS-процес і підтверджує свій бік, щойно стає доступною верифікація через emoji — вам усе одно потрібно порівняти та підтвердити «They match» у вашому клієнті Matrix.
|
||||
|
||||
Системні повідомлення верифікації не пересилаються в конвеєр чату агента.
|
||||
Системні сповіщення верифікації не пересилаються в конвеєр чату агента.
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Гігієна пристроїв">
|
||||
Старі пристрої під керуванням OpenClaw можуть накопичуватися. Перелічіть і очистьте:
|
||||
Старі пристрої під керуванням OpenClaw можуть накопичуватися. Перелік і очищення:
|
||||
|
||||
```bash
|
||||
openclaw matrix devices list
|
||||
@ -405,10 +518,10 @@ openclaw matrix devices prune-stale
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Crypto store">
|
||||
Matrix E2EE використовує офіційний crypto-шлях Rust із `matrix-js-sdk` із `fake-indexeddb` як shim для IndexedDB. Crypto-стан зберігається в `crypto-idb-snapshot.json` (із суворими правами доступу до файла).
|
||||
<Accordion title="Сховище crypto">
|
||||
Matrix E2EE використовує офіційний шлях Rust crypto з `matrix-js-sdk` із `fake-indexeddb` як shim для IndexedDB. Стан crypto зберігається в `crypto-idb-snapshot.json` (з обмежувальними правами доступу до файлу).
|
||||
|
||||
Зашифрований runtime-стан живе в `~/.openclaw/matrix/accounts/<account>/<homeserver>__<user>/<token-hash>/` і включає sync store, crypto store, recovery key, знімок IDB, прив’язки тредів і стан startup verification. Коли токен змінюється, але identity облікового запису лишається тією самою, OpenClaw повторно використовує найкращий наявний кореневий каталог, щоб попередній стан залишався видимим.
|
||||
Стан зашифрованого середовища виконання зберігається в `~/.openclaw/matrix/accounts/<account>/<homeserver>__<user>/<token-hash>/` і містить sync store, crypto store, ключ відновлення, знімок IDB, прив’язки тредів і стан startup verification. Коли токен змінюється, але ідентичність облікового запису залишається тією самою, OpenClaw повторно використовує найкращий наявний корінь, щоб попередній стан залишався видимим.
|
||||
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
@ -424,38 +537,38 @@ openclaw matrix profile set --avatar-url https://cdn.example.org/avatar.png
|
||||
|
||||
Додайте `--account <id>`, якщо хочете явно націлити команду на іменований обліковий запис 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 підтримує рідні треди Matrix як для автоматичних відповідей, так і для надсилань message-tool.
|
||||
Matrix підтримує нативні треди Matrix як для автоматичних відповідей, так і для надсилання message-tool.
|
||||
|
||||
- `dm.sessionScope: "per-user"` (типово) зберігає маршрутизацію Matrix DM прив’язаною до відправника, тому кілька DM-кімнат можуть ділити одну сесію, якщо вони розв’язуються до того самого peer.
|
||||
- `dm.sessionScope: "per-room"` ізолює кожну Matrix DM-кімнату у власний ключ сесії, при цьому все ще використовуючи звичайні перевірки автентифікації DM та allowlist.
|
||||
- Явні прив’язки розмов Matrix усе одно мають пріоритет над `dm.sessionScope`, тож прив’язані кімнати й треди зберігають свою вибрану цільову сесію.
|
||||
- `threadReplies: "off"` зберігає відповіді на верхньому рівні й залишає вхідні повідомлення з тредів у батьківській сесії.
|
||||
- `dm.sessionScope: "per-user"` (типово) зберігає маршрутизацію Matrix DM в області відправника, тому кілька DM-кімнат можуть ділити один сеанс, коли вони розв’язуються до того самого співрозмовника.
|
||||
- `dm.sessionScope: "per-room"` ізолює кожну Matrix DM-кімнату у власний ключ сеансу, водночас використовуючи звичайну автентифікацію DM і перевірки allowlist.
|
||||
- Явні прив’язки розмов Matrix, як і раніше, мають пріоритет над `dm.sessionScope`, тож прив’язані кімнати й треди зберігають вибраний цільовий сеанс.
|
||||
- `threadReplies: "off"` зберігає відповіді на верхньому рівні та залишає вхідні тредові повідомлення в батьківському сеансі.
|
||||
- `threadReplies: "inbound"` відповідає всередині треду лише тоді, коли вхідне повідомлення вже було в цьому треді.
|
||||
- `threadReplies: "always"` зберігає відповіді в кімнаті в треді, коренем якого є повідомлення-тригер, і маршрутизує цю розмову через відповідну сесію з областю дії треду від першого повідомлення-тригера.
|
||||
- `threadReplies: "always"` зберігає відповіді кімнати в треді з коренем у повідомленні-тригері та маршрутизує цю розмову через відповідний сеанс в області треду від першого повідомлення-тригера.
|
||||
- `dm.threadReplies` перевизначає налаштування верхнього рівня лише для DM. Наприклад, ви можете ізолювати треди кімнат, залишивши DM пласкими.
|
||||
- Вхідні повідомлення з тредів включають кореневе повідомлення треду як додатковий контекст агента.
|
||||
- Надсилання message-tool автоматично успадковують поточний тред Matrix, коли ціллю є та сама кімната або той самий цільовий користувач DM, якщо явно не задано `threadId`.
|
||||
- Повторне використання цілі DM-користувача в тій самій сесії спрацьовує лише тоді, коли метадані поточної сесії підтверджують того самого peer 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 натомість прив’язує цей поточний тред.
|
||||
- Вхідні тредові повідомлення включають кореневе повідомлення треду як додатковий контекст агента.
|
||||
- Надсилання message-tool автоматично успадковують поточний тред Matrix, коли ціллю є та сама кімната або той самий користувацький DM-таргет, якщо не вказано явний `threadId`.
|
||||
- Повторне використання DM-цілі того самого сеансу спрацьовує лише тоді, коли метадані поточного сеансу підтверджують того самого DM-співрозмовника в тому самому обліковому записі Matrix; інакше OpenClaw повертається до звичайної маршрутизації в області користувача.
|
||||
- Коли OpenClaw бачить, що Matrix DM-кімната конфліктує з іншою DM-кімнатою в тому самому спільному Matrix DM-сеансі, він публікує одноразове `m.notice` у цій кімнаті з аварійним варіантом `/focus`, коли ввімкнено прив’язки тредів і підказку `dm.sessionScope`.
|
||||
- Matrix підтримує прив’язки тредів під час виконання. `/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age` і прив’язаний до треду `/acp spawn` працюють у кімнатах Matrix і DM.
|
||||
- `/focus` верхнього рівня в Matrix room/DM створює новий тред 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-сесії.
|
||||
- Запустіть `/acp spawn codex --bind here` всередині Matrix DM, кімнати або наявного треду, який хочете й далі використовувати.
|
||||
- У Matrix DM або кімнаті верхнього рівня поточний DM/кімната залишається поверхнею чату, а майбутні повідомлення маршрутизуються до створеного ACP-сеансу.
|
||||
- Усередині наявного треду Matrix `--bind here` прив’язує цей поточний тред на місці.
|
||||
- `/new` і `/reset` скидають ту саму прив’язану ACP-сесію на місці.
|
||||
- `/acp close` закриває ACP-сесію і видаляє прив’язку.
|
||||
- `/new` і `/reset` скидають той самий прив’язаний ACP-сеанс на місці.
|
||||
- `/acp close` закриває ACP-сеанс і видаляє прив’язку.
|
||||
|
||||
Примітки:
|
||||
|
||||
@ -464,7 +577,7 @@ Matrix підтримує рідні треди Matrix як для автома
|
||||
|
||||
### Конфігурація прив’язки тредів
|
||||
|
||||
Matrix успадковує глобальні значення за замовчуванням із `session.threadBindings`, а також підтримує перевизначення для окремого channel:
|
||||
Matrix успадковує глобальні значення за замовчуванням із `session.threadBindings`, а також підтримує перевизначення для каналу:
|
||||
|
||||
- `threadBindings.enabled`
|
||||
- `threadBindings.idleHours`
|
||||
@ -472,29 +585,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 підтримує вихідні дії реакцій, вхідні сповіщення про реакції та вхідні ack-реакції.
|
||||
|
||||
- Інструменти вихідних реакцій контролюються `channels["matrix"].actions.reactions`.
|
||||
- Інструментарій вихідних реакцій контролюється `channels["matrix"].actions.reactions`.
|
||||
- `react` додає реакцію до конкретної події Matrix.
|
||||
- `reactions` перелічує поточний підсумок реакцій для конкретної події Matrix.
|
||||
- `reactions` показує поточне зведення реакцій для конкретної події Matrix.
|
||||
- `emoji=""` видаляє власні реакції облікового запису бота на цій події.
|
||||
- `remove: true` видаляє лише вказану emoji-реакцію з облікового запису бота.
|
||||
- `remove: true` видаляє лише вказану emoji-реакцію від облікового запису бота.
|
||||
|
||||
Область дії ack-реакції визначається в такому порядку:
|
||||
Область ack-реакцій визначається у стандартному порядку OpenClaw:
|
||||
|
||||
- `channels["matrix"].accounts.<accountId>.ackReaction`
|
||||
- `channels["matrix"].ackReaction`
|
||||
- `messages.ackReaction`
|
||||
- резервний emoji з identity агента
|
||||
- запасний варіант — emoji ідентичності агента
|
||||
|
||||
Область дії ack-реакцій визначається в такому порядку:
|
||||
Область дії ack-реакції визначається в такому порядку:
|
||||
|
||||
- `channels["matrix"].accounts.<accountId>.ackReactionScope`
|
||||
- `channels["matrix"].ackReactionScope`
|
||||
@ -508,27 +621,27 @@ Matrix підтримує вихідні дії реакцій, вхідні с
|
||||
|
||||
Поведінка:
|
||||
|
||||
- `reactionNotifications: "own"` пересилає додані події `m.reaction`, коли вони націлені на повідомлення Matrix, створені ботом.
|
||||
- `reactionNotifications: "own"` пересилає додані події `m.reaction`, коли вони націлені на створені ботом повідомлення Matrix.
|
||||
- `reactionNotifications: "off"` вимикає системні події реакцій.
|
||||
- Видалення реакцій не синтезуються в системні події, оскільки Matrix показує їх як редагування, а не як окремі видалення `m.reaction`.
|
||||
- Видалення реакцій не синтезуються в системні події, оскільки Matrix подає їх як редагування, а не як окремі видалення `m.reaction`.
|
||||
|
||||
## Контекст історії
|
||||
|
||||
- `channels.matrix.historyLimit` керує тим, скільки нещодавніх повідомлень кімнати включається як `InboundHistory`, коли повідомлення кімнати Matrix запускає агента. Використовує запасний варіант `messages.groupChat.historyLimit`; якщо обидва не задані, фактичне значення за замовчуванням — `0`. Установіть `0`, щоб вимкнути.
|
||||
- Історія кімнат Matrix — лише для кімнат. DM і далі використовують звичайну історію сесії.
|
||||
- Історія кімнат Matrix працює лише для повідомлень, що очікують: OpenClaw буферизує повідомлення кімнати, які ще не викликали відповідь, а потім робить знімок цього вікна, коли надходить згадка чи інший тригер.
|
||||
- Поточне повідомлення-тригер не включається в `InboundHistory`; для цього ходу воно лишається в основному вхідному тілі.
|
||||
- Повторні спроби для тієї самої події Matrix повторно використовують початковий знімок історії, а не зсуваються вперед до новіших повідомлень кімнати.
|
||||
- `channels.matrix.historyLimit` керує тим, скільки останніх повідомлень кімнати включається як `InboundHistory`, коли повідомлення кімнати Matrix запускає агента. Використовується запасний варіант `messages.groupChat.historyLimit`; якщо обидва не задані, ефективне значення за замовчуванням — `0`. Установіть `0`, щоб вимкнути.
|
||||
- Історія кімнати Matrix обмежується лише кімнатою. DM і надалі використовують звичайну історію сеансу.
|
||||
- Історія кімнати Matrix працює лише для очікуваних повідомлень: OpenClaw буферизує повідомлення кімнати, які ще не викликали відповідь, а потім фіксує це вікно, коли надходить згадка або інший тригер.
|
||||
- Поточне повідомлення-тригер не включається до `InboundHistory`; воно залишається в основному вхідному тілі для цього ходу.
|
||||
- Повторні спроби для тієї самої події Matrix повторно використовують початковий знімок історії замість зсуву вперед до новіших повідомлень кімнати.
|
||||
|
||||
## Видимість контексту
|
||||
|
||||
Matrix підтримує спільний елемент керування `contextVisibility` для додаткового контексту кімнати, такого як отриманий текст відповіді, корені тредів і історія, що очікує.
|
||||
Matrix підтримує спільний елемент керування `contextVisibility` для додаткового контексту кімнати, такого як отриманий текст відповіді, корені тредів і очікувана історія.
|
||||
|
||||
- `contextVisibility: "all"` — значення за замовчуванням. Додатковий контекст зберігається як отримано.
|
||||
- `contextVisibility: "all"` — це значення за замовчуванням. Додатковий контекст зберігається як отриманий.
|
||||
- `contextVisibility: "allowlist"` фільтрує додатковий контекст до відправників, дозволених активними перевірками allowlist кімнати/користувача.
|
||||
- `contextVisibility: "allowlist_quote"` поводиться як `allowlist`, але все одно зберігає одну явну цитовану відповідь.
|
||||
|
||||
Це налаштування впливає на видимість додаткового контексту, а не на те, чи може саме вхідне повідомлення викликати відповідь.
|
||||
Це налаштування впливає на видимість додаткового контексту, а не на те, чи може саме вхідне повідомлення запускати відповідь.
|
||||
Авторизація тригера, як і раніше, визначається через `groupPolicy`, `groups`, `groupAllowFrom` і налаштування політики DM.
|
||||
|
||||
## Політика DM і кімнат
|
||||
@ -554,7 +667,7 @@ Matrix підтримує спільний елемент керування `co
|
||||
}
|
||||
```
|
||||
|
||||
Див. [Groups](/uk/channels/groups) щодо gating згадок і поведінки allowlist.
|
||||
Див. [Групи](/uk/channels/groups) щодо gating за згадуванням і поведінки allowlist.
|
||||
|
||||
Приклад pairing для Matrix DM:
|
||||
|
||||
@ -563,79 +676,79 @@ openclaw pairing list matrix
|
||||
openclaw pairing approve matrix <CODE>
|
||||
```
|
||||
|
||||
Якщо неухвалений користувач Matrix продовжує писати вам до схвалення, OpenClaw повторно використовує той самий код pairing, що очікує, і може знову надіслати відповідь-нагадування після короткого cooldown, замість створення нового коду.
|
||||
Якщо непідтверджений користувач Matrix продовжує писати вам до схвалення, OpenClaw повторно використовує той самий очікуваний код pairing і може знову надіслати відповідь-нагадування після короткого cooldown, замість створення нового коду.
|
||||
|
||||
Див. [Pairing](/uk/channels/pairing) щодо спільного процесу pairing для DM і схеми зберігання.
|
||||
|
||||
## Виправлення direct room
|
||||
## Відновлення direct room
|
||||
|
||||
Якщо стан direct-message виходить із синхронізації, OpenClaw може отримати застарілі мапінги `m.direct`, які вказують на старі solo-кімнати замість активного 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
|
||||
```
|
||||
|
||||
Процес виправлення:
|
||||
Процес відновлення:
|
||||
|
||||
- віддає перевагу суворому DM 1:1, який уже відображений у `m.direct`
|
||||
- за його відсутності переходить до будь-якого поточного приєднаного суворого DM 1:1 із цим користувачем
|
||||
- створює нову direct room і переписує `m.direct`, якщо здорового DM не існує
|
||||
- надає перевагу строгому DM 1:1, який уже зіставлено в `m.direct`
|
||||
- інакше використовує будь-який поточний strict DM 1:1 із цим користувачем, до якого вже виконано приєднання
|
||||
- створює нову direct room і переписує `m.direct`, якщо справного DM не існує
|
||||
|
||||
Процес виправлення не видаляє старі кімнати автоматично. Він лише вибирає здоровий DM і оновлює мапінг, щоб нові надсилання Matrix, повідомлення верифікації та інші direct-message-потоки знову були спрямовані в правильну кімнату.
|
||||
Процес відновлення не видаляє старі кімнати автоматично. Він лише вибирає справний DM і оновлює зіставлення, щоб нові надсилання Matrix, сповіщення верифікації та інші direct-message-процеси знову націлювалися на правильну кімнату.
|
||||
|
||||
## Погодження exec
|
||||
## Схвалення exec
|
||||
|
||||
Matrix може виступати як нативний клієнт погодження для облікового запису Matrix. Нативні
|
||||
параметри маршрутизації DM/channel, як і раніше, живуть у конфігурації погодження exec:
|
||||
Matrix може діяти як нативний клієнт схвалення для облікового запису Matrix. Нативні
|
||||
параметри маршрутизації DM/каналу, як і раніше, розміщені в конфігурації схвалення exec:
|
||||
|
||||
- `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`
|
||||
|
||||
Особи, що погоджують, мають бути ID користувачів Matrix, наприклад `@owner:example.org`. Matrix автоматично вмикає нативні погодження, коли `enabled` не задано або дорівнює `"auto"` і можна розв’язати принаймні одного погоджувача. Погодження exec спершу використовують `execApprovals.approvers` і можуть використовувати запасний варіант `channels.matrix.dm.allowFrom`. Погодження Plugin авторизуються через `channels.matrix.dm.allowFrom`. Установіть `enabled: false`, щоб явно вимкнути Matrix як нативний клієнт погодження. Інакше запити на погодження використовують запасний маршрут до інших налаштованих шляхів погодження або політики резервного погодження.
|
||||
Особи, що схвалюють, мають бути ID користувачів Matrix, наприклад `@owner:example.org`. Matrix автоматично вмикає нативні схвалення, коли `enabled` не задано або має значення `"auto"` і принаймні одного такого користувача можна визначити. Схвалення exec спочатку використовують `execApprovals.approvers` і можуть використовувати запасний варіант `channels.matrix.dm.allowFrom`. Схвалення Plugin авторизуються через `channels.matrix.dm.allowFrom`. Установіть `enabled: false`, щоб явно вимкнути Matrix як нативний клієнт схвалення. Інакше запити на схвалення використовують запасний варіант через інші налаштовані маршрути схвалення або політику запасного маршруту схвалення.
|
||||
|
||||
Нативна маршрутизація Matrix підтримує обидва типи погоджень:
|
||||
Нативна маршрутизація Matrix підтримує обидва типи схвалень:
|
||||
|
||||
- `channels.matrix.execApprovals.*` керує нативним режимом fanout DM/channel для запитів на погодження Matrix.
|
||||
- Погодження exec використовують набір погоджувачів exec з `execApprovals.approvers` або `channels.matrix.dm.allowFrom`.
|
||||
- Погодження Plugin використовують allowlist Matrix DM із `channels.matrix.dm.allowFrom`.
|
||||
- Скорочення через реакції Matrix і оновлення повідомлень застосовуються як до погоджень exec, так і до погоджень Plugin.
|
||||
- `channels.matrix.execApprovals.*` керує нативним режимом fanout DM/каналу для запитів на схвалення Matrix.
|
||||
- Схвалення exec використовують набір осіб, що схвалюють exec, із `execApprovals.approvers` або `channels.matrix.dm.allowFrom`.
|
||||
- Схвалення Plugin використовують allowlist Matrix DM із `channels.matrix.dm.allowFrom`.
|
||||
- Ярлики реакцій Matrix і оновлення повідомлень застосовуються і до схвалень exec, і до схвалень Plugin.
|
||||
|
||||
Правила доставки:
|
||||
|
||||
- `target: "dm"` надсилає запити на погодження в DM погоджувачів
|
||||
- `target: "channel"` надсилає запит назад до вихідної кімнати або DM Matrix
|
||||
- `target: "both"` надсилає в DM погоджувачів і до вихідної кімнати або DM Matrix
|
||||
- `target: "dm"` надсилає запити на схвалення в DM осіб, що схвалюють
|
||||
- `target: "channel"` надсилає запит назад у вихідну кімнату Matrix або DM
|
||||
- `target: "both"` надсилає в DM осіб, що схвалюють, і у вихідну кімнату Matrix або DM
|
||||
|
||||
Запити на погодження Matrix ініціалізують скорочення через реакції на основному повідомленні погодження:
|
||||
Запити на схвалення Matrix додають ярлики реакцій до основного повідомлення схвалення:
|
||||
|
||||
- `✅` = дозволити один раз
|
||||
- `❌` = відхилити
|
||||
- `♾️` = дозволити завжди, коли таке рішення дозволене фактичною політикою exec
|
||||
- `♾️` = дозволити завжди, коли таке рішення дозволене ефективною політикою exec
|
||||
|
||||
Погоджувачі можуть реагувати на це повідомлення або використовувати запасні slash-команди: `/approve <id> allow-once`, `/approve <id> allow-always` або `/approve <id> deny`.
|
||||
Особи, що схвалюють, можуть реагувати на це повідомлення або використовувати запасні slash-команди: `/approve <id> allow-once`, `/approve <id> allow-always` або `/approve <id> deny`.
|
||||
|
||||
Лише розв’язані погоджувачі можуть дозволяти або відхиляти. Для погоджень exec доставка в channel включає текст команди, тому вмикайте `channel` або `both` лише в довірених кімнатах.
|
||||
Схвалювати або відхиляти можуть лише визначені особи, що схвалюють. Для схвалень exec доставка в канал включає текст команди, тому вмикайте `channel` або `both` лише в довірених кімнатах.
|
||||
|
||||
Перевизначення для окремого облікового запису:
|
||||
Перевизначення для облікового запису:
|
||||
|
||||
- `channels.matrix.accounts.<account>.execApprovals`
|
||||
|
||||
Пов’язана документація: [Погодження exec](/uk/tools/exec-approvals)
|
||||
Пов’язана документація: [Схвалення exec](/uk/tools/exec-approvals)
|
||||
|
||||
## Slash-команди
|
||||
|
||||
Slash-команди Matrix (наприклад, `/new`, `/reset`, `/model`) працюють безпосередньо в DM. У кімнатах OpenClaw також розпізнає slash-команди, перед якими стоїть власна згадка бота Matrix, тож `@bot:server /new` запускає шлях команди без потреби в користувацькому regex для згадки. Це дає змогу боту лишатися чутливим до повідомлень у стилі кімнат `@mention /command`, які Element та подібні клієнти надсилають, коли користувач автодоповнює бота перед введенням команди.
|
||||
Slash-команди Matrix (наприклад, `/new`, `/reset`, `/model`) працюють безпосередньо в DM. У кімнатах OpenClaw також розпізнає slash-команди, перед якими стоїть власна згадка Matrix бота, тому `@bot:server /new` запускає шлях команди без потреби в користувацькому regex для згадки. Це дозволяє боту залишатися чутливим до повідомлень у стилі кімнати `@mention /command`, які Element та схожі клієнти надсилають, коли користувач автодоповнює бота перед введенням команди.
|
||||
|
||||
Правила авторизації, як і раніше, діють: відправники команд мають відповідати політикам allowlist/owner для DM або кімнат, так само як і для звичайних повідомлень.
|
||||
Правила авторизації, як і раніше, застосовуються: відправники команд мають відповідати політикам DM або allowlist/owner для кімнат так само, як і для звичайних повідомлень.
|
||||
|
||||
## Кілька облікових записів
|
||||
|
||||
@ -667,24 +780,24 @@ Slash-команди Matrix (наприклад, `/new`, `/reset`, `/model`) п
|
||||
}
|
||||
```
|
||||
|
||||
Значення верхнього рівня `channels.matrix` діють як значення за замовчуванням для іменованих облікових записів, якщо обліковий запис не перевизначає їх.
|
||||
Значення верхнього рівня `channels.matrix` діють як типові для іменованих облікових записів, якщо обліковий запис їх не перевизначає.
|
||||
Ви можете обмежити успадковані записи кімнат одним обліковим записом Matrix через `groups.<room>.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 для неявної маршрутизації, перевірок і CLI-операцій.
|
||||
Якщо налаштовано кілька облікових записів Matrix і один з ID облікового запису має значення `default`, OpenClaw використовує цей обліковий запис неявно, навіть якщо `defaultAccount` не задано.
|
||||
Якщо ви налаштовуєте кілька іменованих облікових записів, задайте `defaultAccount` або передавайте `--account <id>` для CLI-команд, що покладаються на неявний вибір облікового запису.
|
||||
Записи без `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.
|
||||
Якщо налаштовано кілька облікових записів Matrix і один ID облікового запису має значення `default`, OpenClaw використовує цей обліковий запис неявно, навіть якщо `defaultAccount` не задано.
|
||||
Якщо ви налаштували кілька іменованих облікових записів, установіть `defaultAccount` або передавайте `--account <id>` для команд CLI, які покладаються на неявний вибір облікового запису.
|
||||
Передавайте `--account <id>` до `openclaw matrix verify ...` і `openclaw matrix devices ...`, якщо хочете перевизначити цей неявний вибір для однієї команди.
|
||||
|
||||
Див. [Довідник із конфігурації](/uk/gateway/config-channels#multi-account-all-channels) щодо спільного шаблону для кількох облікових записів.
|
||||
Див. [Довідник конфігурації](/uk/gateway/config-channels#multi-account-all-channels) щодо спільного шаблону для кількох облікових записів.
|
||||
|
||||
## Приватні/LAN homeserver
|
||||
|
||||
За замовчуванням OpenClaw блокує приватні/внутрішні homeserver Matrix для захисту від SSRF, якщо ви
|
||||
явно не дозволите це для кожного облікового запису окремо.
|
||||
Типово OpenClaw блокує приватні/внутрішні homeserver Matrix для захисту від SSRF, якщо ви
|
||||
явно не дозволите їх окремо для кожного облікового запису.
|
||||
|
||||
Якщо ваш homeserver працює на localhost, IP LAN/Tailscale або внутрішньому імені хоста, увімкніть
|
||||
Якщо ваш homeserver працює на localhost, LAN/Tailscale IP або внутрішньому імені хоста, увімкніть
|
||||
`network.dangerouslyAllowPrivateNetwork` для цього облікового запису Matrix:
|
||||
|
||||
```json5
|
||||
@ -712,7 +825,7 @@ openclaw matrix account add \
|
||||
```
|
||||
|
||||
Цей opt-in дозволяє лише довірені приватні/внутрішні цілі. Публічні homeserver без шифрування, такі як
|
||||
`http://matrix.example.org:8008`, і далі блокуються. За можливості віддавайте перевагу `https://`.
|
||||
`http://matrix.example.org:8008`, як і раніше, блокуються. За можливості надавайте перевагу `https://`.
|
||||
|
||||
## Проксіювання трафіку Matrix
|
||||
|
||||
@ -730,86 +843,86 @@ openclaw matrix account add \
|
||||
}
|
||||
```
|
||||
|
||||
Іменовані облікові записи можуть перевизначати значення верхнього рівня за замовчуванням через `channels.matrix.accounts.<id>.proxy`.
|
||||
OpenClaw використовує те саме налаштування проксі як для runtime-трафіку Matrix, так і для перевірок статусу облікового запису.
|
||||
Іменовані облікові записи можуть перевизначати типовий верхньорівневий параметр через `channels.matrix.accounts.<id>.proxy`.
|
||||
OpenClaw використовує той самий параметр проксі для робочого трафіку Matrix і перевірок статусу облікового запису.
|
||||
|
||||
## Розв’язання цілей
|
||||
## Визначення цілі
|
||||
|
||||
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 або псевдоніма, її ігнорує runtime-механізм розв’язання allowlist.
|
||||
- Пошук користувачів виконує запити до каталогу користувачів Matrix на цьому homeserver.
|
||||
- Пошук кімнат напряму приймає явні ID кімнат і псевдоніми, а потім використовує запасний варіант — пошук назв серед кімнат, до яких приєднано цей обліковий запис.
|
||||
- Пошук назв серед приєднаних кімнат є best-effort. Якщо назву кімнати не вдається визначити як ID або псевдонім, вона ігнорується під час визначення allowlist у робочому режимі.
|
||||
|
||||
## Довідник із конфігурації
|
||||
## Довідник конфігурації
|
||||
|
||||
- `enabled`: увімкнути або вимкнути channel.
|
||||
- `enabled`: увімкнути або вимкнути канал.
|
||||
- `name`: необов’язкова мітка для облікового запису.
|
||||
- `defaultAccount`: бажаний ID облікового запису, коли налаштовано кілька облікових записів Matrix.
|
||||
- `homeserver`: URL homeserver, наприклад `https://matrix.example.org`.
|
||||
- `network.dangerouslyAllowPrivateNetwork`: дозволити цьому обліковому запису Matrix підключатися до приватних/внутрішніх homeserver. Увімкніть це, коли homeserver розв’язується в `localhost`, IP LAN/Tailscale або внутрішній хост, наприклад `matrix-synapse`.
|
||||
- `proxy`: необов’язковий URL HTTP(S)-проксі для трафіку Matrix. Іменовані облікові записи можуть перевизначати верхньорівневе значення за замовчуванням власним `proxy`.
|
||||
- `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.<id>.accessToken` у провайдерах env/file/exec підтримуються значення у відкритому тексті та значення SecretRef. Див. [Керування секретами](/uk/gateway/secrets).
|
||||
- `accessToken`: токен доступу для автентифікації на основі токена. Для `channels.matrix.accessToken` і `channels.matrix.accounts.<id>.accessToken` підтримуються значення у відкритому тексті та значення SecretRef у провайдерах env/file/exec. Див. [Керування секретами](/uk/gateway/secrets).
|
||||
- `password`: пароль для входу на основі пароля. Підтримуються значення у відкритому тексті та значення SecretRef.
|
||||
- `deviceId`: явний ID пристрою Matrix.
|
||||
- `deviceName`: відображувана назва пристрою для входу за паролем.
|
||||
- `avatarUrl`: збережений URL власного аватара для синхронізації профілю та оновлень `profile set`.
|
||||
- `initialSyncLimit`: максимальна кількість подій, що отримуються під час стартової синхронізації.
|
||||
- `encryption`: увімкнути E2EE.
|
||||
- `allowlistOnly`: коли `true`, підвищує політику кімнат `open` до `allowlist` і примусово переводить усі активні політики DM, крім `disabled` (включно з `pairing` і `open`), у `allowlist`. Не впливає на політики `disabled`.
|
||||
- `allowBots`: дозволити повідомлення від інших налаштованих облікових записів OpenClaw Matrix (`true` або `"mentions"`).
|
||||
- `allowlistOnly`: коли має значення `true`, підвищує політику кімнат `open` до `allowlist` і примусово переводить усі активні політики DM, окрім `disabled` (зокрема `pairing` і `open`), у `allowlist`. Не впливає на політики `disabled`.
|
||||
- `allowBots`: дозволити повідомлення від інших налаштованих облікових записів Matrix OpenClaw (`true` або `"mentions"`).
|
||||
- `groupPolicy`: `open`, `allowlist` або `disabled`.
|
||||
- `contextVisibility`: режим видимості додаткового контексту кімнати (`all`, `allowlist`, `allowlist_quote`).
|
||||
- `groupAllowFrom`: allowlist ID користувачів для трафіку кімнат. Найбезпечніше використовувати повні ID користувачів Matrix; точні збіги в каталозі розв’язуються під час запуску і коли allowlist змінюється, поки monitor працює. Нерозв’язані імена ігноруються.
|
||||
- `historyLimit`: максимальна кількість повідомлень кімнати, які включаються як контекст історії групи. Використовує запасний варіант `messages.groupChat.historyLimit`; якщо обидва не задані, фактичне значення за замовчуванням — `0`. Установіть `0`, щоб вимкнути.
|
||||
- `groupAllowFrom`: allowlist ID користувачів для трафіку кімнат. Найбезпечніше використовувати повні ID користувачів Matrix; точні збіги в каталозі визначаються під час запуску і коли allowlist змінюється під час роботи монітора. Нерозв’язані імена ігноруються.
|
||||
- `historyLimit`: максимальна кількість повідомлень кімнати, які включаються як контекст історії групи. Використовується запасний варіант `messages.groupChat.historyLimit`; якщо обидва не задані, ефективне значення за замовчуванням — `0`. Установіть `0`, щоб вимкнути.
|
||||
- `replyToMode`: `off`, `first`, `all` або `batched`.
|
||||
- `markdown`: необов’язкова конфігурація рендерингу Markdown для вихідного тексту Matrix.
|
||||
- `streaming`: `off` (типово), `"partial"`, `"quiet"`, `true` або `false`. `"partial"` і `true` вмикають оновлення чернетки за принципом попередній-перегляд-спочатку за допомогою звичайних текстових повідомлень Matrix. `"quiet"` використовує попередні тихі notice-повідомлення для власноруч хостованих конфігурацій із правилами push. `false` еквівалентне `"off"`.
|
||||
- `blockStreaming`: `true` вмикає окремі повідомлення прогресу для завершених блоків асистента, поки активне потокове передавання чернетки-попереднього перегляду.
|
||||
- `streaming`: `off` (типово), `"partial"`, `"quiet"`, `true` або `false`. `"partial"` і `true` вмикають оновлення чернеток із пріоритетом попереднього перегляду через звичайні текстові повідомлення Matrix. `"quiet"` використовує тихі повідомлення попереднього перегляду без сповіщень для власних конфігурацій із push-правилами. `false` еквівалентне `"off"`.
|
||||
- `blockStreaming`: `true` вмикає окремі повідомлення прогресу для завершених блоків асистента, поки активний потоковий попередній перегляд чернетки.
|
||||
- `threadReplies`: `off`, `inbound` або `always`.
|
||||
- `threadBindings`: перевизначення рівня channel для маршрутизації та життєвого циклу сесій, прив’язаних до тредів.
|
||||
- `startupVerification`: режим автоматичного запиту self-verification під час запуску (`if-unverified`, `off`).
|
||||
- `threadBindings`: перевизначення на рівні каналу для маршрутизації та життєвого циклу сеансів, прив’язаних до тредів.
|
||||
- `startupVerification`: режим автоматичного запиту самоверифікації під час запуску (`if-unverified`, `off`).
|
||||
- `startupVerificationCooldownHours`: cooldown перед повторною спробою автоматичних запитів верифікації під час запуску.
|
||||
- `textChunkLimit`: розмір фрагмента вихідного повідомлення в символах (застосовується, коли `chunkMode` має значення `length`).
|
||||
- `chunkMode`: `length` розбиває повідомлення за кількістю символів; `newline` розбиває за межами рядків.
|
||||
- `responsePrefix`: необов’язковий рядок, що додається на початок усіх вихідних відповідей для цього channel.
|
||||
- `ackReaction`: необов’язкове перевизначення ack-реакції для цього channel/облікового запису.
|
||||
- `ackReactionScope`: необов’язкове перевизначення області дії ack-реакції (`group-mentions`, `group-all`, `direct`, `all`, `none`, `off`).
|
||||
- `chunkMode`: `length` розбиває повідомлення за кількістю символів; `newline` розбиває на межах рядків.
|
||||
- `responsePrefix`: необов’язковий рядок, що додається на початку всіх вихідних відповідей для цього каналу.
|
||||
- `ackReaction`: необов’язкове перевизначення ack-реакції для цього каналу/облікового запису.
|
||||
- `ackReactionScope`: необов’язкове перевизначення області ack-реакції (`group-mentions`, `group-all`, `direct`, `all`, `none`, `off`).
|
||||
- `reactionNotifications`: режим вхідних сповіщень про реакції (`own`, `off`).
|
||||
- `mediaMaxMb`: ліміт розміру медіа в MB для вихідних надсилань і обробки вхідних медіа.
|
||||
- `autoJoin`: політика автоприєднання за запрошенням (`always`, `allowlist`, `off`). Типово: `off`. Застосовується до всіх запрошень Matrix, включно із запрошеннями у стилі DM.
|
||||
- `autoJoinAllowlist`: кімнати/псевдоніми, дозволені, коли `autoJoin` має значення `allowlist`. Записи псевдонімів розв’язуються до ID кімнат під час обробки запрошення; OpenClaw не довіряє стану псевдоніма, заявленому запрошеною кімнатою.
|
||||
- `mediaMaxMb`: обмеження розміру медіа в МБ для вихідного надсилання та обробки вхідних медіа.
|
||||
- `autoJoin`: політика автоматичного приєднання за запрошенням (`always`, `allowlist`, `off`). Типово: `off`. Застосовується до всіх запрошень Matrix, зокрема до запрошень у стилі DM.
|
||||
- `autoJoinAllowlist`: кімнати/псевдоніми, дозволені, коли `autoJoin` має значення `allowlist`. Записи псевдонімів визначаються як ID кімнат під час обробки запрошення; OpenClaw не довіряє стану псевдоніма, заявленому запрошеною кімнатою.
|
||||
- `dm`: блок політики DM (`enabled`, `policy`, `allowFrom`, `sessionScope`, `threadReplies`).
|
||||
- `dm.policy`: керує доступом до DM після того, як OpenClaw уже приєднався до кімнати й класифікував її як DM. Це не змінює те, чи буде запрошення автоматично прийняте.
|
||||
- `dm.allowFrom`: allowlist ID користувачів для трафіку DM. Найбезпечніше використовувати повні ID користувачів Matrix; точні збіги в каталозі розв’язуються під час запуску і коли allowlist змінюється, поки monitor працює. Нерозв’язані імена ігноруються.
|
||||
- `dm.policy`: керує доступом до DM після того, як OpenClaw приєднався до кімнати й класифікував її як DM. Це не змінює того, чи буде запрошення автоматично прийняте.
|
||||
- `dm.allowFrom`: allowlist ID користувачів для трафіку DM. Найбезпечніше використовувати повні ID користувачів Matrix; точні збіги в каталозі визначаються під час запуску і коли allowlist змінюється під час роботи монітора. Нерозв’язані імена ігноруються.
|
||||
- `dm.sessionScope`: `per-user` (типово) або `per-room`. Використовуйте `per-room`, якщо хочете, щоб кожна кімната Matrix DM зберігала окремий контекст, навіть якщо співрозмовник той самий.
|
||||
- `dm.threadReplies`: перевизначення політики тредів лише для DM (`off`, `inbound`, `always`). Воно перевизначає верхньорівневе налаштування `threadReplies` як для розміщення відповідей, так і для ізоляції сесій у DM.
|
||||
- `execApprovals`: Matrix-native доставка погоджень exec (`enabled`, `approvers`, `target`, `agentFilter`, `sessionFilter`).
|
||||
- `execApprovals.approvers`: ID користувачів Matrix, яким дозволено погоджувати запити exec. Необов’язково, якщо `dm.allowFrom` уже визначає погоджувачів.
|
||||
- `dm.threadReplies`: перевизначення політики тредів лише для DM (`off`, `inbound`, `always`). Воно перевизначає верхньорівневе налаштування `threadReplies` як для розміщення відповідей, так і для ізоляції сеансу в DM.
|
||||
- `execApprovals`: нативна доставка схвалень exec у Matrix (`enabled`, `approvers`, `target`, `agentFilter`, `sessionFilter`).
|
||||
- `execApprovals.approvers`: ID користувачів Matrix, яким дозволено схвалювати запити exec. Необов’язково, якщо `dm.allowFrom` уже визначає осіб, що схвалюють.
|
||||
- `execApprovals.target`: `dm | channel | both` (типово: `dm`).
|
||||
- `accounts`: іменовані перевизначення для окремих облікових записів. Значення верхнього рівня `channels.matrix` діють як значення за замовчуванням для цих записів.
|
||||
- `groups`: мапа політик для окремих кімнат. Віддавайте перевагу ID кімнат або псевдонімам; нерозв’язані назви кімнат ігноруються під час виконання. Після розв’язання ідентичність сесії/групи використовує стабільний ID кімнати.
|
||||
- `groups.<room>.account`: обмежити один успадкований запис кімнати конкретним обліковим записом Matrix у конфігураціях із кількома обліковими записами.
|
||||
- `accounts`: іменовані перевизначення для кожного облікового запису. Значення верхнього рівня `channels.matrix` діють як типові для цих записів.
|
||||
- `groups`: мапа політик для кімнат. Надавайте перевагу ID кімнат або псевдонімам; нерозв’язані назви кімнат ігноруються під час виконання. Ідентичність сеансу/групи після визначення використовує стабільний ID кімнати.
|
||||
- `groups.<room>.account`: обмежити один успадкований запис кімнати певним обліковим записом Matrix у конфігураціях із кількома обліковими записами.
|
||||
- `groups.<room>.allowBots`: перевизначення на рівні кімнати для відправників-ботів із конфігурації (`true` або `"mentions"`).
|
||||
- `groups.<room>.users`: allowlist відправників для окремої кімнати.
|
||||
- `groups.<room>.tools`: перевизначення allow/deny для інструментів на рівні кімнати.
|
||||
- `groups.<room>.autoReply`: перевизначення gating згадок на рівні кімнати. `true` вимикає вимоги до згадок для цієї кімнати; `false` примусово знову вмикає їх.
|
||||
- `groups.<room>.users`: allowlist відправників для конкретної кімнати.
|
||||
- `groups.<room>.tools`: перевизначення allow/deny інструментів для конкретної кімнати.
|
||||
- `groups.<room>.autoReply`: перевизначення gating за згадуванням на рівні кімнати. `true` вимикає вимогу згадування для цієї кімнати; `false` знову примусово вмикає її.
|
||||
- `groups.<room>.skills`: необов’язковий фільтр Skills на рівні кімнати.
|
||||
- `groups.<room>.systemPrompt`: необов’язковий фрагмент system prompt на рівні кімнати.
|
||||
- `rooms`: застарілий псевдонім для `groups`.
|
||||
- `actions`: gating інструментів для окремих дій (`messages`, `reactions`, `pins`, `profile`, `memberInfo`, `channelInfo`, `verification`).
|
||||
- `actions`: gating інструментів за окремими діями (`messages`, `reactions`, `pins`, `profile`, `memberInfo`, `channelInfo`, `verification`).
|
||||
|
||||
## Пов’язане
|
||||
|
||||
- [Огляд Channels](/uk/channels) — усі підтримувані channels
|
||||
- [Огляд каналів](/uk/channels) — усі підтримувані канали
|
||||
- [Pairing](/uk/channels/pairing) — автентифікація DM і процес pairing
|
||||
- [Groups](/uk/channels/groups) — поведінка групового чату та gating згадок
|
||||
- [Маршрутизація channel](/uk/channels/channel-routing) — маршрутизація сесій для повідомлень
|
||||
- [Security](/uk/gateway/security) — модель доступу та hardening
|
||||
- [Групи](/uk/channels/groups) — поведінка групового чату та gating за згадуванням
|
||||
- [Маршрутизація каналів](/uk/channels/channel-routing) — маршрутизація сеансів для повідомлень
|
||||
- [Безпека](/uk/gateway/security) — модель доступу та посилення захисту
|
||||
|
||||
@ -1,330 +1,348 @@
|
||||
---
|
||||
read_when:
|
||||
- Оновлення наявного встановлення Matrix
|
||||
- Оновлення наявної інсталяції Matrix
|
||||
- Міграція зашифрованої історії Matrix і стану пристрою
|
||||
summary: Як OpenClaw виконує оновлення попереднього Plugin Matrix на місці, включно з обмеженнями відновлення зашифрованого стану та кроками ручного відновлення.
|
||||
summary: Як OpenClaw оновлює попередній Plugin Matrix на місці, включно з обмеженнями відновлення зашифрованого стану та кроками ручного відновлення.
|
||||
title: Міграція Matrix
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T20:57:09Z"
|
||||
generated_at: "2026-04-24T22:02:39Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: e8210f5fbe476148736417eec29dfb5e27c132c6a0bb80753ce254129c14da4f
|
||||
source_hash: 3c35794d7d56d2083905fe4a478463223813b6c901c5c67935fbb9670b51f225
|
||||
source_path: install/migrating-matrix.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
На цій сторінці описано оновлення з попереднього публічного Plugin `matrix` до поточної реалізації.
|
||||
Ця сторінка описує оновлення з попереднього публічного Plugin `matrix` до поточної реалізації.
|
||||
|
||||
Для більшості користувачів оновлення відбувається на місці:
|
||||
|
||||
- Plugin залишається `@openclaw/matrix`
|
||||
- plugin залишається `@openclaw/matrix`
|
||||
- канал залишається `matrix`
|
||||
- ваша конфігурація залишається в `channels.matrix`
|
||||
- кешовані облікові дані залишаються в `~/.openclaw/credentials/matrix/`
|
||||
- runtime state залишається в `~/.openclaw/matrix/`
|
||||
- стан середовища виконання залишається в `~/.openclaw/matrix/`
|
||||
|
||||
Вам не потрібно перейменовувати ключі конфігурації або перевстановлювати Plugin під новою назвою.
|
||||
|
||||
## Що міграція робить автоматично
|
||||
|
||||
Коли gateway запускається, а також коли ви виконуєте [`openclaw doctor --fix`](/uk/gateway/doctor), OpenClaw намагається автоматично відновити старий стан Matrix.
|
||||
Перш ніж будь-який дієвий крок міграції Matrix змінить стан на диску, OpenClaw створює або повторно використовує цільовий recovery snapshot.
|
||||
Коли Gateway запускається, а також коли ви виконуєте [`openclaw doctor --fix`](/uk/gateway/doctor), OpenClaw намагається автоматично відновити старий стан Matrix.
|
||||
Перш ніж будь-який застосовний крок міграції Matrix змінить стан на диску, OpenClaw створює або повторно використовує цільовий знімок відновлення.
|
||||
|
||||
Коли ви використовуєте `openclaw update`, точний тригер залежить від способу встановлення OpenClaw:
|
||||
Коли ви використовуєте `openclaw update`, точний тригер залежить від того, як установлено OpenClaw:
|
||||
|
||||
- встановлення з source запускають `openclaw doctor --fix` під час процесу оновлення, а потім типово перезапускають gateway
|
||||
- встановлення через package manager оновлюють пакет, запускають неінтерактивний прохід doctor, а потім покладаються на типовий перезапуск gateway, щоб startup міг завершити міграцію Matrix
|
||||
- якщо ви використовуєте `openclaw update --no-restart`, міграція Matrix, прив’язана до startup, відкладається, доки ви пізніше не виконаєте `openclaw doctor --fix` і не перезапустите gateway
|
||||
- інсталяції з джерельного коду запускають `openclaw doctor --fix` під час процесу оновлення, а потім за замовчуванням перезапускають Gateway
|
||||
- інсталяції через менеджер пакетів оновлюють пакет, запускають неінтерактивний прохід doctor, а потім покладаються на стандартний перезапуск Gateway, щоб під час запуску завершити міграцію Matrix
|
||||
- якщо ви використовуєте `openclaw update --no-restart`, міграцію Matrix, що виконується під час запуску, буде відкладено, доки ви пізніше не виконаєте `openclaw doctor --fix` і не перезапустите Gateway
|
||||
|
||||
Автоматична міграція охоплює:
|
||||
|
||||
- створення або повторне використання pre-migration snapshot у `~/Backups/openclaw-migrations/`
|
||||
- створення або повторне використання знімка перед міграцією в `~/Backups/openclaw-migrations/`
|
||||
- повторне використання ваших кешованих облікових даних Matrix
|
||||
- збереження того самого вибору облікового запису й конфігурації `channels.matrix`
|
||||
- переміщення найстарішого плоского Matrix sync store у поточне розташування з областю облікового запису
|
||||
- переміщення найстарішого плоского Matrix crypto store у поточне розташування з областю облікового запису, коли цільовий обліковий запис можна безпечно розв’язати
|
||||
- витягування раніше збереженого backup decryption key для Matrix room-key зі старого rust crypto store, якщо цей ключ локально існує
|
||||
- повторне використання найповнішого наявного token-hash storage root для того самого облікового запису Matrix, homeserver і користувача, коли access token пізніше змінюється
|
||||
- сканування сусідніх token-hash storage root на наявність pending metadata для відновлення зашифрованого стану, коли access token Matrix змінився, але ідентичність account/device залишилася тією самою
|
||||
- відновлення резервних room keys у новий crypto store під час наступного startup Matrix
|
||||
- збереження того самого вибору облікового запису та конфігурації `channels.matrix`
|
||||
- переміщення найстарішого плоского сховища синхронізації Matrix до поточного розташування з областю дії облікового запису
|
||||
- переміщення найстарішого плоского криптографічного сховища Matrix до поточного розташування з областю дії облікового запису, якщо цільовий обліковий запис можна безпечно визначити
|
||||
- витяг раніше збереженого ключа дешифрування резервної копії ключів кімнат Matrix зі старого rust crypto store, якщо цей ключ існує локально
|
||||
- повторне використання найповнішого наявного кореня сховища з хешем токена для того самого облікового запису Matrix, homeserver і користувача, коли токен доступу пізніше змінюється
|
||||
- сканування сусідніх коренів сховища з хешем токена на наявність метаданих відновлення зашифрованого стану в очікуванні, коли токен доступу Matrix змінився, але ідентичність облікового запису/пристрою залишилася тією самою
|
||||
- відновлення резервних копій ключів кімнат до нового криптографічного сховища під час наступного запуску Matrix
|
||||
|
||||
Подробиці snapshot:
|
||||
Подробиці щодо знімків:
|
||||
|
||||
- OpenClaw записує marker file у `~/.openclaw/matrix/migration-snapshot.json` після успішного snapshot, щоб наступні проходи startup і repair могли повторно використати той самий archive.
|
||||
- Ці автоматичні snapshot міграції Matrix резервують лише config + state (`includeWorkspace: false`).
|
||||
- Якщо Matrix має лише стан міграції рівня warning, наприклад тому, що `userId` або `accessToken` іще відсутні, OpenClaw поки не створює snapshot, оскільки жодна зміна Matrix ще не є дієвою.
|
||||
- Якщо крок snapshot не вдається, OpenClaw пропускає міграцію Matrix у цьому запуску замість того, щоб змінювати state без recovery point.
|
||||
- Після успішного створення знімка OpenClaw записує файл-маркер у `~/.openclaw/matrix/migration-snapshot.json`, щоб наступні проходи запуску й відновлення могли повторно використовувати той самий архів.
|
||||
- Ці автоматичні знімки міграції Matrix створюють резервну копію лише конфігурації та стану (`includeWorkspace: false`).
|
||||
- Якщо для Matrix є лише стан міграції з попередженнями, наприклад через те, що `userId` або `accessToken` іще відсутні, OpenClaw поки не створює знімок, оскільки жодна зміна Matrix не є застосовною.
|
||||
- Якщо крок створення знімка не вдається, OpenClaw пропускає міграцію Matrix у цьому запуску замість того, щоб змінювати стан без точки відновлення.
|
||||
|
||||
Про оновлення з кількома обліковими записами:
|
||||
|
||||
- найстаріший плоский Matrix store (`~/.openclaw/matrix/bot-storage.json` і `~/.openclaw/matrix/crypto/`) походить зі схеми з одним store, тому OpenClaw може мігрувати його лише в одну розв’язану ціль Matrix account
|
||||
- уже account-scoped legacy Matrix stores виявляються й готуються для кожного налаштованого Matrix account окремо
|
||||
- найстаріше плоске сховище Matrix (`~/.openclaw/matrix/bot-storage.json` і `~/.openclaw/matrix/crypto/`) походить із макета з одним сховищем, тому OpenClaw може мігрувати його лише до однієї визначеної цілі облікового запису Matrix
|
||||
- застарілі сховища Matrix, які вже мають область дії облікового запису, виявляються та готуються окремо для кожного налаштованого облікового запису Matrix
|
||||
|
||||
## Що міграція не може зробити автоматично
|
||||
|
||||
Попередній публічний Plugin Matrix **не** створював автоматично Matrix room-key backups. Він зберігав локальний crypto state і запитував verification device, але не гарантував, що ваші room keys були збережені на homeserver.
|
||||
Попередній публічний Plugin Matrix **не** створював автоматично резервні копії ключів кімнат Matrix. Він зберігав локальний криптографічний стан і запитував верифікацію пристрою, але не гарантував, що ваші ключі кімнат були збережені на homeserver.
|
||||
|
||||
Це означає, що деякі зашифровані встановлення можна мігрувати лише частково.
|
||||
Це означає, що деякі зашифровані інсталяції можна мігрувати лише частково.
|
||||
|
||||
OpenClaw не може автоматично відновити:
|
||||
|
||||
- лише локальні room keys, які ніколи не були збережені в backup
|
||||
- зашифрований state, коли цільовий Matrix account ще не можна розв’язати, бо `homeserver`, `userId` або `accessToken` іще недоступні
|
||||
- автоматичну міграцію одного спільного плоского Matrix store, коли налаштовано кілька Matrix accounts, але `channels.matrix.defaultAccount` не задано
|
||||
- встановлення custom plugin path, які прив’язані до шляху репозиторію замість стандартного пакета Matrix
|
||||
- відсутній recovery key, коли старий store мав room keys у backup, але не зберіг decryption key локально
|
||||
- локальні ключі кімнат, які ніколи не були збережені в резервній копії
|
||||
- зашифрований стан, коли цільовий обліковий запис Matrix іще неможливо визначити, бо `homeserver`, `userId` або `accessToken` ще недоступні
|
||||
- автоматичну міграцію одного спільного плоского сховища Matrix, коли налаштовано кілька облікових записів Matrix, але `channels.matrix.defaultAccount` не задано
|
||||
- інсталяції з кастомним шляхом до Plugin, які прив’язані до шляху репозиторію замість стандартного пакета Matrix
|
||||
- відсутній ключ відновлення, якщо старе сховище мало резервні копії ключів, але не зберігало ключ дешифрування локально
|
||||
|
||||
Поточна область попереджень:
|
||||
|
||||
- встановлення custom Matrix plugin path показуються і під час startup gateway, і в `openclaw doctor`
|
||||
- інсталяції Matrix plugin із кастомним шляхом відображаються як під час запуску Gateway, так і в `openclaw doctor`
|
||||
|
||||
Якщо ваше старе встановлення мало лише локальну зашифровану історію, яку ніколи не було збережено в backup, деякі старіші зашифровані повідомлення після оновлення можуть залишитися нечитабельними.
|
||||
Якщо у вашій старій інсталяції була локальна зашифрована історія, яка ніколи не зберігалася в резервній копії, деякі старіші зашифровані повідомлення можуть залишитися нечитабельними після оновлення.
|
||||
|
||||
## Рекомендований процес оновлення
|
||||
|
||||
1. Оновіть OpenClaw і Plugin Matrix у звичайний спосіб.
|
||||
Віддавайте перевагу звичайному `openclaw update` без `--no-restart`, щоб startup міг одразу завершити міграцію Matrix.
|
||||
1. Оновіть OpenClaw і Matrix plugin звичайним способом.
|
||||
Надавайте перевагу звичайному `openclaw update` без `--no-restart`, щоб запуск міг одразу завершити міграцію Matrix.
|
||||
2. Виконайте:
|
||||
|
||||
```bash
|
||||
openclaw doctor --fix
|
||||
```
|
||||
|
||||
Якщо для Matrix є дієва робота з міграції, doctor спочатку створить або повторно використає pre-migration snapshot і виведе шлях до archive.
|
||||
Якщо для Matrix є застосовна робота з міграції, doctor спочатку створить або повторно використає знімок перед міграцією та виведе шлях до архіву.
|
||||
|
||||
3. Запустіть або перезапустіть gateway.
|
||||
4. Перевірте поточний стан verification і backup:
|
||||
3. Запустіть або перезапустіть Gateway.
|
||||
4. Перевірте поточний стан верифікації та резервного копіювання:
|
||||
|
||||
```bash
|
||||
openclaw matrix verify status
|
||||
openclaw matrix verify backup status
|
||||
```
|
||||
|
||||
5. Якщо OpenClaw повідомляє, що потрібен recovery key, виконайте:
|
||||
5. Якщо OpenClaw повідомляє, що потрібен ключ відновлення, виконайте:
|
||||
|
||||
```bash
|
||||
openclaw matrix verify backup restore --recovery-key "<your-recovery-key>"
|
||||
```
|
||||
|
||||
6. Якщо цей пристрій іще не verified, виконайте:
|
||||
6. Якщо цей пристрій іще не верифіковано, виконайте:
|
||||
|
||||
```bash
|
||||
openclaw matrix verify device "<your-recovery-key>"
|
||||
```
|
||||
|
||||
7. Якщо ви свідомо відмовляєтеся від невідновлюваної старої історії й хочете створити свіжу базову лінію backup для майбутніх повідомлень, виконайте:
|
||||
Якщо ключ відновлення прийнято і резервна копія придатна до використання, але `Cross-signing verified`
|
||||
усе ще має значення `no`, завершіть самоверифікацію з іншого клієнта Matrix:
|
||||
|
||||
```bash
|
||||
openclaw matrix verify self
|
||||
```
|
||||
|
||||
Підтвердьте запит в іншому клієнті Matrix, порівняйте емодзі або десяткові числа
|
||||
і вводьте `yes` лише тоді, коли вони збігаються. Команда завершується успішно лише
|
||||
після того, як `Cross-signing verified` набуде значення `yes`.
|
||||
|
||||
7. Якщо ви свідомо відмовляєтеся від невідновлюваної старої історії та хочете отримати нову базову лінію резервного копіювання для майбутніх повідомлень, виконайте:
|
||||
|
||||
```bash
|
||||
openclaw matrix verify backup reset --yes
|
||||
```
|
||||
|
||||
8. Якщо серверного key backup іще не існує, створіть його для майбутніх відновлень:
|
||||
8. Якщо резервної копії ключів на боці сервера ще не існує, створіть її для майбутніх відновлень:
|
||||
|
||||
```bash
|
||||
openclaw matrix verify bootstrap
|
||||
```
|
||||
|
||||
## Як працює міграція шифрування
|
||||
## Як працює міграція зашифрованих даних
|
||||
|
||||
Міграція шифрування — це двоетапний процес:
|
||||
Міграція зашифрованих даних — це двоетапний процес:
|
||||
|
||||
1. Startup або `openclaw doctor --fix` створює або повторно використовує pre-migration snapshot, якщо міграція шифрування є дієвою.
|
||||
2. Startup або `openclaw doctor --fix` перевіряє старий Matrix crypto store через активне встановлення Plugin Matrix.
|
||||
3. Якщо знайдено backup decryption key, OpenClaw записує його в новий процес recovery-key і позначає відновлення room-key як pending.
|
||||
4. Під час наступного startup Matrix OpenClaw автоматично відновлює room keys з backup у новий crypto store.
|
||||
1. Під час запуску або виконання `openclaw doctor --fix` створюється або повторно використовується знімок перед міграцією, якщо міграція зашифрованих даних є застосовною.
|
||||
2. Під час запуску або виконання `openclaw doctor --fix` старе криптографічне сховище Matrix перевіряється через активну інсталяцію Matrix plugin.
|
||||
3. Якщо знайдено ключ дешифрування резервної копії, OpenClaw записує його в новий процес ключа відновлення та позначає відновлення ключів кімнат як таке, що очікує виконання.
|
||||
4. Під час наступного запуску Matrix OpenClaw автоматично відновлює резервні копії ключів кімнат до нового криптографічного сховища.
|
||||
|
||||
Якщо старий store повідомляє про room keys, які ніколи не були збережені в backup, OpenClaw попереджає про це замість того, щоб удавати, ніби відновлення було успішним.
|
||||
Якщо старе сховище повідомляє про ключі кімнат, які ніколи не були збережені в резервній копії, OpenClaw показує попередження замість того, щоб удавати, ніби відновлення виконано успішно.
|
||||
|
||||
## Поширені повідомлення та їх значення
|
||||
|
||||
### Повідомлення оновлення та виявлення
|
||||
### Повідомлення про оновлення та виявлення
|
||||
|
||||
`Matrix plugin upgraded in place.`
|
||||
|
||||
- Значення: старий Matrix state на диску було виявлено й мігровано в поточну схему.
|
||||
- Що робити: нічого, якщо тільки той самий вивід не містить також попереджень.
|
||||
- Значення: старий стан Matrix на диску було виявлено та мігровано до поточного макета.
|
||||
- Що робити: нічого, якщо в тому самому виводі немає попереджень.
|
||||
|
||||
`Matrix migration snapshot created before applying Matrix upgrades.`
|
||||
|
||||
- Значення: OpenClaw створив recovery archive перед зміною Matrix state.
|
||||
- Що робити: збережіть надрукований шлях до archive, доки не підтвердите, що міграція пройшла успішно.
|
||||
- Значення: OpenClaw створив архів відновлення перед зміною стану Matrix.
|
||||
- Що робити: збережіть виведений шлях до архіву, доки не підтвердите, що міграція пройшла успішно.
|
||||
|
||||
`Matrix migration snapshot reused before applying Matrix upgrades.`
|
||||
|
||||
- Значення: OpenClaw знайшов наявний marker snapshot міграції Matrix і повторно використав цей archive замість створення дубльованого backup.
|
||||
- Що робити: збережіть надрукований шлях до archive, доки не підтвердите, що міграція пройшла успішно.
|
||||
- Значення: OpenClaw знайшов наявний файл-маркер знімка міграції Matrix і повторно використав цей архів замість створення дубльованої резервної копії.
|
||||
- Що робити: збережіть виведений шлях до архіву, доки не підтвердите, що міграція пройшла успішно.
|
||||
|
||||
`Legacy Matrix state detected at ... but channels.matrix is not configured yet.`
|
||||
|
||||
- Значення: старий Matrix state існує, але OpenClaw не може зіставити його з поточним Matrix account, бо Matrix не налаштовано.
|
||||
- Що робити: налаштуйте `channels.matrix`, а потім повторно виконайте `openclaw doctor --fix` або перезапустіть gateway.
|
||||
- Значення: старий стан Matrix існує, але OpenClaw не може зіставити його з поточним обліковим записом Matrix, оскільки Matrix не налаштовано.
|
||||
- Що робити: налаштуйте `channels.matrix`, потім знову виконайте `openclaw doctor --fix` або перезапустіть Gateway.
|
||||
|
||||
`Legacy Matrix state detected at ... but the new account-scoped target could not be resolved yet (need homeserver, userId, and access token for channels.matrix...).`
|
||||
|
||||
- Значення: OpenClaw знайшов старий state, але все ще не може визначити точний поточний root account/device.
|
||||
- Що робити: один раз запустіть gateway з робочим входом Matrix або повторно виконайте `openclaw doctor --fix` після появи кешованих облікових даних.
|
||||
- Значення: OpenClaw знайшов старий стан, але все ще не може визначити точний поточний корінь облікового запису/пристрою.
|
||||
- Що робити: один раз запустіть Gateway із робочим входом Matrix або повторно виконайте `openclaw doctor --fix`, коли кешовані облікові дані вже існуватимуть.
|
||||
|
||||
`Legacy Matrix state detected at ... but multiple Matrix accounts are configured and channels.matrix.defaultAccount is not set.`
|
||||
|
||||
- Значення: OpenClaw знайшов один спільний плоский Matrix store, але відмовляється вгадувати, який саме іменований Matrix account має його отримати.
|
||||
- Що робити: задайте `channels.matrix.defaultAccount` для потрібного облікового запису, а потім повторно виконайте `openclaw doctor --fix` або перезапустіть gateway.
|
||||
- Значення: OpenClaw знайшов одне спільне плоске сховище Matrix, але відмовляється вгадувати, якому іменованому обліковому запису Matrix його слід призначити.
|
||||
- Що робити: установіть `channels.matrix.defaultAccount` на потрібний обліковий запис, потім знову виконайте `openclaw doctor --fix` або перезапустіть Gateway.
|
||||
|
||||
`Matrix legacy sync store not migrated because the target already exists (...)`
|
||||
|
||||
- Значення: нове розташування з областю облікового запису вже має sync або crypto store, тому OpenClaw не став автоматично його перезаписувати.
|
||||
- Що робити: переконайтеся, що поточний обліковий запис правильний, перш ніж вручну видаляти або переміщати конфліктну ціль.
|
||||
- Значення: нове розташування з областю дії облікового запису вже містить сховище синхронізації або криптографічне сховище, тому OpenClaw не перезаписав його автоматично.
|
||||
- Що робити: переконайтеся, що поточний обліковий запис правильний, перш ніж вручну видаляти або переміщувати конфліктну ціль.
|
||||
|
||||
`Failed migrating Matrix legacy sync store (...)` or `Failed migrating Matrix legacy crypto store (...)`
|
||||
|
||||
- Значення: OpenClaw спробував перемістити старий Matrix state, але операція файлової системи не вдалася.
|
||||
- Що робити: перевірте дозволи файлової системи й стан диска, а потім повторно виконайте `openclaw doctor --fix`.
|
||||
- Значення: OpenClaw спробував перемістити старий стан Matrix, але операція файлової системи не вдалася.
|
||||
- Що робити: перевірте дозволи файлової системи та стан диска, потім знову виконайте `openclaw doctor --fix`.
|
||||
|
||||
`Legacy Matrix encrypted state detected at ... but channels.matrix is not configured yet.`
|
||||
|
||||
- Значення: OpenClaw знайшов старий зашифрований Matrix store, але немає поточної конфігурації Matrix, до якої його можна прив’язати.
|
||||
- Що робити: налаштуйте `channels.matrix`, а потім повторно виконайте `openclaw doctor --fix` або перезапустіть gateway.
|
||||
- Значення: OpenClaw знайшов старе зашифроване сховище Matrix, але немає поточної конфігурації Matrix, до якої його можна прив’язати.
|
||||
- Що робити: налаштуйте `channels.matrix`, потім знову виконайте `openclaw doctor --fix` або перезапустіть Gateway.
|
||||
|
||||
`Legacy Matrix encrypted state detected at ... but the account-scoped target could not be resolved yet (need homeserver, userId, and access token for channels.matrix...).`
|
||||
|
||||
- Значення: зашифрований store існує, але OpenClaw не може безпечно визначити, якому поточному account/device він належить.
|
||||
- Що робити: один раз запустіть gateway з робочим входом Matrix або повторно виконайте `openclaw doctor --fix` після появи кешованих облікових даних.
|
||||
- Значення: зашифроване сховище існує, але OpenClaw не може безпечно визначити, якому поточному обліковому запису/пристрою воно належить.
|
||||
- Що робити: один раз запустіть Gateway із робочим входом Matrix або повторно виконайте `openclaw doctor --fix`, коли кешовані облікові дані будуть доступні.
|
||||
|
||||
`Legacy Matrix encrypted state detected at ... but multiple Matrix accounts are configured and channels.matrix.defaultAccount is not set.`
|
||||
|
||||
- Значення: OpenClaw знайшов один спільний плоский legacy crypto store, але відмовляється вгадувати, який саме іменований Matrix account має його отримати.
|
||||
- Що робити: задайте `channels.matrix.defaultAccount` для потрібного облікового запису, а потім повторно виконайте `openclaw doctor --fix` або перезапустіть gateway.
|
||||
- Значення: OpenClaw знайшов одне спільне плоске застаріле криптографічне сховище, але відмовляється вгадувати, якому іменованому обліковому запису Matrix його слід призначити.
|
||||
- Що робити: установіть `channels.matrix.defaultAccount` на потрібний обліковий запис, потім знову виконайте `openclaw doctor --fix` або перезапустіть Gateway.
|
||||
|
||||
`Matrix migration warnings are present, but no on-disk Matrix mutation is actionable yet. No pre-migration snapshot was needed.`
|
||||
|
||||
- Значення: OpenClaw виявив старий Matrix state, але міграцію все ще блокує відсутність ідентифікаційних або credential data.
|
||||
- Що робити: завершіть login Matrix або налаштування конфігурації, а потім повторно виконайте `openclaw doctor --fix` або перезапустіть gateway.
|
||||
- Значення: OpenClaw виявив старий стан Matrix, але міграція все ще заблокована через відсутні дані ідентичності або облікових даних.
|
||||
- Що робити: завершіть вхід у Matrix або налаштування конфігурації, потім знову виконайте `openclaw doctor --fix` або перезапустіть Gateway.
|
||||
|
||||
`Legacy Matrix encrypted state was detected, but the Matrix plugin helper is unavailable. Install or repair @openclaw/matrix so OpenClaw can inspect the old rust crypto store before upgrading.`
|
||||
|
||||
- Значення: OpenClaw знайшов старий зашифрований Matrix state, але не зміг завантажити helper entrypoint із Plugin Matrix, який зазвичай перевіряє цей store.
|
||||
- Що робити: перевстановіть або відновіть Plugin Matrix (`openclaw plugins install @openclaw/matrix` або `openclaw plugins install ./path/to/local/matrix-plugin` для checkout репозиторію), а потім повторно виконайте `openclaw doctor --fix` або перезапустіть gateway.
|
||||
- Значення: OpenClaw знайшов старий зашифрований стан Matrix, але не зміг завантажити допоміжну точку входу з Matrix plugin, яка зазвичай перевіряє це сховище.
|
||||
- Що робити: перевстановіть або відновіть Matrix plugin (`openclaw plugins install @openclaw/matrix` або `openclaw plugins install ./path/to/local/matrix-plugin` для checkout репозиторію), потім знову виконайте `openclaw doctor --fix` або перезапустіть Gateway.
|
||||
|
||||
`Matrix plugin helper path is unsafe: ... Reinstall @openclaw/matrix and try again.`
|
||||
|
||||
- Значення: OpenClaw знайшов шлях до helper file, який виходить за межі root Plugin або не проходить перевірки меж Plugin, тому відмовився його імпортувати.
|
||||
- Що робити: перевстановіть Plugin Matrix із довіреного шляху, а потім повторно виконайте `openclaw doctor --fix` або перезапустіть gateway.
|
||||
- Значення: OpenClaw знайшов шлях до допоміжного файла, який виходить за межі кореня plugin або не проходить перевірки меж plugin, тому відмовився його імпортувати.
|
||||
- Що робити: перевстановіть Matrix plugin із довіреного шляху, потім знову виконайте `openclaw doctor --fix` або перезапустіть Gateway.
|
||||
|
||||
`- Failed creating a Matrix migration snapshot before repair: ...`
|
||||
|
||||
`- Skipping Matrix migration changes for now. Resolve the snapshot failure, then rerun "openclaw doctor --fix".`
|
||||
|
||||
- Значення: OpenClaw відмовився змінювати Matrix state, бо спочатку не зміг створити recovery snapshot.
|
||||
- Що робити: усуньте помилку backup, а потім повторно виконайте `openclaw doctor --fix` або перезапустіть gateway.
|
||||
- Значення: OpenClaw відмовився змінювати стан Matrix, оскільки спочатку не зміг створити знімок відновлення.
|
||||
- Що робити: усуньте помилку резервного копіювання, потім знову виконайте `openclaw doctor --fix` або перезапустіть Gateway.
|
||||
|
||||
`Failed migrating legacy Matrix client storage: ...`
|
||||
|
||||
- Значення: fallback на стороні клієнта Matrix знайшов старий плоский storage, але переміщення не вдалося. Тепер OpenClaw перериває цей fallback замість того, щоб мовчки запускатися з новим порожнім store.
|
||||
- Що робити: перевірте дозволи файлової системи або конфлікти, збережіть старий state недоторканим і повторіть спробу після усунення помилки.
|
||||
- Значення: клієнтський резервний механізм Matrix знайшов старе плоске сховище, але переміщення не вдалося. Тепер OpenClaw перериває цей резервний механізм замість того, щоб мовчки запускатися з новим сховищем.
|
||||
- Що робити: перевірте дозволи файлової системи або конфлікти, збережіть старий стан без змін і повторіть спробу після усунення помилки.
|
||||
|
||||
`Matrix is installed from a custom path: ...`
|
||||
|
||||
- Значення: Matrix прив’язаний до встановлення за шляхом, тому основні оновлення не замінюють його автоматично стандартним пакетом Matrix із репозиторію.
|
||||
- Що робити: перевстановіть через `openclaw plugins install @openclaw/matrix`, коли захочете повернутися до типового Plugin Matrix.
|
||||
- Значення: Matrix прив’язаний до інсталяції за шляхом, тому стандартні оновлення не замінюють його автоматично на стандартний пакет Matrix із репозиторію.
|
||||
- Що робити: перевстановіть за допомогою `openclaw plugins install @openclaw/matrix`, коли захочете повернутися до стандартного Matrix plugin.
|
||||
|
||||
### Повідомлення про відновлення зашифрованого стану
|
||||
|
||||
`matrix: restored X/Y room key(s) from legacy encrypted-state backup`
|
||||
|
||||
- Значення: room keys із backup було успішно відновлено в новий crypto store.
|
||||
- Значення: резервні копії ключів кімнат успішно відновлено в нове криптографічне сховище.
|
||||
- Що робити: зазвичай нічого.
|
||||
|
||||
`matrix: N legacy local-only room key(s) were never backed up and could not be restored automatically`
|
||||
|
||||
- Значення: деякі старі room keys існували лише в старому локальному store і ніколи не були вивантажені в Matrix backup.
|
||||
- Що робити: очікуйте, що частина старої зашифрованої історії залишиться недоступною, якщо ви не зможете вручну відновити ці keys з іншого verified client.
|
||||
- Значення: деякі старі ключі кімнат існували лише в старому локальному сховищі й ніколи не були завантажені до резервної копії Matrix.
|
||||
- Що робити: очікуйте, що частина старої зашифрованої історії залишиться недоступною, якщо ви не зможете відновити ці ключі вручну з іншого верифікованого клієнта Matrix.
|
||||
|
||||
`Legacy Matrix encrypted state for account "..." has backed-up room keys, but no local backup decryption key was found. Ask the operator to run "openclaw matrix verify backup restore --recovery-key <key>" after upgrade if they have the recovery key.`
|
||||
|
||||
- Значення: backup існує, але OpenClaw не зміг автоматично відновити recovery key.
|
||||
- Значення: резервна копія існує, але OpenClaw не зміг автоматично відновити ключ відновлення.
|
||||
- Що робити: виконайте `openclaw matrix verify backup restore --recovery-key "<your-recovery-key>"`.
|
||||
|
||||
`Failed inspecting legacy Matrix encrypted state for account "..." (...): ...`
|
||||
|
||||
- Значення: OpenClaw знайшов старий зашифрований store, але не зміг достатньо безпечно його перевірити, щоб підготувати відновлення.
|
||||
- Що робити: повторно виконайте `openclaw doctor --fix`. Якщо це повторюється, збережіть старий каталог state недоторканим і відновлюйте за допомогою іншого verified Matrix client плюс `openclaw matrix verify backup restore --recovery-key "<your-recovery-key>"`.
|
||||
- Значення: OpenClaw знайшов старе зашифроване сховище, але не зміг перевірити його достатньо безпечно, щоб підготувати відновлення.
|
||||
- Що робити: знову виконайте `openclaw doctor --fix`. Якщо це повторюється, збережіть старий каталог стану без змін і відновіть дані за допомогою іншого верифікованого клієнта Matrix плюс `openclaw matrix verify backup restore --recovery-key "<your-recovery-key>"`.
|
||||
|
||||
`Legacy Matrix backup key was found for account "...", but .../recovery-key.json already contains a different recovery key. Leaving the existing file unchanged.`
|
||||
|
||||
- Значення: OpenClaw виявив конфлікт backup key і відмовився автоматично перезаписувати поточний файл recovery key.
|
||||
- Що робити: перевірте, який recovery key правильний, перш ніж повторювати будь-яку команду відновлення.
|
||||
- Значення: OpenClaw виявив конфлікт ключів резервної копії й відмовився автоматично перезаписувати поточний файл recovery-key.
|
||||
- Що робити: перевірте, який ключ відновлення є правильним, перш ніж повторювати будь-яку команду відновлення.
|
||||
|
||||
`Legacy Matrix encrypted state for account "..." cannot be fully converted automatically because the old rust crypto store does not expose all local room keys for export.`
|
||||
|
||||
- Значення: це жорстке обмеження старого формату зберігання.
|
||||
- Що робити: keys із backup усе ще можна відновити, але локальна зашифрована історія без backup може залишитися недоступною.
|
||||
- Значення: це жорстке обмеження старого формату сховища.
|
||||
- Що робити: ключі з резервної копії все ще можна відновити, але локальна зашифрована історія може залишитися недоступною.
|
||||
|
||||
`matrix: failed restoring room keys from legacy encrypted-state backup: ...`
|
||||
|
||||
- Значення: новий Plugin спробував відновлення, але Matrix повернув помилку.
|
||||
- Значення: новий plugin спробував виконати відновлення, але Matrix повернув помилку.
|
||||
- Що робити: виконайте `openclaw matrix verify backup status`, а потім за потреби повторіть спробу через `openclaw matrix verify backup restore --recovery-key "<your-recovery-key>"`.
|
||||
|
||||
### Повідомлення про ручне відновлення
|
||||
|
||||
`Backup key is not loaded on this device. Run 'openclaw matrix verify backup restore' to load it and restore old room keys.`
|
||||
|
||||
- Значення: OpenClaw знає, що у вас має бути backup key, але він не активний на цьому пристрої.
|
||||
- Значення: OpenClaw знає, що у вас має бути ключ резервної копії, але на цьому пристрої він не активний.
|
||||
- Що робити: виконайте `openclaw matrix verify backup restore` або передайте `--recovery-key`, якщо потрібно.
|
||||
|
||||
`Store a recovery key with 'openclaw matrix verify device <key>', then run 'openclaw matrix verify backup restore'.`
|
||||
|
||||
- Значення: на цьому пристрої зараз не збережено recovery key.
|
||||
- Що робити: спочатку виконайте verification пристрою за допомогою recovery key, а потім відновіть backup.
|
||||
- Значення: на цьому пристрої наразі не збережено ключ відновлення.
|
||||
- Що робити: спочатку верифікуйте пристрій своїм ключем відновлення, а потім відновіть резервну копію.
|
||||
|
||||
`Backup key mismatch on this device. Re-run 'openclaw matrix verify device <key>' with the matching recovery key.`
|
||||
|
||||
- Значення: збережений key не відповідає активному Matrix backup.
|
||||
- Що робити: повторно виконайте `openclaw matrix verify device "<your-recovery-key>"` з правильним key.
|
||||
- Значення: збережений ключ не відповідає активній резервній копії Matrix.
|
||||
- Що робити: знову виконайте `openclaw matrix verify device "<your-recovery-key>"` з правильним ключем.
|
||||
|
||||
Якщо ви погоджуєтеся втратити невідновлювану стару зашифровану історію, ви можете
|
||||
замість цього скинути поточну базову лінію backup через `openclaw matrix verify backup reset --yes`. Коли
|
||||
збережений backup secret пошкоджений, це скидання також може перевідтворити secret storage, щоб
|
||||
новий backup key міг коректно завантажитися після перезапуску.
|
||||
Якщо ви погоджуєтеся втратити невідновлювану стару зашифровану історію, натомість можете
|
||||
скинути поточну базову лінію резервного копіювання за допомогою `openclaw matrix verify backup reset --yes`. Коли
|
||||
збережений секрет резервного копіювання пошкоджено, це скидання також може перевідтворити сховище секретів, щоб
|
||||
новий ключ резервної копії міг коректно завантажитися після перезапуску.
|
||||
|
||||
`Backup trust chain is not verified on this device. Re-run 'openclaw matrix verify device <key>'.`
|
||||
|
||||
- Значення: backup існує, але цей пристрій поки недостатньо довіряє cross-signing chain.
|
||||
- Що робити: повторно виконайте `openclaw matrix verify device "<your-recovery-key>"`.
|
||||
- Значення: резервна копія існує, але цей пристрій ще недостатньо сильно довіряє ланцюгу cross-signing.
|
||||
- Що робити: знову виконайте `openclaw matrix verify device "<your-recovery-key>"`.
|
||||
|
||||
`Matrix recovery key is required`
|
||||
|
||||
- Значення: ви спробували крок відновлення, не передавши recovery key там, де він був потрібен.
|
||||
- Що робити: повторіть команду з вашим recovery key.
|
||||
- Значення: ви спробували виконати крок відновлення без вказаного ключа відновлення, хоча він був потрібен.
|
||||
- Що робити: знову виконайте команду зі своїм ключем відновлення.
|
||||
|
||||
`Invalid Matrix recovery key: ...`
|
||||
|
||||
- Значення: наданий key не вдалося розібрати або він не відповідає очікуваному формату.
|
||||
- Що робити: повторіть спробу з точним recovery key із вашого Matrix client або файлу recovery key.
|
||||
- Значення: наданий ключ не вдалося розібрати або він не відповідав очікуваному формату.
|
||||
- Що робити: повторіть спробу з точним ключем відновлення з вашого клієнта Matrix або файла recovery-key.
|
||||
|
||||
`Matrix device is still unverified after applying recovery key. Verify your recovery key and ensure cross-signing is available.`
|
||||
`Matrix recovery key was applied, but this device still lacks full Matrix identity trust.`
|
||||
|
||||
- Значення: key було застосовано, але пристрій усе ще не зміг завершити verification.
|
||||
- Що робити: переконайтеся, що ви використали правильний key і що для облікового запису доступний cross-signing, а потім повторіть спробу.
|
||||
- Значення: OpenClaw зміг застосувати ключ відновлення, але Matrix усе ще не
|
||||
встановив повну довіру до cross-signing identity для цього пристрою. Перевірте
|
||||
у виводі команди `Recovery key accepted`, `Backup usable`,
|
||||
`Cross-signing verified` і `Device verified by owner`.
|
||||
- Що робити: виконайте `openclaw matrix verify self`, підтвердьте запит в іншому
|
||||
клієнті Matrix, порівняйте SAS і введіть `yes` лише тоді, коли він збігається. Команда
|
||||
очікує на повну довіру до Matrix identity, перш ніж повідомити про успіх. Використовуйте
|
||||
`openclaw matrix verify bootstrap --recovery-key "<your-recovery-key>" --force-reset-cross-signing`
|
||||
лише тоді, коли ви свідомо хочете замінити поточну cross-signing identity.
|
||||
|
||||
`Matrix key backup is not active on this device after loading from secret storage.`
|
||||
|
||||
- Значення: secret storage не створив активну backup session на цьому пристрої.
|
||||
- Що робити: спочатку виконайте verification пристрою, а потім ще раз перевірте через `openclaw matrix verify backup status`.
|
||||
- Значення: secret storage не створило активну сесію резервного копіювання на цьому пристрої.
|
||||
- Що робити: спочатку верифікуйте пристрій, а потім повторно перевірте стан через `openclaw matrix verify backup status`.
|
||||
|
||||
`Matrix crypto backend cannot load backup keys from secret storage. Verify this device with 'openclaw matrix verify device <key>' first.`
|
||||
|
||||
- Значення: цей пристрій не може відновлюватися з secret storage, доки не завершено verification device.
|
||||
- Значення: цей пристрій не може відновити дані з secret storage, доки не завершено верифікацію пристрою.
|
||||
- Що робити: спочатку виконайте `openclaw matrix verify device "<your-recovery-key>"`.
|
||||
|
||||
### Повідомлення про встановлення custom Plugin
|
||||
### Повідомлення про інсталяцію кастомного plugin
|
||||
|
||||
`Matrix is installed from a custom path that no longer exists: ...`
|
||||
|
||||
- Значення: запис встановлення Plugin вказує на локальний шлях, якого більше немає.
|
||||
- Що робити: перевстановіть через `openclaw plugins install @openclaw/matrix`, або якщо ви працюєте з checkout репозиторію — `openclaw plugins install ./path/to/local/matrix-plugin`.
|
||||
- Значення: запис про інсталяцію plugin вказує на локальний шлях, якого більше не існує.
|
||||
- Що робити: перевстановіть за допомогою `openclaw plugins install @openclaw/matrix`, або, якщо ви працюєте з checkout репозиторію, `openclaw plugins install ./path/to/local/matrix-plugin`.
|
||||
|
||||
## Якщо зашифрована історія все ще не повертається
|
||||
|
||||
Виконайте ці перевірки по черзі:
|
||||
Виконайте ці перевірки по порядку:
|
||||
|
||||
```bash
|
||||
openclaw matrix verify status --verbose
|
||||
@ -332,11 +350,11 @@ openclaw matrix verify backup status --verbose
|
||||
openclaw matrix verify backup restore --recovery-key "<your-recovery-key>" --verbose
|
||||
```
|
||||
|
||||
Якщо backup відновлюється успішно, але в деяких старих rooms історія все ще відсутня, імовірно, ці відсутні keys ніколи не були збережені в backup попереднім Plugin.
|
||||
Якщо резервна копія відновлюється успішно, але в деяких старих кімнатах історія все ще відсутня, імовірно, ці відсутні ключі ніколи не були збережені в резервній копії попереднім plugin.
|
||||
|
||||
## Якщо ви хочете почати з чистого аркуша для майбутніх повідомлень
|
||||
|
||||
Якщо ви погоджуєтеся втратити невідновлювану стару зашифровану історію й хочете лише чисту базову лінію backup надалі, виконайте ці команди по черзі:
|
||||
Якщо ви погоджуєтеся втратити невідновлювану стару зашифровану історію й хочете лише чисту базову лінію резервного копіювання надалі, виконайте ці команди по порядку:
|
||||
|
||||
```bash
|
||||
openclaw matrix verify backup reset --yes
|
||||
@ -344,11 +362,11 @@ openclaw matrix verify backup status --verbose
|
||||
openclaw matrix verify status
|
||||
```
|
||||
|
||||
Якщо після цього пристрій усе ще не verified, завершіть verification у своєму Matrix client, порівнявши SAS emoji або десяткові коди та підтвердивши, що вони збігаються.
|
||||
Якщо після цього пристрій усе ще не верифіковано, завершіть верифікацію зі свого клієнта Matrix, порівнявши SAS emoji або десяткові коди та підтвердивши, що вони збігаються.
|
||||
|
||||
## Пов’язані сторінки
|
||||
|
||||
- [Matrix](/uk/channels/matrix)
|
||||
- [Doctor](/uk/gateway/doctor)
|
||||
- [Migrating](/uk/install/migrating)
|
||||
- [Міграція](/uk/install/migrating)
|
||||
- [Plugins](/uk/tools/plugin)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user