diff --git a/extensions/bluebubbles/src/setup-surface.test.ts b/extensions/bluebubbles/src/setup-surface.test.ts index 225f3f8a500..b141b12cf35 100644 --- a/extensions/bluebubbles/src/setup-surface.test.ts +++ b/extensions/bluebubbles/src/setup-surface.test.ts @@ -245,6 +245,34 @@ describe("bluebubbles setup surface", () => { expect(resolved.configured).toBe(true); }); + it("uses configured defaultAccount for omitted setup configured state", async () => { + const { blueBubblesSetupWizard } = await import("./setup-surface.js"); + + const configured = await blueBubblesSetupWizard.status.resolveConfigured({ + cfg: { + channels: { + bluebubbles: { + defaultAccount: "work", + serverUrl: "http://localhost:3000", + password: "top-secret", + accounts: { + alerts: { + serverUrl: "http://localhost:4000", + password: "alerts-secret", + }, + work: { + serverUrl: "", + password: "", + }, + }, + }, + }, + } as OpenClawConfig, + }); + + expect(configured).toBe(false); + }); + it('writes open policy state to the named account and preserves inherited allowFrom with "*"', async () => { const { blueBubblesSetupWizard } = await import("./setup-surface.js"); diff --git a/extensions/bluebubbles/src/setup-surface.ts b/extensions/bluebubbles/src/setup-surface.ts index 6c5dcdb5ffb..c73d34d3ecb 100644 --- a/extensions/bluebubbles/src/setup-surface.ts +++ b/extensions/bluebubbles/src/setup-surface.ts @@ -174,10 +174,7 @@ export const blueBubblesSetupWizard: ChannelSetupWizard = { unconfiguredScore: 0, includeStatusLine: true, resolveConfigured: ({ cfg, accountId }) => - (accountId ? [accountId] : listBlueBubblesAccountIds(cfg)).some((resolvedAccountId) => { - const account = resolveBlueBubblesAccount({ cfg, accountId: resolvedAccountId }); - return account.configured; - }), + resolveBlueBubblesAccount({ cfg, accountId }).configured, }), resolveSelectionHint: ({ configured }) => configured ? "configured" : "iMessage via BlueBubbles app",