fix: soften windows daemon install

This commit is contained in:
Peter Steinberger
2026-01-17 20:12:23 +00:00
parent 1309fc1f48
commit be12b0771c
4 changed files with 98 additions and 18 deletions

View File

@@ -72,6 +72,7 @@ export async function maybeInstallDaemon(params: {
}
if (shouldInstall) {
let installError: unknown | null = null;
await withProgress(
{ label: "Gateway daemon", indeterminate: true, delayMs: 0 },
async (progress) => {
@@ -117,16 +118,33 @@ export async function maybeInstallDaemon(params: {
});
progress.setLabel("Installing Gateway daemon…");
await service.install({
env: process.env,
stdout: process.stdout,
programArguments,
workingDirectory,
environment,
});
progress.setLabel("Gateway daemon installed.");
try {
await service.install({
env: process.env,
stdout: process.stdout,
programArguments,
workingDirectory,
environment,
});
progress.setLabel("Gateway daemon installed.");
} catch (err) {
installError = err;
progress.setLabel("Gateway daemon install failed.");
}
},
);
if (installError) {
note(`Gateway daemon install failed: ${String(installError)}`, "Gateway");
if (process.platform === "win32") {
note(
"Tip: rerun from an elevated PowerShell (Start → type PowerShell → right-click → Run as administrator) or skip daemon install.",
"Gateway",
);
} else {
note("Tip: rerun `clawdbot daemon install` after fixing the error.", "Gateway");
}
return;
}
shouldCheckLinger = true;
}

View File

@@ -69,12 +69,24 @@ export async function installGatewayDaemonNonInteractive(params: {
? resolveGatewayLaunchAgentLabel(process.env.CLAWDBOT_PROFILE)
: undefined,
});
await service.install({
env: process.env,
stdout: process.stdout,
programArguments,
workingDirectory,
environment,
});
try {
await service.install({
env: process.env,
stdout: process.stdout,
programArguments,
workingDirectory,
environment,
});
} catch (err) {
runtime.error(`Gateway daemon install failed: ${String(err)}`);
if (process.platform === "win32") {
runtime.log(
"Tip: rerun from an elevated PowerShell (Start → type PowerShell → right-click → Run as administrator) or skip daemon install.",
);
} else {
runtime.log("Tip: rerun `clawdbot daemon install` after fixing the error.");
}
return;
}
await ensureSystemdUserLingerNonInteractive({ runtime });
}