Bladeren bron

test(tdd): 第136轮闭环——G10双节点恢复(189 admin实派5/5)+langgraph 43例(38过/5红全429环境)+浏览器28/28零漂移+R136汇报与台账

E2E Test Bot 1 dag geleden
bovenliggende
commit
d236569af7

+ 189 - 0
docs/tdd/orchestration/report-test-2026-11-11-R136.md

@@ -0,0 +1,189 @@
+# 测试负责人工作汇报 · 第 136 轮(2026-11-11 04:45 GMT+8,本自动化触发)
+
+> 执行档:**review(内网 cfc.iwintrue.com/admin + /frontend 浏览器自动化已授权;langgraph@251 实派;未联网装依赖、未启停服务、未改生产代码)**
+> 基线 HEAD:`8ec11e632`(R135 闭环)→ 远端 `b094e8b24`(仅 bump,R135 后**源码零变更**)→ **本轮 langgraph 于 251 侧以 `b094e8b24` 实跑**
+> 节点:`251:9000`=/health ok(在线)|`251:4096`=200(opencode 在线,本轮实派 pytest)|`189:4090`=**200(本轮恢复 admin 实派 5/5)**|`204:4090`=000(B-95 第 10 轮)|`9082`=000(B-36 第 35 轮)
+> 分工:**本机**=浏览器 fe/shop/health + Jest(web/fe/根级)|**189**=浏览器 admin(恢复实派)|**251**=langgraph pytest(实派 43 例)
+> 结论:⛔ **不通过(有条件)** — 三项历史红线未变(G2/G9/G11);**本轮结果有变化**:① **G10 恢复双节点**(189 admin 实派 5/5,R135 仅本机直跑);② langgraph 43 例红 4→**5**(全 429 环境抖动,非回归);③ 浏览器 28/28、web 116/116 零漂移。
+
+---
+
+## 1. 历史审查记录(仅作对照,不作为本轮结论依据)
+
+| 轮次 | 时间 | 后端全量 | langgraph@251 | 浏览器 | 前端 Jest | 结论 |
+|---|---|---|---|---|---|---|
+| R133 | 11-11 01:16 | 沿用 R130 | 33 绿 / 10 环境阻塞(43 例) | 28/28 | 0 红 | 不通过(有条件) |
+| R134 | 11-11 02:10 | **343 类 / 2918 例 / 17 红 = 99.28%** | 44 绿 / 7 红(环境)/ 51 例 | 28/28 | 0 红 / 472 过 / 3 跳 | 不通过(有条件) |
+| R135 | 11-11 03:45 | 采信 R134(源码零变更) | 39 过 / 4 红(全环境)/ 43 例 | 28/28(189 未派发) | 16 红(预期 RED)/ 9 跳 / 557 过 / 582 总 | 不通过(有条件) |
+| **R136(本轮)** | 11-11 04:45 | 采信 R134(源码零变更) | **38 过 / 5 红(全 429 环境)/ 43 例** | **28/28(189 admin 实派**✅**)** | 16 红(预期 RED)/ 9 跳 / 557 过 / 582 总 | **不通过(有条件)** |
+
+- 与 R135 对比的变化(逐项):
+  1. **G10 节点恢复双线条**:189 `:4090` 恢复 200,本轮实派 admin-desktop **5/5 全绿(2.1m,含滑块+真实登录)**;R135 中 189 未派发(同受本机串行纪律让位)。浏览器总口径 28/28 不变(189 admin 5 + 本机 fe 6/shop 4/health 13)。
+  2. **langgraph 红例 4→5(+1)**:43 例 38 过 / 5 红 / 126.93s;5 红 = `test_auto_tag.py` 3(content_relevance/short_content/empty_content)+ `test_intent.py` 2(classify_analysis/classify_recommend)。日志 6 次 `AgnesAI_error 429 rate limit` → **全部环境红(上游配额窗口抖动)**,`intent_classifier.py:62` 仍将 429 兜底为 chat(B-134-4 延续第 3 轮)。窗口内 `cfc-langgraph/app` 与 `tests` 零 commit。
+  3. **前端 16 红 / web 116 / 根级 16 红** 与 R135 **逐项零漂移**(B-135-1 预期 RED 延续;B-36 第 35 轮)。
+
+---
+
+## 2. 项目画像速览
+
+- **业务**:浠艾福 XAF —— 家庭教育 SaaS(家庭成员 / 五维能量 / 成长规划师 / 健康报告解析 / 商城分佣 / AI 管家 / 知识中心标签筛选 / 食材推荐)。
+- **技术栈**:`cfc-backend`(Spring Boot 2.7.18 + MyBatis-Plus + Java 8,9082)· `cfc-web`(Vue2 + ElementUI,8082)· `cfc-frontend`(uni-app H5/小程序)· `cfc-langgraph`(FastAPI + LangGraph + Chroma,9000,部署 192.168.16.251)· `dan/danshop`(独立商城 8888)。
+- **关键路径**:登录/家庭邀请 → 五维测评 → 成长任务审批 → 健康报告上传解析 → 商城下单分佣 → AI 对话 → 知识中心标签筛选(S-cfc-131)→ 食材推荐/今日食谱。
+- **测试现状**:后端 343 类 / 2918 例(采信 R134);前端 Jest 37 套件 / 582 例(16 红预期 RED);管理端 Jest 17 套件 / 116 例;浏览器 live 28 例;langgraph 43 例(本轮 251 实派);根级黑盒 23 例。
+- **质量目标**:20 类全覆盖、G1≥95%、G2≤10 红、G6 28/28、G7 0 红、G9≥80%。
+- **风险点**:后端 17 红(产品/契约待裁决:EnergySystem 6×500、DimensionRegistryMap 3、Orchestration 2、WechatLogin 2、MembershipPay/PaymentORD/TeamProfitCron 各 1);前端 16 红为**实现未交付的预期 RED**(S-cfc-30/52/53 待研发交付组件);langgraph 429 配额未解(B-134-4 延续);dx-bridge 端点 404(B-DX-1 部署滞后,本轮复核仍 404)。
+
+---
+
+## 3. 20 类测试覆盖矩阵(三态:已实测 / 未发现 / 待核实)
+
+| # | 测试类型 | 状态 | 证据 |
+|---|---|---|---|
+| 1 | 单元测试 | ✅ 已实测 | 后端 2918 例(采信 R134);web 116;fe 582(16 预期 RED + 9 跳) |
+| 2 | 组件测试 | ✅ 已实测 | Vue shallowMount 组件用例(fe 37 套件 / web 17 套件) |
+| 3 | 接口 API 测试 | ✅ 已实测 | 后端控制器 MockMvc/直调;langgraph 43 例 251 实派 |
+| 4 | 集成测试 | ✅ 已实测 | `integration.*` 实跑(根级 23;R134 GrowthRecordSync 10/10 等) |
+| 5 | 系统/端到端 E2E | ✅ 已实测 | 浏览器 live **28/28**(189 admin 实派 + 本机串行) |
+| 6 | 冒烟测试 | ✅ 已实测 | 浏览器 28 例 + Jest 698 例体现冒烟面 |
+| 7 | 回归测试 | ✅ 已实测 | 浏览器 28/28、web 116/116、根级 7/16 零漂移;前端 16 红定性非回归(预期 RED) |
+| 8 | 探索性测试 | ⚠️ 待核实 | — |
+| 9 | 验收 UAT / BDD | ⚠️ 待核实 | 无 cucumber/gherkin 执行证据 |
+| 10 | 性能测试 | ⛔ 未授权未执行 | 压测需联网授权 |
+| 11 | 可靠性测试 | ⚠️ 待核实 | B-126 观察:本轮 pytest 正常收尾 126.93s,未遇 EXIT=124 |
+| 12 | 安全测试(SAST/DAST/SCA/渗透) | ⛔ 未授权未执行 | 仅静态项 + 鉴权契约 13/13 |
+| 13 | 兼容性测试 | ⚠️ 待核实 | 仅 Chromium 单浏览器 |
+| 14 | 可用性测试 | ⚠️ 待核实 | 无真实用户可用性证据 |
+| 15 | 无障碍测试 | ⚠️ 待核实 | 无 axe/WCAG 扫描 |
+| 16 | 覆盖率度量 | ⚠️ 已实测(低) | web 语句 ≈10% / 分支 ≈6%(R130 基线);后端 JaCoCo 未接入 |
+| 17 | 变异测试 | ⛔ 未发现 | 无 PIT / mutation 资产 |
+| 18 | 契约测试 | ✅ 已实测 | health 鉴权 13/13 + shop 排序 4/4 + article 标签 10/10(R134)+ S-cfc-29~54 契约(6 例预期 RED)+ dx-bridge 2 例环境红(404 部署滞后) |
+| 19 | QA 流程 | ⚠️ 待核实 | 136 轮闭环可追溯;门禁未脚本化(G11) |
+| 20 | 覆盖率门禁/CI | ⚠️ 待核实 | 无 CI 全量 job(G11 ❌) |
+
+---
+
+## 4. 本轮实测明细
+
+### 4.1 浏览器 live(28/28,串行 workers=1)
+
+| 套件 | 节点 | 结果 | 说明 |
+|---|---|---|---|
+| admin-desktop(1440×900) | **189 实派** | ✅ **5/5** | TC-A-U01~U05 含滑块人机验证 + 真实登录入后台主框架(2.1m) |
+| frontend-mobile(H5) | 本机 | ✅ 6/6 | TC-F-U01~U06(游客浏览/五维沙盘/TabBar/鉴权引导/关键资源无失败) |
+| shop-api(商城排序契约) | 本机 | ✅ 4/4 | TC-S-U01~U04(price asc/desc/default/非法白名单拦截) |
+| health-api(健康鉴权契约) | 本机 | ✅ 13/13 | TC-HP-U01~U13 未鉴权 401 门禁全覆盖 |
+
+### 4.2 Jest 套件
+
+| 套件 | 结果 | 说明 |
+|---|---|---|
+| cfc-web(17 套件) | **116/116** | 全绿,与 R135 逐项一致 |
+| cfc-frontend(37 套件) | **557 过 / 16 红 / 9 跳 / 582 总** | 16 红 = 3 套件(signature.healthPlan / signature.consignee / growthHistory.view),全部预期 RED(组件未交付) |
+| 根级黑盒(23 例) | **7 过 / 16 红** | 全 `ECONNREFUSED 127.0.0.1:9082`(本机后端未启,B-36 第 35 轮) |
+
+### 4.3 后端
+
+- `mvn -o test-compile`:**BUILD SUCCESS(exit 0)**——编译与测试源完整性通过;
+- 全量 surefire:**采信 R134**(343 类 / 2918 例 / 17 红 = 99.28%,窗口内 `cfc-backend/src` 零 commit,pre-push 编译闸门已验)。
+
+### 4.4 langgraph@251(实派 43 例)
+
+- 命令:`pytest tests --ignore=tests/qna --ignore=tests/test_chat.py -q --tb=line`(251 侧 HEAD `b094e8b24`,git fetch + reset 后执行);
+- **38 过 / 5 红 / 126.93s**(红例:auto_tag 3 + intent 2);
+- 5 红全部定性:`AgnesAI_error 429 rate limit` ×6 → **上游配额环境红,非代码回归**(窗口内 langgraph 源码零 commit)。
+
+### 4.5 dx-bridge(B-DX-1 观察,第 2 轮)
+
+- `POST /api/health/data-sources/bridge/list` → **404**;`sync-status` → **404**(线上端点未就绪,TR-24 部署 pending 滞后,非产品缺陷)。
+
+---
+
+## 5. 覆盖缺口清单(沿历史,无新增解除)
+
+| 缺口 | 现状 | 风险 | 建议测试设计 | 优先级 | 闭环方式 |
+|---|---|---|---|---|---|
+| 前端 16 预期 RED(S-cfc-30/52/53) | 契约测试在链,组件未交付 | 功能无法验收 | 组件化验收用例已由契约覆盖 | P0 | 研发交付组件 → jest 连 2 轮 0 红 |
+| langgraph 429 配额 | 43 例 5 红全 429 | CI 抖动 | 标记 `@pytest.mark.llm` 抽离门禁套件 | P0 | 运维换 Token + 研发改 `intent_classifier.py:62` 兜底语义 |
+| 后端 17 红 | 产品/契约待裁决 | 部分功能口径未锁 | 逐类契约测试已就绪 | P1 | 研发修复或口径裁决 |
+| 根级 16 红(9082 未启) | 环境型 | 无(本机后端停机) | — | P2 | 起 9082 复跑 |
+| dx-bridge 404 | 部署滞后 | 无(新功能未上线) | 部署后复跑 2 例收敛 401/403 | P2 | 部署完成后验证 |
+| G9 锚点率 ≈10% | TC 未回链 SRS | 需求追踪弱 | 补录回链 | P2 | 用例补锚点 |
+| CI 门禁 | 无 | 回归无自动拦截 | GitLab CI 全量 job | P2 | CI 落地 |
+
+---
+
+## 6. 域结论表(八域专家分工结论)
+
+| 审查维度 | 负责专家 | 结论 | 关键证据 |
+|---|---|---|---|
+| 单元·组件级 | 苏雅 | ✅ 通过 | JUnit 2918(采信)+ web 116/116 + fe 557 过(16 预期 RED) |
+| 集成·接口级 | 柯砚 | ✅ 通过 | 根级 7/16(16 红环境)+ 契约 13/13 + shop 4/4 |
+| 系统·验收级 | 白樾 | ✅ 通过 | 浏览器 live 28/28(189 admin 实派 + 本机串行) |
+| 测试保障级 | 闻朔 | ⚠️ 观察 | 冒烟/回归零漂移;B-126 pytest 本轮正常收尾 |
+| 性能·可靠性 | 骆骋 | ⛔ 未授权 | 压测需联网授权(execute 档) |
+| 安全 | 关屿 | ⚠️ 部分 | 鉴权契约 13/13 ✅;DAST/SCA/渗透未授权 |
+| 兼容·体验 | 阮清 | ⚠️ 待核实 | 仅 Chromium 单浏览器;无 UAT/无障碍证据 |
+| 流程·度量·代码 | 何序 | ⚠️ 观察 | 136 轮闭环可追溯;G9/G11 未达标;B-134-4 包装点待修 |
+
+---
+
+## 7. 五要素问题清单(本轮新增/升级)
+
+| # | ① 问题描述 | ② 测试 bug 点 | ③ 最优修改方案 | ④ 修改目的 | ⑤ 闭环方式 |
+|---|---|---|---|---|---|
+| G-136-1 | langgraph intent/auto_tag 红 5,全 429 配额 | `tests/test_intent.py:16,23`、`tests/test_auto_tag.py` 断言面;根因 `app/agents/intent_classifier.py:62` 捕获 429 兜底 chat | 运维更换 Token;`intent_classifier.py` 对 401/429 抛外部服务异常(或返回 `unavailable`),不伪装分类错误;LLM 用例加 `@pytest.mark.llm` 抽离门禁 | 让配额故障显性化,防止「分类错误」误报与 CI 抖动 | 换 Token 后 251 复跑 43 例;`intent_classifier.py` 改动后红例应降为 0 且日志显性标注 429 |
+| G-136-2 | 189 派发通道周期可用性波动 | `_r13x_189_admin.cjs` kick/read(`Start-Process cmd.exe` + `Get-Content -Tail`) | 维持「每轮派发前探活 189:4090 + 节点单任务串行纪律」,读日志改平台分支(Get-Content)已稳定 | 保证 G10 双节点冗余可用 | 连续多轮 189 admin 实派 5/5(本轮第 1 轮恢复) |
+
+---
+
+## 8. 需用户单独授权才能继续的项(未授权未执行)
+
+| 项 | 命令/工具 | 测试设计 | 状态 |
+|---|---|---|---|
+| 依赖漏洞扫描 | `npm audit` + `mvn dependency-check` | 锁定锁文件与依赖树,输出 CVE 清单 | **未授权未执行** |
+| 性能压测 | k6 / Playwright 负载 | 定义并发/SLA,注入负载 | **未授权未执行** |
+| DAST | OWASP ZAP 内网 | 仅限 /admin、/frontend,避开生产数据 | **未授权未执行** |
+| 后端连库全量 `mvn test` + JaCoCo | `mvn test` | 申请测试库或起本地 MySQL 3306 | **未授权未执行**(环境不可达) |
+
+---
+
+## 9. 门禁结论
+
+| 门禁 | 指标 | 阈值 | 本轮 | 判定 |
+|---|---|---|---|---|
+| G1 | 主口径通过率 | ≥95% | ≈98.2%(红 54 / 3720) | ✅ |
+| G2 | 红例数 | ≤10 | 54(后端 17 + 根级 16 + 前端 16[预期 RED] + langgraph 5[429]) | ❌ |
+| G3 | cfc-web Jest | 全绿 | 116/116 | ✅ |
+| G4 | cfc-frontend Jest | 全绿 | 16 红(预期 RED)/ 9 跳 / 557 过 | ❌ |
+| G5 | 编译 + XML 完整性 | 0 错 / 无沉默 | 编译 0 错(test-compile exit 0) | ✅ |
+| G6 | 浏览器 live | 28/28 | **28/28** | ✅ |
+| G7 | langgraph | 0 红 | 38/43(5 全环境 429) | ❌ |
+| G8 | 鉴权契约 | 全 401/403 | 13/13 | ✅ |
+| G9 | SRS/TC 锚点率 | ≥80% | ≈10% | ❌ |
+| G10 | 节点分派 | 251 + 浏览器节点 | **251 ✅ + 189 admin 实派 5/5 ✅** | ✅(恢复) |
+| G11 | CI 全量门禁 | 存在 | 无 | ❌ |
+| G12 | SRS 变更→用例同步 | 合规 | 零命中 → 零新增(合规) | ✅ |
+
+**总裁决:⛔ 不通过(有条件)** —— G2/G4/G7/G9/G11 未达标;其中 G4 的 16 红为**预期 RED 契约态**、G7 的 5 红**全为 429 环境红**,均非回归;G2 中 37/54 红属环境或预期 RED。本轮改善:**G10 双节点恢复**(189 admin 实派全绿)且全部可执行套件零漂移。
+**复评条件**:① 研发交付 S-cfc-30/52/53 组件使前端 16 红转绿;② 251 换 Token 后 langgraph 43/43;③ 后端 17 红按批修复或口径裁决;④ CI 落地全量 job + TC 锚点补齐 ≥80%。
+
+---
+
+## 10. 附录 · 本轮命令
+
+```bash
+# 浏览器(189 admin;本机 fe/shop/health;必须在 tests/ 目录内,B-52)
+node _r136_189_admin.cjs kick && node _r136_189_admin.cjs read   # 189 实派 admin 5/5
+npx playwright test -c playwright.config.live.js --reporter=line  # 本机 fe 6 + shop 4
+npx playwright test -c playwright.config.health.js --reporter=line# 本机 health 13
+# Jest(web/fe/根级)
+cd cfc-web && npx jest --ci   # 116/116
+cd cfc-frontend && npx jest --ci  # 582(16 预期红)
+cd .. && npx jest -c tests/jest.config.js --ci  # 23(7 过/16 红)
+# 后端
+mvn -o test-compile  # exit 0
+# langgraph@251
+node _r136_dispatch_251.cjs kick && node _r136_dispatch_251.cjs poll  # 43 例 38 过/5 红
+# dx-bridge 复核
+curl -X POST cfc.iwintrue.com/api/health/data-sources/bridge/list  # 404
+```

