feat: complete TASK-WP0-08 logging

This commit is contained in:
suyx
2026-07-28 00:11:02 +08:00
parent 096a1f1279
commit 361bda2f22
21 changed files with 1050 additions and 22 deletions
+14 -2
View File
@@ -33,8 +33,14 @@ export function initializeApiCredentialClients(credentials: Record<(typeof API_C
export function attachApiSupervisorControl(pipeName: string, shutdown: () => Promise<void>) {
const socket = createConnection(`\\\\.\\pipe\\${pipeName}`);
let pending = "";
let connected = false;
const pendingStatuses: string[] = [];
socket.setEncoding("utf8");
socket.on("connect", () => socket.write("ready\n"));
socket.on("connect", () => {
connected = true;
socket.write("ready\n");
for (const status of pendingStatuses.splice(0)) socket.write(`${status}\n`);
});
socket.on("data", (chunk) => {
pending += chunk;
if (!pending.includes("\n")) return;
@@ -42,5 +48,11 @@ export function attachApiSupervisorControl(pipeName: string, shutdown: () => Pro
pending = "";
if (command === "shutdown") void shutdown().finally(() => socket.end());
});
return socket;
return {
reportStatus(status: "storage_unavailable") {
if (socket.destroyed) return;
if (connected) socket.write(`${status}\n`); else pendingStatuses.push(status);
},
socket,
};
}