从旧版 Matrix 插件升级到当前实现的指南。对大多数用户来说,升级是原地进行的,无需重命名配置键或重新安装插件。

升级后保持不变的内容

  • 插件名:@openclaw/matrix
  • channel 名:matrix
  • 配置路径:channels.matrix
  • 缓存凭证:~/.openclaw/credentials/matrix/
  • 运行时状态:~/.openclaw/matrix/

自动迁移内容

Gateway 启动或运行 openclaw doctor --fix 时,OpenClaw 会自动:

  • 在 ~/Backups/openclaw-migrations/ 创建迁移前快照
  • 复用缓存的 Matrix 凭证
  • 将旧的 flat Matrix sync store 移至当前账号作用域位置
  • 将旧的 flat Matrix crypto store 移至当前账号作用域位置
  • 从旧 rust crypto store 提取 room-key backup 解密密钥
  • 在下次 Matrix 启动时将备份的 room keys 恢复到新 crypto store

无法自动迁移的内容

  • 从未备份的本地 room keys
  • 目标 Matrix 账号无法解析时的加密状态(缺少 homeserver、userId 或 accessToken)
  • 配置了多个 Matrix 账号但未设置 channels.matrix.defaultAccount 时的共享 flat store
  • 固定到自定义路径的插件安装
  • 旧 store 有备份但本地没有解密密钥时

推荐升级流程

# 1. 更新 OpenClaw 和 Matrix 插件
openclaw update
 
# 2. 运行健康检查和自动修复
openclaw doctor --fix
 
# 3. 重启 gateway
openclaw gateway restart
 
# 4. 检查验证和备份状态
openclaw matrix verify status
openclaw matrix verify backup status
 
# 5. 如需恢复密钥,恢复 room keys
printf '%s\n' "$MATRIX_RECOVERY_KEY" | openclaw matrix verify backup restore --recovery-key-stdin
 
# 6. 如设备仍未验证
printf '%s\n' "$MATRIX_RECOVERY_KEY" | openclaw matrix verify device --recovery-key-stdin
 
# 7. 如需完成自我验证
openclaw matrix verify self
 
# 8. 如需重置备份基线(接受丢失不可恢复的历史)
openclaw matrix verify backup reset --yes

常见消息含义

消息含义处理方式
Matrix plugin upgraded in place.旧状态已迁移无需操作
Legacy Matrix state detected ... channels.matrix is not configured yet.旧状态存在但未配置配置 channels.matrix 后重新运行 doctor --fix
Legacy Matrix state detected ... multiple Matrix accounts ... defaultAccount is not set.多账号但无默认账号设置 channels.matrix.defaultAccount
matrix: restored X/Y room key(s) from legacy encrypted-state backuproom keys 恢复成功通常无需操作
matrix: N legacy local-only room key(s) were never backed up部分旧 keys 无法恢复预期部分旧加密历史不可读

加密历史仍无法恢复时

openclaw matrix verify status --verbose
openclaw matrix verify backup status --verbose
printf '%s\n' "$MATRIX_RECOVERY_KEY" | openclaw matrix verify backup restore --recovery-key-stdin --verbose

若备份恢复成功但部分旧房间历史仍缺失,说明这些 keys 在旧插件中从未备份。

从头开始(放弃旧历史)

openclaw matrix verify backup reset --yes
openclaw matrix verify backup status --verbose
openclaw matrix verify status

相关链接