RPC: stream heartbeat events to menu

This commit is contained in:
Peter Steinberger
2025-12-08 20:18:54 +01:00
parent e3089d60ea
commit ab448988ff
5 changed files with 195 additions and 0 deletions

View File

@@ -23,6 +23,10 @@ import {
resolveHeartbeatSeconds,
resolveReconnectPolicy,
} from "../web/reconnect.js";
import {
readLatestHeartbeat,
tailHeartbeatEvents,
} from "../process/heartbeat-events.js";
import {
ensureWebChatServerFromConfig,
startWebChatServer,
@@ -241,6 +245,14 @@ Examples:
}
};
const forwardHeartbeat = (payload: unknown) => {
respond({ type: "event", event: "heartbeat", payload });
};
const latest = readLatestHeartbeat();
if (latest) forwardHeartbeat(latest);
const stopTail = tailHeartbeatEvents(forwardHeartbeat);
rl.on("line", async (line: string) => {
if (!line.trim()) return;
try {
@@ -311,6 +323,8 @@ Examples:
};
await new Promise(() => {});
stopTail();
});
program