Просмотр исходного кода

docs(tdd): R121轮收尾补正——修正收尾基线为eeb147273并标注研发langgraph修复为下轮复跑点

E2E Test Bot 2 дней назад
Родитель
Сommit
d68306fff0

+ 5 - 3
docs/tdd/orchestration/report-test-2026-11-10-R121.md

@@ -1,7 +1,7 @@
 # 测试负责人闭环汇报 · 第 121 轮(2026-11-10 11:38–12:15)
 
 > 执行档:**review(离线)** — 白名单内离线套件 + 已授权内网只读 E2E(`cfc.iwintrue.com` 的 `/admin` + `/frontend`)+ 节点派发(251 跑 langgraph / 189 跑浏览器 admin)
-> 仓库:`D:/cfc`;分支 `cfclub`;**测试基线 HEAD `8da3f0aa0`**(实跑基线;收尾 `git pull` 至 `4de82cb81`,新增仅 cfc-web 版本 bump + CHANGELOG,**零生产源码 / 零 SRS / 零用例变更**)
+> 仓库:`D:/cfc`;分支 `cfclub`;**测试基线 HEAD `8da3f0aa0`**(实跑基线;收尾推送 rebase 合入研发 `eeb147273 fix(langgraph)`——cfc-langgraph `.env`/`analyze.py`/`chat_graph.py`/`pyproject.toml` 源码变更,**于测试执行后到达,不影响本轮结论**;SRS/场景/用例零变更保持)
 > 执行窗口:11:38 → 12:15(前端/管理端/根级/浏览器双节点串并行错峰;后端全量无新源码 → 采信 R120)
 > 拓扑(用户本轮指令):浏览器自动化 → `cfc.iwintrue.com/admin`、`/frontend`,`192.168.16.189` 与本机各一节点(每节点单任务);langgraph 部署 `192.168.16.251`,测试分派该节点
 > 团队:自动化闭环轮,八域结论由测试负责人依据**本轮实测证据**汇总(未启用分布式成员会签),不代写任何成员未产出之结论
@@ -148,8 +148,8 @@
 
 ## 六、SRS / 场景变更闸门
 
-- 实跑基线 `8da3f0aa0` → 收尾 HEAD `4de82cb81`:新增仅 cfc-web 版本 bump + CHANGELOG;
-- `git diff --name-only 8da3f0aa0..4de82cb81 -- docs/*case* tests/test-cases*`:**为空** → SRS/场景/契约设计零变更;
+- 实跑基线 `8da3f0aa0` → 收尾 HEAD `eeb147273`:含研发 `fix(langgraph)`(cfc-langgraph 源码,测试后到达)+ cfc-web 版本 bump + CHANGELOG;
+- `git diff --name-only 8da3f0aa0..eeb147273 -- docs/*case* tests/test-cases*`:**为空** → SRS/场景/契约设计零变更(扩展收尾基线下仍成立);
 - specs 200 份、`tests/test-cases` 14 份、`tests/user-scenarios` 11 份,**零变更**。
 
 **结论:本次无 SRS/场景/接口变更 → 按规则跳过用例编写。**
@@ -224,6 +224,8 @@
 ③ **最优修改方案**:注入有效 `LLM_API_KEY`(或全 mock);给 251 `.venv` 装 `pytest-timeout` 防挂起;`analyze` 补 `thread_id`/checkpointer;`intent_classifier` 401 时应抛错。
 ④ **能否闭环**:可。判据:251 实派 44 例 0 红(或全 mock 后 0 红)。
 
+> **⚠️ P-6 交接快讯(第 121 轮收尾)**:推送时 rebase 合入研发提交 `eeb147273 fix(langgraph)`——`cfc-langgraph/.env`(LLM 网关配置)、`app/api/analyze.py`(checkpointer 缺失修复,直指 B-65 根因)、`app/graphs/chat_graph.py`(chat LLM 空响应兜底,关 B-82)、`pyproject.toml`(pytest loop scope,关 B-74 挂起面)。该提交于**测试执行后**到达,不追溯变更本轮结论,但为 P-6 的直接修复候选:**下轮必须优先实跑 langgraph 44 例全量(含 LLM 子集)验证 B-65/B-74/B-82 是否可销号**(判据:251 实派 0 红)。
+
 ---
 
 ## 十、门禁结论

