From 8370c75c935cded19aa855f4aaae2840921fc225 Mon Sep 17 00:00:00 2001 From: argo-macbook Date: Fri, 17 Apr 2026 13:51:25 +0800 Subject: [PATCH] fix(feishu): use thread_id as reply target when reply_to is empty MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In Feishu topic groups (话题群), messages within a thread have a thread_id but the reply_to field can be empty. The original code only used reply_to for the reply API call, causing replies to fall back to creating new top-level messages instead of replying within the thread. Now falls back to thread_id when reply_to is absent, ensuring responses stay in the correct thread context. Made-with: Cursor --- gateway/platforms/feishu.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gateway/platforms/feishu.py b/gateway/platforms/feishu.py index 7de32bb68..3a9387e48 100644 --- a/gateway/platforms/feishu.py +++ b/gateway/platforms/feishu.py @@ -3417,15 +3417,17 @@ class FeishuAdapter(BasePlatformAdapter): reply_to: Optional[str], metadata: Optional[Dict[str, Any]], ) -> Any: - reply_in_thread = bool((metadata or {}).get("thread_id")) - if reply_to: + thread_id = (metadata or {}).get("thread_id") + reply_in_thread = bool(thread_id) + effective_reply_to = reply_to or (thread_id if reply_in_thread else None) + if effective_reply_to: body = self._build_reply_message_body( content=payload, msg_type=msg_type, reply_in_thread=reply_in_thread, uuid_value=str(uuid.uuid4()), ) - request = self._build_reply_message_request(reply_to, body) + request = self._build_reply_message_request(effective_reply_to, body) return await asyncio.to_thread(self._client.im.v1.message.reply, request) body = self._build_create_message_body(