Concepts 导读

Matrix QA:先把底下那条暗线看见

Matrix QA 这页在补地图,不是在发操作说明。看完你应该能指出它埋在系统哪一层、为什么会牵动后面的动作,以及最容易把哪几件事想反。原文最响的一记鼓点,其实是:The Matrix QA lane runs the bundled @openclaw/matrix 新本领插件 against a disposable Tuwunel…。

先听这页的人话版

Matrix QA

这一页不是在堆术语,它像把“Matrix QA”这台小机器搬到桌上,当着你的面拆开给你看。你先不用全记住,先抓住它到底在忙什么:The Matrix QA lane runs the bundled @openclaw/matrix 新本领插件 against a disposable Tuwunel home大房子…。

如果把这页当成“给普通人看的版本”,你最应该带走的是:它到底在教你一件什么事、什么时候要这样做、以及哪里最容易踩坑。

原始路径:/concepts/qa-matrix 章节数量:13 查看原文

第 1 站

Start Here

这一节更像安装或配置步骤,重点不是概念,而是“按什么顺序做才不会卡住”。

这段在解决什么

这一节更像安装或配置步骤,重点不是概念,而是“按什么顺序做才不会卡住”。

为什么值得看

很多文档看起来长,其实是在防你漏掉前置条件。

真要动手时

真正照做时,先找前置条件,再找必填项,最后看验证方法。

先别急着背术语

如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:The Matrix QA lane runs the bundled @openclaw/matrix 新本领插件 against a disposable Tuwunel home大房子服务器 in Docker, with temp…。

像讲绘本

如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:The Matrix QA lane runs the bundled @openclaw/matrix 新本领插件 against a disposable Tuwunel home大房子服务器 in Docker, with temp…。

原文小纸条

The Matrix QA lane runs the bundled @openclaw/matrix plugin against a disposable Tuwunel homeserver in Docker, with temporary driver, SUT, and observer accounts plus seeded rooms. It is the live transport-real coverage for Matrix.

像讲绘本

如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:This is maintainer-only 工具小帮手ing. Packaged OpenClaw releases intentionally omit qa-lab, so openclaw qa is only availabl…。

原文小纸条

This is maintainer-only tooling. Packaged OpenClaw releases intentionally omit qa-lab, so openclaw qa is only available from a source checkout. Source checkouts load the bundled runner directly - no plugin install step is needed.

像讲绘本

如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:For broader QA framework context, see QA overview.

原文小纸条

For broader QA framework context, see QA overview.

第 2 站

Quick start

这一节在讲一类能力是怎么工作的:它能做什么、不能做什么、适合在什么场景下调用。

这段在解决什么

这一节在讲一类能力是怎么工作的:它能做什么、不能做什么、适合在什么场景下调用。

为什么值得看

你理解的是能力边界,不只是功能名字。

真要动手时

如果这节里同时出现命令、配置和例子,优先先看例子,再回头看配置。

先别急着背术语

如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Plain pnpm openclaw qa matrix runs --profile all and does not stop on first failure. Use --profile fast --fail-fast for…。

像魔法口令拆解

这是一串终端口令,像你站在控制台前,一下下按按钮让机器醒过来。

  • 这一句像在终端上按下启动钮:“pnpm openclaw qa matrix --profile fast --fail-fast”。它会让电脑去请求、安装或者把东西搭起来。
原文代码块
pnpm openclaw qa matrix --profile fast --fail-fast
像讲绘本

如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Plain pnpm openclaw qa matrix runs --profile all and does not stop on first failure. Use --profile fast --fail-fast for…。

原文小纸条

Plain pnpm openclaw qa matrix runs --profile all and does not stop on first failure. Use --profile fast --fail-fast for a release gate; shard the catalog with --profile transport|media|e2ee-smoke|e2ee-deep|e2ee-cli when running the full inventory in parallel.

第 3 站

What the lane does

这一节在讲规则和边界:什么默认允许、什么必须显式打开、什么被禁止。

这段在解决什么

这一节在讲规则和边界:什么默认允许、什么必须显式打开、什么被禁止。

为什么值得看

这种内容决定了 OpenClaw 是“能做”还是“现在还不能做”,读懂它比记术语更重要。

真要动手时

你可以把这一节当成权限说明书,真正配置时优先盯住 default、required、allow、deny 这几个词。

先别急着背术语

