mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 09:10:45 +00:00
fix(ci): continue Windows upgrade fallback checks
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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") {
|
||||
|
||||
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user