diff --git a/scripts/openclaw-cross-os-release-checks.ts b/scripts/openclaw-cross-os-release-checks.ts index 4b6fe265fee..6e0fef6477e 100644 --- a/scripts/openclaw-cross-os-release-checks.ts +++ b/scripts/openclaw-cross-os-release-checks.ts @@ -765,15 +765,7 @@ async function runUpgradeLane(params) { logLanePhase(lane, "update"); const updateEnv = buildRealUpdateEnv(env); - const updateArgs = [ - "update", - "--tag", - params.candidateUrl, - "--yes", - "--json", - "--timeout", - String(updateStepTimeoutSeconds()), - ]; + const updateArgs = buildPackagedUpgradeUpdateArgs(params.candidateUrl); const updateResult = await runOpenClaw({ lane, env: updateEnv, @@ -1345,6 +1337,19 @@ export function verifyPackagedUpgradeUpdateResult(result, _options) { ); } +export function buildPackagedUpgradeUpdateArgs(candidateUrl) { + return [ + "update", + "--tag", + candidateUrl, + "--yes", + "--json", + "--no-restart", + "--timeout", + String(updateStepTimeoutSeconds()), + ]; +} + export function isRecoverableWindowsPackagedUpgradeSwapCleanupFailure( result, platform = process.platform, diff --git a/test/scripts/openclaw-cross-os-release-checks.test.ts b/test/scripts/openclaw-cross-os-release-checks.test.ts index ba536f51e0d..4ff4c4e6966 100644 --- a/test/scripts/openclaw-cross-os-release-checks.test.ts +++ b/test/scripts/openclaw-cross-os-release-checks.test.ts @@ -16,6 +16,7 @@ import { LOCAL_BUILD_METADATA_DIST_PATHS } from "../../scripts/lib/local-build-m import { agentOutputHasExpectedOkMarker, buildCrossOsReleaseSmokePluginAllowlist, + buildPackagedUpgradeUpdateArgs, buildReleaseOnboardArgs, buildWindowsDevUpdateToolchainCheckScript, buildWindowsFreshShellVersionCheckScript, @@ -232,6 +233,19 @@ describe("scripts/openclaw-cross-os-release-checks", () => { ]); }); + it("keeps packaged-upgrade release updates out of service restart flow", () => { + const args = buildPackagedUpgradeUpdateArgs("http://127.0.0.1:49152/openclaw-current.tgz"); + expect(args.slice(0, 6)).toEqual([ + "update", + "--tag", + "http://127.0.0.1:49152/openclaw-current.tgz", + "--yes", + "--json", + "--no-restart", + ]); + expect(args.at(-2)).toBe("--timeout"); + }); + it("keeps cross-OS live smoke agent turns on GPT-5-safe timeouts and minimal context", () => { const source = readFileSync("scripts/openclaw-cross-os-release-checks.ts", "utf8"); const providerOverride = "models.providers.${params.providerConfig.extensionId}";