diff --git a/scripts/e2e/parallels-linux-smoke.sh b/scripts/e2e/parallels-linux-smoke.sh index d56a3a96d27..277e2eeb020 100644 --- a/scripts/e2e/parallels-linux-smoke.sh +++ b/scripts/e2e/parallels-linux-smoke.sh @@ -42,7 +42,7 @@ TIMEOUT_ONBOARD_S=180 TIMEOUT_AGENT_S="${OPENCLAW_PARALLELS_LINUX_AGENT_TIMEOUT_S:-300}" TIMEOUT_GATEWAY_S=240 PHASE_STALE_WARN_S=60 -DISABLE_BONJOUR_FOR_GATEWAY=0 +DISABLE_BONJOUR_FOR_GATEWAY=1 FRESH_MAIN_STATUS="skip" FRESH_MAIN_VERSION="skip" diff --git a/scripts/e2e/parallels-macos-smoke.sh b/scripts/e2e/parallels-macos-smoke.sh index 025a51607d1..ddb6376715b 100644 --- a/scripts/e2e/parallels-macos-smoke.sh +++ b/scripts/e2e/parallels-macos-smoke.sh @@ -1460,15 +1460,18 @@ EOF } verify_gateway() { - local attempt - for attempt in 1 2 3 4 5 6 7 8; do - if guest_current_user_exec "$GUEST_OPENCLAW_BIN" gateway status --deep --require-rpc --timeout 15000; then + local attempt deadline + attempt=1 + deadline=$((SECONDS + TIMEOUT_GATEWAY_S)) + while (( SECONDS < deadline )); do + if guest_current_user_exec "$GUEST_OPENCLAW_BIN" gateway status --deep --require-rpc --timeout 30000; then return 0 fi - if (( attempt < 8 )); then + if (( SECONDS < deadline )); then printf 'gateway-status retry %s\n' "$attempt" >&2 sleep 5 fi + attempt=$((attempt + 1)) done return 1 } diff --git a/test/scripts/parallels-smoke-model.test.ts b/test/scripts/parallels-smoke-model.test.ts index 1887dde06a2..c03b2633c97 100644 --- a/test/scripts/parallels-smoke-model.test.ts +++ b/test/scripts/parallels-smoke-model.test.ts @@ -40,4 +40,18 @@ describe("Parallels smoke model selection", () => { expect(script).toMatch(/parallels-windows-smoke\.sh"[\s\S]*?--model "\$MODEL_ID"/); expect(script).toMatch(/parallels-linux-smoke\.sh"[\s\S]*?--model "\$MODEL_ID"/); }); + + it("disables Bonjour by default for the standalone Linux gateway smoke", () => { + const script = readFileSync("scripts/e2e/parallels-linux-smoke.sh", "utf8"); + + expect(script).toContain("DISABLE_BONJOUR_FOR_GATEWAY=1"); + expect(script).toContain("OPENCLAW_DISABLE_BONJOUR=1"); + }); + + it("lets the macOS gateway status probe use the full phase budget", () => { + const script = readFileSync("scripts/e2e/parallels-macos-smoke.sh", "utf8"); + + expect(script).toContain("deadline=$((SECONDS + TIMEOUT_GATEWAY_S))"); + expect(script).toContain("gateway status --deep --require-rpc --timeout 30000"); + }); });