


























@@ -951,14 +951,17 @@ describeLive("gateway live (ACP bind)", () => {
951951logLiveStep("bound session classified the probe image");
952952}
953953954-const cronProbe = createLiveCronProbeSpec({
955-agentId: liveAgent,
956-sessionKey: spawnedSessionKey,
957-});
958954const requireCronMcpProbe = shouldRequireCronMcpProbe();
959955let cronJobId: string | undefined;
960956let lastCronAssistantText = "";
957+let lastCronProbeName = "";
958+let lastCronMismatch = "";
961959for (let attempt = 0; attempt < ACP_CRON_MCP_PROBE_MAX_ATTEMPTS; attempt += 1) {
960+const cronProbe = createLiveCronProbeSpec({
961+agentId: liveAgent,
962+sessionKey: spawnedSessionKey,
963+});
964+lastCronProbeName = cronProbe.name;
962965await sendChatAndWait({
963966 client,
964967sessionKey: originalSessionKey,
@@ -998,13 +1001,26 @@ describeLive("gateway live (ACP bind)", () => {
9981001});
9991002const createdJob = verifyResult.job;
10001003if (createdJob) {
1001-assertCronJobMatches({
1002-job: createdJob,
1003-expectedName: cronProbe.name,
1004-expectedMessage: cronProbe.message,
1005-expectedSessionKey: spawnedSessionKey,
1006-expectedAgentId: liveAgent,
1007-});
1004+try {
1005+assertCronJobMatches({
1006+job: createdJob,
1007+expectedName: cronProbe.name,
1008+expectedMessage: cronProbe.message,
1009+expectedSessionKey: spawnedSessionKey,
1010+expectedAgentId: liveAgent,
1011+});
1012+} catch (error) {
1013+lastCronMismatch = error instanceof Error ? error.message : String(error);
1014+logLiveStep(
1015+`cron mcp job ${cronProbe.name} mismatch after attempt ${String(
1016+ attempt + 1,
1017+ )}: ${lastCronMismatch}`,
1018+);
1019+if (attempt === ACP_CRON_MCP_PROBE_MAX_ATTEMPTS - 1 && requireCronMcpProbe) {
1020+throw error;
1021+}
1022+continue;
1023+}
10081024cronJobId = createdJob.id;
10091025if (cronHistory) {
10101026expect(cronHistory.lastAssistantText.trim().length).toBeGreaterThan(0);
@@ -1019,22 +1035,24 @@ describeLive("gateway live (ACP bind)", () => {
10191035if (attempt === ACP_CRON_MCP_PROBE_MAX_ATTEMPTS - 1) {
10201036if (!requireCronMcpProbe) {
10211037logLiveStep(
1022-`cron mcp job ${cronProbe.name} not observed; continuing after bind/image verification`,
1038+`cron mcp job ${lastCronProbeName} not observed; continuing after bind/image verification${
1039+ lastCronMismatch ? `; last mismatch=${lastCronMismatch}` : ""
1040+ }`,
10231041);
10241042break;
10251043}
10261044throw new Error(
1027-`acp cron cli verify could not find job ${cronProbe.name}: reply=${JSON.stringify(
1045+`acp cron cli verify could not find job ${lastCronProbeName}: reply=${JSON.stringify(
10281046 lastCronAssistantText,
1029- )}`,
1047+ )}${lastCronMismatch ? ` mismatch=${lastCronMismatch}` : ""}`,
10301048);
10311049}
10321050}
10331051if (!cronJobId) {
10341052if (!requireCronMcpProbe) {
10351053return;
10361054}
1037-throw new Error(`acp cron cli verify did not create job ${cronProbe.name}`);
1055+throw new Error(`acp cron cli verify did not create job ${lastCronProbeName}`);
10381056}
10391057await runOpenClawCliJson(
10401058["cron", "rm", cronJobId, "--json", "--url", `ws://127.0.0.1:${port}`, "--token", token],
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。