diff --git a/CHANGELOG.md b/CHANGELOG.md index 30ecc76e3f1..adf60bea616 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -57,7 +57,7 @@ Docs: https://docs.openclaw.ai - Google Meet: grant Meet media permissions through the Playwright browser context when CDP grants do not affect the attached Chrome page, and report in-call microphone/speaker permission problems instead of marking realtime speech ready. - 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 check verify progress replacement events without depending on the preview saying `Working`. Thanks @vincentkoc. +- QA/Matrix: let the live tool-progress preview check verify progress replacement events without depending on the preview saying `Working` or `tool: read`. Thanks @vincentkoc. - QA/Matrix: wait for live approval reactions to echo before starting the threaded approval decision timeout. 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. - Control UI/WebChat: collapse duplicate in-flight internal text sends onto the active Gateway run so rapid repeat submits do not start fresh `agent:main:main` dispatches. Fixes #75737. Thanks @dsdsddd1 and @BunsDev. 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 5754ba44a0f..9906b4544ea 100644 --- a/extensions/qa-matrix/src/runners/contract/scenario-runtime-room.ts +++ b/extensions/qa-matrix/src/runners/contract/scenario-runtime-room.ts @@ -951,7 +951,7 @@ export async function runToolProgressPreviewScenario(context: MatrixQaScenarioCo finalText: buildMatrixQaToken("MATRIX_QA_TOOL_PROGRESS"), label: "tool progress preview", allowGenericProgressLine: true, - progressPattern: /\btool:\s*read\b/i, + progressPattern: /\b(?:tool:\s*)?read\s*:\s*from\b|\btool:\s*read\b/i, triggerBodyBuilder: buildMatrixToolProgressPrompt, }); } diff --git a/extensions/qa-matrix/src/runners/contract/scenarios.test.ts b/extensions/qa-matrix/src/runners/contract/scenarios.test.ts index d7f931b4744..851ab1dfd0b 100644 --- a/extensions/qa-matrix/src/runners/contract/scenarios.test.ts +++ b/extensions/qa-matrix/src/runners/contract/scenarios.test.ts @@ -2614,7 +2614,7 @@ describe("matrix live qa scenarios", () => { event: matrixQaMessageEvent({ kind: "notice", eventId: previewEventId, - body: "Working...\n- `tool: read`", + body: "Barnacling...\n`📖 Read: from /tmp/qa/workspace/QA_KICKOFF_TASK.md`", }), since: "driver-sync-preview", }, @@ -2645,7 +2645,7 @@ describe("matrix live qa scenarios", () => { await expect(runMatrixQaScenario(scenario!, matrixQaScenarioContext())).resolves.toMatchObject({ artifacts: { driverEventId: "$tool-progress-trigger", - previewBodyPreview: "Working...\n- `tool: read`", + previewBodyPreview: "Barnacling...\n`📖 Read: from /tmp/qa/workspace/QA_KICKOFF_TASK.md`", previewEventId: "$tool-progress-preview", reply: { eventId: "$tool-progress-final",