From 36bcf88ffc3a4329db0cdb2dbdac035bce9905ad Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Sun, 3 May 2026 17:54:46 -0700 Subject: [PATCH] test(qa): accept path-qualified Matrix error progress --- CHANGELOG.md | 2 +- .../qa-matrix/src/runners/contract/scenario-runtime-room.ts | 2 +- extensions/qa-matrix/src/runners/contract/scenarios.test.ts | 5 +++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2fd3141fb61..55a70ee2efb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -72,7 +72,7 @@ Docs: https://docs.openclaw.ai - Google Meet: keep Chrome realtime transport tests hermetic on Linux prerelease shards while preserving the macOS-only runtime guard. Thanks @vincentkoc. - QA/Slack: fail the live mention-gating scenario on any unexpected SUT reply, even when the reply does not echo the expected marker. Thanks @vincentkoc. - QA/Matrix: steer the live tool-progress preview check away from `HEARTBEAT.md` and report final preview candidates when the live marker reply misses the exact token. Thanks @vincentkoc. -- QA/Matrix: let the live tool-progress preview and error checks verify progress replacement events without depending on the preview saying `Working`, `tool: read`, or unlabelled `read from`. Thanks @vincentkoc. +- QA/Matrix: let the live tool-progress preview and error checks verify progress replacement events without depending on the preview saying `Working`, `tool: read`, or an unlabelled/pathless `read from`. Thanks @vincentkoc. - QA/Matrix: wait for live approval reactions to echo before starting the threaded approval decision timeout. Thanks @vincentkoc. - QA/Matrix: reuse the primed driver sync stream when confirming approval reaction echoes, avoiding missed self-reactions in live release runs. Thanks @vincentkoc. - Tlon: expose `groupInviteAllowlist` in the channel config schema and clarify that group invite auto-accept fails closed without an invite allowlist. Thanks @vincentkoc. diff --git a/extensions/qa-matrix/src/runners/contract/scenario-runtime-room.ts b/extensions/qa-matrix/src/runners/contract/scenario-runtime-room.ts index a40eec8bec8..b7ca1e4e60a 100644 --- a/extensions/qa-matrix/src/runners/contract/scenario-runtime-room.ts +++ b/extensions/qa-matrix/src/runners/contract/scenario-runtime-room.ts @@ -961,7 +961,7 @@ export async function runToolProgressErrorScenario(context: MatrixQaScenarioCont expectedPreviewKind: "notice", finalText: buildMatrixQaToken("MATRIX_QA_TOOL_PROGRESS_ERROR"), label: "tool progress error", - progressPattern: /\bread\s*:?\s*from\s+missing-matrix-tool-progress-target\.txt\b/i, + progressPattern: /\bread\s*:?\s*from\s+\S*missing-matrix-tool-progress-target\.txt\b/i, triggerBodyBuilder: buildMatrixToolProgressErrorPrompt, }); } diff --git a/extensions/qa-matrix/src/runners/contract/scenarios.test.ts b/extensions/qa-matrix/src/runners/contract/scenarios.test.ts index 8fc7b64253c..0892065e9ce 100644 --- a/extensions/qa-matrix/src/runners/contract/scenarios.test.ts +++ b/extensions/qa-matrix/src/runners/contract/scenarios.test.ts @@ -2865,7 +2865,7 @@ describe("matrix live qa scenarios", () => { event: matrixQaMessageEvent({ kind: "notice", eventId: previewEventId, - body: "Pearling...\n`📖 Read: from missing-matrix-tool-progress-target.txt`", + body: "Pearling...\n`📖 Read: from /tmp/qa/workspace/missing-matrix-tool-progress-target.txt`", }), since: "driver-sync-preview", }, @@ -2896,7 +2896,8 @@ describe("matrix live qa scenarios", () => { await expect(runMatrixQaScenario(scenario!, matrixQaScenarioContext())).resolves.toMatchObject({ artifacts: { driverEventId: "$tool-progress-error-trigger", - previewBodyPreview: "Pearling...\n`📖 Read: from missing-matrix-tool-progress-target.txt`", + previewBodyPreview: + "Pearling...\n`📖 Read: from /tmp/qa/workspace/missing-matrix-tool-progress-target.txt`", previewEventId: "$tool-progress-error-preview", reply: { eventId: "$tool-progress-error-final",