如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:1. Provisions a disposable Tuwunel home大房子服务器 in Docker (default image ghcr.io/matrix-construct/tuwunel:v1.5.1, 大房子服务器…。

像讲绘本

如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:1. Provisions a disposable Tuwunel home大房子服务器 in Docker (default image ghcr.io/matrix-construct/tuwunel:v1.5.1, 大房子服务器…。

原文小纸条

1. Provisions a disposable Tuwunel homeserver in Docker (default image ghcr.io/matrix-construct/tuwunel:v1.5.1, server name matrix-qa.test, port 28008). 2. Registers three temporary users - driver (sends inbound traffic), sut (the OpenClaw Matrix account under test), observer (third-party traffic capture). 3. Seeds rooms required by the selected scenarios (main, threading, media, restart, secondary, allowlist, E2EE, verification DM, etc.). 4. Starts a child OpenClaw gateway with the real Matrix plugin scoped to the SUT account; qa-channel is not loaded in the child. 5. Runs scenarios in sequence, observing events through the driver/observer Matrix clients. 6. Tears down the homeserver, writes report and summary artifacts, then exits.

第 4 站

CLI

这一节主要在解释“CLI”到底是干什么的,以及你什么时候会遇到它。

这段在解决什么

这一节主要在解释“CLI”到底是干什么的,以及你什么时候会遇到它。

为什么值得看

如果你是第一次接触 OpenClaw,这一节最值得看的不是术语本身,而是它背后的使用场景和限制。

真要动手时

真正动手时,先看它有没有默认值、有没有必须打开的选项、以及会不会影响安全边界。

先别急着背术语

这一小段像旁白,在提醒我们镜头已经切到下一站。

像魔法口令拆解

这段像放在桌上的操作卡,谁来照着做,现场就会动起来。

  • 这一句像在终端上按下启动钮:“pnpm openclaw qa matrix [options]”。它会让电脑去请求、安装或者把东西搭起来。
原文代码块
pnpm openclaw qa matrix [options]

第 5 站

Common flags

这一节主要在解释“Common flags”到底是干什么的,以及你什么时候会遇到它。

这段在解决什么

这一节主要在解释“Common flags”到底是干什么的,以及你什么时候会遇到它。

为什么值得看

如果你是第一次接触 OpenClaw,这一节最值得看的不是术语本身,而是它背后的使用场景和限制。

真要动手时

真正动手时,先看它有没有默认值、有没有必须打开的选项、以及会不会影响安全边界。

先别急着背术语

这一小段像旁白,在提醒我们镜头已经切到下一站。

像整理表格

这段是在把几种选项排成表格,左边像标签,右边像说明。手机上可以横向滑动原文表格。

原文表格
FlagDefaultDescription
--profile <profile>allScenario profile. See Profiles.
--fail-fastoffStop after the first failed check or scenario.
--scenario <id>-Run only this scenario. Repeatable. See Scenarios.
--output-dir <path><repo>/.artifacts/qa-e2e/matrix-<timestamp>Where reports, summary, observed events, and the output log are written. Relative paths resolve against --repo-root.
--repo-root <path>process.cwd()Repository root when invoking from a neutral working directory.
--sut-account <id>sutMatrix account id inside the QA gateway config.

第 6 站

Provider flags

这一节主要在解释“Provider flags”到底是干什么的,以及你什么时候会遇到它。

这段在解决什么

这一节主要在解释“Provider flags”到底是干什么的,以及你什么时候会遇到它。

为什么值得看

如果你是第一次接触 OpenClaw,这一节最值得看的不是术语本身,而是它背后的使用场景和限制。

真要动手时

真正动手时,先看它有没有默认值、有没有必须打开的选项、以及会不会影响安全边界。

先别急着背术语

如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:The lane uses a real Matrix transport but the 聪明脑袋模型 provider is 设置说明书urable: Matrix QA does not accept --credential-so…。

像讲绘本

如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:The lane uses a real Matrix transport but the 聪明脑袋模型 provider is 设置说明书urable:。

原文小纸条

The lane uses a real Matrix transport but the model provider is configurable:

像整理表格

这段是在把几种选项排成表格,左边像标签,右边像说明。手机上可以横向滑动原文表格。

原文表格
FlagDefaultDescription
--provider-mode <mode>live-frontiermock-openai for deterministic mock dispatch or live-frontier for live frontier providers. The legacy alias live-openai still works.
--model <ref>provider defaultPrimary provider/model ref.
--alt-model <ref>provider defaultAlternate provider/model ref where scenarios switch mid-run.
--fastoffEnable provider fast mode where supported.
像讲绘本

如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Matrix QA does not accept --credential-source or --credential-role. The lane provisions disposable users locally; there…。

原文小纸条

Matrix QA does not accept --credential-source or --credential-role. The lane provisions disposable users locally; there is no shared credential pool to lease against.

第 7 站

Profiles

这一节在讲一类能力是怎么工作的:它能做什么、不能做什么、适合在什么场景下调用。

这段在解决什么

这一节在讲一类能力是怎么工作的:它能做什么、不能做什么、适合在什么场景下调用。

为什么值得看

你理解的是能力边界,不只是功能名字。

真要动手时

如果这节里同时出现命令、配置和例子,优先先看例子,再回头看配置。

先别急着背术语

如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:The selected profile decides which scenarios run. The exact mapping lives in extensions/qa-matrix/src/runners/contract/…。

像讲绘本

如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:The selected profile decides which scenarios run.

原文小纸条

The selected profile decides which scenarios run.

像整理表格

这段是在把几种选项排成表格,左边像标签,右边像说明。手机上可以横向滑动原文表格。

原文表格
ProfileUse it for
all (default)Full catalog. Slow but exhaustive.
fastRelease-gate subset that exercises the live transport contract: canary, mention gating, allowlist block, reply shape, restart resume, thread follow-up, thread isolation, reaction observation, and exec approval metadata delivery.
transportTransport-level threading, DM, room, autojoin, mention/allowlist, approval, and reaction scenarios.
mediaImage, audio, video, PDF, EPUB attachment coverage.
e2ee-smokeMinimum E2EE coverage - basic encrypted reply, thread follow-up, bootstrap success.
e2ee-deepExhaustive E2EE state-loss, backup, key, and recovery scenarios.
e2ee-cliopenclaw matrix encryption setup and verify * CLI scenarios driven through the QA harness.
像讲绘本

如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:The exact mapping lives in extensions/qa-matrix/src/runners/contract/scenario-catalog.ts.

原文小纸条

The exact mapping lives in extensions/qa-matrix/src/runners/contract/scenario-catalog.ts.

第 8 站

Scenarios

这一节在讲规则和边界:什么默认允许、什么必须显式打开、什么被禁止。

这段在解决什么

这一节在讲规则和边界:什么默认允许、什么必须显式打开、什么被禁止。

为什么值得看

这种内容决定了 OpenClaw 是“能做”还是“现在还不能做”,读懂它比记术语更重要。

真要动手时

你可以把这一节当成权限说明书,真正配置时优先盯住 default、required、allow、deny 这几个词。

先别急着背术语

如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:The full scenario id list is the MatrixQaScenarioId union in extensions/qa-matrix/src/runners/contract/scenario-catalog…。

像讲绘本

如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:The full scenario id list is the MatrixQaScenarioId union in extensions/qa-matrix/src/runners/contract/scenario-catalog…。

原文小纸条

The full scenario id list is the MatrixQaScenarioId union in extensions/qa-matrix/src/runners/contract/scenario-catalog.ts:15. Categories include:

像准备清单

这一串条目别硬背,把它当成“Scenarios”门口贴出来的几张便签就行。它们在提醒你先备好什么、别漏掉什么、哪里最容易走错:threading - matrix-thread-*, matrix-sub机器…、top-level / DM / room - matrix-top-level-…、一边说一边送ing and 工具小帮手 progress - matrix-roo…、media - matrix-media-type-coverage, matri…。

原文小纸条
  • threading - matrix-thread-*, matrix-subagent-thread-spawn
  • top-level / DM / room - matrix-top-level-reply-shape, matrix-room-*, matrix-dm-*
  • streaming and tool progress - matrix-room-partial-streaming-preview, matrix-room-quiet-streaming-preview, matrix-room-tool-progress-*, matrix-room-block-streaming
  • media - matrix-media-type-coverage, matrix-room-image-understanding-attachment, matrix-attachment-only-ignored, matrix-unsupported-media-safe
  • routing - matrix-room-autojoin-invite, matrix-secondary-room-*
  • reactions - matrix-reaction-*
  • approvals - matrix-approval-* (exec/plugin metadata, chunked fallback, deny reactions, threads, and target: "both" routing)
  • restart and replay - matrix-restart-*, matrix-stale-sync-replay-dedupe, matrix-room-membership-loss, matrix-homeserver-restart-resume, matrix-initial-catchup-then-incremental
  • mention gating, bot-to-bot, and allowlists - matrix-mention-*, matrix-allowbots-*, matrix-allowlist-*, matrix-multi-actor-ordering, matrix-inbound-edit-*, matrix-mxid-prefixed-command-block, matrix-observer-allowlist-override
  • E2EE - matrix-e2ee-* (basic reply, thread follow-up, bootstrap, recovery key lifecycle, state-loss variants, server backup behavior, device hygiene, SAS / QR / DM verification, restart, artifact redaction)
  • E2EE CLI - matrix-e2ee-cli-* (encryption setup, idempotent setup, bootstrap failure, recovery-key lifecycle, multi-account, gateway-reply round-trip, self-verification)
像讲绘本

如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Pass --scenario <id> (repeatable) to run a hand-picked set; combine with --profile all to ignore profile gating.

原文小纸条

Pass --scenario <id> (repeatable) to run a hand-picked set; combine with --profile all to ignore profile gating.

第 9 站

Environment variables

这一节主要在解释“Environment variables”到底是干什么的,以及你什么时候会遇到它。

这段在解决什么

这一节主要在解释“Environment variables”到底是干什么的,以及你什么时候会遇到它。

为什么值得看

如果你是第一次接触 OpenClaw,这一节最值得看的不是术语本身,而是它背后的使用场景和限制。

真要动手时

真正动手时,先看它有没有默认值、有没有必须打开的选项、以及会不会影响安全边界。

先别急着背术语

这一小段像旁白,在提醒我们镜头已经切到下一站。

像整理表格

这段是在把几种选项排成表格,左边像标签,右边像说明。手机上可以横向滑动原文表格。

原文表格
VariableDefaultEffect
OPENCLAW_QA_MATRIX_TIMEOUT_MS1800000 (30 min)Hard upper bound on the entire run.
OPENCLAW_QA_MATRIX_CANARY_TIMEOUT_MS45000Bound for the initial canary reply. Release CI raises this on shared runners so a slow first gateway turn does not fail before scenario coverage starts.
OPENCLAW_QA_MATRIX_NO_REPLY_WINDOW_MS8000Quiet window for negative no-reply assertions. Clamped to the run timeout.
OPENCLAW_QA_MATRIX_CLEANUP_TIMEOUT_MS90000Bound for Docker teardown. Failure surfaces include the recovery docker compose ... down --remove-orphans command.
OPENCLAW_QA_MATRIX_TUWUNEL_IMAGEghcr.io/matrix-construct/tuwunel:v1.5.1Override the homeserver image when validating against a different Tuwunel version.
OPENCLAW_QA_MATRIX_PROGRESSon0 silences [matrix-qa] ... progress lines on stderr. 1 forces them on.
OPENCLAW_QA_MATRIX_CAPTURE_CONTENTredacted1 keeps message body and formatted_body in matrix-qa-observed-events.json. Default redacts to keep CI artifacts safe.
OPENCLAW_QA_MATRIX_DISABLE_FORCE_EXIToff1 skips the deterministic process.exit after artifact write. The default forces exit because matrix-js-sdk's native crypto handles can keep the event loop alive past artifact completion.
OPENCLAW_RUN_NODE_OUTPUT_LOGunsetWhen set by an outer launcher (e.g. scripts/run-node.mjs), Matrix QA reuses that log path instead of starting its own tee.

第 10 站

Output artifacts

这一节在讲规则和边界:什么默认允许、什么必须显式打开、什么被禁止。

这段在解决什么

这一节在讲规则和边界:什么默认允许、什么必须显式打开、什么被禁止。

为什么值得看

这种内容决定了 OpenClaw 是“能做”还是“现在还不能做”,读懂它比记术语更重要。

真要动手时

你可以把这一节当成权限说明书,真正配置时优先盯住 default、required、allow、deny 这几个词。

先别急着背术语

如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Written to --output-dir: The default output dir is <repo>/.artifacts/qa-e2e/matrix-<timestamp> so successive runs do no…。

像讲绘本

如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Written to --output-dir:。

原文小纸条

Written to --output-dir:

像准备清单

这一串条目别硬背,把它当成“Output artifacts”门口贴出来的几张便签就行。它们在提醒你先备好什么、别漏掉什么、哪里最容易走错:matrix-qa-report.md - Markdown protocol r…、matrix-qa-summary.json - Structured summa…、matrix-qa-observed-events.json - Observed…、matrix-qa-output.log - Combined stdout/st…。

原文小纸条
  • matrix-qa-report.md - Markdown protocol report (what passed, failed, was skipped, and why).
  • matrix-qa-summary.json - Structured summary suitable for CI parsing and dashboards.
  • matrix-qa-observed-events.json - Observed Matrix events from the driver and observer clients. Bodies are redacted unless OPENCLAW_QA_MATRIX_CAPTURE_CONTENT=1; approval metadata is summarized with selected safe fields and truncated command preview.
  • matrix-qa-output.log - Combined stdout/stderr from the run. If OPENCLAW_RUN_NODE_OUTPUT_LOG is set, the outer launcher's log is reused instead.
像讲绘本

如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:The default output dir is <repo>/.artifacts/qa-e2e/matrix-<timestamp> so successive runs do not overwrite each other.

原文小纸条

The default output dir is <repo>/.artifacts/qa-e2e/matrix-<timestamp> so successive runs do not overwrite each other.

第 11 站

Triage tips

这一节在讲规则和边界:什么默认允许、什么必须显式打开、什么被禁止。

这段在解决什么

这一节在讲规则和边界:什么默认允许、什么必须显式打开、什么被禁止。

为什么值得看

这种内容决定了 OpenClaw 是“能做”还是“现在还不能做”,读懂它比记术语更重要。

真要动手时

你可以把这一节当成权限说明书,真正配置时优先盯住 default、required、allow、deny 这几个词。

先别急着背术语

这一小段像旁白,在提醒我们镜头已经切到下一站。

像准备清单

这一串条目别硬背,把它当成“Triage tips”门口贴出来的几张便签就行。它们在提醒你先备好什么、别漏掉什么、哪里最容易走错:**Run hangs near the end:** matrix-js-sdk…、**Cleanup error:** look for the printed r…、**Flaky negative-assertion windows in CI:…、**Need redacted bodies for a bug report:*…。

原文小纸条
  • **Run hangs near the end:** matrix-js-sdk native crypto handles can outlive the harness. The default forces a clean process.exit after artifact write; if you have unset OPENCLAW_QA_MATRIX_DISABLE_FORCE_EXIT=1, expect the process to linger.
  • **Cleanup error:** look for the printed recovery command (a docker compose ... down --remove-orphans invocation) and run it manually to release the homeserver port.
  • **Flaky negative-assertion windows in CI:** lower OPENCLAW_QA_MATRIX_NO_REPLY_WINDOW_MS (default 8 s) when CI is fast; raise it on slow shared runners.
  • **Need redacted bodies for a bug report:** rerun with OPENCLAW_QA_MATRIX_CAPTURE_CONTENT=1 and attach matrix-qa-observed-events.json. Treat the resulting artifact as sensitive.
  • **Different Tuwunel version:** point OPENCLAW_QA_MATRIX_TUWUNEL_IMAGE at the version under test. The lane checks in only the pinned default image.

第 12 站

Live transport contract

这一节主要在解释“Live transport contract”到底是干什么的,以及你什么时候会遇到它。

这段在解决什么

这一节主要在解释“Live transport contract”到底是干什么的,以及你什么时候会遇到它。

为什么值得看

如果你是第一次接触 OpenClaw,这一节最值得看的不是术语本身,而是它背后的使用场景和限制。

真要动手时

真正动手时,先看它有没有默认值、有没有必须打开的选项、以及会不会影响安全边界。

先别急着背术语

如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Matrix is one of three live transport lanes (Matrix, Telegram, Discord) that share a single contract checklist defined…。

像讲绘本

如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Matrix is one of three live transport lanes (Matrix, Telegram, Discord) that share a single contract checklist defined…。

原文小纸条

Matrix is one of three live transport lanes (Matrix, Telegram, Discord) that share a single contract checklist defined in QA overview → Live transport coverage. qa-channel remains the broad synthetic suite and is intentionally not part of that matrix.

第 13 站

Related

这一节在讲一类能力是怎么工作的:它能做什么、不能做什么、适合在什么场景下调用。

这段在解决什么

这一节在讲一类能力是怎么工作的:它能做什么、不能做什么、适合在什么场景下调用。

为什么值得看

你理解的是能力边界,不只是功能名字。

真要动手时

如果这节里同时出现命令、配置和例子,优先先看例子,再回头看配置。

先别急着背术语

如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:---。

像准备清单

这一串条目别硬背,把它当成“Related”门口贴出来的几张便签就行。它们在提醒你先备好什么、别漏掉什么、哪里最容易走错:QA overview - overall QA stack and live t…、QA 消息通道 - synthetic 消息通道 adapter for repo…、Testing - running tests and adding QA cov…、Matrix - the 消息通道 新本领插件 under test。

原文小纸条
  • QA overview - overall QA stack and live transport contract
  • QA Channel - synthetic channel adapter for repo-backed scenarios
  • Testing - running tests and adding QA coverage
  • Matrix - the channel plugin under test
像讲绘本

如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:---。

原文小纸条

---

AdSense 连接验证已经放在页面头部;广告单元等站点审批通过后再启用。

google-adsense-account: ca-pub-3833673520933536