From 1db8ab3734221925ffe3af06a73d710fe8fdfdce Mon Sep 17 00:00:00 2001 From: liuhao1024 Date: Mon, 15 Jun 2026 12:04:55 +0800 Subject: [PATCH] fix(feishu): pass card_msg_content_type to get full card content (fixes #78289) (#93134) * fix(feishu): pass card_msg_content_type to get full card content When reading Feishu interactive card messages via getMessageFeishu, the API returns a degraded structure (title + 'upgrade client' prompt) unless card_msg_content_type=user_card_content is passed in params. Fixes #78289 * fix(feishu): request full card content for message reads --------- Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com> --- extensions/feishu/src/send.test.ts | 13 +++++++++++++ extensions/feishu/src/send.ts | 2 ++ 2 files changed, 15 insertions(+) diff --git a/extensions/feishu/src/send.test.ts b/extensions/feishu/src/send.test.ts index 34f6e593af1..aa87de53924 100644 --- a/extensions/feishu/src/send.test.ts +++ b/extensions/feishu/src/send.test.ts @@ -200,6 +200,10 @@ describe("getMessageFeishu", () => { messageId: "om_1", }); + expect(mockClientGet).toHaveBeenCalledWith({ + params: { card_msg_content_type: "user_card_content" }, + path: { message_id: "om_1" }, + }); expect(result).toEqual({ messageId: "om_1", chatId: "oc_1", @@ -470,6 +474,15 @@ describe("getMessageFeishu", () => { rootMessageId: "om_root", }); + expect(mockClientList).toHaveBeenCalledWith({ + params: { + container_id_type: "thread", + container_id: "omt_1", + sort_type: "ByCreateTimeDesc", + page_size: 21, + card_msg_content_type: "user_card_content", + }, + }); expect(result).toEqual([ { messageId: "om_file", diff --git a/extensions/feishu/src/send.ts b/extensions/feishu/src/send.ts index d5b21f7b391..95fbf90d676 100644 --- a/extensions/feishu/src/send.ts +++ b/extensions/feishu/src/send.ts @@ -414,6 +414,7 @@ export async function getMessageFeishu(params: { try { const response = (await client.im.message.get({ + params: { card_msg_content_type: "user_card_content" }, path: { message_id: messageId }, })) as FeishuGetMessageResponse; @@ -477,6 +478,7 @@ export async function listFeishuThreadMessages(params: { // Results are reversed below to restore chronological order. sort_type: "ByCreateTimeDesc", page_size: Math.min(limit + 1, 50), + card_msg_content_type: "user_card_content", }, })) as { code?: number;