概述

Matrix QA 通道在 Docker 中针对一次性 Tuwunel 家庭服务器运行捆绑的 @openclaw/matrix 插件,使用临时的 driver、SUT 和 observer 账号以及预置房间。这是 Matrix 的实时传输真实覆盖通道,仅限维护者使用(源码检出才可用,打包发布版本不含 qa-lab)。

核心要点

  • 完整隔离环境:每次运行启动一次性 Tuwunel 服务器(默认镜像 ghcr.io/matrix-construct/tuwunel:v1.5.1)
  • 三个临时用户:driver(发送入站流量)、sut(被测 OpenClaw Matrix 账号)、observer(第三方流量捕获)
  • 场景分类:threading、top-level/DM/room、streaming/tool progress、media、routing、reactions、approvals、restart/replay、mention gating/allowlists、E2EE(基础/深度/CLI)
  • Profile 系统:all(完整)、fast(发布门控子集)、transport、media、e2ee-smoke、e2ee-deep、e2ee-cli
  • 输出 artifacts:matrix-qa-report.md、matrix-qa-summary.json、matrix-qa-observed-events.json(默认脱敏)、matrix-qa-output.log

配置/使用

快速启动(发布门控):

pnpm openclaw qa matrix --profile fast --fail-fast

运行特定场景:

pnpm openclaw qa matrix --scenario matrix-e2ee-basic-reply --scenario matrix-thread-follow-up

关键环境变量:

变量默认值说明
OPENCLAW_QA_MATRIX_TIMEOUT_MS1800000整体运行上限
OPENCLAW_QA_MATRIX_CANARY_TIMEOUT_MS45000初始 canary 回复超时
OPENCLAW_QA_MATRIX_NO_REPLY_WINDOW_MS8000负向断言静默窗口
OPENCLAW_QA_MATRIX_TUWUNEL_IMAGEv1.5.1覆盖 homeserver 镜像
OPENCLAW_QA_MATRIX_CAPTURE_CONTENT脱敏1 保留消息体

故障排查:

  • 运行在末尾挂起:matrix-js-sdk 原生加密句柄可能存活超过 harness,默认强制 process.exit
  • 清理错误:手动运行报告中的 docker compose ... down --remove-orphans 命令
  • CI 中负向断言窗口不稳定:调整 OPENCLAW_QA_MATRIX_NO_REPLY_WINDOW_MS

相关页面

  • qa-e2e-automation — QA 整体框架与实时传输契约
  • mantis — 实时传输 Bug 的 Before/After 验证
  • concepts/channel-docking — 渠道对接机制
  • streaming — 流式输出(Matrix 草稿事件)