kevin.yang 3 hari lalu
induk
melakukan
aa7b2212a0

+ 3 - 2
gateway/core/channels/feishu/openclaw-lark-patch/src/messaging/outbound/deliver.ts

@@ -99,9 +99,10 @@ async function sendImMessage(params: {
 
   // --- Reply path ---
   if (replyToMessageId) {
-    log.info(`replying to message ${replyToMessageId} ` + `(msg_type=${msgType}, thread=${replyInThread ?? false})`);
+    const normalizedReplyId = normalizeMessageId(replyToMessageId) ?? replyToMessageId;
+    log.info(`replying to message ${normalizedReplyId} ` + `(msg_type=${msgType}, thread=${replyInThread ?? false})`);
     const response = await client.im.message.reply({
-      path: { message_id: replyToMessageId },
+      path: { message_id: normalizedReplyId },
       data: { content, msg_type: msgType, reply_in_thread: replyInThread },
     });
 

+ 4 - 2
gateway/core/channels/feishu/openclaw-lark-patch/src/tools/oapi/im/message.ts

@@ -19,6 +19,7 @@ import type { ClawdbotConfig, OpenClawPluginApi } from 'openclaw/plugin-sdk';
 import { Type } from '@sinclair/typebox';
 import { createAccountScopedConfig } from '../../../core/accounts';
 import { LarkClient } from '../../../core/lark-client';
+import { normalizeMessageId } from '../../../core/targets';
 import {
   json,
   createToolContext,
@@ -367,8 +368,9 @@ export function registerFeishuImUserMessageTool(api: OpenClawPluginApi): boolean
             // REPLY MESSAGE
             // -----------------------------------------------------------------
             case 'reply': {
+              const replyMessageId = normalizeMessageId(p.message_id) ?? p.message_id;
               log.info(
-                `reply: message_id=${p.message_id}, msg_type=${p.msg_type}, reply_in_thread=${p.reply_in_thread ?? false}`,
+                `reply: message_id=${replyMessageId}, msg_type=${p.msg_type}, reply_in_thread=${p.reply_in_thread ?? false}`,
               );
               const accountScopedCfg = createAccountScopedConfig(cfg, client.account.accountId);
               const processedContent = preprocessPostContent(accountScopedCfg, p.msg_type, p.content);
@@ -378,7 +380,7 @@ export function registerFeishuImUserMessageTool(api: OpenClawPluginApi): boolean
                 (sdk, opts) =>
                   sdk.im.v1.message.reply(
                     {
-                      path: { message_id: p.message_id },
+                      path: { message_id: replyMessageId },
                       data: {
                         content: processedContent,
                         msg_type: p.msg_type,