fix(daemon): tear down daemon when destroying all servers with no entries

This commit is contained in:
2026-04-30 11:41:37 -04:00
parent 620d9cc70f
commit b614e700fd

View File

@@ -203,6 +203,12 @@ async function handle(req: DaemonRequest): Promise<DaemonResponse> {
for (const entry of toDestroy) { for (const entry of toDestroy) {
evict(entry, "manual destroy"); evict(entry, "manual destroy");
} }
// Full Shutdown - If destroying all servers and nothing is left
// (including the case where no entries existed), tear down the
// daemon so it doesn't sit idle.
if (!req.serverId && entries.size === 0) {
setImmediate(() => shutdownDaemon("destroy all"));
}
return { return {
id: req.id, id: req.id,
ok: true, ok: true,
@@ -223,8 +229,6 @@ async function handle(req: DaemonRequest): Promise<DaemonResponse> {
error: (err as Error)?.message ?? String(err), error: (err as Error)?.message ?? String(err),
}; };
} }
// Exhaustiveness - Should be unreachable given the union above.
throw new Error("unreachable");
} }
// Handle Connection - Reads NDJSON from a client socket; each line is one // Handle Connection - Reads NDJSON from a client socket; each line is one