Health: CLI probe and mac UI surfacing

This commit is contained in:
Peter Steinberger
2025-12-07 04:38:20 +00:00
parent ddf8aef4f7
commit cb5c932447
9 changed files with 252 additions and 16 deletions

View File

@@ -19,7 +19,6 @@ import {
import { defaultRuntime } from "../runtime.js";
import { VERSION } from "../version.js";
import {
DEFAULT_HEARTBEAT_SECONDS,
resolveHeartbeatSeconds,
resolveReconnectPolicy,
} from "../web/reconnect.js";

View File

@@ -214,8 +214,8 @@ export async function runWebHeartbeatOnce(opts: {
const cfg = cfgOverride ?? loadConfig();
const sessionCfg = cfg.inbound?.reply?.session;
const mainKey = sessionCfg?.mainKey ?? "main";
const sessionScope = sessionCfg?.scope ?? "per-sender";
const mainKey = sessionCfg?.mainKey;
const sessionKey = resolveSessionKey(sessionScope, { From: to }, mainKey);
if (sessionId) {
const storePath = resolveStorePath(cfg.inbound?.reply?.session?.store);
@@ -439,7 +439,7 @@ function getSessionSnapshot(
const key = resolveSessionKey(
scope,
{ From: from, To: "", Body: "" },
sessionCfg?.mainKey ?? "main",
sessionCfg?.mainKey,
);
const store = loadSessionStore(resolveStorePath(sessionCfg?.store));
const entry = store[key];

View File

@@ -40,7 +40,7 @@ describe("loginWeb coverage", () => {
.mockResolvedValueOnce(undefined);
const runtime = { log: vi.fn(), error: vi.fn() } as never;
await loginWeb(false, waitForWaConnection as never, runtime);
await loginWeb(false, "web", waitForWaConnection as never, runtime);
expect(createWaSocket).toHaveBeenCalledTimes(2);
const firstSock = await createWaSocket.mock.results[0].value;
@@ -55,7 +55,7 @@ describe("loginWeb coverage", () => {
output: { statusCode: DisconnectReason.loggedOut },
});
await expect(loginWeb(false, waitForWaConnection as never)).rejects.toThrow(
await expect(loginWeb(false, "web", waitForWaConnection as never)).rejects.toThrow(
/cache cleared/i,
);
expect(rmMock).toHaveBeenCalledWith("/tmp/wa-creds", {
@@ -66,7 +66,7 @@ describe("loginWeb coverage", () => {
it("formats and rethrows generic errors", async () => {
waitForWaConnection.mockRejectedValueOnce(new Error("boom"));
await expect(loginWeb(false, waitForWaConnection as never)).rejects.toThrow(
await expect(loginWeb(false, "web", waitForWaConnection as never)).rejects.toThrow(
"formatted:Error: boom",
);
expect(formatError).toHaveBeenCalled();

View File

@@ -38,7 +38,7 @@ describe("web login", () => {
const waiter: typeof waitForWaConnection = vi
.fn()
.mockResolvedValue(undefined);
await loginWeb(false, waiter);
await loginWeb(false, "web", waiter);
await new Promise((resolve) => setTimeout(resolve, 550));
expect(sock.ws.close).toHaveBeenCalled();
});