From 15e53742f52049595234b4188ef26d7bac28efb0 Mon Sep 17 00:00:00 2001 From: minecraft1024a Date: Thu, 21 Aug 2025 18:36:00 +0800 Subject: [PATCH] =?UTF-8?q?fix(chat):=20=E5=85=BC=E5=AE=B9=20target=5Fmess?= =?UTF-8?q?age=5Fid=20=E4=B8=BA=20int=20=E6=88=96=E7=BC=BA=E5=B0=91?= =?UTF-8?q?=E5=89=8D=E7=BC=80=20M=20=E7=9A=84=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在 FOCUS 模式下,对 `target_message_id` 进行处理,以确保其为字符串格式并以 "M" 为前缀。这修复了当传入的 ID 为整数或缺少前缀时可能导致消息查找失败的问题。 --- src/chat/planner_actions/planner.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/chat/planner_actions/planner.py b/src/chat/planner_actions/planner.py index 4c40593e9..573538a6f 100644 --- a/src/chat/planner_actions/planner.py +++ b/src/chat/planner_actions/planner.py @@ -189,6 +189,11 @@ class ActionPlanner: # 在FOCUS模式下,非no_reply动作需要target_message_id if mode == ChatMode.FOCUS and action != "no_reply": if target_message_id := parsed_json.get("target_message_id"): + if isinstance(target_message_id, int): + target_message_id = str(target_message_id) + + if isinstance(target_message_id, str) and not target_message_id.startswith('M'): + target_message_id = f"M{target_message_id}" # 根据target_message_id查找原始消息 target_message = self.find_message_by_id(target_message_id, message_id_list) # target_message = None