Міграція Matrix
Ця сторінка описує оновлення з попереднього публічного pluginmatrix до поточної реалізації.
Для більшості користувачів оновлення виконується на місці:
- plugin залишається
@openclaw/matrix - канал залишається
matrix - ваша конфігурація залишається в
channels.matrix - кешовані облікові дані залишаються в
~/.openclaw/credentials/matrix/ - runtime-стан залишається в
~/.openclaw/matrix/
Що міграція робить автоматично
Коли gateway запускається, і коли ви виконуєтеopenclaw doctor --fix, OpenClaw намагається автоматично відновити старий стан Matrix.
Перш ніж будь-який дієвий крок міграції Matrix змінить стан на диску, OpenClaw створює або повторно використовує цільовий recovery snapshot.
Коли ви використовуєте openclaw update, точний тригер залежить від того, як установлено OpenClaw:
- інсталяції з вихідного коду запускають
openclaw doctor --fixпід час потоку оновлення, а потім за замовчуванням перезапускають gateway - інсталяції через package manager оновлюють package, запускають неінтерактивний прохід doctor, а потім покладаються на типовий перезапуск gateway, щоб startup міг завершити міграцію Matrix
- якщо ви використовуєте
openclaw update --no-restart, міграція Matrix, яка залежить від startup, відкладається до того моменту, коли ви пізніше виконаєтеopenclaw doctor --fixі перезапустите gateway
- створення або повторне використання snapshot перед міграцією в
~/Backups/openclaw-migrations/ - повторне використання ваших кешованих облікових даних Matrix
- збереження того самого вибору облікового запису та конфігурації
channels.matrix - переміщення найстарішого плоского sync store Matrix у поточне розташування з областю облікового запису
- переміщення найстарішого плоского crypto store Matrix у поточне розташування з областю облікового запису, коли цільовий обліковий запис можна безпечно визначити
- витягування раніше збереженого ключа дешифрування резервної копії ключів кімнат Matrix зі старого rust crypto store, якщо цей ключ локально існує
- повторне використання найповнішого наявного кореня сховища token-hash для того самого облікового запису Matrix, homeserver і користувача, коли access token пізніше змінюється
- сканування сусідніх коренів сховища token-hash на наявність metadata відкладеного відновлення зашифрованого стану, коли access token Matrix змінився, але ідентичність облікового запису/пристрою залишилася тією самою
- відновлення резервних ключів кімнат у новому crypto store під час наступного startup Matrix
- OpenClaw записує marker file у
~/.openclaw/matrix/migration-snapshot.jsonпісля успішного snapshot, щоб наступні проходи startup і repair могли повторно використовувати той самий archive. - Ці автоматичні snapshot міграції Matrix створюють резервну копію лише config + state (
includeWorkspace: false). - Якщо Matrix має лише стан міграції на рівні попереджень, наприклад тому що
userIdабоaccessTokenусе ще відсутні, OpenClaw поки не створює snapshot, бо жодна зміна Matrix ще не є дієвою. - Якщо крок snapshot завершується помилкою, OpenClaw пропускає міграцію Matrix для цього запуску замість зміни стану без точки відновлення.
- найстаріше плоске сховище Matrix (
~/.openclaw/matrix/bot-storage.jsonі~/.openclaw/matrix/crypto/) походить зі схеми з одним сховищем, тому OpenClaw може мігрувати його лише в одну визначену ціль Matrix account - уже scoped старі сховища Matrix з областю облікового запису виявляються й готуються окремо для кожного налаштованого облікового запису Matrix
Що міграція не може зробити автоматично
Попередній публічний plugin Matrix не створював автоматично резервні копії ключів кімнат Matrix. Він зберігав локальний crypto-стан і запитував верифікацію пристрою, але не гарантував, що ваші ключі кімнат були збережені в резервній копії на homeserver. Це означає, що деякі зашифровані інсталяції можна мігрувати лише частково. OpenClaw не може автоматично відновити:- локальні ключі кімнат, які ніколи не були збережені в резервній копії
- зашифрований стан, коли цільовий обліковий запис Matrix ще не можна визначити, тому що
homeserver,userIdабоaccessTokenусе ще недоступні - автоматичну міграцію одного спільного плоского сховища Matrix, коли налаштовано кілька облікових записів Matrix, але
channels.matrix.defaultAccountне задано - інсталяції custom plugin path, зафіксовані на шляху репозиторію, а не на стандартному package Matrix
- відсутній recovery key, коли старе сховище містило резервні ключі, але не зберігало локально ключ дешифрування
- інсталяції custom Matrix plugin path показуються як під час startup gateway, так і в
openclaw doctor
Рекомендований потік оновлення
-
Оновіть OpenClaw і plugin Matrix звичайним способом.
Надавайте перевагу звичайному
openclaw updateбез--no-restart, щоб startup міг одразу завершити міграцію Matrix. -
Виконайте:
Якщо Matrix має дієву роботу з міграції, doctor спочатку створить або повторно використає snapshot перед міграцією та виведе шлях до archive.
- Запустіть або перезапустіть gateway.
-
Перевірте поточний стан верифікації та резервної копії:
-
Якщо OpenClaw повідомляє, що потрібен recovery key, виконайте:
-
Якщо цей пристрій усе ще не верифікований, виконайте:
-
Якщо ви свідомо відмовляєтеся від невідновлюваної старої історії й хочете нову базову резервну копію для майбутніх повідомлень, виконайте:
-
Якщо серверна резервна копія ключів ще не існує, створіть її для майбутніх відновлень:
Як працює міграція зашифрованого стану
Міграція зашифрованого стану — це двоетапний процес:- Startup або
openclaw doctor --fixстворює або повторно використовує snapshot перед міграцією, якщо міграція зашифрованого стану є дієвою. - Startup або
openclaw doctor --fixперевіряє старий crypto store Matrix через активну інсталяцію plugin Matrix. - Якщо знайдено ключ дешифрування резервної копії, OpenClaw записує його в новий потік recovery key і позначає відновлення ключів кімнат як pending.
- Під час наступного startup Matrix OpenClaw автоматично відновлює резервні ключі кімнат у новий crypto store.
Поширені повідомлення та що вони означають
Повідомлення про оновлення та виявлення
Matrix plugin upgraded in place.
- Значення: старий стан Matrix на диску було виявлено й мігровано до поточної схеми.
- Що робити: нічого, якщо той самий вивід не містить також попереджень.
Matrix migration snapshot created before applying Matrix upgrades.
- Значення: OpenClaw створив recovery archive перед зміною стану Matrix.
- Що робити: збережіть виведений шлях до archive, доки не підтвердите, що міграція успішна.
Matrix migration snapshot reused before applying Matrix upgrades.
- Значення: OpenClaw знайшов наявний marker snapshot міграції Matrix і повторно використав цей archive замість створення дубльованої резервної копії.
- Що робити: збережіть виведений шлях до archive, доки не підтвердите, що міграція успішна.
Legacy Matrix state detected at ... but channels.matrix is not configured yet.
- Значення: старий стан 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 знайшов старий стан, але все ще не може визначити точний поточний корінь облікового запису/пристрою.
- Що робити: один раз запустіть 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, але відмовляється вгадувати, який іменований обліковий запис Matrix має його отримати.
- Що робити: задайте
channels.matrix.defaultAccountдля потрібного облікового запису, потім повторно виконайтеopenclaw doctor --fixабо перезапустіть gateway.
Matrix legacy sync store not migrated because the target already exists (...)
- Значення: нове розташування з областю облікового запису вже має sync або crypto store, тому OpenClaw не став автоматично його перезаписувати.
- Що робити: переконайтеся, що поточний обліковий запис правильний, перш ніж вручну видаляти або переміщувати конфліктну ціль.
Failed migrating Matrix legacy sync store (...) або Failed migrating Matrix legacy crypto store (...)
- Значення: OpenClaw спробував перемістити старий стан Matrix, але операція файлової системи завершилася помилкою.
- Що робити: перевірте дозволи файлової системи та стан диска, потім повторно виконайте
openclaw doctor --fix.
Legacy Matrix encrypted state detected at ... but channels.matrix is not configured yet.
- Значення: 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...).
- Значення: зашифроване сховище існує, але 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 знайшов одне спільне плоске старе crypto store, але відмовляється вгадувати, який іменований обліковий запис 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, але міграцію все ще блокує відсутність даних ідентичності або облікових даних.
- Що робити: завершіть вхід у 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, але не зміг завантажити helper entrypoint із plugin Matrix, який зазвичай перевіряє це сховище.
- Що робити: перевстановіть або відновіть plugin Matrix (
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, який виходить за межі кореня plugin або не проходить перевірки меж plugin, тому відмовився його імпортувати.
- Що робити: перевстановіть plugin Matrix із довіреного шляху, потім повторно виконайте
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, бо спочатку не зміг створити recovery snapshot.
- Що робити: усуньте помилку резервної копії, потім повторно виконайте
openclaw doctor --fixабо перезапустіть gateway.
Failed migrating legacy Matrix client storage: ...
- Значення: fallback на стороні client Matrix знайшов старе плоске сховище, але переміщення завершилося помилкою. Тепер OpenClaw перериває цей fallback замість того, щоб мовчки запускатися з новим порожнім сховищем.
- Що робити: перевірте дозволи файлової системи або конфлікти, збережіть старий стан недоторканим і повторіть спробу після виправлення помилки.
Matrix is installed from a custom path: ...
- Значення: Matrix зафіксовано на інсталяції з path, тому стандартні оновлення не замінюють його автоматично на стандартний package Matrix із репозиторію.
- Що робити: перевстановіть через
openclaw plugins install @openclaw/matrix, коли захочете повернутися до plugin Matrix за замовчуванням.
Повідомлення про відновлення зашифрованого стану
matrix: restored X/Y room key(s) from legacy encrypted-state backup
- Значення: резервні ключі кімнат успішно відновлено в новий crypto store.
- Що робити: зазвичай нічого.
matrix: N legacy local-only room key(s) were never backed up and could not be restored automatically
- Значення: деякі старі ключі кімнат існували лише в старому локальному сховищі та ніколи не були завантажені в резервну копію Matrix.
- Що робити: очікуйте, що частина старої зашифрованої історії залишиться недоступною, якщо ви не зможете відновити ці ключі вручну з іншого верифікованого client.
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.
- Значення: резервна копія існує, але OpenClaw не зміг автоматично відновити recovery key.
- Що робити: виконайте
openclaw matrix verify backup restore --recovery-key "<your-recovery-key>".
Failed inspecting legacy Matrix encrypted state for account "..." (...): ...
- Значення: OpenClaw знайшов старе зашифроване сховище, але не зміг перевірити його достатньо безпечно, щоб підготувати відновлення.
- Що робити: повторно виконайте
openclaw doctor --fix. Якщо це повторюється, залиште старий каталог стану недоторканим і відновіть через інший верифікований Matrix client плюс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 виявив конфлікт ключів резервної копії й відмовився автоматично перезаписувати поточний файл recovery-key.
- Що робити: перевірте, який 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.
- Значення: це жорстке обмеження старого формату сховища.
- Що робити: резервні ключі все ще можна відновити, але локальна зашифрована історія може залишитися недоступною.
matrix: failed restoring room keys from legacy encrypted-state backup: ...
- Значення: новий 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 знає, що у вас має бути ключ резервної копії, але він не активний на цьому пристрої.
- Що робити: виконайте
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.
- Що робити: спочатку верифікуйте пристрій за допомогою recovery key, потім відновіть резервну копію.
Backup key mismatch on this device. Re-run 'openclaw matrix verify device <key>' with the matching recovery key.
- Значення: збережений ключ не збігається з активною резервною копією Matrix.
- Що робити: повторно виконайте
openclaw matrix verify device "<your-recovery-key>"із правильним ключем.
openclaw matrix verify backup reset --yes. Коли
збережений секрет резервної копії пошкоджений, це скидання також може повторно створити secret storage, щоб
новий ключ резервної копії міг коректно завантажуватися після перезапуску.
Backup trust chain is not verified on this device. Re-run 'openclaw matrix verify device <key>'.
- Значення: резервна копія існує, але цей пристрій ще недостатньо сильно не довіряє ланцюгу cross-signing.
- Що робити: повторно виконайте
openclaw matrix verify device "<your-recovery-key>".
Matrix recovery key is required
- Значення: ви спробували крок відновлення, не надавши recovery key, коли він був потрібен.
- Що робити: повторно виконайте команду з recovery key.
Invalid Matrix recovery key: ...
- Значення: наданий ключ не вдалося розібрати або він не відповідає очікуваному формату.
- Що робити: повторіть спробу з точним recovery key із вашого Matrix client або файла recovery-key.
Matrix device is still unverified after applying recovery key. Verify your recovery key and ensure cross-signing is available.
- Значення: ключ було застосовано, але пристрій усе ще не зміг завершити верифікацію.
- Що робити: переконайтеся, що ви використали правильний ключ і що cross-signing доступний для облікового запису, потім повторіть спробу.
Matrix key backup is not active on this device after loading from secret storage.
- Значення: 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, доки не завершено верифікацію пристрою.
- Що робити: спочатку виконайте
openclaw matrix verify device "<your-recovery-key>".
Повідомлення про інсталяцію custom 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.