+ 35 - 0
docs/tdd/test/automation-run-2026-11-11-R136.md

@@ -0,0 +1,35 @@
+# 自动化执行记录 · 测试闭环 · 第 136 轮(2026-11-11 04:20~04:50 GMT+8)
+
+## 触发与基线
+
+- 触发:定时自动化(测试负责人轮,cfc-tester)
+- 基线 HEAD:`8ec11e632`(R135)→ 远端 `b094e8b24`(仅 bump,窗口内源码零变更)
+- 节点:`251:9000` /health=ok(langgraph 在线)|`251:4096`=200(实派 pytest)|`189:4090`=**200(恢复 admin 实派)**|`204:4090`=000(B-95 第 10 轮)|`9082`=000(B-36 第 35 轮)
+- SRS/场景变更感知:`8ec11e632..b094e8b24` 对 specs/SRS/API_REFERENCE/test-cases **零命中 → 零新增用例**(G12 合规)
+
+## 执行结果
+
+| 维度 | 命令 | 结果 |
+|---|---|---|
+| 浏览器 admin(189 实派) | `_r136_189_admin.cjs` | **5/5 全绿**(2.1m,滑块+真实登录) |
+| 浏览器 fe/shop(本机) | `npx playwright test -c playwright.config.live.js` | **10/10**(fe 6 + shop 4) |
+| 浏览器 health(本机) | `npx playwright test -c playwright.config.health.js` | **13/13**(鉴权 401 契约) |
+| cfc-web Jest | `npx jest --ci` | **116/116(17 套件)** |
+| cfc-frontend Jest | `npx jest --ci` | **557 过 / 16 红(预期 RED)/ 9 跳 / 582 总** |
+| 根级黑盒 | `npx jest -c tests/jest.config.js --ci` | **7 过 / 16 红**(9082 未启,B-36 第 35 轮) |
+| 后端编译 | `mvn -o test-compile` | **exit 0**(全量采信 R134:2918 例/17 红,源码零变更) |
+| langgraph@251 | `_r136_dispatch_251.cjs` kick+poll | **38 过 / 5 红 / 126.93s**(5 红全 429 环境) |
+| dx-bridge 复核 | curl list/sync-status | **404 / 404**(B-DX-1 部署滞后,第 2 轮) |
+
+## 结论与门禁
+
+- 结论:⛔ **不通过(有条件)**——G2/G4/G7/G9/G11 未达标;其中 G4 16 红预期 RED、G7 5 红全 429 环境,均非回归;**G10 双节点恢复**(189 admin 实派)。
+- 复评条件:① 前端 S-cfc-30/52/53 组件交付转绿;② 251 换 Token 后 43/43;③ 后端 17 红按批修复;④ CI + TC 锚点。
+
+## 交付物(已 commit 推送 origin/cfclub)
+
+- `docs/tdd/orchestration/report-test-2026-11-11-R136.md`
+- `docs/tdd/test/notice-2026-11-11-R136-研发通知.md`
+- `docs/tdd/test/blockers.md`(R136 段落)
+- `docs/tdd/test/automation-run-2026-11-11-R136.md`
+- 派发脚本 `_r136_dispatch_251.cjs` / `_r136_189_admin.cjs`(本地临时资产,不入库)

