From 4f5f1fa724a142ee68699aae523ffe1b5da8168d Mon Sep 17 00:00:00 2001 From: Tak Hoffman <781889+Takhoffman@users.noreply.github.com> Date: Fri, 3 Apr 2026 13:44:11 -0500 Subject: [PATCH] fix: honor imessage default runtime account --- extensions/imessage/src/accounts.test.ts | 29 ++++++++++++++++++++++++ extensions/imessage/src/accounts.ts | 4 +++- 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 extensions/imessage/src/accounts.test.ts diff --git a/extensions/imessage/src/accounts.test.ts b/extensions/imessage/src/accounts.test.ts new file mode 100644 index 00000000000..cbf60b553d6 --- /dev/null +++ b/extensions/imessage/src/accounts.test.ts @@ -0,0 +1,29 @@ +import { describe, expect, it } from "vitest"; +import { resolveIMessageAccount } from "./accounts.js"; + +describe("resolveIMessageAccount", () => { + it("uses configured defaultAccount when accountId is omitted", () => { + const resolved = resolveIMessageAccount({ + cfg: { + channels: { + imessage: { + defaultAccount: "work", + accounts: { + work: { + name: "Work", + cliPath: "/usr/local/bin/imsg-work", + dmPolicy: "open", + }, + }, + }, + }, + } as never, + }); + + expect(resolved.accountId).toBe("work"); + expect(resolved.name).toBe("Work"); + expect(resolved.config.cliPath).toBe("/usr/local/bin/imsg-work"); + expect(resolved.config.dmPolicy).toBe("open"); + expect(resolved.configured).toBe(true); + }); +}); diff --git a/extensions/imessage/src/accounts.ts b/extensions/imessage/src/accounts.ts index 18931713eaf..5607e44bf7d 100644 --- a/extensions/imessage/src/accounts.ts +++ b/extensions/imessage/src/accounts.ts @@ -32,7 +32,9 @@ export function resolveIMessageAccount(params: { cfg: OpenClawConfig; accountId?: string | null; }): ResolvedIMessageAccount { - const accountId = normalizeAccountId(params.accountId); + const accountId = normalizeAccountId( + params.accountId ?? resolveDefaultIMessageAccountId(params.cfg), + ); const baseEnabled = params.cfg.channels?.imessage?.enabled !== false; const merged = mergeIMessageAccountConfig(params.cfg, accountId); const accountEnabled = merged.enabled !== false;