Skip to content

Commit 39db424

Browse files
lishuceoclaude
andcommitted
fix: 引用回复路径同步使用 lazy 文件加载
第三处文本附件入口(引用回复父消息的文件)此前仍走 1MB silent-skip 的旧逻辑。现在与直接上传和历史消息路径行为一致:30MB 上限、>64KB 落盘 + 注入 Read 提示。 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent fbfe024 commit 39db424

1 file changed

Lines changed: 10 additions & 4 deletions

File tree

src/feishu/event-handler.ts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3505,14 +3505,20 @@ async function parseMessage(data: MessageEventData): Promise<ParsedMessage | nul
35053505
logger.warn({ messageId: message.message_id, sizeBytes: buf.length, fileName }, 'Quoted file too large, skipping');
35063506
}
35073507
} else if (isTextFile(fileName)) {
3508-
const MAX_TEXT_SIZE = 1 * 1024 * 1024;
3508+
const MAX_TEXT_SIZE = 30 * 1024 * 1024;
3509+
const INLINE_THRESHOLD = 64 * 1024;
35093510
const buf = await feishuClient.downloadMessageFile(parent.message_id, fileKey);
3510-
if (buf.length <= MAX_TEXT_SIZE) {
3511+
if (buf.length > MAX_TEXT_SIZE) {
3512+
logger.warn({ messageId: message.message_id, sizeBytes: buf.length, fileName }, 'Quoted text file too large, skipping');
3513+
} else if (buf.length <= INLINE_THRESHOLD) {
35113514
const fileContent = buf.toString('utf-8');
35123515
text = `${text}\n\n[引用的文件: ${fileName}]\n\n<file name="${fileName}">\n${fileContent}\n</file>`;
3513-
logger.info({ messageId: message.message_id, parentId: message.parent_id, fileName, sizeBytes: buf.length }, 'Text file downloaded from quoted parent message');
3516+
logger.info({ messageId: message.message_id, parentId: message.parent_id, fileName, sizeBytes: buf.length }, 'Quoted text file embedded inline');
35143517
} else {
3515-
logger.warn({ messageId: message.message_id, sizeBytes: buf.length, fileName }, 'Quoted text file too large, skipping');
3518+
const filePath = await saveMessageFileToCache(parent.message_id, fileKey, buf, fileName);
3519+
const sizeKB = (buf.length / 1024).toFixed(1);
3520+
text = `${text}\n\n[引用的文件: ${fileName}${sizeKB} KB),已保存到本地: ${filePath}\n请使用 Read 工具按需读取该文件,支持 offset/limit 分段;文件保留 24 小时。]`;
3521+
logger.info({ messageId: message.message_id, parentId: message.parent_id, fileName, sizeBytes: buf.length, filePath }, 'Quoted text file saved to cache for lazy read');
35163522
}
35173523
}
35183524
}

0 commit comments

Comments
 (0)