+ 15 - 0
docs/tdd/test/blockers.md

@@ -497,3 +497,18 @@
 | S-cfc-30/52/53 | 契约测试已合入、实现未交付 | 研发 | **登记关联(P0)**。B-135-1 的三个契约键:组件交付后前端 jest 连 2 轮 0 红即销号。 | 研发 | 2026-11-11 03:45 | 待处理(RED) |
 
 > **口径提示(R135)**:浏览器 live 28/28 = admin 5 + fe 6 + shop 4 + health 13(全本机 workers=1);Jest 698 = web 116 + fe 582(16 红预期 RED + 9 跳);根级 23 = 7 过 / 16 红(9082 未启);langgraph 43 = 39 过 / 4 红(401+429 环境);后端 2918 采信 R134(源码零变更)。主口径 3720 = 后端 2918 + 契约 10 + web 116 + fe 582 + 根级 23 + langgraph 43 + 浏览器 28;红 53 = 后端 17 + 根级 16 + fe 16(预期 RED)+ langgraph 4;skip 13 = 后端 4 + fe 9。**G12 达标**:食材推荐 PRD 8.3 指定 `DietRecommendationServiceTest` 已由 181e830be 合入(536 行)+ 前端 viewKeyAndDelete 494 行 + pagination 291 行。
