
























@@ -142,9 +142,10 @@ type WhatsAppCredentialHeartbeat = ReturnType<typeof startQaCredentialLeaseHeart
142142143143const WHATSAPP_QA_CAPTURE_CONTENT_ENV = "OPENCLAW_QA_WHATSAPP_CAPTURE_CONTENT";
144144const QA_REDACT_PUBLIC_METADATA_ENV = "OPENCLAW_QA_REDACT_PUBLIC_METADATA";
145-const WHATSAPP_QA_TRANSIENT_DRIVER_ATTEMPTS = 3;
145+const WHATSAPP_QA_TRANSIENT_DRIVER_ATTEMPTS = 5;
146146const WHATSAPP_QA_READY_TIMEOUT_MS = 150_000;
147-const WHATSAPP_QA_DRIVER_RECONNECT_DELAY_MS = 2_000;
147+const WHATSAPP_QA_READY_STABILITY_MS = 8_000;
148+const WHATSAPP_QA_DRIVER_RECONNECT_DELAY_MS = 10_000;
148149const WHATSAPP_QA_ENV_KEYS = [
149150"OPENCLAW_QA_WHATSAPP_DRIVER_PHONE_E164",
150151"OPENCLAW_QA_WHATSAPP_SUT_PHONE_E164",
@@ -430,6 +431,15 @@ async function waitForWhatsAppChannelRunning(
430431);
431432}
432433434+async function waitForWhatsAppChannelStable(
435+gateway: Awaited<ReturnType<typeof startQaGatewayChild>>,
436+accountId: string,
437+) {
438+await waitForWhatsAppChannelRunning(gateway, accountId);
439+await new Promise((resolve) => setTimeout(resolve, WHATSAPP_QA_READY_STABILITY_MS));
440+await waitForWhatsAppChannelRunning(gateway, accountId);
441+}
442+433443async function listTarEntries(archivePath: string): Promise<string[]> {
434444const { stdout } = await execFileAsync("tar", ["-tzf", archivePath], {
435445maxBuffer: 1024 * 1024,
@@ -561,7 +571,7 @@ async function runWhatsAppScenario(params: {
561571});
562572let preservedGatewayDebug = false;
563573try {
564-await waitForWhatsAppChannelRunning(gatewayHarness.gateway, params.sutAccountId);
574+await waitForWhatsAppChannelStable(gatewayHarness.gateway, params.sutAccountId);
565575if (scenarioRun.quietInput) {
566576const quietStartedAt = new Date();
567577await params.driver.sendText(target, scenarioRun.quietInput);
@@ -841,6 +851,9 @@ export async function runWhatsAppQaLive(params: {
841851isTransientWhatsAppQaDriverError(error)
842852) {
843853driverAttempt += 1;
854+await new Promise((resolve) =>
855+setTimeout(resolve, WHATSAPP_QA_DRIVER_RECONNECT_DELAY_MS),
856+);
844857try {
845858activeDriver = await restartWhatsAppQaDriverSession({
846859authDir: driverAuthDir,
@@ -859,7 +872,10 @@ export async function runWhatsAppQaLive(params: {
859872id: scenario.id,
860873title: scenario.title,
861874status: "fail",
862-details: formatErrorMessage(error),
875+details:
876+driverAttempt > 1
877+ ? `${formatErrorMessage(error)}; driver reconnected ${driverAttempt - 1}x`
878+ : formatErrorMessage(error),
863879});
864880break;
865881}
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。