fix: force package update restart handoff

This commit is contained in:
Peter Steinberger
2026-05-01 09:25:20 +01:00
parent 6efb44944c
commit e131eaecb5
11 changed files with 279 additions and 38 deletions

View File

@@ -1256,30 +1256,11 @@ export function buildRealUpdateEnv(env) {
return updateEnv;
}
export function verifyPackagedUpgradeUpdateResult(result, options) {
export function verifyPackagedUpgradeUpdateResult(result, _options) {
if (result.exitCode === 0) {
return;
}
let payload = null;
try {
payload = JSON.parse(result.stdout);
} catch {
payload = null;
}
const steps = Array.isArray(payload?.steps) ? payload.steps : [];
const allStepsSucceeded = steps.every((step) => step?.exitCode === 0);
const afterVersion = typeof payload?.after?.version === "string" ? payload.after.version : "";
if (
payload?.status === "ok" &&
afterVersion === options.candidateVersion &&
allStepsSucceeded &&
isSelfSwappedPackageProcessExit(result.stderr)
) {
return;
}
throw new Error(
`Packaged upgrade failed (${result.exitCode}): ${trimForSummary(
`${result.stdout}\n${result.stderr}`,
@@ -1287,15 +1268,6 @@ export function verifyPackagedUpgradeUpdateResult(result, options) {
);
}
function isSelfSwappedPackageProcessExit(stderr) {
return (
typeof stderr === "string" &&
stderr.includes("[openclaw] Failed to start CLI:") &&
stderr.includes("ERR_MODULE_NOT_FOUND") &&
/[\\/]node_modules[\\/]openclaw[\\/]dist[\\/]/u.test(stderr)
);
}
export function resolveExplicitBaselineVersion(baselineSpec) {
const trimmed = baselineSpec.trim();
if (!trimmed || trimmed === "openclaw@latest") {