fix: 文档去重防止 API 30MB 限制报错 - #209
Conversation
|
Claude finished @lishuceo's task in 1m 13s —— View job PR Review: fix: 文档去重防止 API 30MB 限制报错
✅ Approved — solid fix with minor suggestionsOverall assessment: This PR correctly addresses a real production issue where duplicate PDFs in thread history could exceed the 30MB API limit. The fix is well-scoped — dedup by Issues found (2 minor):
What looks good:
|
话题内多条消息引用同一个 PDF 文件时,每条都独立下载并合并, 导致相同文档重复累积超过 Anthropic API 30MB message size 限制。 - 新增 deduplicateDocuments():按 fileName 去重 + 20MB 总量上限 - 两个历史合并点(executeClaudeTask/executeDirectTask)使用去重 - downloadHistoryFiles 按 fileKey 去重,避免重复下载 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
覆盖去重、顺序保持、大小上限、空输入等场景, 包含触发 30MB 报错的实际 bug 场景复现。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
0ac2813 to
38ff310
Compare
|
Claude finished @lishuceo's task in 1m 6s —— View job PR Review: fix: 文档去重防止 API 30MB 限制报错 (re-review)
✅ Approved — no new issues, 2 previous suggestions still openThe diff is unchanged from the previous review. The core fix is solid and correctly addresses the production 30MB limit issue. Previous issues (2, still open):
Both are minor and non-blocking — the fix works correctly as-is. |
- deduplicateDocuments: 移除 fileName ?? data.slice() fallback(fileName 是必填字段) - 导出 deduplicateDocuments 供测试直接 import,避免逻辑副本漂移 - 测试文件改为从 event-handler.ts 导入生产函数 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Claude finished @lishuceo's task in 51s —— View job PR Review: fix: 文档去重防止 API 30MB 限制报错 (re-review after sync)
✅ Approved — all previous issues fixed, no new issues2 previous issues fixed:
No new issues found. The implementation is clean:
|
* fix: 文档去重 + 大小上限,防止 API 30MB 限制报错 话题内多条消息引用同一个 PDF 文件时,每条都独立下载并合并, 导致相同文档重复累积超过 Anthropic API 30MB message size 限制。 - 新增 deduplicateDocuments():按 fileName 去重 + 20MB 总量上限 - 两个历史合并点(executeClaudeTask/executeDirectTask)使用去重 - downloadHistoryFiles 按 fileKey 去重,避免重复下载 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * test: 添加 deduplicateDocuments 单元测试 覆盖去重、顺序保持、大小上限、空输入等场景, 包含触发 30MB 报错的实际 bug 场景复现。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: address PR review — 移除死代码 fallback,测试改用生产代码 import - deduplicateDocuments: 移除 fileName ?? data.slice() fallback(fileName 是必填字段) - 导出 deduplicateDocuments 供测试直接 import,避免逻辑副本漂移 - 测试文件改为从 event-handler.ts 导入生产函数 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Summary
deduplicateDocuments()按 fileName 去重 + 20MB 总量上限,应用于executeClaudeTask和executeDirectTask两个历史合并点downloadHistoryFiles增加按 fileKey 去重,避免重复下载同一文件Test plan
🤖 Generated with Claude Code