From c7554d30722bc9c99bff1d2eabe045401d43766f Mon Sep 17 00:00:00 2001 From: Tak Hoffman <781889+Takhoffman@users.noreply.github.com> Date: Fri, 3 Apr 2026 14:08:28 -0500 Subject: [PATCH] fix: honor discord default action runtime account --- .../discord/src/actions/runtime.messaging.ts | 3 +- .../discord/src/actions/runtime.test.ts | 30 +++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/extensions/discord/src/actions/runtime.messaging.ts b/extensions/discord/src/actions/runtime.messaging.ts index 396244c8e39..d0d13190708 100644 --- a/extensions/discord/src/actions/runtime.messaging.ts +++ b/extensions/discord/src/actions/runtime.messaging.ts @@ -1,4 +1,5 @@ import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import { resolveDefaultDiscordAccountId } from "../accounts.js"; import { createDiscordRuntimeAccountContext } from "../client.js"; import { readDiscordComponentSpec } from "../components.js"; import { @@ -112,7 +113,7 @@ export async function handleDiscordMessagingAction( const reactionRuntimeOptions = cfg ? createDiscordRuntimeAccountContext({ cfg, - accountId: accountId ?? "default", + accountId: accountId ?? resolveDefaultDiscordAccountId(cfg), }) : accountId ? { accountId } diff --git a/extensions/discord/src/actions/runtime.test.ts b/extensions/discord/src/actions/runtime.test.ts index 8eeff67dc14..0f42089bdec 100644 --- a/extensions/discord/src/actions/runtime.test.ts +++ b/extensions/discord/src/actions/runtime.test.ts @@ -131,6 +131,36 @@ describe("handleDiscordMessagingAction", () => { expect(reactMessageDiscord).toHaveBeenCalledWith("C1", "M1", "✅", {}); }); + it("uses configured defaultAccount when cfg is provided and accountId is omitted", async () => { + await handleDiscordMessagingAction( + "react", + { + channelId: "C1", + messageId: "M1", + emoji: "✅", + }, + enableAllActions, + undefined, + { + channels: { + discord: { + defaultAccount: "work", + accounts: { + work: { token: "token-work" }, + }, + }, + }, + } as OpenClawConfig, + ); + + expect(reactMessageDiscord).toHaveBeenCalledWith( + "C1", + "M1", + "✅", + expect.objectContaining({ accountId: "work" }), + ); + }); + it("removes reactions on empty emoji", async () => { await handleDiscordMessagingAction( "react",