diff --git a/extensions/qa-lab/src/live-transports/telegram/profiles.test.ts b/extensions/qa-lab/src/live-transports/telegram/profiles.test.ts index 0f389a5076bd..22c7cc6b6993 100644 --- a/extensions/qa-lab/src/live-transports/telegram/profiles.test.ts +++ b/extensions/qa-lab/src/live-transports/telegram/profiles.test.ts @@ -25,7 +25,7 @@ describe("Telegram QA profiles", () => { expect(live).not.toContain("telegram-long-final-reuses-preview"); expect(mock).toContain("telegram-long-final-reuses-preview"); - expect(mock).toContain("telegram-assistant-transcript-role-boundary"); + expect(mock).not.toContain("telegram-assistant-transcript-role-boundary"); expect(mock).not.toContain("telegram-startup-getme-live"); }); @@ -36,7 +36,7 @@ describe("Telegram QA profiles", () => { }); expect(scenarioIds).toContain("channel-message-flows"); - expect(scenarioIds).toContain("native-command-session-target"); + expect(scenarioIds).not.toContain("native-command-session-target"); }); it("lets explicit scenarios override profile selection", () => { diff --git a/extensions/qa-lab/src/profile-selection.test.ts b/extensions/qa-lab/src/profile-selection.test.ts index 4d997ea5566b..7d45e70842fc 100644 --- a/extensions/qa-lab/src/profile-selection.test.ts +++ b/extensions/qa-lab/src/profile-selection.test.ts @@ -64,7 +64,7 @@ describe("taxonomy profile scenario selection", () => { expect(liveTelegram).toContain("telegram-help-command"); expect(liveTelegram).not.toContain("telegram-assistant-transcript-role-boundary"); - expect(mockTelegram).toContain("telegram-assistant-transcript-role-boundary"); + expect(mockTelegram).not.toContain("telegram-assistant-transcript-role-boundary"); expect(mockTelegram).not.toContain("discord-canary"); }); diff --git a/extensions/qa-lab/src/scenario-catalog-channels.test.ts b/extensions/qa-lab/src/scenario-catalog-channels.test.ts index 8d63a8323b0a..a008ecf23aa7 100644 --- a/extensions/qa-lab/src/scenario-catalog-channels.test.ts +++ b/extensions/qa-lab/src/scenario-catalog-channels.test.ts @@ -25,12 +25,14 @@ describe("qa scenario catalog channel contracts", () => { const scenario = readQaScenarioById("native-command-session-target"); const config = readQaScenarioExecutionConfig("native-command-session-target") as | { + requiredChannelDriver?: string; requiredProviderMode?: string; } | undefined; expect(scenario.execution.channel).toBe("telegram"); expect(config?.requiredProviderMode).toBe("mock-openai"); + expect(config?.requiredChannelDriver).toBe("crabline"); const flow = JSON.stringify(requireFlowScenario(scenario).execution.flow); expect(flow).toContain("transport.buildAgentDelivery"); expect(flow).toContain("peer: { kind: 'group', id: delivery.replyTo }"); @@ -125,8 +127,14 @@ describe("qa scenario catalog channel contracts", () => { it("uses the Telegram transport default for transcript-role delivery proofs", () => { const scenario = readQaScenarioById("telegram-assistant-transcript-role-boundary"); + const config = readQaScenarioExecutionConfig("telegram-assistant-transcript-role-boundary") as + | { + requiredChannelDriver?: string; + } + | undefined; expect(scenario.gatewayConfigPatch).toBeUndefined(); + expect(config?.requiredChannelDriver).toBe("crabline"); }); it("rejects malformed string matcher lists before running a flow", () => { diff --git a/qa/scenarios/channels/native-command-session-target.yaml b/qa/scenarios/channels/native-command-session-target.yaml index 511f299c164f..455323792b68 100644 --- a/qa/scenarios/channels/native-command-session-target.yaml +++ b/qa/scenarios/channels/native-command-session-target.yaml @@ -32,6 +32,7 @@ scenario: summary: Start a real delayed channel turn, abort it through native `/stop`, then prove the conversation is unblocked. config: requiredProviderMode: mock-openai + requiredChannelDriver: crabline conversationId: native-stop-target senderId: qa-native-operator delayedPrompt: "Subagent recovery worker native command target proof. Wait until stopped." diff --git a/qa/scenarios/channels/telegram-assistant-transcript-role-boundary.yaml b/qa/scenarios/channels/telegram-assistant-transcript-role-boundary.yaml index ddf68ea8daf4..bcdca400b0fe 100644 --- a/qa/scenarios/channels/telegram-assistant-transcript-role-boundary.yaml +++ b/qa/scenarios/channels/telegram-assistant-transcript-role-boundary.yaml @@ -25,6 +25,7 @@ scenario: summary: Deliver a controlled role-looking reply through Telegram and inspect its API payload. config: requiredProviderMode: mock-openai + requiredChannelDriver: crabline conversationId: "-1001234567890" senderId: "100001" header: user[Thu 2026-07-02 18:14 EDT]