fix(discord): support forum channel thread-create (#10062)

* fix(discord): support forum channel thread-create

* fix: harden discord forum thread-create (#10062) (thanks @jarvis89757)

---------

Co-authored-by: Shakker <shakkerdroid@gmail.com>
This commit is contained in:
jarvis89757
2026-02-08 16:51:10 +11:00
committed by GitHub
parent bc475f0172
commit 9949f82590
10 changed files with 136 additions and 8 deletions

View File

@@ -281,6 +281,7 @@ export async function handleDiscordMessagingAction(
const channelId = resolveChannelId();
const name = readStringParam(params, "name", { required: true });
const messageId = readStringParam(params, "messageId");
const content = readStringParam(params, "content");
const autoArchiveMinutesRaw = params.autoArchiveMinutes;
const autoArchiveMinutes =
typeof autoArchiveMinutesRaw === "number" && Number.isFinite(autoArchiveMinutesRaw)
@@ -289,10 +290,10 @@ export async function handleDiscordMessagingAction(
const thread = accountId
? await createThreadDiscord(
channelId,
{ name, messageId, autoArchiveMinutes },
{ name, messageId, autoArchiveMinutes, content },
{ accountId },
)
: await createThreadDiscord(channelId, { name, messageId, autoArchiveMinutes });
: await createThreadDiscord(channelId, { name, messageId, autoArchiveMinutes, content });
return jsonResult({ ok: true, thread });
}
case "threadList": {

View File

@@ -234,6 +234,25 @@ describe("handleDiscordMessagingAction", () => {
new Date(expectedMs).toISOString(),
);
});
it("forwards optional thread content", async () => {
createThreadDiscord.mockClear();
await handleDiscordMessagingAction(
"threadCreate",
{
channelId: "C1",
name: "Forum thread",
content: "Initial forum post body",
},
enableAllActions,
);
expect(createThreadDiscord).toHaveBeenCalledWith("C1", {
name: "Forum thread",
messageId: undefined,
autoArchiveMinutes: undefined,
content: "Initial forum post body",
});
});
});
const channelsEnabled = (key: keyof DiscordActionConfig) => key === "channels";