From e7fa37afc54500ea7b3c27e437ad3056dc6f073c Mon Sep 17 00:00:00 2001 From: cfdaily Date: Sun, 7 Jun 2026 23:01:29 +0800 Subject: [PATCH] auto-sync: 2026-06-07 23:01:29 --- docs/test-results/toolchain-e2e-2026-06-07.md | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/docs/test-results/toolchain-e2e-2026-06-07.md b/docs/test-results/toolchain-e2e-2026-06-07.md index d7602c6..82a408d 100644 --- a/docs/test-results/toolchain-e2e-2026-06-07.md +++ b/docs/test-results/toolchain-e2e-2026-06-07.md @@ -79,3 +79,55 @@ - **修复**: 改为 `parent.parent.parent` 指向项目根 `templates/toolchain/` - **文件**: `src/daemon/toolchain_templates.py` 第 1 行 - **状态**: ✅ 已修复并重启 daemon 生效 + +--- + +## E2E 重测结果(22:48) + +### 通过: 13/13(跳过 1) + +全部修复验证通过,Agent spawn 正常,无 agent_error。 + +### 新发现:幂等检查并发竞态(P3) + +S22.9 测试中,对同一 delivery ID 连续发送 2 次请求,产生了 3 封 Mail(应 2 封)。 +根因:FastAPI async handler 并发处理,两个请求同时通过 `_is_duplicate` 检查(TOCTOU)。 +影响:极端情况下可能创建重复 Mail,实际概率极低。 + +--- + +## 工具链事件中枢 — 待办事项清单 + +### P2(近期应做) + +| # | 事项 | 类型 | 说明 | +|---|------|------|------| +| T-01 | session lock 问题 | 设计 | gateway 在线 Agent 的 Mail 被 session_locked 阻塞(庞统被 block 6h47m)。不改 Mail/Task 原有逻辑,从 toolchain 侧独立设计(如:toolchain 通知走独立通道,不经过 Mail dispatcher) | +| T-02 | Gitea Webhook 真实 E2E | 验证 | 模拟测试全部通过,但真实 Gitea Webhook → daemon 的投递未验证(需 admin 权限排查 Webhook delivery 日志) | +| T-03 | S22.13 风险级别判定 | 验证 | GITEA_TOKEN 已配,需用真实 PR(含高风险文件改动)触发 Webhook 验证 risk_level=high | + +### P3(稳定后做) + +| # | 事项 | 类型 | 说明 | +|---|------|------|------| +| T-04 | 幂等检查并发竞态 | 代码 | `_is_duplicate` 存在 TOCTOU 竞态,加 asyncio.Lock 保护即可 | +| T-05 | 幂等持久化(内存→SQLite) | 代码 | 当前用内存 set,daemon 重启丢失。需确认 Gitea Webhook 重试窗口后决定是否升级 | +| T-06 | `_fetch_pr_files` 失败降级提示 | 代码 | 文件列表获取失败时 risk_level=standard,Mail 正文应加 `⚠️ 无法获取文件列表,风险级别可能不准确` | +| T-07 | 方案 D 代码审查 | 设计 | spawner.py 中 running lock 30min 超时已部署但未正式评审,需确认是否作为通用防御保留 | +| T-08 | 前端展示 | 设计 | 工具链事件在前端的展示方式未设计 | + +### 已完成 + +| # | 事项 | 状态 | +|---|------|------| +| T-D01 | 代码实现(routes + templates + 5 模板) | ✅ | +| T-D02 | 路由注册 | ✅ | +| T-D03 | 模板路径 bug 修复 | ✅ | +| T-D04 | handler 入口校验(畸形 payload 拦截) | ✅ 仲达 Approved | +| T-D05 | assignees fallback | ✅ 仲达 Approved | +| T-D06 | GITEA_WEBHOOK_SECRET 配置 | ✅ | +| T-D07 | GITEA_TOKEN 配置 | ✅ | +| T-D08 | E2E 测试设计 S22(13 用例) | ✅ 仲达 Approved | +| T-D09 | E2E 测试执行 13/13 通过 | ✅ | +| T-D10 | ecosystem.config.js 创建 | ✅ | +| T-D11 | 方案 C(inform skip spawn) | ❌ 已回滚,主公否决 |