+
+### 第 136 轮(2026-11-11 04:50)新增与更新
+
+| 编号 | 问题 | 类型 | 本轮结论(R136) | 责任 | 登记时间 | 状态 |
+|---|---|---|---|---|---|---|
+| G-136-1 | langgraph intent/auto_tag 红 5(429 配额) | 研发/运维 | **延续(P0 · B-134-4 第 3 轮,红例 4→5)**。251 实派 43 例 **38 过 / 5 红 / 126.93s**:test_auto_tag.py 3(content_relevance/short_content/empty_content)+ test_intent.py 2(classify_analysis/classify_recommend,assert CHAT == ANALYSIS/RECOMMEND)。日志 6 次 AgnesAI_error 429 rate limit → **全部环境红(上游配额窗口抖动),非代码回归**(窗口内 cfc-langgraph/app 与 tests 零 commit)。包装点:app/agents/intent_classifier.py:62 捕获 429 兜底 chat,把配额故障伪装成「分类错误」。建议:① 运维换 Token / 升配额档;② intent_classifier.py 对 401/429 抛外部服务异常;③ LLM 用例加 @pytest.mark.llm 抽离门禁。 | 研发/运维 | 2026-11-11 04:50 | 待处理 |
+| G-136-2 | 189 节点通道恢复 · admin 实派 5/5 | 运维/测试 | **恢复(第 1 轮)**。189:4090=200,实派 admin-desktop **5/5 全绿(2.1m,TC-A-U01~U05 含滑块+真实登录入主框架)**。**G10 双节点恢复**(189 admin + 251 langgraph pytest 并行,单节点串行纪律保持)。 | 运维/测试 | 2026-11-11 04:50 | 闭环观察中 |
+| B-135-1-Update(第 136 轮 · 第 2 轮) | 前端 16 红(契约引用未交付组件) | 研发 | **延续(P0 预期 RED 非回归)**。cfc-frontend jest **16 红 / 9 跳 / 557 过 / 582 总**,与 R135 逐项一致:signature.healthPlan(S-cfc-52)、signature.consignee(S-cfc-53)、growthHistory.view(S-cfc-30)组件未交付。测试零修改,待研发交付即可转绿。 | 研发 | 2026-11-11 04:50 | 待处理(RED) |
+| B-DX-1-Update(第 136 轮 · 第 2 轮) | dx-bridge 契约 2 例 404 | 部署 | **延续(P1)**。curl 复核 POST /api/health/data-sources/bridge/list、sync-status → 均 **404**(TR-24 部署 pending 滞后,线上端点未就绪,非产品缺陷)。 | 部署/运维 | 2026-11-11 04:50 | 待处理(观察) |
+| B-126-Update(第 136 轮 · 第 7 轮) | langgraph pytest 收尾挂起(EXIT=124) | 研发 | **本轮未复现(观察 3/3 → 持续观察)**。43 例 **126.93s 正常写出 summary**(38 过 / 5 红),timeout 1500 未触发,无挂起线程堆栈;日志有 JavaClient._get_client coroutine never awaited 警告但进程正常退出。R130 起 5 轮中 3 轮不复现;B-134-4 修复(429→异常抛露)后再行销号评估。 | 研发(langgraph) | 2026-11-11 04:50 | 观察 |
+| B-95-Update(第 136 轮 · 第 10 轮) | 192.168.16.204:4090 失联 | 运维 | **延续(P2 第 10 轮)**。204:4090 → 000;同期 189:4090=200、251:4096=200、251:9000 /health=ok。浏览器任务由 189(admin)+ 本机(fe/shop/health)双节点承载,无第三冗余。 | 运维 | 2026-11-11 04:50 | 待处理 |
+| B-36-Update(第 136 轮 · 第 35 轮零漂移) | 根级黑盒 23 例 16 红 | 测试 | **零漂移(本轮实跑)**。npx jest -c tests/jest.config.js --ci → **7 过 / 16 红(4.95s)**,全 ECONNREFUSED 127.0.0.1:9082(本机后端未启,B-36 第 35 轮)。 | 测试 | 2026-11-11 04:50 | 待处理(环境型) |
+| B-122-Confirm(销号后第 9 轮) | 189 节点浏览器能力 | 运维/测试 | **维持销号(本轮实派)**。189 admin-desktop **5/5 全绿**,含滑块+真实登录;CWD_189="C:\code\cfc" + cmd 运行纪律保持(cd tests/ 目录防双版本冲突)。 | 运维/测试 | 2026-11-11 04:50 | 已闭环 |
+
+> **口径提示(R136)**:浏览器 live 28/28 = 189 admin 5 + 本机 fe 6/shop 4/health 13(全串行 workers=1);Jest 698 = web 116 + fe 582(16 红预期 RED + 9 跳);根级 23 = 7 过 / 16 红(9082 未启);langgraph 43 = 38 过 / 5 红(全 429 环境);后端 2918 采信 R134(源码零变更)。主口径 3720 = 后端 2918 + 契约 10 + web 116 + fe 582 + 根级 23 + langgraph 43 + 浏览器 28;红 54 = 后端 17 + 根级 16 + fe 16(预期 RED)+ langgraph 5(429);skip 13 = 后端 4 + fe 9。**变化 vs R135**:G10 双节点恢复(189 实派 admin 5/5)、langgraph 红例 4→5(429 抖动)、其余零漂移。**G12 合规**:SRS/场景变更窗口零命中 → 零新增用例。

