From c7dcf79585ee5df6d9b2b23a4e3a457cdfe1993c Mon Sep 17 00:00:00 2001 From: Ayaan Zaidi Date: Fri, 15 May 2026 21:03:19 +0530 Subject: [PATCH] fix(qa): emit Discord trigger timing artifacts --- .../discord/discord-live.runtime.test.ts | 4 ++++ .../live-transports/discord/discord-live.runtime.ts | 12 ++++++++++++ 2 files changed, 16 insertions(+) diff --git a/extensions/qa-lab/src/live-transports/discord/discord-live.runtime.test.ts b/extensions/qa-lab/src/live-transports/discord/discord-live.runtime.test.ts index f36aeb120cf..9ef077aea82 100644 --- a/extensions/qa-lab/src/live-transports/discord/discord-live.runtime.test.ts +++ b/extensions/qa-lab/src/live-transports/discord/discord-live.runtime.test.ts @@ -672,6 +672,8 @@ describe("discord live qa runtime", () => { senderIsBot: true, senderUsername: "sut", text: "secret text", + triggerMessageId: "423456789012345678", + triggerTimestamp: "2026-04-22T11:59:59.000Z", timestamp: "2026-04-22T12:00:00.000Z", }, ], @@ -684,6 +686,8 @@ describe("discord live qa runtime", () => { senderId: "323456789012345678", senderIsBot: true, senderUsername: "sut", + triggerMessageId: "423456789012345678", + triggerTimestamp: "2026-04-22T11:59:59.000Z", replyToMessageId: undefined, timestamp: "2026-04-22T12:00:00.000Z", }, diff --git a/extensions/qa-lab/src/live-transports/discord/discord-live.runtime.ts b/extensions/qa-lab/src/live-transports/discord/discord-live.runtime.ts index 94a70868191..64f08ddf32b 100644 --- a/extensions/qa-lab/src/live-transports/discord/discord-live.runtime.ts +++ b/extensions/qa-lab/src/live-transports/discord/discord-live.runtime.ts @@ -152,6 +152,8 @@ type DiscordObservedMessage = { scenarioTitle?: string; matchedScenario?: boolean; text: string; + triggerMessageId?: string; + triggerTimestamp?: string; replyToMessageId?: string; timestamp?: string; }; @@ -167,6 +169,8 @@ type DiscordObservedMessageArtifact = { scenarioTitle?: string; matchedScenario?: boolean; text?: string; + triggerMessageId?: string; + triggerTimestamp?: string; replyToMessageId?: string; timestamp?: string; }; @@ -1096,6 +1100,8 @@ async function pollChannelMessages(params: { observedMessages: DiscordObservedMessage[]; observationScenarioId: string; observationScenarioTitle: string; + triggerMessageId?: string; + triggerTimestamp?: string; }) { const startedAt = Date.now(); let afterSnowflake = params.afterSnowflake; @@ -1120,6 +1126,8 @@ async function pollChannelMessages(params: { scenarioId: params.observationScenarioId, scenarioTitle: params.observationScenarioTitle, matchedScenario, + triggerMessageId: params.triggerMessageId, + triggerTimestamp: params.triggerTimestamp, }; params.observedMessages.push(observedMessage); if (matchedScenario) { @@ -1423,6 +1431,8 @@ function buildObservedMessagesArtifact(params: { senderId: message.senderId, senderIsBot: message.senderIsBot, senderUsername: message.senderUsername, + triggerMessageId: message.triggerMessageId, + triggerTimestamp: message.triggerTimestamp, replyToMessageId: message.replyToMessageId, timestamp: message.timestamp, }; @@ -1737,6 +1747,8 @@ export async function runDiscordQaLive(params: { observedMessages, observationScenarioId: scenario.id, observationScenarioTitle: scenario.title, + triggerMessageId: sent.id, + triggerTimestamp: sent.timestamp, predicate: (message) => matchesDiscordScenarioReply({ channelId: runtimeEnv.channelId,