fix: stop gateway before uninstall
This commit is contained in:
@@ -30,6 +30,7 @@ Docs: https://docs.clawd.bot
|
|||||||
- Control UI: resolve local avatar URLs with basePath across injection + identity RPC. (#1457) Thanks @dlauer.
|
- Control UI: resolve local avatar URLs with basePath across injection + identity RPC. (#1457) Thanks @dlauer.
|
||||||
- Agents: sanitize assistant history text to strip tool-call markers. (#1456) Thanks @zerone0x.
|
- Agents: sanitize assistant history text to strip tool-call markers. (#1456) Thanks @zerone0x.
|
||||||
- Discord: clarify Message Content Intent onboarding hint. (#1487) Thanks @kyleok.
|
- Discord: clarify Message Content Intent onboarding hint. (#1487) Thanks @kyleok.
|
||||||
|
- Gateway: stop the service before uninstalling and fail if it remains loaded.
|
||||||
- Agents: surface concrete API error details instead of generic AI service errors.
|
- Agents: surface concrete API error details instead of generic AI service errors.
|
||||||
- Exec: fall back to non-PTY when PTY spawn fails (EBADF). (#1484)
|
- Exec: fall back to non-PTY when PTY spawn fails (EBADF). (#1484)
|
||||||
- Exec approvals: allow per-segment allowlists for chained shell commands on gateway + node hosts. (#1458) Thanks @czekaj.
|
- Exec approvals: allow per-segment allowlists for chained shell commands on gateway + node hosts. (#1458) Thanks @czekaj.
|
||||||
|
|||||||
@@ -38,6 +38,19 @@ export async function runDaemonUninstall(opts: DaemonLifecycleOptions = {}) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const service = resolveGatewayService();
|
const service = resolveGatewayService();
|
||||||
|
let loaded = false;
|
||||||
|
try {
|
||||||
|
loaded = await service.isLoaded({ env: process.env });
|
||||||
|
} catch {
|
||||||
|
loaded = false;
|
||||||
|
}
|
||||||
|
if (loaded) {
|
||||||
|
try {
|
||||||
|
await service.stop({ env: process.env, stdout });
|
||||||
|
} catch {
|
||||||
|
// Best-effort stop; final loaded check gates success.
|
||||||
|
}
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
await service.uninstall({ env: process.env, stdout });
|
await service.uninstall({ env: process.env, stdout });
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
@@ -45,12 +58,16 @@ export async function runDaemonUninstall(opts: DaemonLifecycleOptions = {}) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let loaded = false;
|
loaded = false;
|
||||||
try {
|
try {
|
||||||
loaded = await service.isLoaded({ env: process.env });
|
loaded = await service.isLoaded({ env: process.env });
|
||||||
} catch {
|
} catch {
|
||||||
loaded = false;
|
loaded = false;
|
||||||
}
|
}
|
||||||
|
if (loaded) {
|
||||||
|
fail("Gateway service still loaded after uninstall.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
emit({
|
emit({
|
||||||
ok: true,
|
ok: true,
|
||||||
result: "uninstalled",
|
result: "uninstalled",
|
||||||
|
|||||||
Reference in New Issue
Block a user