From 28f4cc7debd3a66970a8f9977d841ac03e84ebbe Mon Sep 17 00:00:00 2001 From: cfdaily Date: Tue, 9 Jun 2026 08:46:58 +0800 Subject: [PATCH] auto-sync: 2026-06-09 08:46:58 --- docs/design/18-toolchain-e2e-test.md | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/docs/design/18-toolchain-e2e-test.md b/docs/design/18-toolchain-e2e-test.md index b744ecf..533e2fe 100644 --- a/docs/design/18-toolchain-e2e-test.md +++ b/docs/design/18-toolchain-e2e-test.md @@ -97,8 +97,8 @@ |------|------|------| | 1. Issue 指派 | ✅ 通过 | Mail to/模板正确 | | 2. PR Review 请求 | ✅ 通过 | Mail to/风险级别/文件列表正确 | -| 3. Review APPROVED | ✅ 通过 | 但收到 2 封重复 Mail(双 webhook) | -| 4. Review REQUEST_CHANGES | ✅ 通过 | 同上,2 封重复 | +| 3. Review APPROVED | ✅ 通过 | E2E 测试中产生 2 封 Mail(根因已查明,非平台问题) | +| 4. Review REQUEST_CHANGES | ✅ 通过 | 同上 | | 5. CI 失败评论 | ✅ 通过 | 分支提取正确 | | 6. 部署失败 Issue | ✅ 通过 | 双收件人验证通过 | | 7. 已关闭 Issue 过滤 | ✅ 通过 | 负面测试通过,无新 Mail | @@ -106,8 +106,16 @@ ## 发现的问题 -### P1:Review 事件双 Mail -- **现象**:每次 Review 事件产生 2 封完全相同的 Mail -- **原因**:Gitea 同时触发了 org webhook + repo webhook,两个 Webhook 独立投递 -- **影响**:用户收到重复通知 -- **建议修复**:幂等检查已按 event+delivery 去重,但 org 和 repo webhook 的 delivery ID 不同,所以去重不生效。需改为按事件内容去重(如 review.id) +### Review 事件双 Mail(已修复) +- **现象**:E2E 测试步骤 3/4 中 Review 事件产生 2 封 Mail +- **根因**(姜维深入调查确认):E2E 测试中庞统手动用 simayi token 提交了 Review,同时 simayi agent 收到 Review 请求 Mail 后也自主提交了 Review。是两次独立的 API 调用,**不是 Gitea bug 或平台配置问题** + - 姜维控制实验:一次 review API 调用只产生 1 个 hook_task + - Gitea 路由日志确认两次 POST 间隔 7 秒,payload 有差异(review_comments、updated_at 不同) + - 之前的错误分析("Gitea webhookNotifier + actionsNotifier 双投递")已被推翻:actionsNotifier 走 handleWorkflows() 不创建 hook_task +- **修复**:payload 内容去重作为防御性编程保留(`_is_duplicate` 新增内容去重 key = event + pr_num + sender + sha256(body_or_content)),司马懿 APPROVED +- **验证**:PR #27 实测只产生 1 封 Mail ✅ + +### 根因分析教训 +- 姜维第一次分析给出了错误根因(Gitea 双 notifier),第二次深入调查后自我纠正 +- 庞统把姜维的第一次结论当事实汇报给主公,没有标注"这是姜维的调查结论,尚未独立验证" +- **改进**:SOUL.md 新增规则——推测 vs 事实显式标注、引用他人结论时标注来源、结论被推翻时及时更正