+ 2 - 2
docs/tdd/test/automation-run-2026-11-10-R121.md

@@ -1,6 +1,6 @@
 # 第 121 轮执行台账(2026-11-10 11:38–12:15)
 
-- 分支:`cfclub`;测试基线 HEAD:`8da3f0aa0`(R120 实跑基线);结束后 `git pull --rebase` 至 `4de82cb81`(新增仅 cfc-web 版本 bump + CHANGELOG),**无 src 源码 / SRS / 用例变更**。
+- 分支:`cfclub`;测试基线 HEAD:`8da3f0aa0`(R120 实跑基线);结束后 `git pull --rebase` 至 `eeb147273`(研发 `fix(langgraph)`:`.env`/`analyze.py`/`chat_graph.py`/`pyproject.toml`,**测试执行后到达**)+ cfc-web bump + CHANGELOG;SRS/用例零变更。
 - 执行档:review(离线)。未装依赖、未启停服务、未改生产代码、未改测试用例。
 - 原始日志目录(本机临时,未入库):`d:/cfc/_r121/`(frontend_jest.log / web_jest.log / root_jest.log / langgraph.log / e2e_live.log / e2e_health.log / e2e_189.log)+ `d:/cfc/_r121_lg_fast.py`(251 原生 API 派发脚本)
 
@@ -22,7 +22,7 @@
 
 - 主口径全量 = 后端 2864(采信 R120)+ 前端 426 + 管理端 116 + 根级 23 + langgraph 43(剔 `test_chat`)+ 浏览器 28 = **3500 例 / 3432 过 = 98.06%**(与 R120 严格零漂移)。
 - langgraph 非 LLM 子集(31 例:health_plan/memory/report_parse/tongue/graph/recommend)本轮**实跑复验全绿**;LLM 依赖文件(analyze 2 / auto_tag 5 / intent 4 / chat 1 = 12 例)在 251 侧因 LLM 凭据 401(`Authentication Fails, Your api key: ****ocal is invalid`)+ auto_tag 网络挂起,**红例集合承袭 R120**(无源码变更,采信纪律成立)。
-- 后端全量采信纪律:R119(`8f5585198` 全量实测)→ R120 → 本轮(`8da3f0aa0`/`4de82cb81`)之间仅汇报 + 版本 bump + CHANGELOG,**零 src 变更** → 采信 R120/R119 后端结果有效。
+- 后端全量采信纪律:R119(`8f5585198` 全量实测)→ R120 → 本轮(`8da3f0aa0` 实跑基线,执行时刻**零 src 变更**)→ 采信 R120/R119 后端结果有效;收尾合入的 `eeb147273`(langgraph 源码)于测试后到达,不追溯本轮结论。
 
 ## 3. 关键命令输出摘录
 

+ 5 - 5
docs/tdd/test/notice-r121-round.md

@@ -1,6 +1,6 @@
 # 研发交接通知 · 第 121 轮(2026-11-10 12:15)
 
-> 来源:定时自动化「测试负责人闭环测试」第 121 轮。基线 `cfclub` @ `8da3f0aa0`(实跑基线),测试侧收尾 `git pull` 至 `4de82cb81`(新增仅研发汇报 1058 + cfc-web 版本 bump + CHANGELOG,**零 src 变更**)。测试侧本轮产出将提交并推送 origin/cfclub。
+> 来源:定时自动化「测试负责人闭环测试」第 121 轮。基线 `cfclub` @ `8da3f0aa0`(实跑基线),测试侧收尾 rebase 合入研发 `eeb147273 fix(langgraph)`(`.env`/`analyze.py`/`chat_graph.py`/`pyproject.toml`,**测试执行后到达**);SRS/用例零变更。本轮产出已提交推送 origin/cfclub(`730b7058a`)。
 > 详细报告:`docs/tdd/orchestration/report-test-2026-11-10-R121.md`;执行明细:`docs/tdd/test/automation-run-2026-11-10-R121.md`;台账:`docs/tdd/test/blockers.md`。
 
 ## 一、本轮结论速览
