mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-31 10:26:10 +00:00
test(qa): annotate live transport RTT measurements
Some checks are pending
CI / -1 (push) Blocked by required conditions
CI / preflight (push) Waiting to run
CI / security-fast (push) Waiting to run
CI / build-artifacts (push) Blocked by required conditions
CI / (push) Blocked by required conditions
CI / -2 (push) Blocked by required conditions
CI / checks-node-compat-node22 (push) Blocked by required conditions
CI / -3 (push) Blocked by required conditions
CI / check-dependencies (push) Blocked by required conditions
CI / check-guards (push) Blocked by required conditions
CI / check-lint (push) Blocked by required conditions
CI / check-prod-types (push) Blocked by required conditions
CI / check-test-types (push) Blocked by required conditions
CI / check-additional-boundaries-a (push) Blocked by required conditions
CI / check-additional-boundaries-bcd (push) Blocked by required conditions
CI / check-additional-extension-bundled (push) Blocked by required conditions
CI / check-additional-extension-channels (push) Blocked by required conditions
CI / check-additional-extension-package-boundary (push) Blocked by required conditions
CI / check-additional-runtime-topology-architecture (push) Blocked by required conditions
CI / check-docs (push) Blocked by required conditions
CI / skills-python (push) Blocked by required conditions
CI / -4 (push) Blocked by required conditions
CI / -5 (push) Blocked by required conditions
CI / macos-swift (push) Blocked by required conditions
CI / -6 (push) Blocked by required conditions
ClawSweeper Dispatch / dispatch (push) Waiting to run
Docs Sync Publish Repo / sync-publish-repo (push) Waiting to run
Docs / docs (push) Waiting to run
Plugin NPM Release / preview_plugins_npm (push) Waiting to run
Plugin NPM Release / Validate release publish approval (push) Blocked by required conditions
Plugin NPM Release / preview_plugin_pack (push) Blocked by required conditions
Plugin NPM Release / publish_plugins_npm (push) Blocked by required conditions
Website Installer Sync / static (push) Waiting to run
Website Installer Sync / linux-docker (push) Waiting to run
Website Installer Sync / macos-installer (push) Waiting to run
Website Installer Sync / windows-installer (push) Waiting to run
Website Installer Sync / sync-website (push) Blocked by required conditions
Workflow Sanity / no-tabs (push) Waiting to run
Workflow Sanity / actionlint (push) Waiting to run
Workflow Sanity / generated-doc-baselines (push) Waiting to run
Some checks are pending
CI / -1 (push) Blocked by required conditions
CI / preflight (push) Waiting to run
CI / security-fast (push) Waiting to run
CI / build-artifacts (push) Blocked by required conditions
CI / (push) Blocked by required conditions
CI / -2 (push) Blocked by required conditions
CI / checks-node-compat-node22 (push) Blocked by required conditions
CI / -3 (push) Blocked by required conditions
CI / check-dependencies (push) Blocked by required conditions
CI / check-guards (push) Blocked by required conditions
CI / check-lint (push) Blocked by required conditions
CI / check-prod-types (push) Blocked by required conditions
CI / check-test-types (push) Blocked by required conditions
CI / check-additional-boundaries-a (push) Blocked by required conditions
CI / check-additional-boundaries-bcd (push) Blocked by required conditions
CI / check-additional-extension-bundled (push) Blocked by required conditions
CI / check-additional-extension-channels (push) Blocked by required conditions
CI / check-additional-extension-package-boundary (push) Blocked by required conditions
CI / check-additional-runtime-topology-architecture (push) Blocked by required conditions
CI / check-docs (push) Blocked by required conditions
CI / skills-python (push) Blocked by required conditions
CI / -4 (push) Blocked by required conditions
CI / -5 (push) Blocked by required conditions
CI / macos-swift (push) Blocked by required conditions
CI / -6 (push) Blocked by required conditions
ClawSweeper Dispatch / dispatch (push) Waiting to run
Docs Sync Publish Repo / sync-publish-repo (push) Waiting to run
Docs / docs (push) Waiting to run
Plugin NPM Release / preview_plugins_npm (push) Waiting to run
Plugin NPM Release / Validate release publish approval (push) Blocked by required conditions
Plugin NPM Release / preview_plugin_pack (push) Blocked by required conditions
Plugin NPM Release / publish_plugins_npm (push) Blocked by required conditions
Website Installer Sync / static (push) Waiting to run
Website Installer Sync / linux-docker (push) Waiting to run
Website Installer Sync / macos-installer (push) Waiting to run
Website Installer Sync / windows-installer (push) Waiting to run
Website Installer Sync / sync-website (push) Blocked by required conditions
Workflow Sanity / no-tabs (push) Waiting to run
Workflow Sanity / actionlint (push) Waiting to run
Workflow Sanity / generated-doc-baselines (push) Waiting to run
This commit is contained in:
parent
aa702cf3db
commit
bb6f37e777
4 changed files with 74 additions and 2 deletions
|
|
@ -181,7 +181,15 @@ type DiscordQaScenarioResult = {
|
|||
title: string;
|
||||
status: "pass" | "fail";
|
||||
details: string;
|
||||
requestStartedAt?: string;
|
||||
responseObservedAt?: string;
|
||||
rttMs?: number;
|
||||
rttMeasurement?: {
|
||||
finalMatchedReplyRttMs: number;
|
||||
requestStartedAt: string;
|
||||
responseObservedAt: string;
|
||||
source: "request-to-observed-message";
|
||||
};
|
||||
};
|
||||
|
||||
type DiscordQaRunResult = {
|
||||
|
|
@ -1779,7 +1787,9 @@ export async function runDiscordQaLive(params: {
|
|||
expectedTextIncludes: scenarioRun.expectedTextIncludes,
|
||||
message: matched.message,
|
||||
});
|
||||
const rttMs = computeDiscordRttMs(sent.timestamp, matched.message.timestamp);
|
||||
const requestStartedAt = sent.timestamp;
|
||||
const responseObservedAt = matched.message.timestamp;
|
||||
const rttMs = computeDiscordRttMs(requestStartedAt, responseObservedAt);
|
||||
scenarioResults.push({
|
||||
id: scenario.id,
|
||||
title: scenario.title,
|
||||
|
|
@ -1787,7 +1797,21 @@ export async function runDiscordQaLive(params: {
|
|||
details: redactPublicMetadata
|
||||
? "reply matched"
|
||||
: `reply message ${matched.message.messageId} matched`,
|
||||
...(rttMs === undefined ? {} : { rttMs }),
|
||||
...(requestStartedAt === undefined ? {} : { requestStartedAt }),
|
||||
...(responseObservedAt === undefined ? {} : { responseObservedAt }),
|
||||
...(rttMs === undefined ||
|
||||
requestStartedAt === undefined ||
|
||||
responseObservedAt === undefined
|
||||
? {}
|
||||
: {
|
||||
rttMs,
|
||||
rttMeasurement: {
|
||||
finalMatchedReplyRttMs: rttMs,
|
||||
requestStartedAt,
|
||||
responseObservedAt,
|
||||
source: "request-to-observed-message",
|
||||
},
|
||||
}),
|
||||
});
|
||||
} catch (error) {
|
||||
if (scenarioRun.kind === "channel-message" && !scenarioRun.expectReply) {
|
||||
|
|
|
|||
|
|
@ -200,6 +200,12 @@ type SlackQaScenarioResult = {
|
|||
requestStartedAt?: string;
|
||||
responseObservedAt?: string;
|
||||
rttMs?: number;
|
||||
rttMeasurement?: {
|
||||
finalMatchedReplyRttMs: number;
|
||||
requestStartedAt: string;
|
||||
responseObservedAt: string;
|
||||
source: "approval-request-to-resolution" | "request-to-observed-message";
|
||||
};
|
||||
status: "fail" | "pass";
|
||||
title: string;
|
||||
};
|
||||
|
|
@ -1859,6 +1865,12 @@ export async function runSlackQaLive(params: {
|
|||
rttMs: approval.rttMs,
|
||||
requestStartedAt: approval.requestStartedAt.toISOString(),
|
||||
responseObservedAt: approval.responseObservedAt.toISOString(),
|
||||
rttMeasurement: {
|
||||
finalMatchedReplyRttMs: approval.rttMs,
|
||||
requestStartedAt: approval.requestStartedAt.toISOString(),
|
||||
responseObservedAt: approval.responseObservedAt.toISOString(),
|
||||
source: "approval-request-to-resolution",
|
||||
},
|
||||
});
|
||||
break;
|
||||
}
|
||||
|
|
@ -1911,6 +1923,12 @@ export async function runSlackQaLive(params: {
|
|||
rttMs,
|
||||
requestStartedAt: requestStartedAt.toISOString(),
|
||||
responseObservedAt: responseObservedAt.toISOString(),
|
||||
rttMeasurement: {
|
||||
finalMatchedReplyRttMs: rttMs,
|
||||
requestStartedAt: requestStartedAt.toISOString(),
|
||||
responseObservedAt: responseObservedAt.toISOString(),
|
||||
source: "request-to-observed-message",
|
||||
},
|
||||
});
|
||||
} else {
|
||||
await waitForSlackNoReply({
|
||||
|
|
|
|||
|
|
@ -133,6 +133,12 @@ type TelegramQaScenarioResult = {
|
|||
rttMs?: number;
|
||||
requestStartedAt?: string;
|
||||
responseObservedAt?: string;
|
||||
rttMeasurement?: {
|
||||
finalMatchedReplyRttMs: number;
|
||||
requestStartedAt: string;
|
||||
responseObservedAt: string;
|
||||
source: "request-to-observed-message";
|
||||
};
|
||||
sentMessageId?: number;
|
||||
responseMessageId?: number;
|
||||
};
|
||||
|
|
@ -1743,6 +1749,12 @@ export async function runTelegramQaLive(params: {
|
|||
rttMs: canaryTiming.rttMs,
|
||||
requestStartedAt: canaryTiming.requestStartedAt,
|
||||
responseObservedAt: canaryTiming.responseObservedAt,
|
||||
rttMeasurement: {
|
||||
finalMatchedReplyRttMs: canaryTiming.rttMs,
|
||||
requestStartedAt: canaryTiming.requestStartedAt,
|
||||
responseObservedAt: canaryTiming.responseObservedAt,
|
||||
source: "request-to-observed-message",
|
||||
},
|
||||
sentMessageId: redactPublicMetadata ? undefined : canaryTiming.sentMessageId,
|
||||
responseMessageId: redactPublicMetadata ? undefined : canaryTiming.responseMessageId,
|
||||
});
|
||||
|
|
@ -1885,6 +1897,12 @@ export async function runTelegramQaLive(params: {
|
|||
rttMs,
|
||||
requestStartedAt: firstRequestStartedAt,
|
||||
responseObservedAt: new Date(lastMatched.observedAtMs).toISOString(),
|
||||
rttMeasurement: {
|
||||
finalMatchedReplyRttMs: rttMs,
|
||||
requestStartedAt: new Date(lastRequestStartedAtMs).toISOString(),
|
||||
responseObservedAt: new Date(lastMatched.observedAtMs).toISOString(),
|
||||
source: "request-to-observed-message",
|
||||
},
|
||||
sentMessageId: redactPublicMetadata ? undefined : lastSentMessageId,
|
||||
responseMessageId: redactPublicMetadata ? undefined : lastMatched.message.messageId,
|
||||
} satisfies TelegramQaScenarioResult;
|
||||
|
|
|
|||
|
|
@ -100,6 +100,12 @@ type WhatsAppQaScenarioResult = {
|
|||
requestStartedAt?: string;
|
||||
responseObservedAt?: string;
|
||||
rttMs?: number;
|
||||
rttMeasurement?: {
|
||||
finalMatchedReplyRttMs: number;
|
||||
requestStartedAt: string;
|
||||
responseObservedAt: string;
|
||||
source: "request-to-observed-message";
|
||||
};
|
||||
status: "fail" | "pass" | "skip";
|
||||
title: string;
|
||||
};
|
||||
|
|
@ -647,6 +653,12 @@ async function runWhatsAppScenario(params: {
|
|||
rttMs,
|
||||
requestStartedAt: requestStartedAt.toISOString(),
|
||||
responseObservedAt: responseObservedAt.toISOString(),
|
||||
rttMeasurement: {
|
||||
finalMatchedReplyRttMs: rttMs,
|
||||
requestStartedAt: requestStartedAt.toISOString(),
|
||||
responseObservedAt: responseObservedAt.toISOString(),
|
||||
source: "request-to-observed-message",
|
||||
},
|
||||
};
|
||||
} catch (error) {
|
||||
preservedGatewayDebug = true;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue