fix(ci): continue Windows upgrade fallback checks

This commit is contained in:
Vincent Koc
2026-05-03 18:18:52 -07:00
parent 8e79392dcc
commit 857580108d
3 changed files with 48 additions and 9 deletions

View File

@@ -42,6 +42,7 @@ Docs: https://docs.openclaw.ai
### Fixes
- Release validation: install the cross-OS TypeScript harness through Windows-safe Node/npm shims so native Windows package checks reach the OpenClaw smoke suites instead of exiting before artifact capture. Thanks @vincentkoc.
- Release validation: let Windows packaged-upgrade checks continue after the shipped 2026.5.2 updater hits its native-module swap cleanup fallback, verifying the fallback-installed candidate through package metadata and downstream smoke instead of crashing on the immediate update-status probe. Thanks @vincentkoc.
- Agents/bootstrap: keep pending `BOOTSTRAP.md` and bootstrap truncation notices in system-prompt Project Context instead of copying setup text or raw warning diagnostics into WebChat user/runtime context. Fixes #76946.
- Channels/WhatsApp: allow `@whiskeysockets/libsignal-node` in `onlyBuiltDependencies` so pnpm v9+ `blockExoticSubdeps` no longer rejects the baileys git-tarball subdep and silences all inbound agent replies. Fixes #76539. Thanks @ottodeng and @vincentkoc.
- Gateway/install: keep `.env`-managed values in the macOS LaunchAgent env file while still tracking `OPENCLAW_SERVICE_MANAGED_ENV_KEYS`, so regenerated services do not boot without managed auth/provider keys. Fixes #75374.

View File

@@ -779,7 +779,9 @@ async function runUpgradeLane(params) {
timeoutMs: updateTimeoutMs(),
check: false,
});
if (isRecoverableWindowsPackagedUpgradeSwapCleanupFailure(updateResult, process.platform)) {
const usedWindowsPackagedUpgradeFallback =
isRecoverableWindowsPackagedUpgradeSwapCleanupFailure(updateResult, process.platform);
if (usedWindowsPackagedUpgradeFallback) {
logLanePhase(lane, "update-fallback-install");
await installPackageSpec({
lane,
@@ -793,14 +795,21 @@ async function runUpgradeLane(params) {
});
}
logLanePhase(lane, "update-status");
await runOpenClaw({
lane,
env: updateEnv,
args: ["update", "status", "--json"],
logPath: join(params.logsDir, "upgrade-update-status.log"),
timeoutMs: 2 * 60 * 1000,
});
if (
shouldRunPackagedUpgradeStatusProbe({
platform: process.platform,
usedWindowsPackagedUpgradeFallback,
})
) {
logLanePhase(lane, "update-status");
await runOpenClaw({
lane,
env: updateEnv,
args: ["update", "status", "--json"],
logPath: join(params.logsDir, "upgrade-update-status.log"),
timeoutMs: 2 * 60 * 1000,
});
}
logLanePhase(lane, "run-bundled-plugin-postinstall");
await runBundledPluginPostinstall({
lane,
@@ -1350,6 +1359,13 @@ export function isRecoverableWindowsPackagedUpgradeSwapCleanupFailure(
);
}
export function shouldRunPackagedUpgradeStatusProbe({
platform = process.platform,
usedWindowsPackagedUpgradeFallback,
} = {}) {
return !(platform === "win32" && usedWindowsPackagedUpgradeFallback);
}
export function resolveExplicitBaselineVersion(baselineSpec) {
const trimmed = baselineSpec.trim();
if (!trimmed || trimmed === "openclaw@latest") {

View File

@@ -53,6 +53,7 @@ import {
resolveRunnerMatrix,
resolveStaticFileContentType,
shouldExerciseManagedGatewayLifecycleAfterInstall,
shouldRunPackagedUpgradeStatusProbe,
shouldRunWindowsInstalledBrowserOverrideImportSmoke,
shouldSkipInstallerDaemonHealthCheck,
shouldStopManagedGatewayBeforeManualFallback,
@@ -716,6 +717,27 @@ describe("scripts/openclaw-cross-os-release-checks", () => {
).toBe(true);
});
it("skips the packaged upgrade status probe after the Windows fallback install", () => {
expect(
shouldRunPackagedUpgradeStatusProbe({
platform: "win32",
usedWindowsPackagedUpgradeFallback: true,
}),
).toBe(false);
expect(
shouldRunPackagedUpgradeStatusProbe({
platform: "win32",
usedWindowsPackagedUpgradeFallback: false,
}),
).toBe(true);
expect(
shouldRunPackagedUpgradeStatusProbe({
platform: "linux",
usedWindowsPackagedUpgradeFallback: true,
}),
).toBe(true);
});
it("does not recover unrelated packaged update failures", () => {
expect(
isRecoverableWindowsPackagedUpgradeSwapCleanupFailure(