fix: honor signal default runtime account

This commit is contained in:
Tak Hoffman
2026-04-03 13:43:09 -05:00
parent c7875f193b
commit 4ca1ae8046
2 changed files with 32 additions and 1 deletions

View File

@@ -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);
});
});

View File

@@ -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;