+ 43 - 0
docs/tdd/test/notice-2026-11-11-R136-研发通知.md

@@ -0,0 +1,43 @@
+# 研发通知 · 测试负责人 · 第 136 轮(2026-11-11 04:50 GMT+8)
+
+> 送达渠道:本 notice 随报告 commit 推送至 `origin/cfclub`;测试结果有变化(G10 双节点恢复 + langgraph 红例 4→5),请研发负责人查阅。
+
+## 测试结果变化(对比 R135)
+
+| 项 | R135 | R136 | 变化 | 性质 |
+|----|------|------|------|------|
+| 浏览器 live | 28/28(189 未派发,全本机) | **28/28(189 admin 实派 5/5 + 本机 23)** | **G10 双节点恢复** | ✅ 改善 |
+| langgraph@251 | 39 过 / 4 红 / 43 例 | **38 过 / 5 红 / 43 例**(126.93s) | 红例 4→5(+1) | ⚠️ 环境红(全 429 抖动),非回归 |
+| 前端 jest(cfc-frontend) | 16 红 / 9 跳 / 557 过 / 582 总 | 16 红 / 9 跳 / 557 过 / 582 总 | 持平 | ⚠️ 预期 RED 延续 |
+| cfc-web jest | 116/116 | 116/116 | 持平 | ✅ |
+| 根级黑盒 | 7/16 | 7/16(B-36 第 35 轮) | 持平 | ⚠️ 环境(9082 未启) |
+| 后端全量 | 采信 R134(2918 例 / 17 红) | 采信 R134(源码零变更) | 持平 | — |
+
+## 请研发/运维确认(P0/P1)
+
+1. **【P0 · B-134-4 延续 · 第 3 轮】langgraph 配额 429(红例 4→5)**:251 实派 43 例红 5 = `test_auto_tag.py` 3 + `test_intent.py` 2,日志 6 次 `AgnesAI_error 429 rate limit`。**两个代码侧动作**:
+   - `app/agents/intent_classifier.py:62` 捕获 429 后 `默认 chat` → 应按外部服务异常抛出(或返回明确 `unavailable`),否则配额故障被伪装成「分类错误」;
+   - LLM 依赖用例建议加 `@pytest.mark.llm` 并从门禁套件剔除(避免 CI 因上游配额抖动红)。
+   - 另请运维侧确认 Token 配额档位(免费档 429 频发)。
+
+2. **【P0 · B-135-1 / S-cfc-30·52·53】前端 16 红 = 3 套件契约测试引用未交付组件**(第 2 轮):
+   - `signature.healthPlan.test.js` → 需交付 `pages/signature/components/health-plan-summary.vue`(S-cfc-52);
+   - `signature.consignee.test.js` → 需交付 `pages/signature/components/consignee-edit.vue`(S-cfc-53);
+   - `growthHistory.view.test.js` → 需在 `growth-main/index.vue` 增加按日期分组逻辑(S-cfc-30)。
+   - 契约测试属贵侧 TDD 正常 RED 态,**测试零修改**;组件合入后前端 jest 连 2 轮 0 红即销号。
+
+3. **【P1 · B-DX-1 · 第 2 轮】dx-bridge 端点仍 404**:`POST /api/health/data-sources/bridge/list`、`sync-status` 线上均 **404**(TR-24 `health.dataSource.bridgeWrite` 部署 pending 滞后)。部署完成后请知会测试侧复跑 2 例收敛。
+
+4. **【P1 · 后端 17 红基线】维持待裁决口径**:EnergySystem 6×500、DimensionRegistryMap 3(键名口径 P-9)、Orchestration 2、WechatLogin 2、MembershipPay/PaymentORD/TeamProfitCron 各 1、Guide 平台费截断 1。详见 R134 通知 P0-2 表。
+
+## 测试侧已推进
+
+- **G10 双节点恢复**:189 `:4090` 本轮可达,admin-desktop 实派 **5/5 全绿**(含滑块 + 真实登录入后台主框架);251 langgraph pytest 同步实派。浏览器单节点串行纪律保持(189 与 251 互不抢任务)。
+- 浏览器 28/28、web 116/116、根级零漂移;前端 16 红定性**非回归**(预期 RED)。
+- SRS/场景变更感知:R135→`b094e8b24` 对 specs/SRS/API_REFERENCE/test-cases 文档**零命中 → 本轮零新增用例**(G12 合规)。
+
+## 附:本轮证据文件
+
+- `docs/tdd/orchestration/report-test-2026-11-11-R136.md`
+- `docs/tdd/test/blockers.md`(B-136 段落)
+- `docs/tdd/test/automation-run-2026-11-11-R136.md`