

























@@ -99,6 +99,8 @@ type TelegramObservedMessageArtifact = {
9999mediaKinds: string[];
100100};
101101102+const DEFAULT_TELEGRAM_QA_CANARY_TIMEOUT_MS = 30_000;
103+102104type TelegramQaScenarioResult = {
103105id: string;
104106title: string;
@@ -350,6 +352,30 @@ function shouldLogTelegramQaLiveProgress(env: NodeJS.ProcessEnv = process.env) {
350352return parseTelegramQaProgressBooleanEnv(env.CI) === true;
351353}
352354355+function parsePositiveTelegramQaEnvMs(env: NodeJS.ProcessEnv, name: string, fallbackMs: number) {
356+const raw = env[name];
357+if (raw === undefined) {
358+return fallbackMs;
359+}
360+const parsed = Number(raw);
361+if (!Number.isFinite(parsed) || parsed < 1) {
362+return fallbackMs;
363+}
364+return Math.floor(parsed);
365+}
366+367+function resolveTelegramQaCanaryTimeoutMs(env: NodeJS.ProcessEnv = process.env) {
368+return parsePositiveTelegramQaEnvMs(
369+env,
370+"OPENCLAW_QA_TELEGRAM_CANARY_TIMEOUT_MS",
371+DEFAULT_TELEGRAM_QA_CANARY_TIMEOUT_MS,
372+);
373+}
374+375+function formatTelegramQaTimeoutSeconds(timeoutMs: number) {
376+return `${Math.round(timeoutMs / 1_000)}s`;
377+}
378+353379function writeTelegramQaProgress(enabled: boolean, message: string) {
354380if (!enabled) {
355381return;
@@ -862,6 +888,7 @@ async function runCanary(params: {
862888groupId: string;
863889sutUsername: string;
864890sutBotId: number;
891+timeoutMs: number;
865892observedMessages: TelegramObservedMessage[];
866893}) {
867894const offset = await flushTelegramUpdates(params.driverToken);
@@ -880,7 +907,7 @@ async function runCanary(params: {
880907sutObserved = await waitForObservedMessage({
881908token: params.driverToken,
882909initialOffset: offset,
883-timeoutMs: 30_000,
910+timeoutMs: params.timeoutMs,
884911observedMessages: params.observedMessages,
885912observationScenarioId: "telegram-canary",
886913observationScenarioTitle: "Telegram canary",
@@ -921,7 +948,7 @@ async function runCanary(params: {
921948}
922949throw new TelegramQaCanaryError(
923950"sut_reply_timeout",
924-"SUT bot did not send any group reply after the canary command within 30s.",
951+`SUT bot did not send any group reply after the canary command within ${formatTelegramQaTimeoutSeconds(params.timeoutMs)}.`,
925952{
926953groupId: params.groupId,
927954sutBotId: params.sutBotId,
@@ -1208,6 +1235,7 @@ export async function runTelegramQaLive(params: {
12081235groupId: runtimeEnv.groupId,
12091236 sutUsername,
12101237sutBotId: sutIdentity.id,
1238+timeoutMs: resolveTelegramQaCanaryTimeoutMs(),
12111239 observedMessages,
12121240});
12131241scenarioResults.push({
@@ -1481,6 +1509,7 @@ export const __testing = {
14811509 normalizeTelegramObservedMessage,
14821510 parseTelegramQaProgressBooleanEnv,
14831511 parseTelegramQaCredentialPayload,
1512+ resolveTelegramQaCanaryTimeoutMs,
14841513 resolveTelegramQaRuntimeEnv,
14851514 sanitizeTelegramQaProgressValue,
14861515 shouldLogTelegramQaLiveProgress,
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。