@@ -15,9 +15,9 @@
 | 编号 | 事项 | 证据 | 期望动作 |
 |---|---|---|---|
 | **B-69(第 21 轮 · P0)** | `/api/mind/**` 匿名可达 | 线上匿名 `POST /api/mind/fortune` → **HTTP 200** + `{"code":400,"message":"用户不存在"}`(O-21 裁决连续第 21 轮未落码) | 按 O-21 裁决将 `/api/mind/` 移入 `JwtInterceptor.LOGIN_REQUIRED_PATHS`;闭环:匿名全 401 + `MindFortuneControllerTest` 转绿 |
-| **B-65(第 25 轮 · P0)** | langgraph `/api/v1/analyze` 恒 500(checkpointer 缺 thread_id) | 251 实派承袭:`test_analyze.py` 2 例 500(本轮 LLM 子集未实跑,承袭 R120) | `analysis_graph.py` 去 `MemorySaver()` 或 `ainvoke` 传 `thread_id` |
-| **B-74(第 21 轮 · P1)** | langgraph `test_auto_tag.py` 5 例红 + **网络挂起** | 251 无 `pytest_timeout` 插件,`test_auto_tag_short_content` >240s 无输出拖垮全量首轮 | ① 251 `.venv` 装 `pytest-timeout` 防挂起;② 注入有效 LLM 凭据 |
-| **B-82(第 21 轮 · P1)** | langgraph `test_intent.py` 4 例红(静默降级) | 251 实派:LLM 401 后静默降级 chat | 注入有效 LLM 凭据;401 时应抛错而非降级 |
+| **B-65(第 25 轮 · P0)** | langgraph `/api/v1/analyze` 恒 500(checkpointer 缺 thread_id) | 251 实派承袭:`test_analyze.py` 2 例 500(本轮 LLM 子集未实跑,承袭 R120) | ⚠️ 研发已推送 `eeb147273`(analyze checkpointer 修复);**下轮实跑 251 全量复验**;闭环:44 例 0 红 |
+| **B-74(第 21 轮 · P1)** | langgraph `test_auto_tag.py` 5 例红 + **网络挂起** | 251 无 `pytest_timeout` 插件,`test_auto_tag_short_content` >240s 无输出拖垮全量首轮 | ⚠️ `eeb147273` 含 pytest loop scope 调整;251 `.venv` 仍需装 `pytest-timeout` 防挂起 |
+| **B-82(第 21 轮 · P1)** | langgraph `test_intent.py` 4 例红(静默降级) | 251 实派:LLM 401 后静默降级 chat | ⚠️ `eeb147273` 含 chat 空响应兜底;下轮实跑复验 401 时应抛错而非降级 |
 | **B-36(第 23 轮 · P1)** | 根级黑盒 23 例 16 红 | 本机实跑 7/23(9082 未启动 ECONNREFUSED;环境门控/凭据缺失) | `CFC_API_TOKEN` + seed 账号;或显式 skip |
 | **P-1/P-2/P-3(第 6/6/10 轮挂账)** | 后端 34 红(A16/B14/C1/契约3) | 零 src 变更采信 R119:A 类 16 例测试装置、B 类 14 例产品缺陷/契约、C 类 1 例数据截断、契约 3 例口径未决 | 见 R119 汇报 §九 P-1/P-2/P-3 方案;定向复跑 0 红 |
 
@@ -29,6 +29,6 @@
 
 ## 四、数据源/环境提示
 
-1. **251 侧**:非 LLM 子集(health_plan/memory/report_parse/tongue/graph/recommend)31/31 全绿,证明部署与测试框架健康;LLM 凭据 `****ocal` 401 为近 20 轮固定环境红,建议运维更换为有效 key 以释放 12 例信号。
+1. **251 侧**:非 LLM 子集(health_plan/memory/report_parse/tongue/graph/recommend)31/31 全绿,证明部署与测试框架健康;LLM 凭据 `****ocal` 401 为近 20 轮固定环境红。**研发 `eeb147273` 已更新 cfc-langgraph `.env` LLM 网关配置**——请运维确认 key 已更换为有效值;若已生效,12 例 LLM 红将于下轮自动释放。
 2. **本机 9082** 未启动(按规则不擅自启停服务),根级黑盒 16 红为该环境所致,非代码回归。
 3. `_r120/` 与 `docs/tdd/tools/_r120_lg_*.py` 为测试侧临时脚本/日志,不入库,无需处理。