From 4ca1ae8046014e91f89b8e0caaa73393551694ca Mon Sep 17 00:00:00 2001 From: Tak Hoffman <781889+Takhoffman@users.noreply.github.com> Date: Fri, 3 Apr 2026 13:43:09 -0500 Subject: [PATCH] fix: honor signal default runtime account --- extensions/signal/src/accounts.test.ts | 29 ++++++++++++++++++++++++++ extensions/signal/src/accounts.ts | 4 +++- 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 extensions/signal/src/accounts.test.ts diff --git a/extensions/signal/src/accounts.test.ts b/extensions/signal/src/accounts.test.ts new file mode 100644 index 00000000000..91a729b56aa --- /dev/null +++ b/extensions/signal/src/accounts.test.ts @@ -0,0 +1,29 @@ +import { describe, expect, it } from "vitest"; +import { resolveSignalAccount } from "./accounts.js"; + +describe("resolveSignalAccount", () => { + it("uses configured defaultAccount when accountId is omitted", () => { + const resolved = resolveSignalAccount({ + cfg: { + channels: { + signal: { + defaultAccount: "work", + accounts: { + work: { + name: "Work", + account: "+15555550123", + httpUrl: "http://127.0.0.1:9999", + }, + }, + }, + }, + } as never, + }); + + expect(resolved.accountId).toBe("work"); + expect(resolved.name).toBe("Work"); + expect(resolved.baseUrl).toBe("http://127.0.0.1:9999"); + expect(resolved.config.account).toBe("+15555550123"); + expect(resolved.configured).toBe(true); + }); +}); diff --git a/extensions/signal/src/accounts.ts b/extensions/signal/src/accounts.ts index 755a3c39a5a..67b2e36934b 100644 --- a/extensions/signal/src/accounts.ts +++ b/extensions/signal/src/accounts.ts @@ -33,7 +33,9 @@ export function resolveSignalAccount(params: { cfg: OpenClawConfig; accountId?: string | null; }): ResolvedSignalAccount { - const accountId = normalizeAccountId(params.accountId); + const accountId = normalizeAccountId( + params.accountId ?? resolveDefaultSignalAccountId(params.cfg), + ); const baseEnabled = params.cfg.channels?.signal?.enabled !== false; const merged = mergeSignalAccountConfig(params.cfg, accountId); const accountEnabled = merged.enabled !== false;