Skip to content

Commit eeb1ce9

Browse files
committed
test(matrix): make voice preflight QA mention deterministic
1 parent bc9ad39 commit eeb1ce9

4 files changed

Lines changed: 14 additions & 0 deletions

File tree

extensions/qa-matrix/src/runners/contract/scenario-catalog.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -503,6 +503,7 @@ export const MATRIX_QA_SCENARIOS: MatrixQaScenarioDefinition[] = [
503503
audio: {
504504
enabled: true,
505505
},
506+
groupMentionPatterns: ["\\S"],
506507
},
507508
providerMode: "live-frontier",
508509
timeoutMs: 180_000,

extensions/qa-matrix/src/runners/contract/scenarios.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4615,6 +4615,7 @@ describe("matrix live qa scenarios", () => {
46154615

46164616
const scenario = requireMatrixQaScenario("matrix-voice-preflight-mention");
46174617
expect(scenario.configOverrides?.audio?.enabled).toBe(true);
4618+
expect(scenario.configOverrides?.groupMentionPatterns).toEqual(["\\S"]);
46184619

46194620
const result = await runMatrixQaScenario(scenario, {
46204621
baseUrl: "http://127.0.0.1:28008/",

extensions/qa-matrix/src/substrate/config.test.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ describe("matrix qa config", () => {
109109
allowBots: "mentions",
110110
configuredBotRoles: ["observer"],
111111
groupAllowFrom: ["@driver:matrix-qa.test", "@observer:matrix-qa.test"],
112+
groupMentionPatterns: ["\\S"],
112113
groupsByKey: {
113114
secondary: {
114115
allowBots: false,
@@ -154,6 +155,7 @@ describe("matrix qa config", () => {
154155
echoTranscript: false,
155156
enabled: true,
156157
});
158+
expect(next.messages?.groupChat?.mentionPatterns).toEqual(["\\S"]);
157159
const observer = next.channels?.matrix?.accounts?.["qa-observer-bot-source"];
158160
expect(observer?.accessToken).toBe("observer-token");
159161
expect(observer?.enabled).toBe(false);
@@ -234,6 +236,7 @@ describe("matrix qa config", () => {
234236
dm: {
235237
sessionScope: "per-room",
236238
},
239+
groupMentionPatterns: ["\\S"],
237240
groupPolicy: "open",
238241
streaming: true,
239242
},
@@ -262,6 +265,7 @@ describe("matrix qa config", () => {
262265
execApprovals: undefined,
263266
configuredBotRoles: [],
264267
groupAllowFrom: ["@driver:matrix-qa.test"],
268+
groupMentionPatterns: ["\\S"],
265269
groupPolicy: "open",
266270
groupsByKey: {
267271
main: {
@@ -284,6 +288,7 @@ describe("matrix qa config", () => {
284288
});
285289
expect(summarizeMatrixQaConfigSnapshot(snapshot)).toContain("allowBots=<default>");
286290
expect(summarizeMatrixQaConfigSnapshot(snapshot)).toContain("configuredBotRoles=<none>");
291+
expect(summarizeMatrixQaConfigSnapshot(snapshot)).toContain("groupMentionPatterns=\\S");
287292
expect(summarizeMatrixQaConfigSnapshot(snapshot)).toContain("autoJoin=allowlist");
288293
expect(summarizeMatrixQaConfigSnapshot(snapshot)).toContain("streaming=partial");
289294
expect(summarizeMatrixQaConfigSnapshot(snapshot)).toContain(

extensions/qa-matrix/src/substrate/config.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ export type MatrixQaConfigOverrides = {
9494
execApprovals?: MatrixQaExecApprovalsConfigOverrides;
9595
groupAllowFrom?: string[];
9696
groupAllowRoles?: MatrixQaActorRole[];
97+
groupMentionPatterns?: string[];
9798
groupPolicy?: MatrixQaGroupPolicy;
9899
configuredBotRoles?: MatrixQaActorRole[];
99100
groupsByKey?: Record<string, MatrixQaGroupConfigOverrides>;
@@ -128,6 +129,7 @@ export type MatrixQaConfigSnapshot = {
128129
execApprovals?: MatrixQaExecApprovalsConfigOverrides;
129130
configuredBotRoles: MatrixQaActorRole[];
130131
groupAllowFrom: string[];
132+
groupMentionPatterns: string[];
131133
groupPolicy: MatrixQaGroupPolicy;
132134
groupsByKey: Record<string, MatrixQaGroupSnapshot>;
133135
replyToMode: MatrixQaReplyToMode;
@@ -511,6 +513,7 @@ export function buildMatrixQaConfigSnapshot(params: {
511513
execApprovals: params.overrides?.execApprovals,
512514
configuredBotRoles: [...(params.overrides?.configuredBotRoles ?? [])],
513515
groupAllowFrom: resolveMatrixQaGroupAllowFrom(params),
516+
groupMentionPatterns: normalizeMatrixQaAllowlist(params.overrides?.groupMentionPatterns),
514517
groupPolicy: params.overrides?.groupPolicy ?? "allowlist",
515518
groupsByKey: resolveMatrixQaGroupSnapshots({
516519
overrides: params.overrides,
@@ -543,6 +546,7 @@ export function summarizeMatrixQaConfigSnapshot(snapshot: MatrixQaConfigSnapshot
543546
`dm.policy=${snapshot.dm.policy}`,
544547
`dm.sessionScope=${snapshot.dm.sessionScope}`,
545548
`dm.threadReplies=${snapshot.dm.threadReplies}`,
549+
`groupMentionPatterns=${snapshot.groupMentionPatterns.length > 0 ? snapshot.groupMentionPatterns.join("|") : "<default>"}`,
546550
`streaming=${snapshot.streaming}`,
547551
`streaming.preview.toolProgress=${formatMatrixQaBoolean(snapshot.streamingPreviewToolProgress)}`,
548552
`textChunkLimit=${snapshot.textChunkLimit ?? "<default>"}`,
@@ -674,6 +678,9 @@ export function buildMatrixQaConfig(
674678
...baseCfg.messages,
675679
groupChat: {
676680
...baseCfg.messages?.groupChat,
681+
...(snapshot.groupMentionPatterns.length > 0
682+
? { mentionPatterns: snapshot.groupMentionPatterns }
683+
: {}),
677684
visibleReplies: "automatic",
678685
},
679686
},

0 commit comments

Comments
 (0)