From 8ba1387ba25ba8d05b0cee7a5749c017a82c17ab Mon Sep 17 00:00:00 2001 From: Yifeng Wang Date: Thu, 5 Feb 2026 18:52:49 +0800 Subject: [PATCH] fix(feishu): fix webhook mode silent exit and receive_id_type default - monitor.ts: throw error for webhook mode instead of silently returning, so gateway properly marks channel as failed - targets.ts: default receive_id_type to "user_id" instead of "open_id" for non-prefixed IDs, fixing message delivery for enterprise user IDs Co-Authored-By: Claude Opus 4.5 --- extensions/feishu/src/monitor.ts | 4 +++- extensions/feishu/src/targets.ts | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/extensions/feishu/src/monitor.ts b/extensions/feishu/src/monitor.ts index f3bae6258..a38a99f8e 100644 --- a/extensions/feishu/src/monitor.ts +++ b/extensions/feishu/src/monitor.ts @@ -55,7 +55,9 @@ export async function monitorFeishuProvider(opts: MonitorFeishuOpts = {}): Promi }); } - log("feishu: webhook mode not implemented in monitor, use HTTP server directly"); + throw new Error( + "feishu: webhook mode not implemented in monitor. Use websocket mode or configure an external HTTP server.", + ); } async function monitorWebSocket(params: { diff --git a/extensions/feishu/src/targets.ts b/extensions/feishu/src/targets.ts index 94f46a9e4..8c3eb56ae 100644 --- a/extensions/feishu/src/targets.ts +++ b/extensions/feishu/src/targets.ts @@ -57,7 +57,8 @@ export function resolveReceiveIdType(id: string): "chat_id" | "open_id" | "user_ if (trimmed.startsWith(OPEN_ID_PREFIX)) { return "open_id"; } - return "open_id"; + // Default to user_id for other alphanumeric IDs (e.g., enterprise user IDs) + return "user_id"; } export function looksLikeFeishuId(raw: string): boolean {