纪律:本台账条目经测试负责人
--mark-blocked(或补登记)产生,push 到远端才算送达研发; 解除时由测试用--clear-blocked置「已解除」。缺陷详情载体见test_blockers.md与各轮巡检报告。
| 编号 | 关联键/对象 | 类型 | 描述 | 经办 | 登记时间 | 状态 |
|---|---|---|---|---|---|---|
| B-1 | cfc-backend surefire 13 红 | 研发 | 后端套件产物(11-02 08:31–08:39)148 用例中 8 fail + 5 error 长期未修;1315/1491 @Test 无执行记录。需研发修复红例并补跑全量 | 测试(巡检补登记) | 2026-11-03 10:58 | 待处理 |
| B-2 | R5 · admin-auth/login | 研发 | POST /api/admin-auth/login 未授权/空 body 返回 500(应为 401/403,异常信息泄露),安全语义缺陷。详情见 test_blockers.md R5 |
测试(巡检补登记) | 2026-11-03 10:58 | 待处理 |
| B-3 | R6 · 报告上传 | 研发 | 报告上传未做 MIME/扩展名/内容校验,非 PDF 未被拒(非 4xx),恶意文件上传风险。详情见 test_blockers.md R6 | 测试(巡检补登记) | 2026-11-03 10:58 | 待处理 |
| B-4 | F1/F2 · butler envelope / commission 400 | 研发 | §7.1 七条真实 unexpected 缺陷中 F1(butler envelope)、F2(commission 400)复跑确认仍未修复 | 测试(巡检补登记) | 2026-11-03 10:58 | 待处理 |
| B-5 | 接口冒烟 REAL_ERR 分型 | 研发 | interface_classify_failures.py 分型出 49 条 REAL_ERR(基于 11-01 轮次)未派单未修复;冒烟通过率停 45%,需研发按分型认领真实错误端点 |
测试(巡检补登记) | 2026-11-03 10:58 | 待处理 |
| B-6 | health.report.createReport | 研发 | TDD 状态机 RED 停滞(自 11-02 01:06 起):契约级单测已落地并离线实跑 5 例全绿(HealthReportControllerCreateReportTest,commit 81d8883f7 已推 origin/cfclub),实现已在库;缺研发 --mark-yellow 登记,状态机无法推进至 GREEN。更新:2026-11-04 15:20 测试侧复核实跑 |
测试(巡检更新) | 2026-11-03 10:58 | 待处理 |
| B-7 | dan.assessment.getActiveMaterial | 研发 | TDD 状态机 RED 停滞(自 11-02 01:06 起):契约级单测已落地并离线实跑 3 例全绿(DanAssessmentControllerGetActiveMaterialTest,commit faf3ca174 已推 origin/cfclub),实现已在库;缺研发 --mark-yellow 登记,状态机无法推进至 GREEN。更新:2026-11-04 15:20 测试侧复核实跑 |
测试(巡检更新) | 2026-11-03 10:58 | 待处理 |
| B-8 | CfBalanceControllerTest(P0 编译回归) | 研发 | commit dfc78e9d3(2026-11-03 23:27)给 CfBalanceController.balance/logs 新增 currentMemberId 参数,但 CfBalanceControllerTest.java(76230e2f4,2026-10-25)未同步 → 7 处编译错误(行 95/113/121/140 调 balance、169/189/202 调 logs),整模块 testCompile 失败,1474 @Test 零执行。需研发补改测试 7 处调用或回退签名 |
测试(巡检补登记) | 2026-11-04 03:49 | 已解除 → 44b2f0d42(2026-11-05 00:31)重写控制器移除 currentMemberId 再次触发同源编译回归,详见 B-10(待处理) |
| B-9 | guide.trainingPlan.getPlanDetail(鉴权缺口观察) | 研发 | POST /api/guide/training-plans/detail handler 在控制器层不读取 @RequestAttribute("role"),亦未列入 JwtInterceptor LOGIN_REQUIRED_PATHS,「规划师角色约束」名义成立但任何已认证角色(乃至匿名 userId=-1)均可到达 handler,属潜在越权缺口(同文件 getPlanList 同类观察,TR-1 第 6 点要求测试侧记录)。契约测试已落地(TrainingPlanControllerGetPlanDetailTest,8 例全绿),本条仅作缺陷观察回写,不阻断 RED→YELLOW→GREEN 推进 |
测试负责人(应 TR-1 登记) | 2026-11-04 10:10 | 待处理 |
| B-10 | CfBalanceControllerTest(P0 编译回归·复发) | 研发 | commit 44b2f0d42(2026-11-05 00:31:53,「chore(sync): 工作区遗留未提交 WIP 收尾同步」)重写 CfBalanceController.balance 为 balance(@RequestAttribute("userId") Long userId)、logs 为 logs(userId, page, size),删除 currentMemberId 参数及 stats/familySummary 方法;但测试 CfBalanceControllerTest(仍停在 c9f9ec948,曾为修复上轮 P0 给测试加上 currentMemberId 实参)未同步 → 仍调 balance(7L, null) / logs(7L, null, 1, 20),实参个数不符 → testCompile 失败,1474 @Test 零执行。需研发改测试 7 处调用去掉 currentMemberId 实参(或回退 44b2f0d42 改写)。本轮(01:05)复跑复现,日志 /d/cfc/.tdd/backend-run-20261105-0105.log。升级(01:36 复跑确认):测试文件已被 44b2f0d42 迁移至 cfc-backend/src/test/java/com/etotem/cfc/unit/CfBalanceControllerTest.java,仍以旧签名调用 → 7 处编译错误(行 95/113/121/140 调 balance(7L,null)、169/189/202 调 logs(7L,null,1,20),控制器现为 balance(userId) 单参 / logs(userId,page,size) 三参)→ mvn -o -B -f cfc-backend/pom.xml -DskipTests=false -Dtest='HealthReportControllerCreateReportTest,DanAssessmentControllerGetActiveMaterialTest,TrainingPlanControllerGetPlanDetailTest' test @ testCompile BUILD FAILURE;全模块 1474 @Test + 16 契约测试(历史 8 轮全绿)全部零执行,4 个 YELLOW 键(createReport/getActiveMaterial/getTree/mapLegacyCode)复验收口亦被连带阻断。优先级 P0(阻断全模块测试验证)。建议研发:改测试 7 处调用(balance(7L) / logs(7L,1,20))或回退 44b2f0d42 |
测试(01:36 复跑确认补登记) | 2026-11-05 01:36 | 已解除(03:30 复验确认):研发负责人1 正式修复 37f29a5df(2026-11-05 02:30,移除 7 处多余 null 实参与 balance(userId)/logs(userId,page,size) 对齐)已推 origin/cfclub 且 merge-base --is-ancestor 核验通过;测试侧 03:30 在远端基线复跑:testCompile 205 源 0 错、16 契约测试(createReport 5 + getActiveMaterial 3 + getPlanDetail 8)16/16 全绿、CfBalanceControllerTest 8/8 绿(含在全量 204 类/1528 例 91.88% 基线,02:50 批次全量实跑)。复验通道恢复,2 个 YELLOW 键(getActiveMaterial/createReport)测试复验通过 |
| B-11 | /api/cf 三端点删除(待确认意图) |
研发 | 44b2f0d42(11-05 00:31,chore(sync) 工作区 WIP 收尾)删除 /api/cf/stats、/api/cf/family-summary、/api/cf/promotion-earnings 及前端 3 个封装(-210 行)。全套 1528 例零转红,即删除行为无任何用例可证伪。该提交标题为"遗留 WIP 收尾同步",具备误覆盖特征。需研发确认:有意精简 / 误覆盖 → 前者补 API_REFERENCE.md 下线记录,后者 revert 并补 3 端点用例 |
测试(36 轮巡检登记) | 2026-11-05 02:48 | 待处理 |
| B-12 | 3 类 20 个 @Test 长期 @Disabled |
研发/测试 | DataMigrationServiceTest(11,依赖 sfms 数据源)、TaskServiceMinigameTest(5,依赖硬编码 userId=1L)、TeacherLoginTest(4,依赖硬编码手机号,测试间数据污染) 均类级 @Disabled;台账 @Test 1545 与实际执行 1528 差 17 例。根因统一为测试数据夹具缺失。需建 seed 脚本/@Sql 夹具后解禁。口径精确化(37 轮):注解 1545 − 20(3 类 @Disabled 内注解)+ 3(surefire 为每个禁用类仍记 1 条 skipped 占位)= 1528,误差 0;已逐类排除「参数化展开」假设(全仓参数化类 注解数=执行数)。 |
测试(36 轮登记/37 轮精确化) | 2026-11-05 02:48 | 待处理 |
| B-13 | 3 个 @SpringBootTest 类硬编码 127.0.0.1:3306(环境红根因) | 研发/环境 | AdminFamilyOverviewControllerTest.java:21-22、service/FamilyAdminOverviewServiceTest、service/UserServiceFamilyNameLinkTest 三处 @SpringBootTest(properties={"spring.datasource.url=jdbc:mysql://127.0.0.1:3306/zxyj…"}) 硬编码本机 MySQL;本机无 MySQL → Connection refused → Failed to load ApplicationContext,8 例每轮必红(37 轮实测异常链:BeanCreationException → primaryDataSource → HikariPool$PoolInitializationException → CommunicationsException → ConnectException)。全仓 grep -rl 127.0.0.1:3306 src/test 命中恰好这 3 类。非池压力(37 轮 Too many connections 出现 0 次)。建议:改 @ActiveProfiles("test") + src/test/resources/application-test.yml 统一指向 192.168.16.251 测试库(池上限 4)。 67 轮实测修正(2026-11-07 09:30):netstat 显示本机 3306 有监听,且同批 GuideModuleIntegrationTest 报 MysqlDataTruncation(证明存在可达 MySQL),故红因非「端口不通」而是 primaryDataSource 指向实例握手失败(异常链终点 Communications link failure)。建议统一数据源指向。 |
测试(37 轮巡检登记) | 2026-11-05 05:30 | 待处理 |
| B-14 | 测试窗口内并发提交(基线漂移) | 研发/流程 | 38 轮全量跑测窗口(06:16→07:15,58:41)内 HEAD 由 345cf745e 前移至 f1b0e3ed5,落入 8660d7dbe(SC-G-06 越权拦截:JwtInterceptor+3 测试类)与 0dce400d2/f1b0e3ed5(switchRole:FamilyMembersController/FamilyMemberService+FamilyUserSwitchRoleTest);4 个测试文件 mtime 07:14:57–07:15:12 晚于 testCompile(Compiling 205 source files)→ 聚合首扫即 源类 208 / 报告 204 / 沉默 4。若不补跑将把 41 例新增用例漏记、并把新特性回归风险误报为「零变更」。已处置:定向补跑 5 类 46/46 绿(testCompile 209 源 0 错)。遗留:其余 199 类未在 f1b0e3ed5 上重验。建议跑测改 git worktree 固定 SHA 或 CI checkout SHA,报告头部固化 rev-parse HEAD |
测试(38 轮登记) | 2026-11-05 07:25 | 部分处置(补跑已完成,全量复验待下轮) |
| B-15 | 度量脚本丢失且从未入库 | 测试/度量 | discover_tests.py / test_inventory.py 全仓 find 无命中,git log --all 为空 → 从未提交,属本地未跟踪脚本已被清理;历史台账「覆盖 365 / 跨源用例 2731 / @Test 1545」不可复现,跨轮对比失去基准。38 轮改用内联统计(357 控制器 / 1933 @PostMapping / 8 @GetMapping / 204 测试文件 / 1546 @Test)。建议脚本纳入 docs/tdd/tools/ 并提交,报告注明脚本版本 |
测试(38 轮登记) | 2026-11-05 07:25 | 部分解除(62 轮):docs/tdd/tools/test_report_metrics.py 已落地(聚合/归因/场景/恒等式四类度量,复算一致),但仍无法入库——根因即 .gitignore:70 *.py(见 B-33);discover_tests.py / test_inventory.py 亦未恢复,「覆盖 365 / 跨源用例 2731」依旧不可复现 |
| B-16 | 根级 integration 套件缺凭据夹具(12 例恒红) | 测试 | 9082 已在线后套件不再 fetch failed,暴露真实根因:tests/integration/plan-chain.spec.js:21-22 依赖 ADMIN_PHONE/ADMIN_PASSWORD(当前为空)→ [0] 前置环境检查 收到空串、[1] 登录 返回 code=500 msg=用户不存在;mini-games-api.spec.js 10 例 Expected 200 / Received 401(无 token)。判为测试侧配置缺口,非生产缺陷。建议新增 tests/.env.test + seed 脚本,globalSetup 内自动登录取 token,CI 注入 API_BASE_URL=http://127.0.0.1:9082 |
测试(38 轮登记) | 2026-11-05 07:25 | 待处理 |
| B-17 | .tdd/state.json 与 08:12 轮报告脱节(新增 2 RED 键未落账) |
研发/流程 | 08:12 轮报告(automation-run-2026-11-05-0812.md)与提交 69f8820d8 说明称新建 task.parent.createTask / task.parent.review 两个 RED 键并落契约测试(39 轮独立实测 7 绿 + 17+15=32 绿,与报告吻合);但本地 .tdd/state.json 仍只有 3 键(health.report.createReport / dan.assessment.getActiveMaterial / guide.trainingPlan.getPlanDetail),updated_at 仍为 2026-11-04 10:14。报告说的 ≠ 状态机记的,看板无法反映真实进展。需走 CLI 补登记(--add-task + --mark-red --commit <sha>),禁止手改 state.json |
测试(39 轮巡检登记) | 2026-11-05 09:40 | 待处理 |
| B-18 | A 类测试漂移 54 例集中爆发(Mockito 误用 + 断言基线过期) | 研发/测试 | 39 轮全量实测非环境红 112 例/34 类,其中 A 类 54 例/17 类可纯测试侧修复:doNothing() 用于非 void 方法(ArticleControllerTest/PlannerBindInviteFlowTest/DailyCheckinStreakFlowTest)、matcher 混用(ProductControllerTest 3E InvalidUseOfMatchers、ProductOrderServiceFulfillmentMultiModeTest 6E)、桩名过期(ProductOrderControllerTest 6E 打 confirm/实现 confirmReceive)、反射注入已删字段(TaskProgressUpdateTest 3E NoSuchFieldException: platformPointsService)、断言基线漂移(WishControllerTest 文案 childId→memberId;StatsControllerTest/MindFortuneControllerTest 500 vs 5001;HealthDimensionControllerTest 期望 500 实得 200)。批量修完 54 例后 G1 由 92.41% → ≈95.7%,G2 由 112 → 58,是当前性价比最高的一步。精确化(22:13 轮实测,维度合并后首验 28 例 26 绿/2 红):HealthDimensionControllerTest.overview_missingMemberId:58 / history_missingMemberId:217 期望 result.getCode()==500 实得 200——根因=用例调用 controller.overview(params, 1L, 1L) / history(params, 1L, 1L) 误传 currentMemberId=1L,实现 ParamUtils.getLong(params.get("memberId"), currentMemberId) 触发双角色「家长视角 currentMemberId 兜底」(设计行为)→ memberId=1L 非空走正常路径 200。测试装置口径错误,非生产缺陷;修复:第 3 参传 null(或断言兜底 200) |
测试(39 轮登记,22:13 轮精确化) | 2026-11-05 09:40 — 20:20 轮全量更新:A 类仍为最大单一块,实测 51 例 / 15 类(ArticleControllerTest 9、CfCommissionServiceSettleTest 8、ProductOrderControllerTest 6、ProductOrderServiceFulfillmentMultiModeTest 6、AuthControllerTest 4、ProductControllerTest 3、ProductOrderServiceUpdateExpressFieldTest 3、ArticleWorkflowTest 3、GuideTeamControllerTest 2、WishControllerTest 2,其余 5 类各 1);修完预测 G1 = (1727+51)/1847 = 96.26%,红例 116→65,红类 36→21,为当前最优杠杆 |
待处理 |
| B-19 | cfc-langgraph pytest 长期「未实测」结论已过期,首次实测 19 红 |
测试/研发 | 41 轮(11-05 15:19)探活发现 cfc-langgraph/.venv/Scripts/python.exe = Python 3.12.7,pytest 9.2.0 / fastapi / httpx / langgraph 全部可 import → 此前 #28–#40 多轮报告的「无 .venv / 缺 httpx → pytest 47 例未实测」结论过期(度量失真,同 N-1 类)。首次实跑 pytest tests --ignore=tests/qna:43 例 24 绿 / 19 红(55.81%)。19 红分层:C 环境 14 例(401 Authentication Fails, Your api key: ****ocal is invalid → analyze 2 + auto_tag 5 + chat 1 + intent 4;另 report_parse 2 例因用例写死容器路径 /app/cfc/docs/参考资料/*.pdf 在本机 400);A 测试漂移 5 例(test_graph 2:GenerateRequest.respondent_name Field required 而用例仍发 member_name;test_memory 3:MemoryManager.__init__() missing 'embeddings')。另 tests/qna/test_graph.py 收集期 ModuleNotFoundError: No module named 'src.qna' → 整模块 0 例可执行(死资产)。建议:①注入测试 LLM 凭据或对 LLM client 全 mock;②test_report_parse 路径改相对仓库路径;③删/重写 tests/qna/test_graph.py;④pytest 纳入 CI |
测试(41 轮巡检登记) | 2026-11-05 16:20 | 待处理 |
| B-20 | Playwright 规模扩张至 96 spec 而长期未实测 | 测试/环境 | #40 记录 69 spec / 402 test(),#41 复核为 96 个 spec 文件(+27),但唯一一次实测是 11-05 12:14 execute 档(用户显式授权联网)的 API 级 83 例(66 绿 / 6 红 / 3 跳过 / 8 串行阻塞,91.67%);UI 级因 cfc.iwintrue.com 无前端页面(/ 404)不可跑。此后各轮均记「未授权联网 → 未实测」。风险:spec 持续增长而信号为零,用例腐化不可见(如 12:14 已发现 2 条路径/断言过期)。建议:①本地 9082 在听时改用 playwright.config.api.js(无 globalSetup,不 reset 共享库)纳入每轮;②默认配置的 globalSetup 会 reset-db.sh 重置共享测试库,禁止在共享环境直接跑;③UI 级待补独立前置环境 |
测试(41 轮登记) | 2026-11-05 16:20 | 待处理 |
| B-21 | SC-P-11 契约回归(YELLOW 键首次转红) | 研发/测试 | 42 轮全量实测:TaskControllerReviewTest 由连续 7 轮 17/17 全绿降为 15/17(pendingReview_parent_success_returnsList:176 与 pendingReview_directCall_uniformResultShape:316 均 NPE)。根因=SC-X-22 合入 f14e46f84 在 TaskController.java:197/205 新增 rewardRuleService.attachTaskListEstimate(...),而该测试用 new TaskController() + 手工注入(:80-84)未补 RewardRuleService → 字段 null。性质:A 类(测试夹具未跟进生产新增依赖),生产侧 resolveMemberIdByUser:157/attachTaskListEstimate:193 均有 null 守卫,非生产缺陷。影响:SC-P-11 契约 32 → 30 绿、G8 由「3 红」扩为「5 红」;证明「契约绿无回归网」——无 CI 时绿是瞬时绿。建议:该类补 @Mock RewardRuleService 并注入,同批 grep -l "new TaskController()" src/test 全量排查 |
测试(42 轮实测登记) | 2026-11-05 18:26 | 已解除(52 轮测试侧自修,2026-11-06 04:5x):测试侧在 TaskControllerReviewTest.java 补 @Mock RewardRuleService + ReflectionTestUtils.setField(controller, "rewardRuleService", ...)(+6 行)后,定向复跑 17/17 全绿(BUILD SUCCESS),并对完整 9 类 79 例契约套件复跑:74 绿 / 3 红(P-2 MapContract 口径·与既往一致)/ 0 错——B-21 的 2 个 NPE 错误清零,G8 契约红由 5 降至 3。同批 new TaskController() 手工注入排查仍建议执行(B-22 关联) |
| B-22 | CF 预估挂载的 N+1 读与鉴权清单无守护 | 研发/测试 | ①N+1:attachTaskListEstimate(RewardRuleService:193)对列表逐条调 estimate(),已挂 6 处(TaskController:109/197/205/358、GuideFamilyTaskController:271/295),命中 /api/tasks/today、/pending-review、/today-parent、规划师任务历史与待审等高频接口;attachTaskEstimate:186 用 catch (Exception) log.warn 静默吞异常,降级不可见。既有 RewardRuleServiceEstimateTest 仅测单条计算,无「N 条任务 → 查询次数」与「降级仍 200」断言。②鉴权清单:/api/reward/estimate 已正确加入 JwtInterceptor.LOGIN_REQUIRED_PATHS:124-127,但 11 例契约测试为 standalone MockMvc,不经拦截器 → 该清单条目零断言覆盖(历史上 SEC-20261031-01 / SC-G-06 均因鉴权清单漂移返工)。建议:补批量查询次数断言 + 降级断言;补对 LOGIN_REQUIRED_PATHS 全条目的「无 token → 401」参数化契约用例 |
测试(42 轮巡检登记) | 2026-11-05 18:26 — 20:20 轮收口(测试侧自处置):JwtInterceptorLoginRequiredPathTest 全量实跑 28/28 全绿,已将 LOGIN_REQUIRED_PATHS 全条目以 @ParameterizedTest + @MethodSource 展开为 27 条「无 token → 401」契约(+1 主用例),历史「鉴权清单零断言守护」缺口闭环;N+1 批量查询断言部分仍未补,保留观察 |
已解除(清单守护部分) |
| B-23 | SC-X-22 契约测试 15 例未入库 | 测试/流程 | RewardEstimateControllerEstimateTest(11) 与 RewardRuleServiceEstimateTest(4) 参与 43 轮全量执行且 15/15 全绿,但 git ls-files 对 cfc-backend/src/test/java/com/etotem/cfc/controller/reward/、.../service/RewardRuleServiceEstimateTest.java 零命中(git status 为 ??,mtime 17:34/17:42)→ 只存在于主工作区。任何 git clean -fd / 工作区重置都会静默丢失(同类事故已发生:B-15 度量脚本丢失)。且违反「完成 = 已提交 + 工作目录干净」铁律,与 O-3 同源(主工作区本轮仍有 126 项未提交/未跟踪)。建议:git add 两路径 → commit + push origin/cfclub → --clean-check 复核;测试/契约文件入库纳入 DoD |
测试(43 轮实测登记) | 2026-11-05 21:02 | 待处理 |
| B-24 | 跑测时延劣化 +18%,结果零漂移(环境时延) | 测试/环境 | 同码复跑对账:XML 单类耗时总和 1649.3s → 1952.2s(+18.4%),Maven 31:36 → 36:49;用例/F/E/S 完全一致(218 类 1664 例 71F 51E 4S)。增量集中 @SpringBootTest 类:GuideOrder +200s、AIChat +120s、Wish +62s、AdminSpecialPrice +53s;期间 Exception during pool initialization 8 次(3 类硬编码 127.0.0.1:3306,B-13 未修),Too many connections 0 次 → 判为外部依赖时延,非代码劣化。风险:长窗口放大 B-14(窗口内并发提交),CI 时长不可估。建议:容器化固定测试库/Redis + 报告中固化「总耗时 / 单类 Top5」基线(±5% 带) |
测试(43 轮实测登记) | 2026-11-05 21:02 | 待处理 |
| B-25 | 新测试类反射注入已删字段(A 类同源反模式) | 测试 | 02:43 轮全量实测:KnowledgeBaseBackfillTest 9 例 2 错,NoSuchFieldException: productDimensionConfigMapper(KnowledgeBaseBackfillTest.java:220)——该字段已在统一维度合并中移除,测试仍用反射注入。与 TaskProgressUpdateTest 3 例(platformPointsService 反射字段同样已删)同源,合计 5 例。性质:A 类(测试装置未跟进生产重构),非生产缺陷。建议:改用服务当前持有的 Mapper 字段或 @InjectMocks,同批 grep -rn 'getDeclaredField' src/test 全量排查 |
测试(02:43 轮登记) | 2026-11-06 03:40 | 待处理 |
| B-26 | cfc-backend 主工作区 testCompile 阻断(11 个 integration 测试文件 WIP) | 研发 | 主工作区 mvn testCompile 失败:ArticleControllerTest.java:201/215/226 三处编译错误(recordRead 找不到符号,位置 OngoingStubbing<ArticleService>)。根因(20:20 轮细化):WIP 采用 when(articleService).recordRead(eq(1L), isNull(), isNull(), eq(30)).thenReturn(new HashMap<>())——when(T mock) 返回 OngoingStubbing<T>,其无 recordRead 方法,属 Mockito API 误用;主代码 ArticleService.recordRead(Long,Long,Long,int) 返回 Map<String,Object>(ArticleService.java:409),故正确写法为 when(articleService.recordRead(...)).thenReturn(...)(方法调用置于 when(...) 内)。同时已提交基线本身亦为 A 类装置缺陷:3 例用 doNothing().when(...).recordRead(...) 对非 void 方法 stubbing → Only void methods can doNothing()。测试侧已用独立 worktree 干净基线(origin/cfclub e4ce9f80a)旁路完成全量 231 类 1847 例 93.50%,证明非主线回归。登记留痕丢失:本条 19:10 首登后未入库,19:37 工作区文件被回滚覆盖(与 B-15/B-23 同类资产丢失),20:20 轮据实测重建。建议:① 按上述正确写法修 3 处并同批复核 getPublicList/getFeatured 8 处实参个数;② testCompile 复验 0 错后提交推送 |
测试(59/60 轮实测登记) | 2026-11-06 19:10(20:20 细化重建) | 待处理 |
| B-27 | @Test 恒等式失效(引入 @ParameterizedTest 后口径未修订) |
测试 | 20:20 轮全量实测 @Test 1838 − 20(3 类类级 @Disabled)+ 3(surefire 占位)= 1821,但 surefire 实际执行 1847 例,差 26。根因:cfc-backend/src/test/java/com/etotem/cfc/config/JwtInterceptorLoginRequiredPathTest.java:62 引入 @ParameterizedTest + @MethodSource,该类单注解展开 27 例(surefire tests=28 = 1 @Test + 27 展开)。修订后恒等式:@Test − 类级@Disabled + 占位 + Σ(参数化展开数−1) = 执行数(本轮 1838−20+3+26=1847,误差 0)。风险:口径不修正会把新增用例漏记/错记(B-15/B-26 同源度量漂移)。建议把计数脚本 count_identity.py 纳入 docs/tdd/tools/ 并入库 |
测试(20:20 轮登记) | 2026-11-06 20:20 | 待处理 |
| B-28 | 测试交付物跨分支丢失(第 59 轮报告 + B-26/O-5 在 cfclub 不可见) | 研发/流程 | 19:41 仓库分支由 feature/report-upload-product-cards 切至 cfclub(HEAD df7f60af5,merge da2727f53+e205656ee);git merge-base --is-ancestor 963bedae7 HEAD = NO → 19:12 提交的第 59 轮报告(docs/tdd/test/automation-run-2026-11-06-1910.md)与 B-26/O-5 台账条目在 cfclub 分支不存在(文件在磁盘上被 checkout 覆盖清除)。内容未真丢(仍在 origin/feature/report-upload-product-cards 祖先链上,merge-base --is-ancestor 963bedae7 origin/feature/... = YES),但主线不可见 → 台账审计断链。与 B-14(窗口内并发提交)/ B-15(脚本丢失)/ B-23(测试文件未入库)同族:测试交付物没有随主线合并机制。建议:① 主理人裁决 git cherry-pick 963bedae7 或合并 feature 分支;② 测试报告/台账提交统一落在 cfclub(主线)分支,避免分支切换即丢失;③ 跑测前记录 git rev-parse --abbrev-ref HEAD 与 HEAD sha,报告中固化 |
测试(20:20 轮实测登记) | 2026-11-06 20:20 | 待处理 |
| B-29 | WIP 测试校准批次被 3 行 Mockito 误用阻断(P0) | 研发/测试 | 主工作区 39 项 WIP(11 后端测试 + 8 pytest + 2 前端 spec)已具备大幅转绿能力:隔离副本带入 WIP 并仅修 3 行后,11 个被改后端类 170 例 48 红 → 6 红(−42),其中 Article/GuideOrder/ProductOrder/Product/GuideTeam/Payment/Family/Auth 8 类清零;pytest 24 绿 → 49 绿(执行口径 96.1%);前端 296 → 313 全绿。合计预测 (2148+67)/2299 = 96.37%,后端 95.78%(越 G1)。唯一阻断:ArticleControllerTest.java:201/215/226 三处 when(articleService).recordRead(...) 应为 when(articleService.recordRead(...))(when(mock) 返回 OngoingStubbing,无 recordRead;ArticleService.recordRead 返回 Map,见 :409)→ 修此 3 行即可编译入库。剩余 6 红:GuideFamilyTask 3(overview/reviewTask/batchReview)+ GuideRolePermission 2(reviewTask/batchReview NPE、计数 0)+ Stats 1(文案「请先创建或加入家庭」)。建议:修 3 行 → mvn test-compile 0 错 → git add 21 个测试文件 + 台账 → push → --clean-check 复核 |
测试(62 轮实测登记) | 2026-11-06 23:10 | 已解除(65 轮实测转正,2026-11-07 02:15):在隔离树 D:\_wt_r0032@78976243e 代入 21 个 WIP 测试资产 + 上述 3 行修正后,testCompile 232 源 0 错,全量 mvn -o -B clean test 跑出 1847 例 / 1769 绿 / 45F / 29E / 4S = 95.78%(红例 116→74,−42),与 62 轮预测值逐位一致(95.78% / 74 红例 / 前端 313 / pytest 49 绿)。修正后写法:when(articleService.recordRead(eq(1L), isNull(), isNull(), eq(30))).thenReturn(new HashMap<>())(:201/:215/:226)。遗留未闭环部分转入 B-36/G12:21 个测试资产仍为工作区 WIP,未提交入库(测试角色不代提交研发 WIP,待 O-5 裁决) |
| B-30 | 场景/用例台账与自动化资产零编号锚点(覆盖不可量化) | 测试/需求 | 实测 215 个用户场景(11 文件)、784 条 TC(异常流 474 = 60.5%),但 TC 编号在 348 个测试资产中出现 0 次(0/784);场景被 Playwright spec 字面引用仅 6 个(2.8%),被用例台账映射 155 个(72.1%)。后果:无法回答「哪些 SRS 场景没有自动化」,历史各轮只能以「用例数/通过率」代替「需求覆盖率」。根因:tests/test-cases/*.md 的 对应 e2e 列与真实文件名脱节(如 e2e/roles/parent/../tasks 非合法路径),资产侧亦无 @TC-* 锚点约定。建议:① 约定每个自动化用例首行注明 TC 编号;② 写反向核对脚本生成「场景→TC→资产」三列缺口清单;③ 按角色分 4 批补锚点,优先 -N 负向 TC(异常流) |
测试(62 轮登记) | 2026-11-06 23:10 | 待处理 |
| B-31 | application.yml 7 处明文凭据(安全) |
研发 | cfc-backend/src/main/resources/application.yml 存在 7 处 password/secret/api-key/appsecret 明文赋值(本台账不复制取值),覆盖数据源口令、微信 appsecret 与第三方 key。任何具备仓库读权限者可直取测试/生产凭据;且历史提交已留在 git 历史中。建议:改 ${ENV} 占位 + 本地 .env(gitignore)+ 配置中心/Secret 管理;同时轮换已泄露凭据;CI 加明文凭据扫描(gitleaks 规则集) |
测试(62 轮静态扫描登记) | 2026-11-06 23:10 | 待处理 |
| B-32 | 场景/用例度量口径跨轮漂移(度量不可比) | 测试 | 本轮实测:场景 215、TC 784(异常流 474);上一轮报告记「场景 244、TC 492(异常流 237)」。差异非增长(90 分钟内不可能新增 292 条 TC),而是解析口径不同(是否计入 ### 场景(08/09 butler 17 条)、是否计入 TC-*-N* 负向编号、类型列是否含「权限」判异常)。与 B-15/B-27 同族:度量脚本未入库、口径未固化 → 跨轮数字不可相减。建议:把 _r2135_scene.py 等脚本收进 docs/tdd/tools/ 并入库,报告固定写「口径定义 + 脚本版本」,禁止手算 |
测试(62 轮登记) | 2026-11-06 23:10 | 部分解除(62 轮自处置):度量脚本已落地 docs/tdd/tools/test_report_metrics.py(聚合 + 逐例归因 + 场景覆盖 + 恒等式,纯只读、带 CLI 参数),本轮数字用该脚本复算完全一致(231 类/1847 例/1727 绿/93.50%/36 红类/116 红例;场景 215、TC 784、异常流 474、TC 锚点 0/784;恒等式 1838−20+3=1821,参数化净增 26 → 1847)。但脚本无法入库:被 .gitignore:70 *.py 全局忽略 → 见 B-33,需放行规则后才算真闭环 |
| B-33 | .gitignore:70 *.py 全局忽略 Python 文件 —— 度量脚本「写了就丢」的真正根因 |
研发/流程 | 62 轮把度量工具落到 docs/tdd/tools/test_report_metrics.py 后 git add 被拒:git check-ignore -v → .gitignore:70:*.py。这解释了 B-15(discover_tests.py/test_inventory.py 全仓丢失、历史度量不可复现)与 B-32(口径跨轮漂移)为何反复发生:任何 Python 度量/校验脚本在本仓库都不可能入库,只存在于某个工作区,分支切换或清理即消失。影响面:度量脚本、数据 seed 脚本、报告解析脚本(docs/scripts/fingerprint_engine.py 等)同受此规则约束(后者是否被例外放行需核实)。建议:把规则细化为 /*.py(仅忽略仓库根临时脚本)或追加例外 !docs/tdd/tools/*.py、!docs/scripts/**/*.py,再由研发提交一次;测试侧脚本需随之入库。注意:.gitignore 属研发所有,测试角色不代改 |
测试(62 轮实测登记) | 2026-11-06 23:10 | 待处理 |
| B-34 | LangGraph 问卷生成 100% 失败降级(GenerateRequest 缺 prompt_template) |
研发 | P0 生产缺陷。c3925c97e feat(langgraph): 全部提示词迁移到Java后端可配置 只给 cfc-langgraph/src/schemas/tongue.py:14 的 TongueRequest 加了 prompt_template,未给 src/schemas/questionnaire.py:39 GenerateRequest 加;而 src/graphs/questionnaire.py:39 build_prompt 直接读 req.prompt_template → 每次调用必抛 AttributeError。链路:Java AiGateway:321 恒发送 prompt_template → pydantic 静默丢弃额外字段 → 图节点必抛 → 接口 500 → AiGateway catch 后返回 null → 调用方静默降级模板。即 /api/family/questionnaire 的 AI 生成能力 100% 不可用。c3925c97e 已在 origin/cfclub 祖先链 → 现网同样受影响。65 轮 pytest 实测 2 例必红即此因。修复:GenerateRequest 增 prompt_template: Optional[str] = Field(default=None, ...)(与 TongueRequest:14 对齐);build_prompt 可加 getattr 防御。闭环:pytest tests/test_graph.py 2 例转绿 + /api/v1/questionnaire/generate 返回 200 且 questionnaire_json 非空 + AiGateway 不再打「调用失败」warn |
测试(65 轮实测登记) | 2026-11-07 02:15 | ⚠️ 重新打开(2026-11-07 13:25 线上实测):67 轮的「已解除」只对仓库代码成立,对部署实例不成立。本轮直连部署态 LangGraph 实测:POST https://ai.etotem.com.cn/api/v1/questionnaire/generate → HTTP 500 {"error":"graph 执行失败: 'GenerateRequest' object has no attribute 'prompt_template'"};线上 /openapi.json(cfc-langgraph v0.3.0)的 GenerateRequest 仍只有 member_name/respondent_name/relationship_type/member_profile/respondent_profile/family_context,无 prompt_template → 部署包为修复前版本。B-43 为其发布侧跟踪条目 |
| B-35 | DAN 报告解析 A1/A2/B4 仍失效(修复提交未覆盖该版式) | 研发 | DanReportParseServiceTest 65 轮全量实测 4 例红:testParseA2_standardCoreLiteracyFormat:262(姓名 expected 俊辰 but null)、testParseB4_regression:280(仍走降级 expected false but true)、testParseA1_shouldFallbackToGenericPattern、testParseA1_shouldExtractCognitiveDimensionFromDetailPage(expected not null)。而 c611ec55d fix(dan): 修复 A1/B4 认知维度解析失效 声称已修 → 修复未覆盖这两种版式(testParseA2_regression 同批绿、standardCoreLiteracy 版式红,说明是版式分支漏配)。健康报告解析为核心链路(AGENTS.md「健康报告 PDF 上传与解析」)。建议按真实样本补版式分支 + 回归样本入库。闭环:4 例转绿 + 用 3 份真实报告样本走 /api/health/report/parse 人工比对字段 |
测试(65 轮实测登记) | 2026-11-07 02:15 | 已解除(67 轮实测复验,2026-11-07 09:30):DanReportParseServiceTest 全量 38/38 GREEN,此前 A1/A2/B4 4 红清零 → 版式分支补配生效;真实样本人工比对待下轮(TR-11 跟踪) |
| B-36 | 根级黑盒 API 套件由「12 恒红」转为「默认 skip」,接口层覆盖归零 | 测试/环境 | WIP 将 tests/integration/mini-games-api.spec.js:6-11、plan-chain.spec.js:21-22 改为 CFC_API_E2E==='1' && CFC_API_TOKEN 门控(原写死 Bearer test-token 打真服务 → 恒 401/500)。方向正确(消除 12 个伪红),但 65 轮实测 23 例全部 skip、0 执行(Tests: 23 skipped)→ 接口层验收从「假红」变「真空」,且 plan-chain 仍依赖空的 ADMIN_PHONE/ADMIN_PASSWORD。建议:新增 tests/.env.test + seed 账号,globalSetup 自动登录取 token 写入 process.env.CFC_API_TOKEN,CI 注入 API_BASE_URL=http://127.0.0.1:9082。闭环:本地 9082 在听时 CFC_API_E2E=1 npm test 23 例实跑且红例有归因;CI 出绿灯记录 |
测试(65 轮实测登记) | 2026-11-07 02:15 | 待处理 |
| B-37 | sleep.config.tags blank-key 实现缺口(契约测试 1 红,阻断该键转 GREEN) | 研发 | 复验轮(TR-6 派发 10 键复验)SleepConfigTagsMechanismContractTest 9/10 绿 + 1 红:publicValue_blankKey_returnsError:99 期望 blank key(" ")→ 500 但实得 200。实现 PublicConfigController.getValue(L21-28)只查 `key==null |
isEmpty(),未 reject 全空白串 → blank key 被当作正常查询放行。测试由f11062b42(提交信息注明「21绿/1红 blank-key 缺陷」)引入,属**已知实现缺口、非测试误报**。HealthSleepControllerContractTest12/12 绿不受影响。该键--mark-green已**暂缓**、状态机保持 YELLOW。修复:getValue校验改为key==null |
||
| B-38 | 本轮 26 红类/69 红例归因(含 GUIDE integration 真实候选) | 研发/测试 | 67 轮全量实测 2219 例 96.71%:26 红类 40F+29E=69 例,归因分层:① B-13 环境红 3 类 8 例(primaryDataSource→Hikari→Communications link failure);② A 类断言/装置漂移 ~15 类 47 例(B-18 同族:doNothing/matcher 误用、NPE、桩缺失、文案断言过期——ArticleWorkflow「仅已驳回」vs「仅已驳回或已撤回」、StatsController「未关联家庭」vs「请先创建或加入家庭」、WishController childId→memberId、MindFortune 401 vs 400);③ 契约断言与实现不一致 6 类 13 例(DimensionRegistryMapContractTest 3F、EnergySystemFlowTest 6F expected 200 but 500、MembershipPaySwitch/PaymentServiceORDRouting/OrchestrationEngine/OrchestrationIntegration 各 1F);④ 真实问题候选 1 类 1 例:GuideModuleIntegrationTest.testGuidePackageCreationFlow → MysqlDataTruncation: Out of range value for column 'platform_fee'(schema 与代码不一致,需研发核验迁移脚本)。建议:① 修 B-13 数据源指向;② 测试侧下轮同步 3 处文案断言 + 修 A 类装置(B-18 清单);③ 研发核验 platform_fee 列定义与 DimensionRegistryMap 契约口径;④ EnergySystemFlowTest 500 需研发确认集成流依赖 |
测试(67 轮实测登记) | 2026-11-07 10:20 | 待处理 |
| B-39 | cfc-backend/pom.xml 默认 skipTests=true(测试零执行假绿) |
研发 | P0 流程黑洞。cfc-backend/pom.xml:28 声明 <skipTests>true</skipTests>,:232 的 surefire 配置引用 ${skipTests}。本轮(2026-11-07 10:59)实测:在干净隔离树 D:\_wt_r1054@9359de39a 执行文档标准命令 mvn -o -B clean test → 9:49 BUILD SUCCESS,日志明确 [INFO] Tests are skipped.,surefire-reports 下 0 个 XML——即“构建成功但零用例执行”。影响:① 任何按标准 Maven 命令接入的本地验证/CI 都会得到假绿,覆盖率与通过率无从谈起;② 本台账历史上多轮“全量通过”结论必须显式带 -DskipTests=false 才成立;③ 新入职/新流水线极易踩坑。.gitlab-ci.yml:16 注释已记录该陷阱并以 -DskipTests=false 绕过,但根因未修 → 每个使用方都要自己记得加参数。建议:去掉 :28 的默认 <skipTests>true</skipTests>(或改为 <skipTests>false</skipTests>,把“跳过”交给命令行 -DskipTests 显式控制);同时在 CI 增加一条守卫:mvn -o -B test -DskipTests=false 后断言 surefire-reports/*.xml 数量 > 0,否则 job 失败。闭环:默认 mvn test 能跑出用例;或 CI 守卫在“0 XML”时报红 |
测试(本轮实测登记) | 2026-11-07 11:10 | 待处理 |
| B-40 | CI 4 个测试 job 为软门禁 + 集成层被排除 | 研发/流程 | .gitlab-ci.yml 现有 7 个 job,其中 4 个 allow_failure 语义:backend-contract-junit:134、langgraph-pytest:165、tests-jest:225(e2e-playwright 亦按注释兜底),即测试失败不阻断流水线;且 backend-contract-junit:142 使用 -Dtest='!**/integration/**' 排除整个 integration 包(1794/2219 例)——而本轮 26 个红类中 14 个位于 com.etotem.cfc.integration.*(含 EnergySystemFlowTest 6F、DimensionRegistryMapContractTest 3F、PlannerBindInviteFlowTest 4F 等),恰是 CI 视野之外的部分。后果:CI 绿灯 ≠ 可发布,红灯也不拦人。建议:① 分两级门禁——test-blocking(全绿子集,必须过)与 test-observed(已知红,允许失败但产出趋势);② 把 integration 包按类白名单逐批转 blocking;③ 报告 G6 口径从“有无 CI”升级为“blocking job 覆盖例数占比”。闭环:任一 blocking job 红 → 流水线红;且 blocking 覆盖 ≥ 当前全量 80% |
测试(本轮实测登记) | 2026-11-07 11:10 | 待处理 |
| B-41 | langgraph.test_analysis_graph_offline_run_returns_interpretation 历史 flaky 需固化 | 研发 | 本轮(2026-11-07 12:57)cfc-langgraph pytest 全量 51 passed / 0 failed / 12 skipped(EXIT 0);历史满跑失败、隔离单跑 PASS 的 TestGrowthReportInterpretB04::test_analysis_graph_offline_run_returns_interpretation 本轮未复现,但属顺序相关/模块级 state 污染型 flaky(疑似 chromadb 原生依赖 + 模块级 fixture),存在回弹风险。建议:mock chromadb + 确定性 fixture + 单文件隔离运行(--forked);CI 固定隔离。闭环:连续 3 轮满跑全绿后再视为修复生效 |
测试(第11轮 巡检登记) | 2026-11-07 12:57 | 待处理 |
| B-42 | 后端 JUnit/Playwright 远程派发通道在本运行环境不可用(2914 脚本化用例零实测) | 测试/运维 | 配置(.tdd/config.json)要求后端 JUnit 2367 @Test 与 langgraph pytest 派发至 opencode.iwintrue.com(192.168.16.251)、Playwright 547 spec 派发至 web-4091(本机:4091)/web-189-4090(192.168.16.189:4090);但本运行环境无 opencode 客户端、192.168.16.189 TCP 连接拒绝不可达,仅能本地实跑 Jest/pytest。后果:后端 2367 + Playwright 547 共 2914 脚本化用例零实测,目标①「所有用例通过」无法核验。建议:在具备 opencode 会话(web-4091/web-189-4090/opencode.iwintrue.com)的主机运行本自动化,或为本环境配置派发凭证与节点可达性。闭环:派发通道可用后重跑后端/Playwright,覆盖率与通过率可计 |
测试(第11轮 巡检登记) | 2026-11-07 12:57 | 根因收敛(2026-11-07 13:25 复测):189 节点网络与服务均在线(TCP 4090 OPEN,opencode v2.0.31 可连),此前「TCP 连接拒绝」结论已过期。真实卡点两条:① HTTP API 需鉴权,GET /openapi.json → 401 Authentication required(.tdd/config.json 的 opencode_sessions.production 未声明鉴权方式);② opencode run --server http://192.168.16.189:4090 ... 报 Location not found: D:\cfc——本机 CLI 2.2.5 把本地 cwd 当远端目录下发,而远端项目目录是 c:/code/cfc(opencode api 报 Operation not found: GET /global/health,版本 2.0.31 与 2.2.5 协议不符)。251 侧:22/80/443 open,9000 与 4090 均 closed → langgraph pytest 无法派发到 251 本机。处置建议:升级/对齐 opencode 版本 + 配置 auth 与 remote_dir。本轮已按「单节点串行」完成 11 例浏览器用例(本机) |
| B-43 | 线上 LangGraph 部署包落后于仓库(问卷生成 500,B-34 复发) | 研发/运维 | 部署态实测(https://ai.etotem.com.cn,cfc-langgraph v0.3.0):POST /api/v1/questionnaire/generate → 500 'GenerateRequest' object has no attribute 'prompt_template';线上 /openapi.json 的 GenerateRequest 无 prompt_template 字段 → 部署的是修复前版本。仓库侧修复(GenerateRequest 补字段 + build_prompt 防御)已在 cfclub,但未发布到 251。后果:/api/family/questionnaire AI 生成 100% 失败并静默降级为模板。建议:重新构建并发布 LangGraph 服务,发布后按同一 curl 回归。闭环:该接口 200 且问卷 JSON 非空 + 线上 openapi 出现 prompt_template |
测试(13:25 轮线上实测登记) | 2026-11-07 13:25 | 待处理 |
| B-44 | 管理端「运营驾驶舱」文案与统一用户模型冲突(孩子总数) | 研发 | 真实登录后驾驶舱统计卡显示「孩子总数 4256」(截图 _artifacts_live/admin-04-logged-in.png),而 AGENTS.md 规定「新功能禁止再引入『孩子』概念,统一用能登录用户/不能登录用户(memberType=login/local)」。属口径遗留,非功能缺陷。建议改为「未开通登录的子成员」或拆为两卡。闭环:TC-A-U04 增断言「驾驶舱不出现『孩子总数』」,改文案后转绿 |
测试(13:25 轮 UI 实测登记) | 2026-11-07 13:25 | 待处理 |
| B-45 | 两条需求变更的前端用例只在工作区、未入库(团队邀请分享 / 优惠券已领取按钮) | 测试/流程 | 合并远端后核对当日 4 条需求变更:2026-11-06-我的团队收益口径与邀请分孚需求变更.md 与 2026-11-06-优惠券已领取券按钮修复需求变更.md 的用例已存在并随 cfc-frontend 16 套件 313 例实际执行通过(__tests__/specs/team-invite-share.test.js、__tests__/specs/coupon-claimed-actions.test.js),但 git status 显示 cfc-frontend/__tests__/specs/ 整体为 ??(untracked)→ 只存在于主工作区,git clean -fd 即静默丢失。与 B-23(SC-X-22 契约未入库)同源。建议:由研发/资产作者 git add cfc-frontend/__tests__/specs/ 后提交;测试侧不代提交研发 WIP。闭环:git ls-files cfc-frontend/__tests__/specs/ 有命中且 git status 该路径干净 |
测试(13:25 轮实测登记) | 2026-11-07 13:25 | 待处理 |
| B-46 | e2e-live/admin-live.spec.js · TC-A-U04(管理员真实登录)+ TC-A-U05(后台核心菜单可访问) | 测试(自处置)/ 研发确认 | 16:36 轮三度复现(稳定确认):admin-desktop 项目 TC-A-U04(真实登录进后台主框架)与 TC-A-U05(菜单遍历)连续第 3 轮失败,错误一致为 TimeoutError: locator.click —— 登录按钮 <button ... disabled="disabled" class="... is-disabled"> 在滑块拖动 + 凭据填充后始终不启用,element is not enabled 超时 20s。15:38 轮 TC-A-U04 同流程通过(按钮可启用)、仅 TC-A-U05 失败;16:13 轮与 16:28 轮连续 2 次隔离复跑均 U04+U05 同因失败(e2e-live 用例代码未变,故非测试侧改动)→ 由「单测试偶发竞态」升级为「admin 真实登录按钮启用链路回归/确定性失效」,三度复现后稳定确认,提示部署变更(滑块/角色校验就绪→按钮启用)可能劣化。影响:admin 登录 + 菜单遍历验收全缺口(浏览器套件 admin 3/5,frontend 6/6,shop-api 4/4)。测试侧自处置:dragSliderToEnd 后显式 waitForEnabled + 角色选择加 wait(本轮仍不生效,佐证非测试时序问题);研发侧:必须确认 admin 登录按钮 enable 判定 + 滑块/角色校验就绪链路是否随部署变更失效。闭环:U04+U05 隔离复跑通过 + 全量浏览器套件 11/11 绿 |
测试负责人(15:38 登记,16:13 升级,16:36 三度复现) | 2026-11-07 15:38(登记)/ 2026-11-07 16:13(升级)/ 2026-11-07 16:28(三度复现) | 已解除(16:46 轮根因定位 + 用例修复,2026-11-07 16:46) |
| B-47 | 主干 JDK8 编译失败(HuaweiAuthService 使用 JDK10+ API)—— 后端全部用例无法编译执行 |
研发 | P0 构建阻断(16:46 轮实测)。978d1bc95 feat(huawei-health)(2026-11-07 14:36 入主干)在 cfc-backend/src/main/java/com/etotem/cfc/service/huawei/HuaweiAuthService.java:246 写入 java.net.URLEncoder.encode(s, java.nio.charset.StandardCharsets.UTF_8)——encode(String, Charset) 重载自 JDK10 起才存在,而 cfc-backend/pom.xml:23 声明 java.version=1.8、编译插件 source/target=1.8,运行侧 JDK8。实测(本机 JDK 1.8.0_25 + Maven 3.9.9,mvn -o -B -DskipTests=false -Dtest=LegacyDimension* test)→ COMPILATION ERROR:java.nio.charset.Charset 无法转换为 java.lang.String,构建在 default-compile 阶段即失败,_r1646_targeted.log。影响:① 后端 2375 例 JUnit 一行都跑不了(本轮后端零实测的直接原因);② 任何 JDK8 构建/部署链路被打断;③ 若改由 JDK11+ 编译、仍部署到 JDK8,则运行期抛 NoSuchMethodError(华为健康 encode 首次调用即 500)。同文件与同仓其余 5 处(ReportCollectService:972、ReportScriptGeneratorService:283、XiaomiAuthService:87-89)均正确使用 .name(),本处是唯一例外,属可精确定位的单点缺陷。建议修复(二选一,均 2 行内):try { return URLEncoder.encode(s, StandardCharsets.UTF_8.name()); } catch (UnsupportedEncodingException e) { throw new IllegalStateException(e); };或在 pom 显式把 maven.compiler.release 抬到 11 并确认部署 JDK。已在隔离预览树(D:\_wt_b47,未改主干)验证:补齐 try/catch 后 BUILD SUCCESS,LegacyDimensionCallFilterTest 6/6 + LegacyDimensionCallLogServiceTest 7/7 = 13/13 绿。闭环:JDK8 下 mvn -o -B -DskipTests=false test-compile BUILD SUCCESS 且 include 华为健康用例跑通 |
测试负责人(16:46 轮实测登记) | 2026-11-07 16:46 | 待处理(P0 构建阻断,建议当日修) |
| B-48 | 连续三轮把「测试脚本缺陷」误判为「部署回归」(B-46 误判复盘) | 测试(流程/方法论) | 15:38 / 16:13 / 16:36 三轮均把 admin U04+U05 失败定性为「登录按钮启用链路随部署变更失效(P0 候选)」,16:46 轮只读取证推翻该结论:真实原因是用例在「登录身份」尚未异步带出时点开了 el-select,浮层遮挡滑块导致拖动从未生效(fillW=0%、hint 仍为待拖文案)。误判的三条根因:① 只读终态不读过程态——只看到按钮 disabled,没看 .captcha-hint 文案(仍是「请按住滑块拖动到最右侧完成验证」就说明滑块根本没动,而非服务端拒绝);② 哨兵失效——TC-A-U02 断言「不含『拖动到最右侧』」会被失败态文案「验证失败,请重试」满足,使「滑块机制是否可用」这一关键前提长期假绿;③ 未做单变量最小化取证——「填凭据」与「拖滑块」耦合在同一条用例里,三轮都没有把两者拆开验证。方法论修正(已在本轮落地):浏览器用例失败必须同时采集「控件属性 + 提示文案 + 几何量(fill%/offset)」三件套;通过态断言必须锚定成功文案而非「非待机文案」;同因连续复现 ≠ 产品回归,同一条测试代码反复执行也会稳定复现同一缺陷。闭环:新断言(验证通过 + toBeEnabled())已入 admin-live.spec.js,并在本轮及后续轮次作为回归哨兵 |
测试负责人(16:46 轮复盘登记) | 2026-11-07 16:46 | 已处置(断言与用例已修,方法论已固化) |
| B-49 | 台账数字失真:P2-T3「新增 188 例」实为 13 例 | 测试(数据质量) | 16:36 轮报告与台账记「df8af9a2b(P2-T3)新增 2 测试类 188 例(LegacyDimensionCallFilterTest 72 + LegacyDimensionCallLogServiceTest 116),不在基线待核实」。16:46 轮实测纠正:git show --name-only --diff-filter=A df8af9a2b 仅新增这两个测试类,grep -c @Test = 6 + 7 = 13;隔离树实跑 Tests run: 13, Failures: 0, Errors: 0, Skipped: 0,且该提交自身说明也写「6+7=13/13 通过」。影响:① 后端用例总数基线(2375)若按 188 记账将虚增 175 例,通过率分母失真;② 「待核实工作量」被高估 14 倍。建议:台账只登记可复算的 Tests run 或 @Test 计数,禁止用 diff 行数/文件大小估算用例数;每轮聚合须附命令与文件路径。闭环:docs/tdd/test/* 与 memory 中 188 的表述全部更正为 13 |
测试负责人(16:46 轮实测纠正) | 2026-11-07 16:46 | 已纠正 |
| B-51 | 本机浏览器节点 desktop204(admin 任务 cfc.iwintrue.com/admin)Chromium 二进制缺失 |
测试(自处置)/ 运维 | 测试执行环境缺口(18:50 轮实测)。新拓扑指令本机 desktop204 作为浏览器节点跑 admin 任务,但本机 ms-playwright 无可用 Chromium:npx playwright install chromium 仅清理旧构建(chromium-1228/1234、chromium_headless_shell-1228),网络受限未下载可用浏览器;~/.cache/ms-playwright 为空。影响:admin 浏览器任务(TC-A-U01~U06)本轮回退未执行,admin 验收链路出现执行盲点。自处置:在本机节点重装 Chromium(npx playwright install chromium 需放行下载)或将 admin 任务改派 189(192.168.16.189:4090,可达但需鉴权)。闭环:Chromium 就绪后重跑 admin 5/5(基线 B-46 已修复 15/15) |
测试负责人(18:50 轮登记) | 2026-11-07 18:50 | 已解除(20:10 轮实测 Chromium 可用,根因是仓库根目录执行导致双版本冲突,非缺二进制) |
| B-52 | health-contract 独立运行 Playwright 版本冲突 | 测试(自处置) | 测试环境缺陷(18:50 轮实测)。从 d:/cfc 根执行 npx playwright test -c tests/playwright.config.health.js 报 Playwright Test did not expect test.describe() to be called here(two different versions of @playwright/test),导致华为/小米健康鉴权契约(TC-H-U01~U10)无法独立复跑;基线 18:30 由 E2E Test Bot 在正确环境下跑出 5/10(B-50)。根因:tests/node_modules 与根存在双版本 @playwright/test。自处置:固化 playwright 版本,或在 tests/ 目录内运行该契约(cd tests && npx playwright test -c playwright.config.health.js)。闭环:契约可独立复跑并纳入每轮回归 |
测试负责人(18:50 轮登记) | 2026-11-07 18:50 | 已解除(20:10 轮在 tests/ 目录内运行 health 契约成功 5/10,失败全部为 B-50 本体) |
| B-50 | 华为健康 5 端点未鉴权 200 直通(LOGIN_REQUIRED_PATHS 缺 /api/huawei-health/,与小米不对称) |
研发/部署 | P1 安全/鉴权契约缺口(本轮实测新发现)。B-47(636c42103,18:06 修 JDK8 编译阻断)合入并部署后,健康模块在目标实例由「404 未上线」转为「已上线可访问」。本轮 playwright.config.health.js 契约实测:华为 5 端点(TC-H-U01~U05)未鉴权均返回 HTTP 200 直通(契约要求 401/403),小米 5 端点(TC-H-U06~U10)未鉴权均返回 401 正确拦截 → 10 例中 5 过 5 败。根因:JwtInterceptor.LOGIN_REQUIRED_PATHS:114-115 已含 /api/xiaomi-health/ 但无 /api/huawei-health/,WebConfig.excludePathPatterns 也未排除该路径 → 匿名请求落到 controller(currentMemberId=null → 业务 badRequest("memberId不能为空"),HTTP 200)。HuaweiHealthController(auth-url/callback/sync/revoke/status 全部 @PostMapping,依赖 @RequestAttribute currentMemberId,src/main/java/com/etotem/cfc/controller/huawei/HuaweiHealthController.java)。同族于 SC-G-06 / SEC-20261031-01(鉴权清单漂移),与小米同批接入却漏配。建议:LOGIN_REQUIRED_PATHS 增 /api/huawei-health/(对齐小米)。闭环:health 契约 10/10 全绿(华为 5 端点 401/403) ;20:10 轮第 2 次实测复现(B-52 解除后在 tests/ 目录内独立复跑):5 passed / 5 failed,华为 5 端点仍未鉴权 200,小米 5 端点仍 401 → 契约稳定复现,非抖动 |
测试负责人(第 70 轮实测登记;20:10 轮复核) | 2026-11-07 18:30 | 研发侧已修·待部署验证;20:20 轮源码复核(关键):origin/cfclub 的 JwtInterceptor.java:116 已含 /api/huawei-health/(原 cc7b3e00b 修复,WebConfig.excludePathPatterns 无对应豁免)→ 源码已修,线上仍 200 = 部署滞后(部署缺口),非研发未修。21:20 轮线上实测 health 契约 10/10 全绿(华为 5 端点现均返回 401 正确拦截,与小米对称),部署含 cc7b3e00b 已上线、部署缺口闭合 → B-50 已解除 |
| B-53 | 研发 70 项 WIP 含 11 个后端测试文件修复,未提交未推送 | 研发 | P0 流程缺口(20:10 轮实测)。主工作区 git status --porcelain 70 项未提交,其中 cfc-backend/src/test/java/com/etotem/cfc/integration/controller/ 下 11 个文件(Article/Auth/Family/GuideFamilyTask/GuideOrder/GuideRolePermission/GuideTeam/Payment/Product/ProductOrder/Stats 各 ControllerTest)已修好测试缺陷。隔离树带入后定向复跑 170 例:F4+E2=6 红(基线同类 48 红)→ 42 例可立即转绿。预测主干后端 95.02%→96.78%(越 G1 阈值),全量 96.14%。与 B-29 同族:已修未提交 = 未完成。闭环:研发 git add 这 11 文件 + commit + push,主干全量复跑 ≥96.78% |
测试负责人(20:10 轮登记) | 2026-11-07 20:10 | 待处理 |
| B-54 | cfc-langgraph 本机 venv 不可用(chromadb 原生 DLL 缺失 + LLM 凭据无效 + test_memory 签名漂移) | 研发/测试(双方) | P1 环境+夹具缺口(20:10 轮实测)。pytest 51 例:34 绿 / 17 红。① C 类环境 12 例:ImportError DLL load failed while importing chromadb_rust_bindings: 找不到指定的模块(chromadb 1.5.9 原生扩展缺 VC++ 运行时)→ chat/analyze 端点 500;api key ****ocal is invalid → intent 4 例退化为 CHAT、auto_tag 5 例断言失败;report_parse 2 例用例写死容器路径 /app/cfc/... 本机 400。② A 类夹具 3 例:tests/test_memory.py:7/14/22 MemoryManager() 未传 embeddings(app/memory/store.py:15 已改必填),因 chromadb 不可用无法判定修复后是否转绿。闭环:装 VC++ 运行时或重建 venv(pip install --force-reinstall chromadb)+ 用例补 FakeEmbeddings,再按指令改派 251 节点复跑 ≥45 绿。R86(11-08 13:30)观察:26 绿/17 红(43 collected, --ignore=tests/qna),较 R85 27 绿净 -1;test_memory_manager_init 由通过转为 DLL 失败(chromadb_rust_bindings 缺失),与 working/longterm 同因,归本项 C 类环境,非新缺陷 |
测试负责人(20:10 轮登记 · R86 补记) | 2026-11-07 20:10(R86 补记 11-08 13:30) | 待处理 |
| B-55 | 测试节点 192.168.16.189 / 192.168.16.251 均不可达,按节点分派无法执行 | 运维 | P1 分派缺口(20:10 轮实测,B-42 延续)。curl 实测:192.168.16.189 的 TCP 22/80/4090 全部拒绝(http_code 000);192.168.16.251:9000/health 超时(000)。影响:本轮浏览器任务(admin/frontend)与 langgraph 任务均无法按新拓扑分派,全部回退本机串行(遵守「每节点仅一个浏览器任务」)。建议:① 开放 189 的 22(SSH)/4090(opencode)并对 251 放通 9000;② 测试侧补 tests/node-probe.spec.js,每轮先探活再分派,避免静默回退。21:20 轮复测修正:192.168.16.189:4090 与 192.168.16.204:4091 现 TCP OPEN(可达),192.168.16.251:9000/4090 仍 CLOSED;但 189/204 的 opencode agent 派发任务均零产出(见 B-56),故 189 仍无法实跑 admin、251 仍不可派发 langgraph。闭环改为:189 agent 任务执行链路修复后重测;251 放通端口 |
测试负责人(20:10 轮登记) | 2026-11-07 20:10 | 待处理 |
| B-56 | 测试节点 opencode 派发任务执行不生效(204/189 均 TCP 可达但 session 创建后 agent 零产出) | 测试/运维 | P2 分派机制缺陷(21:20 轮实测)。python 经 opencode HTTP API(Basic opencode:IwinTrue@123)向 192.168.16.204:4091 / 192.168.16.189:4090 POST /api/session 创建会话成功(200,返回 ses_*),POST /api/session/{id}/prompt 返回 200,但轮询 480s 内 GET /api/session/{id} 的 assistant 消息始终为空(len=0)→ 派发的浏览器任务未被 agent 实际执行,无任何产出。影响:按新拓扑「admin→189 / frontend→204」的远程派发链路失效,本轮改为在本机(204)直接用本地 Playwright CLI 实跑两个浏览器套件(frontend 6/6、admin 5/5 全绿)作为兜底证据。建议:修复 204/189 opencode 节点的 agent 任务执行链路(会话创建后需触发 agent run,而非仅登记 prompt),或将浏览器任务改为 opencode run 接口直接执行 playwright 命令。闭环:204/189 节点派发任务能回传真实 playwright 结果 JSON |
测试负责人(21:20 轮实测登记) | 2026-11-07 21:20 | 待处理 |
| B-53-Update(第 75 轮量化) | B-53 精确复现:带 WIP 同 11 类 170 例 48 红 → 6 红(42 例可转绿) | 研发 | P0 第三次催办,量化证据已具备。隔离树 @bca7dec03 带入主工作区 11 个 M 状态后端测试文件后定向复跑同 11 类:Tests run: 170, Failures: 4, Errors: 2(GuideFamilyTaskControllerTest 2F+1E、GuideRolePermissionTest 1F+1E、StatsControllerTest 1F),对比 clean 基线同 11 类 48 红(Article 9 / Auth 4 / Family 1 / GuideFamilyTask 5 / GuideOrder 8 / GuideRolePermission 5 / GuideTeam 2 / Payment 4 / Product 3 / ProductOrder 6 / Stats 1)→ 42 例可立即转绿。整体影响:后端 2279/2398 = 95.04% → 2321/2398 = 96.79%(越过 G1 96% 阈值),红例 115 → 73,红类 35 → 29。闭环:11 文件入库后全量复跑 ≥96.79% |
测试负责人(第 75 轮实测量化) | 2026-11-07 23:05 | 待处理(连续 3 轮未收口) |
| B-57 | 新用例断言错设:@RequestAttribute 缺失在 Spring 绑定层即 400,非业务分支 |
测试(自处置) | A 类用例缺陷(本轮自发现并修复)。FamilyInviteApproveRequestTest 首版把「未登录审批」断言为 200 + message=请先登录,实测 400 Bad Request——@RequestAttribute("userId") 为必需属性,缺属性时 RequestAttributeMethodArgumentResolver 在进入方法体前即抛 ServletRequestBindingException,controller 内 approverUserId == null 分支在 MockMvc 下不可达(仅当属性存在且为 null 才进入,而 requestAttr(k, null) 本身被 MockMvc 拒绝)。影响:若按首版断言入库,该用例会永久红;若为让用例变绿而放宽断言,则失去「未登录不得触达业务」的守护意义。修复:断言改为 status().isBadRequest() + verify(service, never())(既锁定拒绝、又锁定不触达业务);删除不可达的「属性为 null」用例并在此登记该分支为防御性代码。闭环:FamilyInviteApproveRequestTest 7/7 绿,与另两类合计 18/18 绿 |
测试负责人(第 75 轮实测登记) | 2026-11-07 23:05 | 已处置(用例已修,18/18 绿) |
| B-58 | cfc-langgraph 测试通过数漂移 59→51(WIP 未提交) | 研发 | 第 76 轮(2026-11-08 00:21)实测回归:本地 venv 跑 pytest tests/ --ignore=tests/qna 收集 63(R75 为 71)、通过 51(R75 为 59),少 8 例。根因:工作区 8 个 langgraph 测试文件(conftest.py/test_analyze/test_auto_tag/test_chat/test_graph/test_intent/test_memory/test_report_parse)处于 M 未提交状态(WIP,B-53 复发)。影响:langgraph 通过率口径不稳,无法确认是否为真实回归,且违反「已修未提交=未完成」铁律。闭环:产生 WIP 的会话对这 8 文件 git add+commit+push(PR 仅含测试文件),收口后全量复跑回到 59/0/12;测试侧不代提交。 |
测试负责人(第 76 轮实测登记) | 2026-11-08 00:21 | 重定性(第 77 轮,2026-11-08 02:16):见下方 B-58-Update |
| B-58-Update(第 77 轮重定性) | cfc-langgraph clean 树 17 红:不是「通过数漂移」,是主干套件本来就红 | 研发 | P0,口径反转(第 77 轮隔离树实测)。R76 的「59→51 漂移 -8」表述不完整:本轮在干净基线 8e736c3bb 隔离树(D:\_wt_r077,不带走任何 WIP)实跑 pytest tests --ignore=tests/qna → 43 收集 / 26 过 / 17 红 / 0 skip。逐条归因:C 类环境 13 例(chromadb_rust_bindings DLL 缺失导致 /chat、/analyze、/auto_tag 端点 500 共 8 例 + LLM 凭据无效致 test_intent 4 例退化为 CHAT + test_report_parse 2 例数据路径 → 其中 1 例归数据);A 类夹具 3 例(tests/test_memory.py:7/14/22 MemoryManager() 缺 embeddings);数据 1 例(test_report_parse_invalid_json_response 400≠200,而 clean 树无该断言路径)。对照主工作区 WIP 8 文件 → 63 收集 / 51 过 / 0 红 / 12 skip。读 WIP conftest.py diff 证实其为测试基建重构:collect_ignore=["qna"](tests/qna/test_graph.py 引用已删除的 src.qna,收集期即中断整个套件)、llm_live marker 默认 skip、StubLLM/FakeGraph 桩把端点契约确定化。结论:WIP 不是「让绿灯更好看」,而是把主干的红修掉;「已修未提交 = 未完成」在本项上造成主干 17 红。建议:这 8 文件立即 git add+commit+push。闭环:clean 树复跑 pytest tests ≥51 过 / 0 红 / 12 skip,且 test_memory 3 例补 FakeEmbeddings 后转绿 |
测试负责人(第 77 轮实测重定性) | 2026-11-08 02:16 | 待处理(建议当日收口) |
| B-53-Update(第 77 轮量化) | B-53 第 4 次量化:13 个测试文件(11 M + 2 ??)入库可 +42 例转绿、+17 例新增 |
研发 | P0 第 4 次催办,量化口径已固化。干净基线隔离树 D:\_wt_r077 @8e736c3bb 全量 292 类 / 2416 例 / 2297 过 / 65F+50E+4S = 95.07%,35 红类 / 115 红例。随后把主工作区 13 个后端测试文件(11 M + 2 ??:FamilyEarningsAdminRoleGateTest、SurveyHealthReviewContractTest)复制入同一隔离树,定向复跑同 13 类:170 例 / 48 红 → 187 例 / 6 红,即 42 例转绿 + 17 例新增(全绿);残余 6 红分布:GuideFamilyTaskControllerTest 2F+1E、GuideRolePermissionTest 1F+1E、StatsControllerTest 1F。全量预测:2356/2433 = 96.83%,红例 115 → 73,红类 35 → 28。逐类对照:Article 9→0、Auth 4→0、Family 1→0、GuideOrder 8→0、GuideTeam 2→0、Payment 4→0、Product 3→0、ProductOrder 6→0,GuideFamilyTask 5→3、GuideRolePermission 5→2、Stats 1→1。闭环:13 文件入库后全量复跑 ≥96.83% 且红例 ≤73 |
测试负责人(第 77 轮实测量化) | 2026-11-08 02:16 | 待处理(连续 4 轮未收口) |
| B-59 | tests/e2e-live/admin-live.spec.js:158 TC-A-U05 用「网址含 /login 就跳过」把前置失败转成不判定 |
测试(下轮自处置) | P1 用例哨兵失效(第 77 轮实测新发现)。本轮 admin-desktop 套件结果为 14 过 / 1 跳过(R75/R76 为 5/5 全过),被跳过的正是 TC-A-U05 后台核心菜单可访问:该用例自己重新走一遍登录流程(填凭据 → 等身份带出 → 拖滑块 → 点击登录 → waitForTimeout(5000)),随后执行 test.skip(page.url().includes('/login'), '登录未通过(见 TC-A-U04),本用例无法在无会话下判定')。本轮同一次运行里 TC-A-U04 真实登录通过并落到 /admin/dashboard(菜单 102),但 U05 自身的第二次登录在 5s 等待窗内未完成跳转 → 命中跳过分支。影响:① 跳过不计红,套件看起来「绿」,实际菜单遍历验收缺口;② 与 B-48/B-57 同族——把不确定态转成不判定,哨兵永久失效;③ 5s 固定等待属时序脆弱点(并发跑后端全量时机器负载高,登录链路变慢)。建议修复(任选其一,均 ≤5 行):① 把 test.skip(...) 改为 expect(page.url()).not.toContain('/login'),让前置失败直接红;② 让 U05 复用 U04 的 storageState(playwright.config 开启 storageState 复用),彻底避免二次登录;③ waitForTimeout(5000) 换成 page.waitForURL(/\/admin\/dashboard/, { timeout: 20000 })。闭环:admin 套件连续 2 轮 5/5 全过且无 skip;R133 落实建议③:U04/U05 登录后 waitForTimeout(5000) 改为 waitForURL(/\/admin\/dashboard/,{timeout:20000}),隔离复跑 2 轮均 5/5 全绿(U04≈6s/U05≈53s),时序哨兵彻底稳定 |
测试负责人(第 77 轮实测登记) | 2026-11-08 02:16 | 已闭环(自处置,R133) |
| B-60 | ActivityControllerTest 单类 16 例耗时 412.4s,占后端全量时长 16% |
研发 | P2 测试隔离/时效缺陷(第 77 轮实测新发现)。本轮后端全量 Total time: 48:18 min,surefire XML 累计 2568s(42.8 min),其中 com.etotem.cfc.controller.ActivityControllerTest 412.4s / 16 例(均值 25.8s/例)、GuideModuleIntegrationTest 236.5s / 4 例、PlannerBindInviteFlowTest 169.9s / 9 例、AIChatControllerTest 125.4s / 17 例、ArticleCategoryControllerTest 85.5s / 3 例。对照组:同为 controller 包的多数类在 0.0x~1s 量级。推断:测试内存在真实外部调用(微信/AI 网关/HTTP)或反复重建 Spring 上下文与数据库迁移(DatabaseInitializer 每个上下文重跑一次迁移)。影响:全量反馈周期被 5 个类拉到 40 min 以上,属 CI 门禁落地的直接障碍;也让每轮巡检的时间成本翻倍。建议:① 用 @MockBean/WireMock 截断真实网络;② 慢类合并上下文(@DirtiesContext 只在必要时用);③ 为单类设 120s 警戒阈值,超阈即视为缺陷。闭环:全量 mvn test ≤25 min 且无单类 >120s |
测试负责人(第 77 轮实测登记) | 2026-11-08 02:16 | 待处理 |
| B-61 | JwtInterceptor.LOGIN_REQUIRED_PATHS 缺 /api/health/plan/**,健康方案 3 端点匿名 200 直通业务层 |
研发 | P0 安全/契约缺口(第 78 轮实测,连续 2 轮复现)。POST /api/health/plan/{adjust,attribution,generate} 未携带 Authorization 均返回 HTTP 200(attribution/generate 业务码 4001 付费墙、adjust 500 NPE),未按 API_REFERENCE §4.49.1/§4.49.2(标注「登录用户 JWT」)拦截为 401/403。对照 POST /api/huawei-health/auth-url 无鉴权正确返回 401。根因:JwtInterceptor.LOGIN_REQUIRED_PATHS(JwtInterceptor.java:87–127)为 opt-in 清单,已含 /api/huawei-health/、/api/xiaomi-health/,但健康方案族 HealthPlanController.java:33/:63/:100 三个端点(adjust/attribution/generate)既不在 LOGIN_REQUIRED_PATHS 也不在 PUBLIC_PATHS → 匿名请求被放行到 controller,与 SEC-20261031-01 注释(:96–108)明确反对的「匿名 userId=-1 放行走业务 500 而非安全 401」口径漂移属同族遗漏。影响:匿名用户可触发健康方案归因/生成/调整业务链路(消耗 AI 配额、可能越权读取/生成家庭私有健康方案)。测试证据:tests/e2e-live/health-contract.spec.js TC-HP-U01/02/03(上轮新增,本轮复测 3 例仍失败)。修复建议:LOGIN_REQUIRED_PATHS 增加 "/api/health/plan/"(与健康报告/华为/小米同族),统一「默认拒绝 + 显式放行」。闭环:TC-HP-U01/02/03 由失败转 pass(返回 401)+ 后端补带/不带 token 双向 MockMvc 用例 |
测试负责人(第 78 轮实测登记) | 2026-11-08 02:47 | 待处理(P0,连续 2 轮) |
| B-62 | cfc-frontend 2 个 RED 契约套件进入执行范围,14 例待实现(S-cfc-35/S-cfc-38 birthday/gender 捕获) | 研发 | P1 契约待实现(第 79 轮实测,2026-11-08 03:23)。本轮 jest 执行范围由 17 套件/319 扩至 19 套件/343(jest.config.js mtime 03:15,testMatch: ['**/__tests__/**/*.test.js', ...]),使 2 个既有 RED 契约套件纳入统计:__tests__/family-join/join-form.required-info.test.js(12 败)+ __tests__/pages/family-members.joinRequestCardInfo.test.js(2 败)。两文件已在 R78 树内(提交 076cfa879 / c5e065dda,属 S-cfc-35/S-cfc-38 RED 契约),此前 R78 报告未纳入。性质 = 预期 RED(功能未实现),非既有用例回归:生产 cfc-frontend/pages/invite/join-form.vue 实际仅渲染「真实姓名/昵称」,缺出生日期/性别字段与校验,故断言 birthday/gender 必填、prefill、提交拦截、picker 映射、审批卡片三项信息均失败。无通过用例转红(328 通过含 R78 全部通过用例 + 净新增通过用例)。通知研发:家庭加入 birthday/gender 捕获实现(S-cfc-35/S-cfc-38 待 YELLOW)落地后复测 14 例转绿;此前 R78「frontend 全绿」口径未覆盖该 2 套件,本轮为覆盖可见性修正。闭环:研发实现 join-form birthday/gender 捕获 → 14 例 RED 转绿 + 状态机 S-cfc-35/S-cfc-38 置 YELLOW |
测试负责人(第 79 轮实测登记) | 2026-11-08 03:23 | 待处理(P1,预期 RED,待实现) |
| B-53-Update(第 81 轮闭环确认) | B-53 13 个测试文件已全部入库,WIP 清零 | 研发 | 闭环确认(第 81 轮,2026-11-08 06:25)。git status --porcelain 中 11 个 M controller 测试文件与 2 个 ?? 新测试文件(FamilyEarningsAdminRoleGateTest / SurveyHealthReviewContractTest)均无未提交改动;git ls-files cfc-backend/src/test/java/com/etotem/cfc/integration/controller/ 命中 13 相关文件 → 全部入库并随 cfclub 推送。闭环判据(clean 树复跑 ≥96.83% 且红例 ≤73)仍待全量 mvn test 实跑复核(本轮仅 test-compile)。B-53 主体关闭,量化复验列入下轮后端全量计划 |
测试负责人(第 81 轮确认) | 2026-11-08 06:25 | 已解除(WIP 已收口;<96.83% 全量复验待环境放行) |
| B-58-Update(第 81 轮收口确认) | 8 个 langgraph 文件已入库,但修复内容未落地,主干 17 红仍在 | 研发/测试 | 部分闭环(第 81 轮,2026-11-08 06:22)。git status cfc-langgraph/tests/ 已干净、8 文件全部 tracked(B-58「已修未提交」维度收口)。但:① tests/conftest.py 入库版本不含 R76 工作区版本的 collect_ignore=["qna"]/llm_live marker/StubLLM 重构(git log -- cfc-langgraph/tests/conftest.py 最近触达为版本号/ai-q/restore 提交)→ 无 --ignore=tests/qna 时 tests/qna/test_graph.py 仍在收集期中断整个套件;② 本轮 pytest tests --ignore=tests/qna -p no:cacheprovider 实测 43 收集 / 26 过 / 17 红,与 R77/R78 完全一致(无改善无劣化)。结论:B-58 账本收口,但 R76 描述的「修复内容」从未正式入库;17 红按 B-54 环境路线(VC++ 运行时/rebuilt venv + FakeEmbeddings + LLM 凭据)持续处置 |
测试负责人(第 81 轮确认) | 2026-11-08 06:22 | 部分解除(入库收口);17 红归 B-54 持续处置 |
| B-56-Update(第 81 轮探针新证据) | 三节点派发通道再探针:189 prompt 404;204/251 配额限流 | 测试/运维 | 第 81 轮(2026-11-08 06:12~06:18)三节点实测。探活:192.168.16.189:4090→200、192.168.16.204:4091→200、192.168.16.251:4096→200(均 Basic 认证通过,会话创建 200)。派发探针(SIMPLE 提示「请只回复 OK」):① 189 POST /api/session/{id}/prompt → 404(API 路径/版本不符,零产出);② 204 prompt 200、assistant 有响应但 [RETRY provider.rate-limit You have used up today's text quota...1 request every 3 min] → 模型今日文本额度用尽;③ 251 同 204,命中配额限流;且 251 上 langgraph 9000 服务 CLOSED。结论:远程派发仍不可用(B-56 由「零产出」演进为「189 路由 404 + 204/251 配额限流」两条),浏览器任务按既定兜底策略本机串行实跑(admin 5/5、frontend 6/6、shop 4/4、health 10/13)。闭环调整:① 运维恢复 204/251 opencode 模型配额(或切模型/提供方);② 研发/运维对齐 189 opencode API 版本路由;③ 251 放通 9000 |
测试负责人(第 81 轮实测登记) | 2026-11-08 06:18 | 待处理 |
| B-61-Update(第 81 轮复现) | P0 健康方案鉴权缺口连续第 3 轮复现 | 研发 | 连续第 3 轮复现(2026-11-08 06:26)。本轮 playwright.config.health.js 契约实测:TC-H-U01~U10 10/10 全绿(华/小米健康鉴权稳定拦截),但 TC-HP-U01/02/03(/api/health/plan/{adjust,attribution,generate} 匿名 POST)仍返回 HTTP 200 直通(应 401/403/404)。JwtInterceptor.LOGIN_REQUIRED_PATHS 修复未随任何部署轮次生效。与 B-61 主登记同因:opt-in 清单漏配 /api/health/plan/。闭环判据不变:修复+部署后 TC-HP-U01~03 转 401 即通过 |
测试负责人(第 81 轮复现登记) | 2026-11-08 06:26 | 待处理(P0,连续第 3 轮) |
| B-62-Update(第 81 轮闭环确认) | S-cfc-35/S-cfc-38 birthday/gender 捕获 14 例 RED 全部转绿 | 研发(已实现) | 闭环确认(第 81 轮,2026-11-08 06:20)。研发 04:53/04:56 提交实现(4f40a8973 S-cfc-67 审批卡片出生日期/性别 + 2c65d98f7 S-cfc-66 加入申请表单必填项)后,本轮 frontend Jest 19 套件 / 343 例 / 342 通过 + 1 skip / 0 失败:join-form.required-info.test.js(12 例)与 family-members.joinRequestCardInfo.test.js(2 例)14 RED 全部转绿,B-62 场景闭环。无通过用例转红(R79 基线 328 通过含净新增)。后续哨兵:frontend Jest 每轮 343 例全绿即维持闭环保守 |
测试负责人(第 81 轮确认) | 2026-11-08 06:28 | 已解除(14 RED 转绿,frontend 连绿) |
| B-61-Update(第 82 轮复现) | P0 健康方案鉴权缺口连续第 4 轮复现 | 研发 | 连续第 4 轮复现(2026-11-08 07:30)。本轮 playwright.config.health.js 契约实测:TC-H-U01~U10 10/10 全绿(华/小米健康鉴权稳定拦截),但 TC-HP-U01/02/03(/api/health/plan/{adjust,attribution,generate} 匿名 POST)仍返回 HTTP 200 直通(应 401/403/404)。源码复核:JwtInterceptor.java:87 LOGIN_REQUIRED_PATHS(R82 HEAD b037fe71b)仍无 /api/health/plan/ → 非部署滞后,源代码级未修。与 B-61 主登记同因:opt-in 清单漏配。闭环判据不变:修代码+部署后 TC-HP-U01~03 转 401 即通过。此为本轮最高优先级催办项(研发交接通知同步送达) |
测试负责人(第 82 轮复现登记) | 2026-11-08 07:32 | 待处理(P0,连续第 4 轮) |
| B-61-Update(第 83 轮复现) | P0 健康方案鉴权缺口连续第 5 轮复现 | 研发 | 连续第 5 轮复现(2026-11-08 10:2x)。本轮本机 playwright.config.health.js 契约实测:TC-H-U01~U10 10/10 全绿,TC-HP-U01/02/03(/api/health/plan/{adjust,attribution,generate} 匿名 POST)仍返回 HTTP 200 直通(应 401/403)。源码复核:JwtInterceptor.java:87 LOGIN_REQUIRED_PATHS(最新 HEAD 0fde81bec)仍无 /api/health/plan/ → 源代码级未修,非部署滞后。65 轮派发 lan-204 会话(ses_e477a6816ffe,D:\cfc)在途未产出,请研发侧重核会话状态或重派。闭环判据不变:修代码+部署后 TC-HP-U01~03 转 401/403 即通过(notice-83round 已送达) |
测试负责人(第 83 轮复现登记) | 2026-11-08 10:28 | 待处理(P0,连续第 5 轮) |
| B-59-Update(第 82 轮观察) | admin U04/U05 首轮抖动复跑转绿;B-59 时序修复仍未落地 | 测试(自处置) | 第 82 轮(2026-11-08 07:18~07:35)。admin-desktop 首轮 3/5(U04「身份自动带出」失败 + U05 依赖 U04 失败),独立复跑 5/5 全绿;shop 首轮 TC-S-U01 一次 502(上游瞬态,复跑 4/4 + curl 200×2)。首轮与 3 个 jest/lg 套件并行跑,机器负载高 → 佐证 B-59「固定 waitForTimeout(5000) 时序脆弱点」判断。修复(waitForURL 替换)仍未落地,列入测试侧下轮自处置 |
测试负责人(第 82 轮实测登记) | 2026-11-08 07:36 | 待处理(下轮自处置) |
| B-61-Update(第 84 轮复现) | P0 健康方案鉴权缺口连续第 6 轮复现 | 研发 | 连续第 6 轮复现(2026-11-08 10:44 增量复核)。本轮采信 83 轮本机 playwright.config.health.js 契约实测:TC-H-U01~U10 10/10 全绿,TC-HP-U01/02/03(/api/health/plan/{adjust,attribution,generate} 匿名 POST)仍返回 HTTP 200 直通(应 401/403)。独立源码复核:JwtInterceptor.java:87 LOGIN_REQUIRED_PATHS(最新 HEAD 39add0f31)仍无 /api/health/plan/ → 源代码级未修,非部署滞后。该缺口已连续 6 轮未闭环(R78 首现),建议本迭代优先排期。闭环判据不变:修代码+部署后 TC-HP-U01~03 转 401/403 即通过(notice-84round 已送达) |
测试负责人(第 84 轮复现登记) | 2026-11-08 10:52 | 待处理(P0,连续第 6 轮) |
| B-63(第 84 轮新增·已闭环) | 4 个前端验收守卫测试文件未入库(29 例全绿不可复现) | 测试(自处置) | 第 84 轮(2026-11-08 10:44 增量实测)。cfc-frontend jest 实跑 21 套件/355 例(354 过 + 1 skip),发现 R82 口径(343 例)之外多出 4 个 untracked 测试文件:__tests__/specs/{coupon-claimed-actions(10),report-upload-linked-products(6),shop-price-sort(6),team-invite-share(7)}.test.js,共 29 例全部通过,对应需求均已合入(2026-11-06 优惠券已领取跳转 / 报告上传关联商品卡片变更 R1 / 商城价格排序 / 团队邀请分享)。性质:与仓库既有约定一致的「组件纯决策逻辑镜像」验收守卫(无生产代码依赖),属测试侧资产。风险:干净克隆/CI 下前端仅 326 例可执行 → 全绿不可复现;兄弟 83 轮复用 R82 数字未实跑导致漏报。处置:本轮已精确 git add 入库(全绿 29/29),G9/G12 闭环。教训:前端 jest 必须每轮实跑,禁止直接复用上轮数字 |
测试负责人(第 84 轮实测登记) | 2026-11-08 10:52 | 已闭环(4 文件入库) |
| B-61-Update(第 85 轮 · 源码已修·部署滞后) | P0 健康方案鉴权缺口·连续第 7 轮复现(首次源码级确认已修复) | 研发/运维 | 连续第 7 轮复现(2026-11-08 12:59),但状态升级为「源码已修·部署滞后」。本轮 playwright.config.health.js 契约实测:TC-H-U01~U10 10/10 全绿,TC-HP-U01/02/03(/api/health/plan/{adjust,attribution,generate} 匿名 POST)仍返回 HTTP 200 直通(应 401/403)。源码复核升级确认:origin/cfclub@de16f40b0 的 JwtInterceptor.java:114 LOGIN_REQUIRED_PATHS 已含 /api/health/plan/(B-61 修复 b3a02df92 11:47 合入)→ 源代码级已修复(前 6 轮均为源码级未修);线上 cfc.iwintrue.com 匿名 curl 探测仍 200(业务码 4001/500)→ 部署滞后(修复未随部署轮次上线)。闭环判据不变:部署 cfclub@de16f40b0 后 TC-HP-U01~03 转 401/403 即通过(notice-85round 已送达) |
测试负责人(第 85 轮复验登记) | 2026-11-08 12:59 | 待处理(P0,源码已修·待部署) |
| B-64(第 85 轮新增) | langgraph test_memory 装置接口漂移 | 测试(自处置) | 第 85 轮(2026-11-08 12:59,251 节点)。langgraph pytest 27/43(+1 转绿),但 test_memory.py::test_working_memory/test_longterm_memory 2 例失败:AttributeError: 'MemoryManager' object has no attribute 'get_working_memory'/'get_longterm_memory'——cfc-langgraph 的 MemoryManager(store.py)签名已变更(接口更名/重构),测试装置仍调用旧方法名未同步。属 A 类测试侧装置问题(非代码回归),与前序 O-14(缺 embeddings 装置)同族。修复建议:对齐 store.py 当前 MemoryManager 接口(查 get_* 方法实际签名),改 test_memory.py 调用新方法或补 get_working_memory/get_longterm_memory 别名。闭环:251 拉取修复后重跑 → test_memory 2 例转绿 |
测试负责人(第 85 轮实测登记) | 2026-11-08 12:59 | 已解除(第 88 轮闭环) |
| B-64-Close(第 88 轮闭环确认) | test_memory 装置已对齐真实 MemoryManager 契约 |
测试(已处置) | 闭环确认(第 88 轮,2026-11-08 14:20)。重写 cfc-langgraph/tests/test_memory.py 对齐 app/memory/store.py 的真实契约(__init__(embeddings) / save_conversation(user_id, conversation_id, messages) / recall(user_id, query, k)),并新增 test_legacy_memory_api_removed 守护旧接口不回潮;同时用 patch("langchain_chroma.Chroma") 隔离 chromadb_rust_bindings 原生 DLL 依赖,使单测不再被宿主机环境拖红(原 3 例 DLL 失败 → 0)。实测 4 passed / 0 failed(0.23s)。性质:A 类测试侧装置修复,未改任何生产代码、未放宽断言强度(新增 3 条调用参数级断言) |
测试负责人(第 88 轮实测) | 2026-11-08 14:22 | 已解除(4/4 绿) |
| B-61-Close(第 88 轮闭环确认) | P0 健康方案鉴权缺口·部署后首次转绿 | 研发/运维(已部署) | 闭环确认(第 88 轮,2026-11-08 14:15)。playwright.config.health.js 契约实测 13/13 全绿:TC-HP-U01/02/03(/api/health/plan/{adjust,attribution,generate} 匿名 POST)由 HTTP 200 直通转为 401({"code":401,"message":"请先登录"}),TC-H-U01~U10 华为/小米 10 端点维持 401。独立 curl 复核 7 个端点全部 401。连续 8 轮(R78→R85)P0 缺口至此闭环,判据与预登记一致(部署 cfclub@de16f40b0 后转 401)。观测补充:同日 14:11 首跑出现 10 红(华为/小米 10 例无任何 console 输出、单轮耗时 1.1m),紧接 14:14 与 14:38 两次独立复跑均 13/13 绿(13.1s / 7.7s)→ 判定为瞬时上游抖动,非产品回归、非并发(配置本就 workers:1) |
测试负责人(第 88 轮实测) | 2026-11-08 14:39 | 已解除(13/13 绿,TC-HP-U01~03 转 401) |
| B-65(第 88 轮新增) | langgraph POST /api/v1/analyze 恒 500:checkpointer 缺 thread_id 配置 |
研发 | P1 产品缺陷(第 88 轮实测,2026-11-08 14:22)。tests/test_analyze.py::test_analyze_endpoint/test_analyze_missing_report 均 assert 500 == 200;异常栈:ValueError("Checkpointer requires one or more of the following 'configurable' keys: thread_id, checkpoint_ns, checkpoint_id")。根因(源码级确认):app/graphs/analysis_graph.py:96 checkpointer = MemorySaver(); builder.compile(checkpointer=checkpointer),而 app/api/analyze.py:36 await graph.ainvoke({...}) 未传 config={"configurable": {"thread_id": ...}} → 凡携带 checkpointer 的图在无 thread 配置时 LangGraph 必抛 ValueError → /api/v1/analyze 每次调用 100% 500。影响:报告解读 AI 能力(analyze 端点)线上不可用;与 R86 汇报将其归为「C 类环境」不同,本轮按异常栈首帧定级为产品缺陷(A/B 类判别见下)。修复建议(二选一):① 无状态调用:create_analysis_graph() 去掉 MemorySaver()(该图无多轮状态需求);② 保留状态:ainvoke(payload, config={"configurable": {"thread_id": trace_id}})。闭环:两例 assert 200 转绿 + 线上 POST /api/v1/analyze 返回 200 且含 analysis 字段 |
测试负责人(第 88 轮实测登记) | 2026-11-08 14:22 | 待处理(P1,产品缺陷) |
| B-66(第 88 轮新增·已闭环) | langgraph test_report_parse 2 例写死容器绝对路径 |
测试(已处置) | 第 88 轮(2026-11-08 14:17)。tests/test_report_parse.py 两例把样本路径写死为 /app/cfc/docs/参考资料/501999942-某人.pdf(生产容器内路径),本机/任何非容器宿主机 /api/v1/report/parse 直接 400「文件不存在」→ 2 例恒红。A 类测试侧装置缺陷(非产品问题:端点 400 行为正确)。修复:改为 os.path 由 __file__ 上溯 3 级解析仓库根拼 docs/参考资料/501999942-某人.pdf,并加 requires_sample_pdf(样本缺失时 skip 而非红);断言强度不变。实测 5 passed / 0 failed(234.5s) |
测试负责人(第 88 轮实测) | 2026-11-08 14:18 | 已解除(5/5 绿) |
| B-67(第 88 轮新增·观察类) | 健康契约首跑 10 红:瞬时上游抖动可产生「整批假红」 | 测试(观察) | 第 88 轮(2026-11-08 14:11 首跑)。首跑 health-contract 10 failed / 3 passed(耗时 1.1m,10 个华为/小米用例无任何 console 输出即失败、无断言消息),同 banner 下 3 个 health-plan 用例正常输出并绿;紧接着两次独立复跑(14:14 串行 --workers=1 --reporter=list 13.1s、14:38 --reporter=line 7.7s)均 13/13 绿,独立 curl 7 端点亦全部 401。结论:该批红非产品回归、非并发(配置本就 workers:1),属目标站点/链路瞬时不可用(请求在建立阶段失败,故无状态码打印)。风险:此类假红若不复跑直接入台账,会误判为 P0 回归并污染趋势。纪律:live 契约套件单轮红必须先「同套件独立复跑 ≥2 次 + curl 直探」三证合一后再定性;不建议加 retries 掩盖(会削弱一次性真实回归的信号) |
测试负责人(第 88 轮观察) | 2026-11-08 14:39 | 观察中(无代码动作) |
| B-68(第 88 轮新增) | getFamilyTaskOverview 返回键改名 totalChildren→totalFamilyMemberren(拼写错误),前端 3 处仍读旧键 | 研发 | P1 前后端契约断裂(第 88 轮实测,2026-11-08 15:00)。后端 GuideFamilyTaskController.java:239 result.put("totalFamilyMemberren", children.size())(同时把 getXxxByChild 系列更名 getXxxByFamilyMember,符合 AGENTS.md「孩子→能登录/不能登录用户」口径),但返回键拼写为 totalFamilyMemberren(Member+ren 混拼);前端仍读旧键:cfc-web/src/views/GuideFamilyTask.vue:37(空态判定)/:45(数值展示)、cfc-web/src/views/teacher/TeacherMessages.vue:139(StatCard)。影响:管理端「成长任务概览」恒显示 0 且永远命中空态(totalChildren === 0 为真),家长/规划师看不到任何家庭成员任务统计——属功能性不可用,非样式问题。发现路径:FamilyControllerTest 之外的 GuideFamilyTaskControllerTest.getFamilyTaskOverview_WithChildren 断言 totalChildren 得 null 而暴露。修复建议(二选一,推荐 ①):① 后端保留 totalChildren 并新增 totalFamilyMemberCount(双写过渡,前端逐步迁移,避免再犯拼写错误);② 前后端统一为 totalFamilyMemberCount 并同步改 3 处前端。闭环:新增契约用例断言响应含约定键 + 前端 3 处改读新键 + 管理端概览页实测非 0 | 测试负责人(第 88 轮实测登记) | 2026-11-08 15:00 | 待处理(P1 前端不可用) |
| B-69(第 88 轮新增) | /api/mind/ 未入 LOGIN_REQUIRED_PATHS,匿名访问返回 400 而非 401 | 研发 | P1 安全口径漂移(第 88 轮实测,2026-11-08 15:00)。MindFortuneControllerTest.testGetTodayFortuneWithoutAuth 断言 $.code == 401,实测 400。源码级确认:POST /api/mind/fortune(MindFortuneController.java:42)既不在 PUBLIC_PATHS 也不在 LOGIN_REQUIRED_PATHS(JwtInterceptor.java:87-127),且方法签名 @RequestAttribute("userId") Long userId + if (userId == null) return Result.error("请先登录") → 匿名请求在 Spring 参数绑定层即抛缺属性异常(400),控制器内的 null 分支不可达(与 B-57 同族陷阱)。影响:与 SEC-20261031-01「私有数据端点无 token 直接 401」口径不一致;400 错误体可能透出内部异常信息。修复建议:LOGIN_REQUIRED_PATHS 增 "/api/mind/"(同日运势/刷新/导出均为家庭私有数据);若产品意图为游客可用,则需改为 @RequestAttribute(required=false) 并显式匿名降级,且同步改测试断言。闭环:匿名 POST 返回 401 + MindFortuneControllerTest 转绿 | 测试负责人(第 88 轮实测登记) | 2026-11-08 15:00 | 待处理(P1) |
| B-70(第 88 轮新增) | 8 例 Spring 上下文加载失败:auditLogAspect → auditLogService 注入链 | 测试(自处置) | A 类测试装置(第 88 轮全量实测 2026-11-08 14:46)。8 例红(AdminFamilyOverviewControllerTest 3、FamilyAdminOverviewServiceTest 3、UserServiceFamilyNameLinkTest 2)异常均为 IllegalStateException: Failed to load ApplicationContext,Caused by: BeanCreationException: Error creating bean 'auditLogAspect': Injection of resource dependencies failed → 'auditLogService': Injection of resource dependencies failed。成因推断:新增审计切面依赖的 bean 在该测试切片内被 @MockBean 覆盖或缺失(下游具体 bean 名需一次定向复现取证)。非产品缺陷(生产上下文正常启动,全量其余 303 类上下文均成功)。修复建议:为这两个测试类补 @MockBean AuditLogService(或按 auditLogService 的下游依赖补齐),复跑确认。闭环:3 类各 3/3、3/3、2/2 转绿 + 全量复跑无上下文失败 | 测试负责人(第 88 轮实测登记) | 2026-11-08 14:50 | 待处理(测试侧,A 类) |
| B-71(第 88 轮新增·已闭环) | 后端多类测试装置滞后于生产「孩子→家庭成员」重构 | 测试(已处置) | 第 88 轮(2026-11-08 15:00)。生产把 TaskService.getPendingReviewTasksForChild/getAllTasksByChild/getTaskHistoryByChild 更名 ...ForFamilyMember、guide-bind 从「直接绑定」改为「提交申请待审批」,测试仍打旧桩 → 8 例红(GuideFamilyTaskControllerTest 5、GuideRolePermissionTest 2、FamilyControllerTest 1)。已按新契约修订测试装置(服务方法更名、checkMemberOnly 前置 taskMapper.selectById 打桩、@MockBean TeacherFamilyBindingRequestService、断言改为「申请已提交,请等待家庭主账号审批」)。未放宽断言强度。定向复跑已确认:mvn test -Dtest=GuideFamilyTaskControllerTest,GuideRolePermissionTest,FamilyControllerTest → 49/49 全绿(20+21+8,0F/0E),同 3 类其余 41 例无回归;预测后端 97.03%→97.34%(待下轮全量 clean 复跑升级为全量证据) | 测试负责人(第 88 轮实测) | 2026-11-08 15:06 | 已闭环(49/49 绿) |
| B-70-Update(第 90 轮 · 根因反转并闭环) | 8 例上下文加载失败:真实根因是测试类硬编码 127.0.0.1:3306(本机无监听),非 auditLogAspect 注入链 | 测试(已处置) | 根因纠正 + 闭环(2026-11-08 18:44)。取全栈后确认因果链:IllegalStateException: Failed to load ApplicationContext → Error creating bean 'primaryDataSource'(SfmsDataSourceConfig)→ HikariPool 初始化失败 → CJCommunicationsException: Communications link failure → java.net.ConnectException: Connection refused: connect。即 AdminFamilyOverviewControllerTest / FamilyAdminOverviewServiceTest / UserServiceFamilyNameLinkTest 三类把 spring.datasource.url 硬编码为 jdbc:mysql://127.0.0.1:3306/zxyj,而本机 3306 无监听(netstat -an \| grep LISTENING 无 3306、/dev/tcp/127.0.0.1/3306 REFUSED;默认数据源 application.yml:22 为 192.168.16.251:3306,实连 ESTABLISHED)。R88/R89 的「auditLogAspect → auditLogService 注入链」推断被推翻——那只是上下文失败后的下游表象(bean 创建链上第一个失败点)。修复:三类数据源改指 192.168.16.251:3306(与其余 300+ 类一致)。定向复跑 13/13 全绿(3+3+2+5)。方法论:判「上下文加载失败」必须读 Caused by 链的最内层(JDBC/网络层),不可停在第一个 bean 名上 | 测试负责人(第 90 轮实测) | 2026-11-08 18:44 | 已闭环(8 例转绿,13/13) |
| B-72(第 90 轮新增) | 线上 /api/* 短窗口 502 抖动(openresty),致浏览器/契约用例假红 | 运维/研发 | P1 环境缺陷(第 90 轮实测,2026-11-08 17:22~17:35)。两窗口实测:① 17:22~17:26 POST /api/stats/dashboard、/api/stats/membership、/api/stats/traffic、/api/system/health、/api/admin/menu/user-menus 连续 20/20 返回 502 Bad Gateway(Server: openresty/1.19.9.1rc1),而同窗口 POST /api/admin-auth/login-by-password 仍 200(登录成功)→ 前端登录后数据接口 502 → 停留 /admin/login;② 17:33~17:35 /api/health/plan/list 连续 13 次 502 后恢复 401。17:36~17:38 30s 采样 18 组全部 401(稳定);17:40 起 _r90_502_probe.log 每 30s 双端点采样,主态 health=401 system=200,偶发 system=000(5s 超时)。同一时间窗仓库有 chore: auto bump version and changelog(b58d54775)+ cfc-web/package-lock.json,判定为发布/滚动重启窗口。影响:TC-A-U04 首跑假红(复跑 5/5 全绿),易被误判为鉴权回归。建议:① 发布窗口公告或避开自动化跑测时段;② 前端对 502 显示明确「服务暂不可用」,不要静默停留登录页;③ 测试侧维持 B-67 三证纪律(已执行) | 测试负责人(第 90 轮实测登记) | 2026-11-08 17:35 | 待处理(运维:发布窗口管理) |
| B-69-Update(第 90 轮 · 连续第 3 轮) | /api/mind/ 匿名仍非 401 | 研发 | 连续第 3 轮未修(2026-11-08 19:00)。线上实测 POST /api/mind/fortune 匿名 → HTTP 200,{"code":400,"message":"用户不存在"}(用例期望 401)。源码复核(HEAD b58d54775):cfc-backend/src/main/java/com/etotem/cfc/config/JwtInterceptor.java:87 的 LOGIN_REQUIRED_PATHS 仍无 "/api/mind/"(PUBLIC_PATHS 仅含 /api/mind/alert/*、/api/mind/traditional/*)→ 源代码级未修。闭环判据不变:匿名 401 + MindFortuneControllerTest 转绿 | 测试负责人(第 90 轮复现登记) | 2026-11-08 19:00 | 待处理(P1,连续第 3 轮) |
| B-65-Update(第 90 轮 · 连续第 3 轮) | langgraph /api/v1/analyze 恒 500(checkpointer 缺 thread_id) | 研发 | 连续第 3 轮未修(2026-11-08 18:55)。本轮 pytest tests/ --ignore=tests/qna 实测 44 收集 / 32 过 / 12 红,其中 test_analyze.py 2 例仍 assert 500 == 200,异常 ValueError: Checkpointer requires one or more of the following 'configurable' keys: thread_id, checkpoint_ns, checkpoint_id。其余 10 红为 B-54 环境(chromadb DLL 6 + LLM key 401 4)。闭环判据不变:两例 200 转绿 | 测试负责人(第 90 轮复现登记) | 2026-11-08 18:55 | 待处理(P1,连续第 3 轮) |
| B-59-Update(第 90 轮 · 再次触发) | TC-A-U05 仍以 test.skip(url.includes('/login')) 吞掉前置失败 | 测试(下轮自处置) | 第 90 轮再次触发(2026-11-08 17:24)。admin 首跑因 B-72 502 抖动导致 TC-A-U04 红,TC-A-U05 随即命中 test.skip 分支被记为 skipped(不计红)→ 套件显示 3 passed / 1 failed / 1 skipped。复跑(502 窗口结束)5/5 全绿。佐证 B-59 判定:固定 waitForTimeout(5000) + skip 兜底会把环境抖动转成「不判定」。修复建议不变:waitForURL(/\/admin\/dashboard/, { timeout: 20000 }) 硬断言,或复用 storageState | 测试负责人(第 90 轮观察) | 2026-11-08 17:26 | 待处理(下轮自处置) |
| B-61-Update(第 91 轮 · 已闭环) | P0 健康方案鉴权缺口·线上部署已生效 | 研发 | 第 91 轮实测闭环(2026-11-08 20:08)。playwright.config.health.js 契约实测:TC-H-U01~U10 10/10 全绿 + TC-HP-U01/02/03(/api/health/plan/{adjust,attribution,generate} 匿名 POST)本轮全部返回 HTTP 401(应 401/403),较 R78~R85 连续 7 轮 200 直通终告修复。根因(R85 已确认):JwtInterceptor.LOGIN_REQUIRED_PATHS 已含 /api/health/plan/(b3a02df92/de16f40b0 已合入 origin/cfclub),本轮线上 cfc.iwintrue.com 匿名 curl 探测 HP 三端点均 401 → 部署已生效(R85 判定为「源码已修·部署滞后」,本轮滞后解除)。B-61(首现 R78)连续 7 轮后正式闭环。闭环判据:TC-HP-U01~03 由失败转 401 即通过 → 本轮达成(health 13/13)。 | 测试负责人(第 91 轮复验登记) | 2026-11-08 20:08 | 已闭环(live 13/13 验证) |
| B-73(第 91 轮新增) | cfc-frontend S-cfc-79 diet.recommendation.uiRework 24 例 RED 契约测试 | 研发 | P1 预期 RED(第 91 轮实测,2026-11-08 20:08)。cfc-frontend/__tests__/pages/diet/recommendation.uiRework.test.js(commit fb1e335e9,462 行,28 例)随 SRS 变更 49b4a71ef(推荐食材页面改版 7 项需求 REQ1~REQ7)新增;本轮 jest 实跑 24 失败 / 4 通过(28 总)。24 失败分布:REQ1 去顶部标题(2)、REQ2 互斥选中(3)、REQ3 4Tab 切换(7)、REQ4 前端分页(12)、REQ5 self-label="我"(1)、REQ6 生成 loading(3)——均为「功能未实现」类断言(UI 结构/数据契约/行为契约)。非既有用例回归:前端 354 通过用例零转红,纯为新增 RED 套件。性质 = 预期 RED(S-cfc-79 任务处于 RED 态,待研发 YELLOW 实现 recommendation.vue 改版 + DietRecommendationController 契约)。影响:用户目标「全部用例通过」暂未达成(24 红);但「SRS 变更→测试用例更新」闭环已满足(需求 7 项均有对应 RED 用例覆盖)。通知研发:实现 S-cfc-79 使 24 例转绿(状态机置 YELLOW)。闭环:研发实现 diet rework → 该套件 28/28 全绿 + 状态机 S-cfc-79 置 YELLOW | 测试负责人(第 91 轮实测登记) | 2026-11-08 20:08 | 待处理(P1,预期 RED,待实现) |
| B-56-Update(第 93 轮 · 根因定位 + 客户端修复) | 189 派发通道:已定位根因(189 opencode 无任何 LLM 后端可用),并修复客户端触发流程 | 运维(凭证侧)/ 测试(客户端侧已修) | 第 93 轮(2026-11-08 20:43)定向复探 189 派发通道,给出确定性根因。189 opencode 当前状态:① HTTP API 可达(:4090→200,web UI 正常,GET /api/info 显示 v2.0.31 / pid 7512 / 绑定 192.168.16.189:4090,即 agent 进程在跑);② 建会话 POST /api/session 200、触发 POST /api/session/{id}/prompt(body 字段是 text,非 prompt,旧脚本用错字段且假设建会话即自动运行 → 这是 B-56 的客户端侧根因之一,本轮已修复:_dispatch_189.cjs);③ 但所有模型调用均 outcome=failed(实测 deepseek-v4.1-flash-free/opencode、glm-5.3-flash-free/opencode、iceman-free/opencode、deepseek3.2/axon、qwen3.5/axon 全部失败/超时)。④ GET /api/config 证实 189 C:\Users\Administrator\.config\opencode\opencode.json 中 agnes/sensenova/axon 三个 provider 均无 apiKey(apiKey present=false),opencode-free 模型又需账号授权 → 189 无任一可用 LLM 后端,故 agent 每次运行必败。⑤ ssh -p 22 iwt@192.168.16.189 → Connection refused(SSH 不可达),无法远程改配置/重启。结论:189 派发通道无法从本机远程恢复,根因在 189 节点缺 LLM 凭证;且按安全规约不处理密钥。客户端触发流程已修对,待 189 配置好凭证即可直接派发 admin 套件。运维动作(闭环条件):① 在 189 本机给 opencode.json 的任一 provider(推荐 axon 或 sensenova)填入有效 apiKey(或设置对应环境变量);② 重启 189 的 opencode 服务;③ 用 _dispatch_189.cjs 冒烟(OPENCODE_SERVER_PASSWORD='...' node _dispatch_189.cjs "node -v" 期望 outcome=success)。凭证就绪后 B-56 即可闭环,后续轮次 admin 浏览器套件可改派 189 减负本机。 | 测试负责人(第 93 轮实测定位) | 2026-11-08 20:43 | 待处理(运维:189 配置 LLM 凭证 + 重启;客户端已修) |
| B-74(第 92 轮新增) | langgraph 测试装置 ASGITransport 不触发 FastAPI startup → 6 例 checkpointer None 500 | 测试 | A 类测试装置(第 92 轮实测,2026-11-08 22:1x)。tests/test_auto_tag.py×5 + tests/test_chat.py×1 均 RuntimeError("checkpointer 未初始化,请确保 app startup 已调用 init_checkpointer()")。根因:测试用 httpx.ASGITransport(app=app) 直连 ASGI,不执行 FastAPI @app.on_event("startup")(app/main.py:39),故 app/checkpointer.py 的 init_checkpointer() 从未调用,checkpointer 全局单例保持 None → 6 例恒 500。非生产缺陷(生产 uvicorn 正常走 startup)。测试侧自处置:tests/conftest.py 加 session fixture 显式 await init_checkpointer()(或改用 LifespanManager 触发 lifespan),修复后 6 例转绿 + 251 节点拉取复验。 | 测试负责人(第 92 轮实测登记) | 2026-11-08 22:1x | 待处理(A 类,测试自处置) |
| B-65-Update(第 92 轮 · 连续第 4 轮 · 精确拆分) | langgraph /api/v1/analyze 恒 500(checkpointer 缺 thread_id) | 研发 | 连续第 4 轮未修(2026-11-08 22:1x)。本轮 251 派发 pytest tests/ --ignore=tests/qna 实测 44 收集 / 36 过 / 8 红;其中 test_analyze.py 2 例仍 assert 500 == 200,异常 ValueError: Checkpointer requires one or more of the following configurable keys: thread_id, checkpoint_ns, checkpoint_id。本轮精确拆分:checkpointer 8 红 = B-65 产品缺陷 2(analyze,缺 thread_id config)+ B-74 测试装置 6(auto_tag 5 + chat 1,startup 未触发)。LLM key 401(4 例,R90 曾归因)本轮已归零。闭环判据不变:两例 200 转绿 | 测试负责人(第 92 轮复现登记) | 2026-11-08 22:1x | 待处理(P1,连续第 4 轮) |
| B-75(第 93 轮新增) | signature.landscape.layout | 研发 | P1 预期 RED(第 93 轮实测,2026-11-08 22:27)。SRS DOC-2026-11-08-signature-landscape-fix(手签名横屏适配,能力键 signature.landscape.layout,纯前端 2 文件纵切,状态「待开发」)随 commit a7edf5698 合入。测试侧已补 tests/test-cases/signature.md(TC-SIG-01~05 / -E×3 / -N01,覆盖 R1 canvasHeight 不重算 / R2 rpx 放大 / R3 rect 未刷新 + 旋转兜底 + 竖屏回归 + 异常防御)。实现 signature.vue 横屏高度重算 + rpx→px 化 + hand-signature.vue 新增 refreshRect() 后用例转绿。影响:用户目标①暂未达成(用例为预期 RED);但 SRS 变更→测试用例更新闭环已满足。 | 测试负责人(第 93 轮实测登记) | 2026-11-08 22:27 | 待处理(P1,预期 RED,待实现) |
| B-76(第 93 轮新增) | admin-desktop 非确定 flaky | 测试(自处置) | 第 93 轮实测(2026-11-08 22:27)。admin-desktop 5 例中稳定 4 通过 + 1 非确定失败:首跑 TC-A-U04 失败、独立复跑 TC-A-U01 失败、且偶发 skip(视登录页/滑块+凭据时序)。较 R92「U04 单失败」升级为跨 U01/U04 非确定 flaky(live 站点登录页渲染/滑块时序脆弱,非固定用例)。修复建议:固定 waitForTimeout(5000) / test.skip(url.includes('/login')) 兜底改 waitForURL(/\/admin\/dashboard/, { timeout: 20000 }) 硬断言 + 复用登录态 storageState;维持 B-67「单轮红先独立复跑 ≥2 次 + curl 直探」三证纪律。 | 测试负责人(第 93 轮实测登记) | 2026-11-08 22:27 | 待处理(下轮自处置) |
| B-55-Close(第 93 轮闭环确认) | langgraph 251:9000 服务恢复(B-55 服务维度解除) | 运维/测试 | 闭环确认(第 93 轮 22:27)。192.168.16.251:9000/health → {"status":"ok","components":{"chromadb":{"status":"ok"},"llm":{"status":"ok"},"java_backend":{"status":"ok"}}};此前 R78~R91 长期 CLOSED。用户指令「langgraph 派 251」首度实质落地:251 部署节点 LIVE 实测 POST /api/v1/chat 返回有效 answer({"answer":"我来帮您搜索一些关于补钙的相关商品和文章,请稍等!",...}),证明 251 持有有效 LLM key 且推理端到端可用;:4096 opencode 仍 OPEN(R92 已派发 pytest 36/44)。 | 测试负责人(第 93 轮实测) | 2026-11-08 22:27 | 已解除(251:9000 服务恢复,llm/chromadb/java_backend 全 ok) |
| B-54-Update(第 93 轮重申) | langgraph 本机 venv LLM key 401 环境漂移 | 测试/运维 | 第 93 轮重申(2026-11-08 22:27)。本机 venv 跑 pytest tests/ --ignore=tests/qna 得 32 过 / 12 红,其中 test_intent.py×4 因 app.prompt_service 加载 intent_classifier 提示词 401 - Authentication Fails, Your api key: ****ocal is invalid / All connection attempts failed → 分类失败回退默认 chat → 断言 Intent.X==chat 失败。251 部署节点持有效 key 不受影响(R92 派发 36/44,本轮 :9000 llm:ok);本机 12 红 = B-65(2) + B-74(6) + B-54 env(4)。建议正式派发 langgraph pytest 至 251:4096 消除本机 env 假红。 | 测试负责人(第 93 轮实测登记) | 2026-11-08 22:27 | 待处理(派 251 消除 env 假红) |
| B-77(第 94 轮新增) | 251 POST /api/v1/chat 挂起无响应(同节点 /health 200) | 研发/运维 | P0 环境/部署回归(第 94 轮实测,2026-11-08 23:10~23:25)。192.168.16.251:9000/health → 200 {"status":"ok"}(6ms)、/docs 200(8ms),但 POST /api/v1/chat {"query":"你好","user_id":251} 两次探测均 0 字节超时(75s / 200s,curl status=000)。R93(22:27)同接口曾返回有效 answer → 22:46~22:50 节点部署(.cfc-deploy.lock/cfc-deploy.log 时间戳)后能力退化。影响 AI 管家线上主链路。闭环:定位 LLM/检索调用缺超时 → 加 timeout+熔断+降级;新增 tests/e2e-live/langgraph-chat-smoke.spec.js(200+answer 非空+<30s)连跑 3 次全绿。 |
| B-78(第 94 轮新增) | 251 部署节点无 `cfc-langgraph` 源码 → pytest 无法派发(G10 真因) | 运维 | **P1 派发阻断(第 94 轮取证,2026-11-08 23:00)**。251 上 `ls /home/iwt/.cfc/langgraph` 仅含 `memory/`(Chroma 数据),**无 `tests/`**;`find / -maxdepth 6 -type d -name cfc-langgraph` 仅命中 `/tmp/opencode/*` 历史会话克隆(代码陈旧)。两次派发 agent 均回报「未找到目录」(`_r94_langgraph_251.log`/`_r94_langgraph_251b.log`)。此前 G10 长期记「端口不通」,本轮首次取到节点侧真因。闭环:251 落 `origin/cfclub` checkout + `.venv`(或提供 CI job),派发给出绝对路径后跑出 44 例。 |
| B-79(第 94 轮新增·已处置) | D/X 桥接鉴权用例「404 也算过」形成假绿 | 测试(已处置) | **P1 测试资产缺陷(第 94 轮修复,2026-11-08 23:05)**。`tests/e2e-live/dx-health-bridge-auth.spec.js` 原断言集合 `[401,403,404]`,端点未部署(404)被统计为 **passed**,门禁呈现「2 passed」实为「无端点可测」。已改为:200 **一律失败**(鉴权红线,任何情况未鉴权不得 200)+ 404 记 `test.skip` 并注明待上线。复跑输出 **2 skipped**。 |
| B-80(第 94 轮新增) | `tests/e2e/reset-db.sh` 默认凭据对 `cfc@192.168.16.204` 鉴权失败 → 主配置 E2E 必断 | 运维/测试 | **P2 环境+装置(第 94 轮实测,2026-11-08 23:00)**。`playwright.config.js` globalSetup 跑 `reset-db.sh` 报 `ERROR 1045 (28000): Access denied for user 'cfc'@'192.168.16.204'`;`cfc@123`/`zxyj@123`/`IwinTrue@123` 三候选用 `mysql` 客户端均被拒(非密码错即无主机授权)。结论:204 节点只能用 `playwright.config.live.js`(无 globalSetup)。闭环:DB 侧授 `cfc` 库权限 + 给 `db.js` 加 `SKIP_DB_RESET=1` 开关。 |
| B-75-Close(第 94 轮闭环) | signature.landscape.layout 实现落地并完成可执行化 | 研发(已实现)/ 测试(已补测) | **闭环(第 94 轮,2026-11-08 23:30)**。窗口内 `adb032a61`(22:51)实现 S1 高度重算 / S2 px 化 / S3 `refreshRect()`(`signature.vue` +69、`hand-signature.vue` +27)。测试侧新增 `cfc-frontend/__tests__/pages/signature/signature.landscape.test.js` **7 例全绿**(TC-SIG-01/01b/01c/02/04/04b/03-E),`tests/test-cases/signature.md` 状态由「待开发 RED」改为「已实现·已可执行化」。 |
| B-69-Update(第 94 轮 · 连续第 4 轮) | `/api/mind/` 匿名仍非 401 | 研发 | **连续第 4 轮未修(2026-11-08 23:20)**。全量实测 `MindFortuneControllerTest.testGetTodayFortuneWithoutAuth`:`JSON path "$.code" expected:<401> but was:<400>(@RequestAttribute("userId")绑定层先 400)。JwtInterceptor的LOGIN_REQUIRED_PATHS仍未含/api/mind/。 |
| B-76-Update(第 94 轮 · 本轮未复现) | admin-desktop 非确定 flaky | 测试(观察) | **本轮未复现(2026-11-08 23:00)**。playwright.config.live.js串行workers=1下 admin 5/5 全绿(3.7m,含 TC-A-U04 真实登录+滑块)。按 B-67 纪律单轮绿不足以判定消除,维持「观察」状态,需连续 2 轮绿后关闭。 |
| B-73-Update(第 94 轮 · 源码级复核) | S-cfc-79 diet 24 例 RED | 研发 | **仍为预期 RED(第 94 轮复核,2026-11-08 23:00)**。grep -c "currentTab|pagedFoods|loadMore" cfc-frontend/pages/diet/recommendation.vue= **0** → REQ1-7 均未落地,24 例红属 TDD RED 而非测试缺陷;与 R92/R93 逐例零漂移。 |
| B-55-Update(第 94 轮 · 服务在线但 chat 挂起) | 251 langgraph 服务维度在线、能力维度退化 | 运维 | **第 94 轮(2026-11-08 23:20)**。:9000/healthok 维持(B-55 服务维度仍解除),但chat挂起另立 **B-77**。 |
| B-77-Close(第 95 轮 · 第 3 轮确认后闭环) | 251 langgraphPOST /api/v1/chat挂起 | 研发/运维(已修复) | **已解除(2026-11-09 03:1x,251 端点派发实测)**。本轮经 251 opencode 通道带 50s/90s/120s 超时逐级探测:① 错误参数 → **422 快速返回**(缺 query/user_id,6ms);② user_id 传字符串 → **422 int_parsing**(5ms);③ 正确参数{query,user_id:995,enable_chat_visual:false}→ **200 完整问答 JSON 返回**(儿童成长家庭助手),/health200{"status":"ok"}。结论:**服务已恢复响应与推理能力,不再挂起**,B-77 解除。对比 R94(30s/60s 两次 0 字节挂起)为确定性改善,非短时抖动 | 测试负责人(第 95 轮派发实测闭环) | 2026-11-09 03:15 | **已解除** |
| B-78-Close(第 95 轮 · 源码就位 + pytest 实派) | 251 无cfc-langgraph源码 → pytest 无法派发 | 运维(已补齐) | **已解除(第 95 轮,2026-11-09 02:50 前后)**。251 上/sc-data/cfc/cfc-langgraph**已存在**(git repo,HEADb6145f156,02:10 更新,含tests/、tests_contract/、.venv/bin/pytest、Python 3.11.13)→ 上轮「目录不存在」结论已过期。**251 实派 pytest(经 opencode bash 工具):44 collected / 36 passed / 8 failed / 71.7s**——8 红(analyze 2 = B-65 checkpointer、auto_tag 5 + chat 1 = 装置 ASGITransport 不触发 startup 致 chromadb/记忆依赖未初始化;live chat 200 证明非生产缺陷)。**intent 4 例在 251 转绿**(模型可用),本机 4 红为****ocalkey 401 环境差异。langgraph 测试派发 251 指令已实质落地 | 测试负责人(第 95 轮实测) | 2026-11-09 02:55 | **已解除** |
| B-56-Update(第 95 轮 · 251 派发通道根因定位) | 251 opencode 派发会话 failed / tokens=0 | 测试(自处置) | **根因定位并修复(第 95 轮,2026-11-09 03:00)**。上轮 251 派发outcome=failed, tokens=0(模型未被调用即失败)根因=**本地派发脚本默认 model=deepseek3.2 + provider=axon,而 251 opencode 配置中不存在axonprovider**(/api/config实际含 agnes/etotem/etotem-llm/zcode;etotem 有 deepseek/minimax-m2/glm-5/gpt-5)。改用OPENCODE_PROVIDER=etotem OPENCODE_MODEL=deepseek→ **OUTCOME succeeded、tokens 正常**(input 2094/output 1434)。脚本已修:识别succeeded/success双态 + 从/api/session/{id}/message拉取 assistant 文本。**后续派发实证**:环境探活 5 组命令、cfc-langgraph 存在性直探(A/B/C/D 布尔+ls+git log)、pytest 全量派发、chat live 三层探测全部成功回传 | 测试负责人(第 95 轮实测) | 2026-11-09 03:00 | 已处置(通道可用) |
| B-81(第 95 轮新增) | 签名 v2 重写(S4-1 竖屏直签 + S4-2 canvas 2d)契约 RED 9 例 | 研发 | **P1 预期 RED(第 95 轮,2026-11-09 02:1x 实测)**。SRS 变更DOC-2026-11-09-signature-canvas2d-rewrite(**取代 11-08 横屏方案,整份作废**)已入库:S4-1 弃横屏改竖屏直签(删 enterLandscape/restorePortrait/h5DegradeHint/.rotate-hint)、S4-2 canvas 重写type="2d"(createSelectorQuery().in(this).select().fields({node:true})+ctx.stroke()同步绘制 +canvasToTempFilePath({canvas})+clearRect)。测试侧已按 SRS 变更更新用例:新增signature.canvas2d.test.js**11 例(9 RED 新契约 + 2 GREEN 保留契约**:computeCanvasHeight 保留、组件 props/emit 不变),旧横屏signature.landscape.test.js改名.superseded.js归档(验证已作废 S1/S2/S3 的 3 例假红移除,不参与 jest 匹配)。当前实现仍为旧横屏+旧 canvas → 9 RED 均归因「S4-1/S4-2 未实施」,待研发实现后转绿。闭环:signature.canvas2d.test.js9 RED 转绿 +tests/test-cases/signature.md状态置已实现 | 测试负责人(第 95 轮实测登记) | 2026-11-09 02:20 | 待处理(P1,预期 RED,待实现) |
| B-82(第 95 轮 · 环境差异) | langgraph intent 分类 4 例:251 绿 / 本机红(API key 401) | 环境/运维 | **环境差异记录(第 95 轮,2026-11-09 02:50)**。test_intent.py4 例(classify analysis/recommend/mind/health):251 实跑 **4/4 绿**(模型可用);本机 4 红(Your api key: ****ocal is invalid→ 意图分类失败默认 CHAT,B-54 同源)。非生产缺陷、非回归——同 HEAD 同源码,差异仅模型凭据可用性。建议:本机 venv 注入有效 LLM 凭据后 intent 4 例预期转绿;**权威口径以 251 派发结果为准(36 过/8 红)** | 测试负责人(第 95 轮实测) | 2026-11-09 02:55 | 待处理(环境,低优先) |
| B-75-Update(第 95 轮 · 作废) | signature.landscape.layout 被 v2 重写取代 | 测试(登记) | **作废(第 95 轮,2026-11-09 02:05)**。旧 SRSDOC-2026-11-08-signature-landscape-fix已被DOC-2026-11-09-signature-canvas2d-rewrite**整份取代(含 B-75 的 S1/S2/S3 实现adb032a61作废,不再按旧任务书实施)**。能力键由signature.landscape.layout迁移为signature.canvas2d.rewrite(B-81)。旧契约 7 例(TC-SIG-01~04b/-03E)中 3 例(02/04/04b)验证已作废需求 → 已从执行范围移除(归档.superseded.js),其余 4 例能力(computeCanvasHeight 竖屏计算、getPos 兜底)并入 v2 契约保持守护 | 测试负责人(第 95 轮登记) | 2026-11-09 02:05 | 已作废(由 B-81 接替) |
| B-83(第 96 轮新增) |cfc-frontendS-cfc-97diet.recommendation.healthAdjustUi8 例 RED 契约测试 | 研发 | **P1 预期 RED(第 96 轮实测,2026-11-09 04:31)**。cfc-frontend/tests/diet/recommendation.healthAdjustUi.test.js(commiteea38d6ec,S-cfc-97)随 SRS 变更docs/superpowers/specs/2026-11-09-diet-recommendation-health-questionnaire-adjust.md(§2 调整分级语义 blocked/warning/boost/normal、§3 前端 B1-B3、§4 验收 V/C-1/6)新增;本轮 jest 实跑 **8 失败**(B2 食物卡片 adjustment 提示条 5 + B3 filteredFoods 分组 3)。均为「功能未实现」类断言。非既有用例回归;前端其余 371 通过用例零转红。性质 = 预期 RED(S-cfc-97 处于 RED 态,待研发实现recommendation.vue调整提示条与分组)。影响:用户目标①暂未达成(8 红);但「SRS 变更→测试用例更新」闭环已满足。通知研发:实现 S-cfc-97 使 8 例转绿。闭环:研发实现 → 该套件 8/8 全绿 + 状态机 S-cfc-97 置 YELLOW | 测试负责人(第 96 轮实测登记) | 2026-11-09 04:31 | 待处理(P1,预期 RED,待实现) |
| B-55-Reopen(第 96 轮再断) | 251:9000/4090 CLOSED,langgraph 派 251 通道再次中断 | 运维 | **P1 派发阻断(第 96 轮实测,2026-11-09 04:31)**。探活192.168.16.251:9000→ HTTP 404、192.168.16.251:4090→ closed(连接拒绝)。R95 曾记 B-55-Close(251:9000 服务恢复、llm/chromadb/java_backend 全 ok),本轮复探确认服务维度再次下线。影响:用户指令「langgraph 部署于 251 应派发该节点」本轮无法落地,langgraph 测试退回本机 venv 兜底(44/32/12,其中 intent 4 例因本机 LLM key 401 环境红,权威口径缺失)。闭环:运维放通 251:9000(uvicorn langgraph 服务)+:4090(opencode),使cfc-langgraph源码节点可实派 pytest | 测试负责人(第 96 轮实测) | 2026-11-09 04:31 | 待处理(运维:放通 251 端口) |
| B-81-Update(第 96 轮 · 连续第 2 轮) | 签名 v2 重写(S4-1/S4-2)契约 9 例 RED 未变 | 研发 | **连续第 2 轮未修(2026-11-09 04:31)**。本轮 jest 实跑signature.canvas2d.test.js仍 **9 失败 / 2 通过**(TC-SIG2D-01~07 + 01b/01c/03b),源码级确认signature.vue/hand-signature.vue仍为旧横屏+旧 canvas 实现(S4-1 竖屏直签、S4-2type="2d"重写均未落地)。研发负责人 04:10 轮记「签名 v2 实现未推(待 08:15 派)」,S-cfc-116 已入池。闭环判据不变:9 RED 转绿 +tests/test-cases/signature.md` 状态置已实现 | 测试负责人(第 96 轮复现登记) | 2026-11-09 04:31 | 待处理(P1,预期 RED,待实现) |
| B-84(第 97 轮新增) | langgraph tests/test_chat.py 走真实 LLM 且无超时 → 套件不收敛 | 测试/研发 | P1 套件非终止(第 97 轮实测,2026-11-09 05:20~05:50)。本机 venv pytest tests --ignore=tests/qna 运行 >35 分钟未结束(后因 CPU 争抢主动终止);251 实派首次尝试同样 >10 分钟未收敛(251 agent 只能转后台等待)。根因:test_chat_endpoint 串起「意图分类 → 主生成 → 任务提取 → 记忆 embedding」4 次真实 LLM 调用(provider etotem/deepseek,单次可达数十秒),且无 pytest-timeout、无 LLM 桩。影响:整套件无法在有界时间内给出汇总行,CI/251 派发都会挂死;本轮只能 --ignore=tests/test_chat.py 才拿到 10 failed / 33 passed / 183.67s。闭环:该用例加 @pytest.mark.timeout(120) 或 monkeypatch 掉 LLM/embedding(仅断言编排链路);pytest.ini 设 timeout = 180;复跑全量 ≤5 分钟自然结束 | 测试负责人(第 97 轮实测登记) | 2026-11-09 05:50 | 待处理(P1,套件非终止) |
| B-85(第 97 轮新增) | 251 部署实例与仓库依赖版本不一致:同源码 live 200 / pytest 500 | 研发/运维 | P1 定性修正(第 97 轮实测,2026-11-09 05:15)。251 /sc-data/cfc/cfc-langgraph HEAD 4f1cf92ec(branch cfclub)实派 pytest:test_analyze.py 2 例 500,异常 ValueError: Checkpointer requires one or more of the following 'configurable' keys: thread_id, checkpoint_ns, checkpoint_id;但同节点 live HTTP POST /api/v1/analyze {report_id:1,user_id:1,focus:"general"} → 200 完整分析 JSON(15.77s),POST /api/v1/chat {query,...} → 200(28.44s)。本机 venv(langgraph 0.6.11)对同一源码直接抛同一 ValueError。结论:不是研发已修,而是运行实例的 langgraph 版本低于仓库锁版本(旧版不强制 thread_id)——一旦依赖升级即 100% 500。B-65 因此维持 P0(源码级缺陷仍在)。闭环:同 B-65(去 MemorySaver() / 传 thread_id),并要求部署锁版本与 requirements 对齐,之后 live 与 pytest 应同时 200 | 测试负责人(第 97 轮实测登记) | 2026-11-09 05:15 | 待处理(P1,支撑 B-65 定性) |
| B-86(第 97 轮新增 · 度量) | tests/e2e/api/generated/cases.json 使「TC 锚点覆盖率」虚高 | 测试(口径) | P2 度量失真(第 97 轮实测,2026-11-09 05:35)。按 tests/e2e* + __tests__ + src/test 全量 grep TC 编号,台账 824 条中有 797 条命中,覆盖率看似 96.7%;抽样 6 条(TC-X-16 / TC-P-74 / TC-P-20-E / TC-P-18 / TC-S-N04 / TC-P-08-P)全部只命中 tests/e2e/api/generated/cases.json——该文件是描述性生成物,非可执行资产。剔除 --exclude-dir=generated 后,真实可执行锚点 95/824 = 11.5%(抽样验证:TC-G-05→ScG05AnonymousBrowseContractTest.java、TC-DV-06→assessment-appointment-functional.spec.js,均为真实用例)。与 B-30/B-32 同族陷阱(描述性产物被误判为测试资产)。闭环:所有「锚点/覆盖率」统计脚本必须排除 generated/;该目录加 .gitattributes 标注 linguist-generated,度量文档写明排除规则 | 测试负责人(第 97 轮实测登记) | 2026-11-09 05:35 | 待处理(P2,口径规则) |
| B-76-Close(第 97 轮闭环) | admin-desktop 非确定 flaky(TC-A-U04 首跑红 / U05 skip) | 测试(已自处置) | 已解除(第 97 轮,2026-11-09 05:10)。全量串行首跑 U04 红(断言「输入手机号后「登录身份」应自动带出」失败,耗时 7662ms)、U05 被 skip;独立复跑 U04 两次 2/2 通过(20.5s / 17.7s)、/api/admin-auth/account-roles curl 5/5 均 200 且 56~112ms → 按 B-67 三证判为装置时序竞态,非产品回归。根因:全量串行时 page.goto('/admin/login', {waitUntil:'domcontentloaded'}) 返回时 Vue 尚未挂载,fill() 触发的 @input 无监听器 → 500ms 防抖查询永不发出 → 身份恒为空。修复(tests/e2e-live/admin-live.spec.js):新增 waitLoginFormReady()(等手机号/密码输入框可见可编辑 + 登录按钮渲染 + !disabled && !readOnly)与 fillPhoneAndAwaitRoles()(waitForResponse(/api/admin-auth/account-roles/) 等 XHR 实际返回并断言 200,禁固定 sleep);waitIdentityAutoFilled 超时 6s→12s。复跑:admin 5/5、全套件 15/15 零 skip | 测试负责人(第 97 轮修复并复验) | 2026-11-09 05:10 | 已解除 |
| B-59-Close(第 97 轮闭环) | TC-A-U05 用 test.skip 吞掉前置登录失败 | 测试(已自处置) | 已解除(第 97 轮,2026-11-09 05:10)。原代码 test.skip(page.url().includes('/login'), '登录未通过(见 TC-A-U04)…'):U04 红时 U05 变 skipped,line reporter 汇总显示「1 skipped / 14 passed」,门禁看不到任何失败,而菜单可访问性实际根本没测(假绿)。改为硬断言 expect(page.url().includes('/login'), '前置登录未通过…').toBeFalsy()。修复后整套件 15 例全绿、零 skip | 测试负责人(第 97 轮修复并复验) | 2026-11-09 05:10 | 已解除 |
| B-55-Close(第 97 轮 · 复通) | 251 langgraph 派发通道中断 | 运维(已恢复) | 已解除(第 97 轮,2026-11-09 05:02)。探活:251:9000/health → 200 status ok(13ms)、/docs 200、/openapi.json 40 paths;251:4096(opencode)→ 401(服务在、需鉴权)、251:22 OPEN。pytest 实派成功:/sc-data/cfc/cfc-langgraph HEAD 4f1cf92ec branch cfclub,43 例 33 过 10 红 183.67s(会话 ses_e42f48001ffe68snntYwLew6N6)。另:251:4090/8000 CLOSED;189:22/4090 均 Connection refused(B-56 延续,该节点仍失联)。派发客户端修正:provider 默认 axon 在 251 不存在 → 必须显式 OPENCODE_PROVIDER=etotem OPENCODE_MODEL=deepseek,否则 outcome=failed, tokens=0(B-56 客户端侧根因复现) | 测试负责人(第 97 轮实测) | 2026-11-09 05:02 | 已解除 |
| B-69-Update(第 97 轮 · 连续第 5 轮 · 证据升级) | 4 个 /api/mind/** 位于公开白名单,匿名可达业务层 | 研发 | 连续第 5 轮未修(2026-11-09 05:20)。源码 cfc-backend/src/main/java/com/etotem/cfc/config/JwtInterceptor.java:79-82 把 /api/mind/alert/active、/api/mind/alert/checkin-alerts、/api/mind/traditional/mirror、/api/mind/traditional/compatibility 列入 PUBLIC_PATHS(匿名白名单),而非 LOGIN_REQUIRED_PATHS。线上匿名实测:POST /api/mind/alert/active → code 500「参数缺失:memberId」(已进 controller);POST /api/mind/traditional/mirror → code 200 data {};对照 POST /api/health/plan/list → 401。后端 MindFortuneControllerTest.testGetTodayFortuneWithoutAuth 断言 401 实际 400(@RequestAttribute 绑定层先 400,与 B-57 同族)。闭环判据升级:①4 条移入 LOGIN_REQUIRED_PATHS;②线上 4 端点匿名 curl 全 401;③MindFortuneControllerTest 转绿 | 测试负责人(第 97 轮实测登记) | 2026-11-09 05:20 | 待处理(P1,连续第 5 轮) |
| B-65-Update(第 97 轮 · 连续第 6 轮 · 定性修正) | langgraph /api/v1/analyze 源码级 checkpointer 缺 thread_id | 研发 | 连续第 6 轮未修(2026-11-09 05:15)。见 B-85:251 pytest 2 例 500 复现 ValueError,而同机 live 200;本机 venv(langgraph 0.6.11)同源码直接 ValueError。源码未变:cfc-langgraph/app/graphs/analysis_graph.py:96 checkpointer = MemorySaver()、app/api/analyze.py:35 await graph.ainvoke({...})(无 config)。推翻前几轮「线上 500」的表述——线上因依赖版本低而侥幸 200,属「未爆的 P0」。闭环:去 MemorySaver 或传 thread_id;部署锁版本;之后 pytest tests/test_analyze.py 2 例绿 + live 连跑 3 次 200 | 测试负责人(第 97 轮实测登记) | 2026-11-09 05:15 | 待处理(P0,连续第 6 轮) |
| B-87(第 97 轮新增 · 测试侧待处置) | 后端 A 类测试装置红例 37 例(桩/夹具/断言过期) | 测试 | P1 装置缺陷(第 97 轮实测,2026-11-09 05:58)。后端 143 红例中 37 例失败信息指向测试装置而非产品:CfCommissionServiceSettleTest 8(档位/依赖未 stub → Wanted but not invoked)、ArticleAutoTagServiceTest 4(verify taskExecutor.execute 与注入/实现不一致)、DimensionScoreServiceImplTest 4(No value present)、ArticleWorkflowTest 3(源码文案已改「仅已驳回或已撤回」,断言仍旧文案)、DailyCheckinStreakFlowTest 1 与 PlannerBindInviteFlowTest 1(doNothing 作用于非 void 方法)、GrowthRecordSyncFlowTest 3、DimensionRegistryMapContractTest 3、ServiceRoleApproveTest 2、Orchestration* 2、其余 6。影响:门禁信号被装置噪声污染,无法从通过率判断产品健康度。闭环:逐类对齐(文案/桩/断言/注入名),定向 mvn -Dtest=A,B,C -DfailIfNoTests=false test(类分隔必须用逗号,+ 会静默 0 执行)→ 37 例转绿且其余类零转红,后端通过率预期 94.75%→约 96.0% | 测试负责人(第 97 轮实测登记) | 2026-11-09 05:58 | 待处理(P1,下轮自处置) |
| B-88(第 98 轮新增 · 虚假声称登记) | GuheEvidenceIsolateContractTest 11/12 红 vs 研发声称「12/12 绿」(提交 14f238ac6) | 研发 | P1 事实链不符(第 98 轮核查,2026-11-09 08:10)。研发声称 14f238ac6「G-3 evidenceIsolate 12/12 绿」,核查结论:①git merge-base --is-ancestor 14f238ac6 HEAD = false —— 该提交不在当前 HEAD 链上;②cfclub 源码 grep tagEvidence / canEnterRecommendationBasis = 0 命中(契约方法未实现);③GuheEvidenceIsolateContractTest 实测仍 11/12 红。判定:自证与事实不符(与历史 P27/P67 同族虚假声称),实现未合入。闭环:研发复核——若已实现请给出实际合入 cfclub 的 SHA;若未合入按 RED 契约继续实现(AttributionComplianceGate#tagEvidence/canEnterRecommendationBasis/isExistenceRecordOnly),使 12/12 转绿且提交在链 | 测试负责人(第 98 轮核查登记) | 2026-11-09 08:10 | 待处理(P1,事实链复核) |
| B-61-Close(第 98 轮闭环) | /api/health/plan/generate/adjust/attribution 匿名越权(200) | 研发(已修复) | 已解除(第 98 轮,2026-11-09 08:05)。live 实测:/api/health/plan/generate、/api/health/plan/adjust、/api/health/plan/attribution 匿名访问全部返回 401(此前连续多轮 200,P0 鉴权回归)。health-contract 套件 13/13 维持全绿。P0 解除 | 测试负责人(第 98 轮实测闭环) | 2026-11-09 08:05 | 已解除 |
| B-81-Update(第 98 轮 · 实现验证通过) | 签名 v2 重写(S4-1 竖屏直签 + S4-2 canvas 2d) | 研发(已实现)/ 测试(已验证) | 实现验证通过(第 98 轮,2026-11-09 08:13)。研发推送 feature/signature-canvas2d@c0db9643c(feat(DOC-2026-11-09-signature-canvas2d-rewrite)),cfclub 亦合入 test(S-cfc-116) 契约测试补全 + 装置修正(7d7c0b23a:01c 仅匹配调用形式 + 03b 双断言)。测试侧提取修正版契约在实现分支下定向复跑:11/11 全绿(TC-SIG2D-01~08,16.9s)。注意:cfclub HEAD ef401f717 尚未合入实现(仅测试补全)→ cfclub 上 canvas2d 9 例仍为预期 RED。闭环:实现合入 cfclub → 前端 9 RED 转绿 + tests/test-cases/signature.md 置已实现 | 测试负责人(第 98 轮复验登记) | 2026-11-09 08:13 | 待合入 cfclub(实现已验证) |
| B-65-Update(第 98 轮 · 连续第 7 轮) | langgraph /api/v1/analyze checkpointer 缺 thread_id | 研发 | 连续第 7 轮未修(2026-11-09 08:15)。251 派发 pytest:test_analyze.py 2 例 500(ValueError: Checkpointer requires ... thread_id)。源码未变:analysis_graph.py:96 MemorySaver()、analyze.py:35 ainvoke 无 config。B-85 定性保留(live 200 属依赖版本低侥幸)。闭环判据不变 | 测试负责人(第 98 轮复现登记) | 2026-11-09 08:15 | 待处理(P0,连续第 7 轮) |
| B-69-Update(第 98 轮 · 连续第 6 轮) | 4 个 /api/mind/** 位于公开白名单 | 研发 | 连续第 6 轮未修(2026-11-09 08:15)。本轮未定向复跑 MindFortuneControllerTest(后端仅跑契约 15 类);R97 证据(PUBLIC_PATHS:79-82 + 线上匿名 200)仍有效,无研发修复提交触达(git log --oneline cfclub -- JwtInterceptor.java 无新动)。闭环判据不变:4 条移入 LOGIN_REQUIRED_PATHS → 测试转绿 + 线上全 401 | 测试负责人(第 98 轮确认登记) | 2026-11-09 08:15 | 待处理(P1,连续第 6 轮) |
| B-84-Update(第 98 轮 · 251 会话卡滞同源) | langgraph 套件非终止 / 251 首派会话卡在 git 同步 | 测试/研发 | 第 98 轮(2026-11-09 08:15)。251 首派会话(ses_e426b4328ffeMQ7vpfcN3UsCu4)轮询 780s 卡在「远程有更新,同步到最新」(agent 未完成 git 同步步骤);兜底:直接拉取 /api/session/{id}/message 取回完整结果 43/32/11。已备 dispatch_251_langgraph_r98b.py(git 同步加 timeout 90 硬超时 + 失败即用当前 HEAD + 会话兜底核查)。B-84 本体(test_chat.py 无超时)仍待处置 | 测试负责人(第 98 轮登记) | 2026-11-09 08:15 | 待处理(P1) |
| B-87-Update(第 98 轮 · 顺延) | 后端 A 类测试装置红例 37 例 | 测试 | 顺延(第 98 轮,2026-11-09 08:16)。本轮后端仅定向跑契约 15 类(R97 全量基线仍有效),A 类 37 例未处置;下轮优先执行定向修复(mvn -Dtest=逗号分隔) | 测试负责人(第 98 轮登记) | 2026-11-09 08:16 | 待处理(P1,下轮自处置) |
| B-89(第 99 轮新增 · 节点失联) | 192.168.16.189 节点失联(22/4090 全拒)→ admin 浏览器自动化无法派发 | 运维 | P1 派发阻断(第 99 轮实测,2026-11-09 09:0x)。探活 192.168.16.189:22(curl 000)、192.168.16.189:4090/api/config(000,Connection refused)——与 R97 B-55-Close 的「189 仍失联」延续一致。用户指令「189 可跑浏览器自动化」本轮无法在该节点落地;降级方案:本机直跑 admin-live.spec.js(用 tests/node_modules/.bin/playwright 1.61.1 绕行双版本冲突),实测 5/5 全绿(含 TC-A-U04 真实登录 + U05 菜单,1.6m)。闭环:放通 189:4090(opencode)+189:22 或提供等价可派节点;复派 admin 应 5/5 | 测试负责人(第 99 轮登记) | 2026-11-09 09:0x | 待处理(运维:放通 189 节点) |
| B-82-Update(第 99 轮 · 251 intent 由绿转红) | langgraph intent 4 例:251 侧也转红(LLM key 401) | 环境/运维 | 第 99 轮(2026-11-09 09:0x)。251 派发 pytest:test_intent.py 4 例全红(classify_analysis/recommend/mind/health 均降级默认 CHAT,Your api key: ****ocal is invalid)。与 R95 的「251 intent 4/4 全绿」相比为退化信号(R95 曾证 251 模型可用);R97/R98 已见 251 侧 intent 波动,本轮确认转红。同节点 live POST /api/v1/chat、/api/v1/analyze 均 60s 无响应(B-77 复发特征,health 200)。建议:251 注入有效 LLM 凭据(etotem/deepseek)+ 排查 LLM 调用缺超时(B-84 同源);恢复后 intent 4 例预期转绿,live chat/analyze 恢复 <30s | 测试负责人(第 99 轮实测登记) | 2026-11-09 09:0x | 待处理(环境/运维,P1) |
| B-65-Update(第 99 轮 · 连续第 8 轮) | langgraph `/api/v1/analyze` checkpointer 缺 thread_id | 研发 | **连续第 8 轮未修(2026-11-09 09:0x)**。251 派发 pytest:`test_analyze.py` 2 例仍 500(`ValueError: Checkpointer requires ... thread_id`)。源码未变(`analysis_graph.py:96 MemorySaver()`、`analyze.py:35 ainvoke` 无 config)。B-85 定性保留。闭环判据不变 | 测试负责人(第 99 轮复现登记) | 2026-11-09 09:0x | 待处理(P0,连续第 8 轮) |
| B-84-Update(第 99 轮 · 251 会话同源卡滞) | langgraph 套件非终止 / 251 派发轮询取回延迟 | 测试/研发 | **第 99 轮(2026-11-09 09:0x)**。251 首派会话轮询 780s 未取到 JSON(`combined_len=14`),会话实际已产出完整结果(直接拉取 `/message` 得 43/32/11)。根因同 B-84/R98:agent 把结果写在 reasoning/文本但轮询聚合函数只认 `"pass"&"fail"&"total"` 同现的 JSON 串,且 `test_chat.py` 无超时拖慢收敛。已用「拉取 `/message` 兜底」取回,结果可用 | 测试负责人(第 99 轮登记) | 2026-11-09 09:0x | 待处理(P1) |
| B-90(第 99 轮新增 · 复发风险) | 251 `POST /api/v1/chat` 与 `/api/v1/analyze` 60s 无响应 | 研发/运维 | **P0 复发风险(第 99 轮实测,2026-11-09 09:0x)**。`251:9000/health` → `200 {"status":"ok"}`(13ms),但 `POST /api/v1/chat {"query":"你好","user_id":995}` 与 `POST /api/v1/analyze {"report_id":1,...}` 均 **60s 无响应(0 字节,curl 超时)**。B-77 曾在第 94 轮以同特征挂起、第 95 轮确认恢复(R95 三层探测 200),本轮再次出现「health ok + 业务接口挂起」。与 251 pytest 中 LLM key 401 同源(LLM 调用无超时,B-84)。影响 AI 管家线上主链路。闭环:同 B-84——LLM/检索调用加 timeout+熔断;恢复后 live chat/analyze <30s 且连跑 3 次 200 | 测试负责人(第 99 轮实测登记) | 2026-11-09 09:0x | 待处理(P0,复发风险) |
| B-91(第 100 轮新增 · 251 派发失败) | langgraph pytest 251 派发(用户指令核心项) | 环境/测试 | **P1(第 100 轮实测,2026-11-09 09:50)**。用户要求 langgraph 测试分派 251:本轮经 `OPENCODE_SERVER_PASSWORD` + `_dispatch_251.cjs`(BASE=http://192.168.16.251:4096)建会话 `ses_e4214df4affeHIAVyVSH7uxNh6`,agent `OUTCOME=failed`,未产出 pytest 结果(疑似 B-82 LLM key 无效导致 opencode agent 执行失败);本地 venv 兜底因 B-54 chromadb 性能退化 >18min 超时中止,未能刷新 251 权威数(沿用 R99 43/32/11)。闭环:运维注入 251 有效 LLM 凭据后重派,复验派发可成功取回结果 | 测试负责人(第 100 轮登记) | 2026-11-09 09:50 | 待处理(P1,251 派发失败) |
| B-91-Close(第 101 轮闭环) | langgraph pytest 251 派发 | 测试/环境(已恢复) | 已解除(第 101 轮,2026-11-09 10:35)。派发方式不变(opencode http://192.168.16.251:4096,OPENCODE_PROVIDER=etotem / OPENCODE_MODEL=deepseek),但结果取回改走 /api/session/{id}/shell + /api/shell/{id}/output 直读:会话 ses_e41f57acdffeAuONBYaPOTEpRo,节点仓库 09ba334af(branch cfclub),pytest tests --ignore=tests/qna --ignore=tests/test_chat.py -q → 43 collected / 32 passed / 11 failed / 95.46s,与 R97·R99 逐例零漂移。R100 的 OUTCOME=failed 实为「agent 只回 reasoning 不出最终报文」+ 轮询只认含 pass&fail&total 的 JSON 串(B-84 同源),不是派发通道故障。闭环判据达成:251 派发可成功取回权威数 | 测试负责人(第 101 轮实测闭环) | 2026-11-09 10:35 | 已解除 |
| B-81-Close(第 101 轮闭环) | 签名 v2 竖屏直签 + canvas 2d 重写 | 研发(已实现)/ 测试(已验证) | 已解除(第 101 轮,2026-11-09 10:05)。实现 c0db9643c 经 ff76e1607(2026-11-09 09:07)合入 cfclub;git merge-base --is-ancestor ff76e1607 HEAD = YES。测试侧定向复跑 npx jest __tests__/pages/signature → 14/14 全绿(含原 9 例 RED 契约转 GREEN);前端全量 383/40 中已无签名相关红例(R99 的 51 红 → 现 40 红,差集即签名 11 例)。台账 tests/test-cases/signature.md 状态段已由「待开发(RED)」更新为「已实现(GREEN)」。闭环:实现合入 ✔ + 前端 9 RED 转绿 ✔ + 台账置已实现 ✔ | 测试负责人(第 101 轮复验闭环) | 2026-11-09 10:05 | 已解除 |
| B-69-Update(第 101 轮 · 连续第 8 轮) | 4 个 /api/mind/** 位于公开白名单 | 研发 | 连续第 8 轮未修(2026-11-09 10:27)。按 JwtInterceptor.java:79-82 的 4 条白名单逐条线上实测(匿名 POST,无 token):/api/mind/alert/active → 200、/api/mind/alert/checkin-alerts → 200、/api/mind/traditional/mirror → 200、/api/mind/traditional/compatibility → 200(对照同批 /api/huawei-health/status 为 401,证明拦截器在听、非全局放行)。测试侧 MindFortuneControllerTest.testGetTodayFortuneWithoutAuth 仍红:期望 401 实得 400(@RequestAttribute 绑定层先 400,控制器 null 分支不可达,B-57 同族)。闭环判据不变:4 条移入 LOGIN_REQUIRED_PATHS → 测试断言改 401 + 线上全 401 | 测试负责人(第 101 轮线上复证登记) | 2026-11-09 10:27 | 待处理(P1,连续第 8 轮) |
| B-90-Update(第 101 轮 · 第 2 次复证) | 251 chat / analyze 无响应(health 正常) | 研发/运维 | 第 101 轮(2026-11-09 10:31)。251:9000/health → 200(22ms);POST /api/v1/chat {"query":"你好","user_id":995} → 45s 零字节超时;POST /api/v1/analyze {"report_id":1,"user_id":995}(按线上 /openapi.json AnalyzeRequest 契约构造)→ 90s 零字节超时。与同节点 pytest test_intent 4 例 api key ****ocal is invalid 同源:LLM 凭据失效 + 调用无 timeout/熔断(B-84)。影响 AI 管家与报告解析线上主链路。闭环:注入有效凭据 + 全部 LLM/检索调用加 timeout+熔断 → live chat/analyze 连跑 3 次 <30s 且 200 | 测试负责人(第 101 轮实测复证) | 2026-11-09 10:31 | 待处理(P0) |
| B-92(第 101 轮新增 · 环境) | 本机 D 盘 100% 满,无法建隔离工作树 | 运维 | **P1 测试环境(第 101 轮实测)**。`df`:`D: 294G 已用 293G,可用 455MB(100%)`。执行 `git worktree add D:/_wt_r101 origin/cfclub` 时逐文件报 `error: unable to create file ...: No space left on device`(`docs/系统测试/screenshots/*.png`、`docs/系统测试/test-assets`),`fatal: cannot create directory` → **无法建隔离副本做「实现分支定向复验」**(本轮因此只能对 `66873f066` 的 Guhe 实现做静态核对,未能实测转绿)。历史遗留树 7 个(`_wt_r0247/r0419/r0745/r077/r1054/r85/r91`,单个约 1.1GB,其中 `_wt_r0247` 有 26 项未提交改动**不可直接删**)。建议:运维清理已闭环的历史树(逐个 `git -C status --porcelain确认干净后git worktree remove --force)或扩容 ≥10GB;测试侧不再默认建树,改用主工作区只读跑 | 测试负责人(第 101 轮实测登记) | 2026-11-09 11:02 | 待处理(P1,运维) |
| B-93(第 101 轮新增 · 线上可用性) | 线上/api/全站 502 窗口(约 5~6 分钟) | 运维/研发 | **P1 可用性事件(第 101 轮实测)**。10:20 起https://cfc.iwintrue.com` 全站不可用:/api/system/health、/api/admin-auth/login、/api/huawei-health/status、`/api/mind/连测全部 **502**(重试 3 次一致),站点根/亦 **502**(/admin返回 302,静态路由仍在);10:26:01 起/api/system/health恢复 200 并连续 6 次稳定。判定:openresty 上游(后端实例)不可达,属**发布/滚动重启窗口**,与 B-72(R90 记录的同族 502 抖动)同类但本轮**全站级**、持续更久。影响:该窗口内的任何浏览器/接口用例都会得到假红(本轮 09:57~10:06 已跑完,未受影响)。建议:发布改蓝绿/灰度 + 上游健康检查;对/api/*增加 5xx 连续阈值告警。闭环:连续 3 天无 ≥60s 的全站 502 窗口 | 测试负责人(第 101 轮实测登记) | 2026-11-09 10:26 | 待处理(P1,运维) |
| B-94(第 101 轮新增 · 方法论/工具) | 251 派发结果「取不回来」的确定性解法 | 测试 | **改进落地(第 101 轮)**。根因(B-84/B-91 同源):派发客户端只轮询 sessionoutcome并从 **assistant 文本**里抠 JSON,而 (a) agent 常把结论写进 reasoning 不写正文、(b)pytest -q的tail输出不含pass&fail&total同现的 JSON 串 → 轮询必然空转 780s。本轮改用 opencode 原生 shell 通道:POST /api/session/{sid}/shell {"command": "..."}(204)→GET /api/shell取id/status/pid→GET /api/shell/{id}/output取 stdout({"data":{"output","size","truncated"}})→ 轮询GET /api/shell/{id}至status != running。**收益**:结果不依赖 LLM 输出格式、可拿原始 stdout、95.46s 收敛(对比 R98/R99 的 780s 超时)。注意:命令需**单行且避免子 shell 变量**(本轮首次派发用( ... && PY=... )导致PY为空、timeout: failed to run command '-m';改$(ls .venv/bin/python || command -v python3)后成功) | 测试负责人(第 101 轮落地) | 2026-11-09 10:40 | 已处置(通道固化,供后续轮次复用) |
| B-89-Update(第 101 轮 · 第 3 轮失联) |192.168.16.189节点失联 | 运维 | **第 3 轮失联(2026-11-09 09:55)**。189:22/189:4090探活均http=000(连接不可达),189:4090/health` 无响应 → admin 任务仍无法派发该节点。降级:本机单节点串行跑完 admin 5/5 + frontend 6/6 + health 13/13 + shop 4/4 = 28/28 全绿,遵守「每节点单任务」。闭环判据不变:放通 189:4090+22 后复派 admin 5/5 | 测试负责人(第 101 轮探活登记) | 2026-11-09 09:55 | 待处理(P1,运维) |
| B-88-Close(第 102 轮 · 争议解除) | GuheEvidenceIsolateContractTest 11/12 红 vs 研发声称「12/12 绿」 | 研发(已实现)/ 测试(复验) | 争议解除(第 102 轮定向复验)。R101 结论修正:研发实现 dae41ff59(S-cfc-121,2026-11-09 13:1x 合入 cfclub,git merge-base --is-ancestor dae41ff59 HEAD = YES)已落地 cfclub。定向复跑 GuheEvidenceIsolateContractTest:12 例 10 绿 / 2 红(NullPointer)(tagEvidence_unknownOrBlank_markedUnverified、canEnterRecommendationBasis_unverified_false,反射入口 :267)。较 R98 的 11/12 红大幅收敛,研发实现属实。残留 2 NPE 转常规 RED:核反射目标 bean 注册/方法签名。闭环判据更新:2 NPE 修复后 12/12 绿 | 测试负责人(第 102 轮定向复验登记) | 2026-11-09 14:0x | 更新(10/12 绿,剩 2 NPE 待研发核) |
| B-95(第 102 轮新增 · 节点失联) | 192.168.16.204 节点 opencode 不可达 → frontend 浏览器自动化无法派发 | 运维 | P1 派发阻断(第 102 轮实测,2026-11-09 14:0x)。ICMP ping 204 通(0ms 丢包 0),但 204:80/443/8080/4090/9000 全部 http=000(Connection refused)→ 无法经 opencode 派发 frontend 任务。此前 R101 已在本机降级跑 frontend(LIVE_BASE_URL=https://cfc.iwintrue.com);本轮确认 204 与 189 同属「ICMP 通、服务端口拒连」状态。闭环:放通 204:4090 或提供等价可派节点;复派 frontend 应 6/6 | 测试负责人(第 102 轮探活登记) | 2026-11-09 14:0x | 待处理(P1,运维) |
| B-96(第 102 轮 · 自处置 · 251 派发卡死根因) | 251 langgraph pytest 派发 30 分钟无输出(误判挂死) | 测试(自处置) | 已处置(第 102 轮)。首派(dispatch_r102_251_langgraph_v2.py)轮询 1800s 后 shell 超时,实为两个叠加问题:① 251 上有 R96 残留 pytest 进程(PID 3181300,nohup ... --ignore=tests/qna 从 R96 起跑了一整天)与本轮 pytest 并发抢资源;② 派发命令 pytest ... | tail -60 的管道缓冲使 30 分钟输出恒为空(tail 等管道关闭才吐),无法观测进度与 DONE 标记。处置:kill 残留进程 + 改用「后台 nohup ... > /tmp/r102_pytest.log 2>&1 + timeout 600 + 轮询 pgrep"+直接读 log 文件 → 43/32/11 于 69.66s 确定性取回。教训(B-94 强化):远程 shell 派发禁止 | tail 管道缓冲,一律后台写文件 + pgrep 轮询;运维宜给 251 加 pytest 进程超时巡检 | 测试负责人(第 102 轮自处置登记) | 2026-11-09 14:1x | 已处置(B-94 通道强化) |
| B-65-Update(第 102 轮 · 连续第 9 轮) | langgraph /api/v1/analyze checkpointer 缺 thread_id | 研发 | 连续第 9 轮未修(第 102 轮实测)。251 派发 pytest:test_analyze.py 2 例 500(ValueError: Checkpointer requires ... thread_id);live POST /api/v1/analyze 100s 零字节超时。源码未变(analysis_graph.py:96 MemorySaver()、analyze.py:35 ainvoke 无 config)。闭环判据不变:去 MemorySaver 或传 thread_id + 部署锁版本;之后 pytest 2 例绿 + live analyze 连跑 3 次 200 | 测试负责人(第 102 轮复现登记) | 2026-11-09 14:2x | 待处理(P0,连续第 9 轮) |
| B-69-Update(第 102 轮 · 连续第 9 轮) | 4 个 /api/mind/** 位于公开白名单 | 研发 | 连续第 9 轮未修(第 102 轮线上复证)。匿名 POST(无 token):/api/mind/alert/active、/api/mind/alert/checkin-alerts、/api/mind/traditional/mirror、/api/mind/traditional/compatibility 全部 200;对照 /api/huawei-health/status 401(拦截器在听)。JwtInterceptor.java:79-82 PUBLIC_PATHS 未动。闭环判据不变:4 条移入 LOGIN_REQUIRED_PATHS → 线上匿名全 401 | 测试负责人(第 102 轮线上复证登记) | 2026-11-09 14:2x | 待处理(P1,连续第 9 轮) |
| B-90-Update(第 102 轮 · 第 3 次复证 · 恶化) | 251 chat / analyze 无响应(health 正常) | 研发/运维 | 第 3 次复证且恶化(第 102 轮实测)。251:9000/health → 200(22ms);POST /api/v1/chat → 70s 零字节超时;POST /api/v1/analyze → 100s 零字节超时。与 pytest test_intent 4 例 api key ****ocal is invalid 同源。定性升级:LLM 调用从 R99 的「401 秒失败」退化为「挂起无响应」(无 timeout/熔断,B-84 同源)→ 线上 AI 管家与报告解析主链路挂起。闭环:注入有效凭据 + 全部 LLM/检索调用加 timeout+熔断 → live chat/analyze 连跑 3 次 <30s 且 200 | 测试负责人(第 102 轮实测复证) | 2026-11-09 14:2x | 待处理(P0,第 3 次复证) |
| B-89-Update(第 102 轮 · 第 4 轮失联) | 192.168.16.189 节点失联 | 运维 | 第 4 轮失联(第 102 轮探活)。189:22 / 189:4090 仍 http=000;ICMP ping 通(1ms)但服务端口全拒 → admin 仍降级本机(5/5 绿)。闭环判据不变 | 测试负责人(第 102 轮探活登记) | 2026-11-09 14:0x | 待处理(P1,运维) |
| B-91-Update(第 103 轮 · 复发) | langgraph pytest 251 派发(shell 通道)| 环境/测试 | 复发(第 103 轮实测)。251:4096 opencode Basic Auth 返回 200(v2.0.29,pid 113249),建会话成功;经 /api/session/{id}/shell 派发 pytest tests --ignore=tests/qna --ignore=tests/test_chat.py -q,两次均中途 fetch failed(会话 ses_e40f8bddeffehEMhzQ4moiy7sH / ses_e40f1c967ffeapp7DBNRhq8tFe),未取得 stdout。与 B-90 同源(251 LLM 挂起拖垮 opencode 会话)。降级:本地 venv 跑非 LLM 子集 → 31 passed / 1 环境失败(chromadb,B-54)in 100.89s;11 个 LLM 依赖测试本地挂起无法测 → 本轮 langgraph 未实测,沿用 R102 权威 43/32/11。闭环判据:运维注入 251 有效 LLM 凭据 + 251 加 pytest 进程超时巡检,复派应可取回结果 | 测试负责人(第 103 轮实测登记) | 2026-11-09 | 待处理(P1,251 派发复发) |
| B-65-Update(第 103 轮 · 连续第 10 轮) | langgraph /api/v1/analyze checkpointer 缺 thread_id | 研发 | 连续第 10 轮未修(第 103 轮)。本轮 251 派发未取回结果,沿用 R102 证据:test_analyze.py 2 例 500(ValueError: Checkpointer requires ... thread_id)。源码未变(analysis_graph.py:96 MemorySaver()、analyze.py:35 ainvoke 无 config)。闭环判据不变 | 测试负责人(第 103 轮确认登记) | 2026-11-09 | 待处理(P0,连续第 10 轮) |
| B-69-Update(第 103 轮 · 连续第 10 轮) | 4 个 /api/mind/** 位于公开白名单 | 研发 | 连续第 10 轮未修(第 103 轮)。本轮未定向复跑;R102 线上匿名 POST 实测 4 端点全 200 证据仍有效。闭环判据不变:4 条移入 LOGIN_REQUIRED_PATHS → 线上全 401 | 测试负责人(第 103 轮确认登记) | 2026-11-09 | 待处理(P1,连续第 10 轮) |
| B-97(第 104 轮新增 · 环境) | 跑测窗口内工作区被并发构建/写入 + D 盘 100% → 后端全量回归两次失效 | 运维/研发 | P1 环境(第 104 轮实测,两次独立报废)。① 跑次 1(15:05~15:29,mvn -o -B clean test):表面 336 类/2711 例/2206 过/433E=81.37%,但跑后 find target/classes -name "*.class" 仅 1173(主源码 2115),UserUtil.class 缺失,红例报 NoClassDefFoundError → 编译期日志明确 Compiling 2115 source files 无写盘错误,故为跑测期间产物被外部清空/替换,该跑次数据整体作废。② 跑次 2(15:50~16:25,不 clean):50/336 类后 GuideTeamControllerTest 于 16:13:52 启动、16:14:54 后日志冻结 11 分钟,随后 tasklist java.exe 计数归 0(进程整体消失),无 BUILD 结论;期间 target/classes 保持 2319 完整。③ 编译竞态:15:38 mvn compile 报 HealthKnowledgeBaseController:310 找不到符号 getLowSideJudgmentPatch(),而 UnifiedKnowledgeBaseService.java:525 存在该方法且 mtime=15:39、git status 显示内容==HEAD → 外部写入半成品/回滚瞬间被读到;15:44~15:49 复跑 BUILD SUCCESS(2319 class)。④ 磁盘:D: 294G/已用 293G/可用 470~755MB(100%),Playwright 启动清理触发 [safe-delete] ETIMEDOUT。降级处置:后端证据改为「16 类定向契约 132 例」+ 编译复验。闭环判据:跑测窗口内无并发 mvn clean/IDE Rebuild,且磁盘可用 ≥2GB 时,全量 mvn -o -B clean test 一次跑完且 target/classes 前后均为 2319 class | 测试负责人(第 104 轮实测登记) | 2026-11-09 16:25 | 待处理(P1,环境) |
| B-91-Close(第 104 轮 · 解除) | langgraph pytest 251 派发「取不回结果」 | 测试(自处置) | 解除(第 104 轮实测)。沿用 B-96 法并做两点强化,43/32/11 于 63.03s 确定性取回(与 R102 逐例零漂移):① 先 pkill -f 'venv/bin/python.*-m pytest' 清残留;② nohup timeout 900 ... > /tmp/r104_pytest.log 2>&1 & 后台写文件;③ 不再用 while pgrep ... ; do sleep 5; done 等待循环(本轮该循环 408s 未退出,主 shell 停在 running),改为另起一个 shell 直接 tail /tmp/r104_pytest.log,8s 取回完整尾部。教训:远程 shell 的「等待完成」是不可靠抽象,只信文件 | 测试负责人(第 104 轮自处置登记) | 2026-11-09 16:08 | 已处置(通道固化) |
| B-65-Update(第 104 轮 · 连续第 11 轮) | langgraph /api/v1/analyze checkpointer 缺 thread_id | 研发 | 连续第 11 轮未修。251 实派 pytest:test_analyze.py::test_analyze_endpoint 与 ::test_analyze_missing_report 均 assert 500 == 200。源码未变(analysis_graph.py:96 MemorySaver()、analyze.py:35 ainvoke 无 config)。闭环判据不变 | 测试负责人(第 104 轮复现登记) | 2026-11-09 16:08 | 待处理(P0,第 11 轮) |
| B-69-Update(第 104 轮 · 连续第 11 轮) | 4 个 /api/mind/** 位于公开白名单 | 研发 | 连续第 11 轮未修。匿名 POST:/api/mind/alert/active → 500「参数缺失:memberId」(已进控制器);alert/checkin-alerts、traditional/mirror、traditional/compatibility 均非 401。对照组(证明拦截器在听):/api/huawei-health/status、/api/health/plan/list、/api/xiaomi-health/status 全 401。口径修正:对照组必须用 POST——平台统一 @PostMapping,GET 会得到 HTTP 200 包裹 {"code":405},本轮首测用 GET 得出「huawei-health=200」的假信号,差点误判拦截器整体失效 | 测试负责人(第 104 轮线上复证) | 2026-11-09 16:20 | 待处理(P1,第 11 轮) |
| B-90-Update(第 104 轮 · 第 4 次复证 · 部分恢复) | 251 chat 挂起 / analyze 恢复 | 研发/运维 | 部分恢复(第 4 次复证)。POST /api/v1/chat → http=000,75.02s,size=0(仍挂起);POST /api/v1/analyze → 200 / 21.50s / 658B(此前连续多轮 90~100s 零字节,首次恢复);/health → 200/4ms。定性:LLM 链路一半恢复,仍缺 timeout/熔断(B-84 同源)。闭环:注入有效凭据 + 全部 LLM/检索调用加 timeout+熔断 → live chat/analyze 各连跑 3 次 <30s 且 200 | 测试负责人(第 104 轮实测) | 2026-11-09 16:25 | 待处理(P0,第 4 次) |
| B-89-Update(第 104 轮 · 第 6 轮失联) | `192.168.16.189` 节点失联 | 运维 | **第 6 轮失联**。`189:22`、`189:4090` TCP 均 CLOSED → admin 仍降级本机(5/5 绿)。闭环判据不变 | 测试负责人(第 104 轮探活) | 2026-11-09 15:04 | 待处理(P1,运维) |
| B-95-Update(第 104 轮 · 第 2 轮失联) | `192.168.16.204` 节点失联 | 运维 | **第 2 轮失联**。`204:4090` TCP CLOSED → frontend 仍降级本机(6/6 绿)。闭环判据不变 | 测试负责人(第 104 轮探活) | 2026-11-09 15:04 | 待处理(P1,运维) |
| B-92-Update(第 104 轮 · 恶化) | D 盘满导致工具链异常 | 环境 | **恶化(第 104 轮)**。可用空间 470~755MB(100%);不再只是 `git worktree` 失败,本轮 **Playwright 启动即 `[safe-delete] 操作失败: spawnSync genie-trash ETIMEDOUT`**(清理旧 outputDir 时回收站二进制超时)。规避:`--output=<全新目录>。闭环:释放 ≥10GB | 测试负责人(第 104 轮实测) | 2026-11-09 16:00 | 待处理(P1,运维) |
| B-88-Update(第 104 轮 · 第 3 次) |GuheEvidenceIsolateContractTest2 例 NPE | 研发/测试 | **仍有 2 NPE(第 3 次)**。定向复跑 **12 例 10 绿 / 2 E**:tagEvidence_unknownOrBlank_markedUnverified:159->call:267、canEnterRecommendationBasis_unverified_false:175->callBoolean:284->call:267(反射入口:267`)。与 R102 同点位、同例数 → 反射目标 bean 注册/方法签名仍需核 | 测试负责人(第 104 轮复验) | 2026-11-09 16:32 | 更新(10/12 绿,剩 2 NPE) |
| B-89-Update(第 105 轮 · 第 8 轮失联) | 192.168.16.189 节点失联 | 运维 | 第 8 轮失联。189:4090 TCP CLOSED(curl 000)→ 浏览器任务仍由本机串行执行(admin 5/5、frontend 6/6、shop 4/4、health 13/13 全绿)。闭环判据不变 | 测试负责人(第 105 轮探活) | 2026-11-09 16:40 | 待处理(P1,运维) |
| B-65-Update(第 105 轮 · 连续第 12 轮) | langgraph /api/v1/analyze checkpointer 缺 thread_id | 研发 | 连续第 12 轮未修。251 实派 pytest:test_analyze.py 2 例 assert 500 == 200。源码未变(analysis_graph.py:96 MemorySaver()、analyze.py:35 ainvoke 无 config)。闭环判据不变 | 测试负责人(第 105 轮复现登记) | 2026-11-09 16:51 | 待处理(P0,第 12 轮) |
| B-74-Update(第 105 轮 · 连续第 8 轮) | langgraph test_auto_tag.py 5 例红(LLM key 401) | 研发/运维 | 连续第 8 轮未修。251 实派:test_auto_tag.py 5 例全部 AssertionError(LLM 401)。闭环判据不变:251 注入有效 LLM 凭据 | 测试负责人(第 105 轮复现) | 2026-11-09 16:51 | 待处理(P1,运维) |
| B-82-Update(第 105 轮 · 连续第 8 轮) | langgraph test_intent.py 4 例红(分类降级) | 研发 | 连续第 8 轮未修。251 实派:test_intent.py 4 例 assert <Intent> 失败。闭环判据不变 | 测试负责人(第 105 轮复现) | 2026-11-09 16:51 | 待处理(P1,研发) |
| B-88-Update(第 105 轮 · 第 4 次) | GuheEvidenceIsolateContractTest 2 例 NPE | 研发/测试 | 仍有 2 NPE(第 4 次)。定向复跑 12 例 10 绿 / 2 E(同 R104 点位:tagEvidence_unknownOrBlank_markedUnverified:159、canEnterRecommendationBasis_unverified_false:175,反射入口 :267)。闭环判据不变 | 测试负责人(第 105 轮复验) | 2026-11-09 16:56 | 更新(10/12 绿,剩 2 NPE) |
| B-89-Update(第 106 轮 · 第 9 轮失联) | 192.168.16.189 节点失联 | 运维 | 第 9 轮失联。189:4090 TCP CLOSED(curl 000)→ 浏览器任务仍由本机串行执行(admin 5/5、frontend 6/6、shop 4/4、health 13/13 全绿)。闭环判据不变 | 测试负责人(第 106 轮探活) | 2026-11-09 17:12 | 待处理(P1,运维) |
| B-65-Update(第 106 轮 · 连续第 13 轮) | langgraph /api/v1/analyze checkpointer 缺 thread_id | 研发 | 连续第 13 轮未修。251 实派 pytest:test_analyze.py 2 例 assert 500 == 200。源码未变。闭环判据不变 | 测试负责人(第 106 轮复现登记) | 2026-11-09 17:24 | 待处理(P0,第 13 轮) |
| B-74-Update(第 106 轮 · 连续第 9 轮) | langgraph test_auto_tag.py 5 例红(LLM key 401) | 研发/运维 | 连续第 9 轮未修。251 实派:test_auto_tag.py 5 例全部 AssertionError(LLM 401)。闭环判据不变:251 注入有效 LLM 凭据 | 测试负责人(第 106 轮复现) | 2026-11-09 17:24 | 待处理(P1,运维) |
| B-82-Update(第 106 轮 · 连续第 9 轮) | langgraph test_intent.py 4 例红(分类降级) | 研发 | 连续第 9 轮未修。251 实派:test_intent.py 4 例 assert <Intent> 失败。闭环判据不变 | 测试负责人(第 106 轮复现) | 2026-11-09 17:24 | 待处理(P1,研发) |
| B-88-Update(第 106 轮 · 第 5 次) | GuheEvidenceIsolateContractTest 2 例 NPE | 研发/测试 | 仍有 2 NPE(第 5 次)。定向复跑 12 例 10 绿 / 2 E(同 R104/R105 点位:反射入口 :267)。闭环判据不变 | 测试负责人(第 106 轮复验) | 2026-11-09 17:35 | 更新(10/12 绿,剩 2 NPE) |
| B-92-Update(第 106 轮 · 延续) | D 盘满导致工具链异常风险 | 环境 | 延续(第 106 轮)。可用 461MB(100%);本轮 Playwright 以 --output=<未占用目录> 规避 [safe-delete] ETIMEDOUT(浏览器 28/28 无假红)。闭环:释放 ≥10GB | 测试负责人(第 106 轮实测) | 2026-11-09 17:40 | 待处理(P1,运维) |
| B-98-Close(第 106 轮 · 测试窗口内闭环) | GuheLowSideRuleLoad T3 判据 7F | 研发 | 已闭环(第 106 轮复核转绿)。首跑于 ba9fd2837 基线 7F;测试窗口内远程合入 aaad839ff feat(attribution.ruleLoad): 低侧判读规则入库 T3(S-cfc-124)(新增 3 规则码 + INTERPRET_LAW_LOW_SIDE + U_SHAPE_CALIBER_HINT + lowSideInterpretRules()),重新编译后定向复跑 GuheLowSideRuleLoadContractTest 10/10 全绿(BUILD SUCCESS)。闭环判据达成 | 测试负责人(第 106 轮复核) | 2026-11-09 18:00 | 已闭环 |
| B-65-Update(第 107 轮 · 连续第 14 轮) | langgraph /api/v1/analyze checkpointer 缺 thread_id | 研发 | 连续第 14 轮未修(P0)。251 实派 pytest 63.29s:test_analyze.py 2 例 assert 500 == 200 与既往完全一致。闭环判据不变 | 测试负责人(第 107 轮复现) | 2026-11-09 18:40 | 待处理(P0,第 14 轮) |
| B-74-Update(第 107 轮 · 连续第 10 轮) | langgraph test_auto_tag.py 5 例红(LLM key 401) | 研发/运维 | 连续第 10 轮未修。251 实派:test_auto_tag.py 5 例全部 AssertionError(LLM 401)。闭环判据不变:251 注入有效 LLM 凭据 | 测试负责人(第 107 轮复现) | 2026-11-09 18:40 | 待处理(P0,运维) |
| B-82-Update(第 107 轮 · 连续第 10 轮) | langgraph test_intent.py 4 例红(分类降级) | 研发 | 连续第 10 轮未修。251 实派:test_intent.py 4 例 assert <Intent> 失败。闭环判据不变 | 测试负责人(第 107 轮复现) | 2026-11-09 18:40 | 待处理(P1,研发) |
| B-88-Update(第 107 轮 · 第 6 次) | GuheEvidenceIsolateContractTest 2 例 NPE | 研发/测试 | 仍有 2 NPE(第 6 次)。定向复跑 132 例 130 绿 / 2 E(tagEvidence...:159 / canEnterRecommendationBasis...:175,均反射入口 :267)。闭环判据不变 | 测试负责人(第 107 轮复验) | 2026-11-09 18:35 | 更新(130/132,剩 2 NPE) |
| B-89-Update(第 107 轮 · 第 10 轮失联) | 192.168.16.189 节点失联 | 运维 | 第 10 轮失联。189:4090/4096/9000 全 000 → 浏览器任务仍本机串行(admin 5/5、frontend 6/6、shop 4/4、health 13/13 全绿)。闭环判据不变 | 测试负责人(第 107 轮探活) | 2026-11-09 18:15 | 待处理(P2,运维) |
| B-95-Update(第 107 轮 · 延续失联) | 192.168.16.204 节点失联 | 运维 | 延续失联。204:4090 等端口全 000 → frontend 仍降级本机(6/6 绿)。闭环判据不变 | 测试负责人(第 107 轮探活) | 2026-11-09 18:15 | 待处理(P2,运维) |
| B-92-Update(第 107 轮 · 延续) | D 盘满导致工具链异常风险 | 环境 | 延续(第 107 轮)。可用 458MB(100%);3 个 Playwright 输出目录规避 [safe-delete] ETIMEDOUT 成功(浏览器 28/28 无假红)。闭环:释放 ≥10GB | 测试负责人(第 107 轮实测) | 2026-11-09 18:35 | 待处理(P1,运维) |
| B-101-Update(第 107 轮 · 通道怪癖) | 251 opencode shell 通道 204 空体 | 测试 | 延续。POST /api/session/<sid>/shell 客户端 fetch 报 204 空体错误,但服务端已接受执行(shell 全程 running→exited,结果可取回)——B-94/B-96 家族已知怪癖,不影响派发 | 测试负责人(第 107 轮派发) | 2026-11-09 18:25 | 已知(测试侧绕行) |
| B-61-Close(第 108 轮 · E2E 确认闭环) | 健康方案 family 接口鉴权缺口 | 研发 | 已闭环(第 108 轮 E2E 确认)。本轮 health-contract E2E(TC-HP-U01/U02/U03)实测 /api/health/plan/adjust|attribution|generate 未鉴权均返回 401(正确拒访),此前 P0 缺口消除。闭环判据达成 | 测试负责人(第 108 轮 E2E) | 2026-11-09 18:40 | 已闭环 |
| B-65-Update(第 108 轮 · 连续第 15 轮) | langgraph /api/v1/analyze checkpointer 缺 thread_id | 研发 | 连续第 15 轮未修(P0)。本机 venv pytest:test_analyze.py 2 例 assert 500 == 200,与既往一致。251:9000 服务健康但 251:4090 agent 关闭 → 无法实派 251 | 测试负责人(第 108 轮复现) | 2026-11-09 18:40 | 待处理(P0,第 15 轮) |
| B-74-Update(第 108 轮 · 连续第 11 轮) | langgraph test_auto_tag.py 5 例红(LLM key 401) | 研发/运维 | 连续第 11 轮未修(P0 运维)。本机 venv:test_auto_tag.py 5 例 AssertionError(LLM 401)。闭环判据不变:251 注入有效 LLM 凭据 | 测试负责人(第 108 轮复现) | 2026-11-09 18:40 | 待处理(P0,运维) |
| B-82-Update(第 108 轮 · 连续第 11 轮) | langgraph test_intent.py 4 例红(分类降级) | 研发 | 连续第 11 轮未修(P1)。本机 venv:test_intent.py 4 例 assert <Intent> 失败 | 测试负责人(第 108 轮复现) | 2026-11-09 18:40 | 待处理(P1,研发) |
| B-89-Update(第 108 轮 · 第 11 轮失联) | 192.168.16.189 节点失联 | 运维 | 第 11 轮失联。189:4090 TCP CLOSED(curl 000)→ 浏览器任务仍本机串行(admin 5/5、frontend 6/6、shop 4/4、health 13/13 全绿) | 测试负责人(第 108 轮探活) | 2026-11-09 18:40 | 待处理(P2,运维) |
| B-91-Update(第 108 轮 · 复发) | 251 opencode agent 关闭 → langgraph 测试无法分派 251 | 运维 | 复发。251:9000 langgraph 服务 {"status":"ok"} 健康,但 251:4090 opencode agent CLOSED(curl 000)→ 无法经 opencode 在 251 执行 pytest;langgraph 测试回退本机 venv 兜底(与用户「langgraph 测试分派 251」指令冲突) | 测试负责人(第 108 轮探活) | 2026-11-09 18:40 | 待处理(P0,运维) |
| B-92-Update(第 108 轮 · 延续) | D 盘满导致工具链异常风险 | 环境 | 延续(第 108 轮)。浏览器 E2E 以独立 output 目录规避 [safe-delete] ETIMEDOUT 成功(28/28 无假红)。闭环:释放 ≥10GB | 测试负责人(第 108 轮实测) | 2026-11-09 18:40 | 待处理(P1,运维) |
| B-103-New(第 108 轮 · 瞬时) | 浏览器 admin account-roles 瞬时 502 | 测试 | 非阻塞(瞬时)。首跑 admin 全量 U04/U05 因 /api/admin-auth/account-roles 返回 502 红 2 例;隔离复跑 admin 5/5 全绿 → 判定为部署侧瞬时 502,非回归/非缺陷 | 测试负责人(第 108 轮复验) | 2026-11-09 18:40 | 已知(瞬时,已复验) |
| B-89-Close(第 111 轮 · 恢复派发) | 192.168.16.189 节点恢复 | 运维 | 已恢复(第 111 轮)。189:4090 探活 200,opencode agent 在线 → 成功派发 admin-desktop 套件实跑(4 PASS/1 FAIL,FAIL 为 TC-A-U01 截图超时环境噪声,本机复跑 5/5 确认非回归)。B-89 失联 11 轮后闭环 | 测试负责人(第 111 轮实派) | 2026-11-09 23:22 | 已闭环(189 恢复派发) |
| B-65-Update(第 111 轮 · 连续第 17 轮) | langgraph /api/v1/analyze checkpointer 缺 thread_id | 研发 | 连续第 17 轮未修(P0)。251 实派:test_analyze.py 2 例 assert 500 == 200,与既往完全一致。闭环判据不变 | 测试负责人(第 111 轮复现) | 2026-11-09 23:12 | 待处理(P0,第 17 轮) |
| B-74-Update(第 111 轮 · 连续第 13 轮) | langgraph test_auto_tag.py 5 例红(LLM key 401) | 研发/运维 | 连续第 13 轮未修。251 实派:test_auto_tag.py 5 例 AssertionError(LLM 401)。闭环判据不变:251 注入有效 LLM 凭据 | 测试负责人(第 111 轮复现) | 2026-11-09 23:12 | 待处理(P1,运维) |
| B-82-Update(第 111 轮 · 连续第 13 轮) | langgraph test_intent.py 4 例红(分类降级) | 研发 | 连续第 13 轮未修。251 实派:test_intent.py 4 例 assert <Intent> 失败(分类降级 chat)。闭环判据不变 | 测试负责人(第 111 轮复现) | 2026-11-09 23:12 | 待处理(P1,研发) |
| B-111-New(第 111 轮 · S-cfc-115 E2E 执行门控) | 251:3306 DB 重建权限 Access denied for 'cfc'@'192.168.16.204' | 运维 | 新登记。S-cfc-115 对应 E2E diet-recommendation-health-adjust.spec.js(TC-P-26-A/E)执行前置 globalSetup reset-db.sh 连 251:3306 被拒(cfc 账号来源 IP 白名单)→ 用例已登记入库但本轮无法执行。闭环判据:放通本机/204 来源 IP 3306 数据重建权限,或提供预置问卷数据的测试成员后实跑 3 用例全绿 | 测试负责人(第 111 轮登记) | 2026-11-09 23:40 | 待处理(P1,运维) |
| B-92-Update(第 111 轮 · 延续) | D 盘满导致工具链异常风险 | 环境 | 延续(第 111 轮)。本轮 Playwright 本机串行(frontend/shop/health)未现 [safe-delete] ETIMEDOUT。闭环:释放 ≥10GB | 测试负责人(第 111 轮实测) | 2026-11-09 23:30 | 待处理(P1,运维) |
| B-92-Close(第 112 轮 · 闭环) | D 盘满导致工具链异常 | 环境 | 已闭环。df -h /d → 294G 总 / 200G 用 / 94G 可用(69%)(R111 仅 458MB)。本轮 Playwright 未改造 output 目录即完成 28/28(无 [safe-delete] ETIMEDOUT),后端全量 59:51 正常写盘(337/337 XML 全产出)。闭环判据(释放 ≥10GB)达成 | 测试负责人(第 112 轮实测) | 2026-11-10 01:00 | 已闭环 |
| B-112-New(第 112 轮 · P0 契约未实现) | S-cfc-129 health.dataSource.bridgeWrite 整体未落地 | 研发 | 新登记(P0)。HealthDataSourceBridgeContractTest 14/16 红,消息内嵌 RED[health.dataSource.bridgeWrite]:① com.etotem.cfc.service.HealthDataSourceBridgeService 类不存在(bridgeHost_classExists/bridgeHost_hasBridgeMethod);② HealthSyncServiceImpl(华为)/XiaomiHealthServiceImpl(小米)未注入桥接(§3.2-2 触发点 A);③ schema.sql 的 health_dimension_scores.data_source 注释未扩 DEVICE(§6 ①);④ DimensionScoreServiceImpl.dataSourceRecordService 死注入未解除。附带缺口:docs/superpowers/specs 无 bridgeWrite 规格文件(§3.1/§3.2/§6 仅存在于测试与提交信息)→ 验收无依据。闭环判据:契约 16/16 绿 + 规格落盘 | 测试负责人(第 112 轮实测登记) | 2026-11-10 01:10 | 待处理(P0) |
| B-113-New(第 112 轮 · 节点派发通道) | 189 shell 通道不可用 / 251 shell 取回退化 | 运维 | 新登记(P1)。189:4090 端口 200(0.095s,B-89 端口层恢复)、会话 POST 200,但 POST /api/session/{sid}/shell 3 次(echo hi/带 cwd/带 background)均 204 且 /api/shell 列表恒为空 → 浏览器任务无法派发。251:首派 shell 可建(sh_1c114de0000133Q5hBT3tT5bFH,running),但 GET /api/shell/{id}/output 返回 {"_tag":"ShellNotFoundError"};其后 4 次建 shell(含 background:true/带 model/带 projectID)均 204 不产生对象 → pytest stdout 取不回,langgraph 回退本机 venv(43/32/11,与 251 历轮权威值逐例一致)。与 B-101(204 空体怪癖)同族但本轮退化为「建不出对象」。闭环判据:189 可实派 admin 套件 5/5;251 可实派 pytest 并取回 43/32/11 | 测试负责人(第 112 轮派发实测) | 2026-11-10 00:40 | 待处理(P1) |
| B-65-Update(第 112 轮 · 连续第 18 轮) | langgraph /api/v1/analyze checkpointer 缺 thread_id | 研发 | 连续第 18 轮未修(P0)。本机 venv:test_analyze.py 2 例 assert 500 == 200,异常 ValueError("Checkpointer requires one or more of the following 'configurable' keys: thread_id, checkpoint_ns, checkpoint_id")。源码未变(app/analyze.py:35 + analysis_graph.py:96 MemorySaver()) | 测试负责人(第 112 轮复现) | 2026-11-10 00:33 | 待处理(P0,第 18 轮) |
| B-74-Update(第 112 轮 · 连续第 14 轮) | langgraph test_auto_tag.py 5 例红 | 研发/运维 | 连续第 14 轮。本机 venv:5 例 chat 端点返回 500,根因为 ImportError('DLL load failed while importing chromadb_rust_bindings')(B-54 本机环境);251 侧同 5 例为 LLM 401(B-74 原判)。同 5 例双环境不同根因,需分别闭环:251 注入有效 LLM 凭据;本机补 VC++ 运行时 | 测试负责人(第 112 轮复现) | 2026-11-10 00:33 | 待处理(P1) |
| B-82-Update(第 112 轮 · 连续第 14 轮) | langgraph test_intent.py 4 例红(分类降级) | 研发 | 连续第 14 轮未修。4 例全部 assert <Intent.CHAT> == <Intent.ANALYSIS/RECOMMEND/MIND/HEALTH>,日志 401 Authentication Fails, api key ****ocal is invalid + Event loop is closed → intent_classifier.py:62 异常即静默降级 chat | 测试负责人(第 112 轮复现) | 2026-11-10 00:33 | 待处理(P1) |
| B-90-Update(第 112 轮 · 第 5 次复证 · 回退) | 251 chat/analyze 挂起 | 研发/运维 | 第 5 次复证且回退。251:9000/health → 200(15.9ms);POST /api/v1/chat → 000 / 40.0s / 0B;POST /api/v1/analyze → 000 / 40.0s / 0B(R104 曾记 analyze 恢复 200/21.5s,本轮回退为双挂起)。定性:LLM/检索调用无 timeout+熔断(B-84 同源),挂起比 500 更差(占连接池且无错误信号) | 测试负责人(第 112 轮实测) | 2026-11-10 00:25 | 待处理(P0,第 5 次) |
| B-69-Update(第 112 轮 · 连续第 12 轮) | /api/mind/** 鉴权缺口 | 研发 | 连续第 12 轮未修(P0)。① 线上匿名 POST /api/mind/fortune → HTTP 200(body {"code":400,"message":"用户不存在"},7.0s);② 后端单测 MindFortuneControllerTest#testGetTodayFortuneWithoutAuth → $.code expected:401 but was:400。③ 口径收窄:/api/mind/daily、/api/mind/list 实为 404(端点不存在),历轮「4 端点 200」需修正为实际存在端点 | 测试负责人(第 112 轮实测) | 2026-11-10 00:25 | 待处理(P0,第 12 轮) |
| B-89-Update(第 112 轮 · 端口恢复/通道不可用) | 192.168.16.189 节点 | 运维 | 端口层恢复、通道层不可用。189:4090 → 200(0.095s);但 shell 通道见 B-113。浏览器任务本机串行完成 28/28 | 测试负责人(第 112 轮探活) | 2026-11-10 00:12 | 部分恢复(详见 B-113) |
| B-95-Update(第 112 轮 · 第 3 轮失联) | 192.168.16.204 节点失联 | 运维 | 第 3 轮失联。204:4090 → 000(2.289s) | 测试负责人(第 112 轮探活) | 2026-11-10 00:12 | 待处理(P2) |
| B-114-New(第 112 轮 · 覆盖缺口) | HL-05「产品多选一购买任务」+1464 行实现零对应用例 | 研发/测试 | 新登记(P1 覆盖缺口)。56b327edd/130030548 合入 HealthPlanServiceImpl +688、ProductOrderService +61、MembershipService +35、ProductSelectionFlow.vue +475、health-plan-summary.vue +109;tests/test-cases、tests/e2e、tests/e2e-live 中无「产品多选一 / purchase task / ProductSelectionFlow」锚点 → 该链路当前零自动化覆盖。需求依据为既有规格 2026-11-07-health-plan-flow-rework-change.md(规格目录零新增)。闭环判据:补后端契约用例(选一约束/购买完成→生成执行任务/幂等)+ 前端 Jest + 1 条 E2E,全绿后登记台账 | 测试负责人(第 112 轮实测登记) | 2026-11-10 01:25 | 待处理(P1) |
| B-114-Update(第 113 轮 · 部分闭环) | HL-05「产品多选一购买任务」覆盖缺口 | 研发/测试 | 部分闭环(后端契约 ✓)。HealthPlanProductSelectionContractTest.java(08:42 补写稿,01:42 落盘)新增并实测:productOptions(planId/familyId 校验、归属校验、Service 异常映射、每组 ≤3 候选)、productSelect(selections 校验、幂等复用)、purchaseComplete(购买完成→生成执行任务)→ mvn -o test 编译+运行 EXIT=0 全绿。剩余:前端 Jest + E2E 各 1 条仍未补。闭环判据更新:后端 ✓ / 前端 Jest ✗ / E2E ✗ | 测试负责人(第 113 轮验证) | 2026-11-10 02:10 | 处理中(后端已闭环) |
| B-90-Update(第 113 轮 · 第 6 次复证) | 251 chat/analyze 挂起 | 研发/运维 | 第 6 次复证(P0 未修)。POST /api/v1/chat(完整参数 query+user_id)→ 000 / 60.0s / 0B(参数校验层已快速 422,过校验后挂起,定性 LLM/检索无超时熔断,B-84 同源);251:9000/health 200(8ms) | 测试负责人(第 113 轮实测) | 2026-11-10 02:18 | 待处理(P0,第 6 次) |
| B-69-Update(第 113 轮 · 连续第 13 轮) | /api/mind/** 鉴权缺口 | 研发 | 连续第 13 轮未修(P0)。线上匿名 POST /api/mind/fortune → HTTP 200 + {"code":400,"message":"用户不存在"}(0.16s),未 401 | 测试负责人(第 113 轮实测) | 2026-11-10 02:18 | 待处理(P0,第 13 轮) |
| B-95-Update(第 113 轮 · 第 4 轮失联) | 192.168.16.204 节点失联 | 运维 | 第 4 轮失联。204:4090 → 000 | 测试负责人(第 113 轮探活) | 2026-11-10 02:06 | 待处理(P2) |
| B-113-Update(第 113 轮 · 延续) | 189 shell 通道不可用 / 251 派发取回退化 | 运维 | 延续(P1)。189:4090 200、会话可建,shell 通道仍无法取回(本轮未重试强派,浏览器任务本机串行 28/28,单节点单任务纪律守约);251:实派 TC-*-251-langgraph-pytest-R113 会话建立 + prompt 200,但 13 分钟零 assistant 产出(B-101/B-113 同族退化)→ langgraph 回退本机 venv 43/32/11(146.70s,与 251 历轮权威值逐例一致)。闭环判据不变 | 测试负责人(第 113 轮实派) | 2026-11-10 02:20 | 待处理(P1) |
| B-65-Update(第 113 轮 · 连续第 19 轮) | langgraph /api/v1/analyze checkpointer 缺 thread_id | 研发 | 连续第 19 轮未修(P0)。本机 venv:test_analyze.py 2 例 assert 500 == 200,异常 Checkpointer requires ... thread_id(源码未变:app/analyze.py:35 + analysis_graph.py:96 MemorySaver()) | 测试负责人(第 113 轮复现) | 2026-11-10 02:20 | 待处理(P0,第 19 轮) |
| B-74-Update(第 113 轮 · 连续第 15 轮) | langgraph test_auto_tag.py 5 例红 | 研发/运维 | 连续第 15 轮。本机 venv:5 例失败(本机 chromadb DLL 环境);251 侧同 5 例 LLM 401 需注入有效凭据 | 测试负责人(第 113 轮复现) | 2026-11-10 02:20 | 待处理(P1) |
| B-82-Update(第 113 轮 · 连续第 15 轮) | langgraph test_intent.py 4 例红(分类降级) | 研发 | 连续第 15 轮未修。4 例 assert <Intent.CHAT> == <Intent.ANALYSIS/RECOMMEND/MIND/HEALTH>,日志 LLM 401 → 静默降级 chat | 测试负责人(第 113 轮复现) | 2026-11-10 02:20 | 待处理(P1) |
| B-112-Close(第 115 轮 · 闭环) | S-cfc-129 health.dataSource.bridgeWrite 未落地 | 研发 | 已闭环。47d203981(02:42)合入 HealthDataSourceBridgeService(174 行)+ 华为/小米同步同事务接线 + schema.sql data_source 注释扩 DEVICE + DimensionScoreServiceImpl 死注入解除。全量实测 HealthDataSourceBridgeContractTest 16/16 全绿(R112 为 14/16 红)→ §6 四项拍板(DEVICE / tier=2 / 触发点 A / 不加唯一索引)全部被契约锚定。闭环判据(契约 16/16 绿)达成;规格文件 2026-11-08-dx-health-bridge.md 亦已存在(R112「无规格」判定有误,本轮勘误) | 测试负责人(第 115 轮实测) | 2026-11-10 04:05 | 已闭环 |
| B-113-Close(第 115 轮 · 误判纠正 + 闭环) | 189 shell 通道不可用 / 251 派发取回退化 | 运维/测试 | 已闭环(原判定为误判)。openapi.json 实证:POST /api/session/{id}/shell 设计上恒返 204,且 GET /api/shell 只列 running、命令秒退即消失 → 旧派发器轮询列表必然 NONE。正确入口 POST /api/shell?location[directory]=<dir>(body {command,cwd})→ 返回 Shell.Info.id → GET /api/shell/{id}/output;长任务须「重定向日志 + 另起 shell tail」防对象回收。本轮实派成功:251 pytest 43/32/11(79.05s)、189 admin-desktop 5/5(1.9m,首次)。补充纪律:Git Bash 必带 MSYS_NO_PATHCONV=1,否则 /sc-data 被改写为本机路径。工具入库 docs/tdd/tools/dispatch_shell.cjs | 测试负责人(第 115 轮实派) | 2026-11-10 04:10 | 已闭环 |
| B-115-New(第 115 轮 · A 类装置) | 生产删字段导致夹具 NoSuchFieldException(21 例) | 测试 | 已自处置。S-cfc-130 移除 DimensionScoreServiceImpl.dataSourceRecordService 后,DimensionScoreServiceTest 仍反射注入该字段 → 全类 21 E。删夹具 @Mock 字段与 setField 一行(不改被测语义)→ 定向复跑 21/21 绿(4.98s)。教训:生产「死注入解除」类重构必须同步清理夹具反射注入,否则整类报错会被误读为产品大面积退化 | 测试负责人(第 115 轮实测) | 2026-11-10 03:52 | 已闭环 |
| B-115-New2(第 115 轮 · 度量勘误) | R112「specs 无 bridgeWrite 规格」判定有误 | 测试 | 勘误。docs/superpowers/specs/2026-11-08-dx-health-bridge.md 一直存在(含 §3.1 字段映射全表 / §4 SQL 契约 / §6 四项拍板),R112 的 grep 关键词未命中 bridgeWrite 字面 → 误判「验收无依据」。已在新用例文档 tests/test-cases/health-datasource-bridge.md 中把该规格逐条落 TC | 测试负责人(第 115 轮复核) | 2026-11-10 04:10 | 已勘误 |
| B-69-Update(第 115 轮 · 连续第 14 轮) | /api/mind/** 鉴权缺口 | 研发 | 连续第 14 轮未修(P0)。线上匿名 POST /api/mind/fortune → HTTP 200 + {"code":400,"message":"用户不存在"}(1.43s);后端 MindFortuneControllerTest#testGetTodayFortuneWithoutAuth → $.code expected 401 but was 400。闭环判据不变:JwtInterceptor 增 /api/mind/ | 测试负责人(第 115 轮实测) | 2026-11-10 04:12 | 待处理(P0,第 14 轮) |
| B-90-Update(第 115 轮 · 第 7 次复证) | 251 chat 挂起 | 研发/运维 | 第 7 次复证(P0 未修)。POST 251:9000/api/v1/chat(query+user_id)→ 000 / 45.0s / 0 字节;/api/v1/analyze 同参 → 422(入参校验层快速拒绝,业务层未穿透)。251:9000/health 200(6ms)。定性不变:LLM/检索无 timeout+熔断(B-84 同源) | 测试负责人(第 115 轮实测) | 2026-11-10 04:12 | 待处理(P0,第 7 次) |
| B-65-Update(第 115 轮 · 连续第 20 轮) | langgraph /api/v1/analyze checkpointer 缺 thread_id | 研发 | 连续第 20 轮未修(P0)。251 实派:test_analyze.py 2 例 assert 500 == 200,与既往逐例一致 | 测试负责人(第 115 轮复现) | 2026-11-10 04:08 | 待处理(P0,第 20 轮) |
| B-74-Update(第 115 轮 · 连续第 16 轮) | langgraph test_auto_tag.py 5 例红 | 研发/运维 | 连续第 16 轮。251 实派:5 例 AssertionError(LLM 401)。闭环判据不变 | 测试负责人(第 115 轮复现) | 2026-11-10 04:08 | 待处理(P1) |
| B-82-Update(第 115 轮 · 连续第 16 轮) | langgraph test_intent.py 4 例红(静默降级) | 研发 | 连续第 16 轮未修。4 例 assert <Intent.CHAT> == <Intent.ANALYSIS/RECOMMEND/MIND/HEALTH>;intent_classifier.py:62 异常即降级 chat | 测试负责人(第 115 轮复现) | 2026-11-10 04:08 | 待处理(P1) |
| B-15-Update(第 115 轮 · 新形态) | tests/qna 收集期错误中断整轮 pytest | 测试/研发 | 复发(新形态)。251 首派 pytest tests --ignore=tests/test_chat.py → ERROR tests/qna/test_graph.py(ModuleNotFoundError: No module named 'src.qna')→ Interrupted: 1 error during collection,0 例执行。加 --ignore=tests/qna 后 43 例正常。闭环判据:删除死资产或补 src/qna 包 | 测试负责人(第 115 轮实派) | 2026-11-10 04:02 | 待处理(P1) |
| B-95-Update(第 115 轮 · 第 5 轮失联) | 192.168.16.204 节点失联 | 运维 | 第 5 轮失联。204:4090 → 000(2.43s)。本轮浏览器任务由本机 + 189 承担,不受影响 | 测试负责人(第 115 轮探活) | 2026-11-10 04:00 | 待处理(P2) |
| B-36-Update(第 115 轮 · 零漂移) | 根级黑盒 23 例 16 红 | 测试 | 零漂移。cd tests && jest → 23 例 7 绿 / 16 红(与 R112/R113 逐项一致),仍为环境门控/凭据缺失所致 | 测试负责人(第 115 轮实测) | 2026-11-10 03:55 | 待处理(P1) |
| B-116-Close(第 117 轮 · 已闭环) | 189 节点 session 通道派发 35min 无产出 | 运维/测试 | 已解除(2026-11-10 R117)。整改落地:shell 直连 v2(直接 POST /api/shell,把 session/<sid>/shell 创建而列表接口不捕获的坑绕开;PowerShell 5.1 兼容 ; 链 + $LASTEXITCODE + 派发前 git fetch/reset --hard origin/cfclub)→ admin-desktop 5/5 取回(1.4m),双节点浏览器复核恢复(G10 ✅)。证据 d:/cfc/.tdd/_r117_189_admin.log。工具 docs/tdd/tools/dispatch_189_shell_v2.cjs(已入库)。后续 189 浏览器派发默认走 shell 直连 v2 | 测试负责人(第 117 轮实派) | 2026-11-10 05:35 | 已闭环 |
| B-69-Update(第 116 轮 · 连续第 15 轮) | /api/mind/** 鉴权缺口 | 研发 | 连续第 15 轮未修(P0)。线上匿名 POST /api/mind/fortune → HTTP 200 + {"code":400,"message":"用户不存在"}(1.30s);单测 MindFortuneControllerTest#testGetTodayFortuneWithoutAuth → $.code expected 401 but was 400。闭环判据不变:JwtInterceptor.LOGIN_REQUIRED_PATHS 增 /api/mind/ | 测试负责人(第 116 轮实测) | 2026-11-10 05:30 | 待处理(P0,第 15 轮) |
| B-90-Update(第 116 轮 · 第 8 次 · 形态漂移) | 251 chat 挂起 | 研发/运维 | 第 8 次复证(P0 未修),形态漂移。POST 251:9000/api/v1/chat(query+user_id)→ HTTP 422 / 7.4ms(入参校验层快速拒绝,未穿透业务层);R115 同参为 000/45s 挂起。/api/v1/analyze 未穿透。定性更新:chat 在「校验层拒绝」与「业务层挂起」间漂移,均指向 LLM/检索链路无超时熔断(B-84 同源) | 测试负责人(第 116 轮实测) | 2026-11-10 05:30 | 待处理(P0,第 8 次) |
| B-65-Update(第 116 轮 · 连续第 21 轮) | langgraph /api/v1/analyze checkpointer 缺 thread_id | 研发 | 连续第 21 轮未修(P0)。251 实派:test_analyze.py 2 例 assert 500 == 200,与既往逐例一致 | 测试负责人(第 116 轮复现) | 2026-11-10 05:20 | 待处理(P0,第 21 轮) |
| B-74-Update(第 116 轮 · 连续第 17 轮) | langgraph test_auto_tag.py 5 例红 | 研发/运维 | 连续第 17 轮。251 实派:5 例 AssertionError(prompt_service:118 LLM 401)。闭环判据不变:251 注入有效 LLM 凭据 | 测试负责人(第 116 轮复现) | 2026-11-10 05:20 | 待处理(P1) |
| B-82-Update(第 116 轮 · 连续第 17 轮) | langgraph test_intent.py 4 例红(静默降级) | 研发 | 连续第 17 轮未修。4 例 assert <Intent.CHAT>(intent_classifier.py:62 401 后静默降级 chat) | 测试负责人(第 116 轮复现) | 2026-11-10 05:20 | 待处理(P1) |
| B-15-Update(第 116 轮 · 延续) | tests/qna 收集期错误中断整轮 pytest | 测试/研发 | 维持。251 派发命令固化 --ignore=tests/qna --ignore=tests/test_chat.py,43 例正常取回 | 测试负责人(第 116 轮实派) | 2026-11-10 05:20 | 待处理(P1) |
| B-36-Update(第 116 轮 · 零漂移) | 根级黑盒 23 例 16 红 | 测试 | 零漂移。cd tests && jest → 23 例 7 绿 / 16 红(与 R115 逐项一致) | 测试负责人(第 116 轮实测) | 2026-11-10 04:40 | 待处理(P1) |
| B-95-Update(第 116 轮 · 第 6 轮失联) | 192.168.16.204 节点失联 | 运维 | 第 6 轮失联。204:4090 → 000(2.03s)。本轮不影响 | 测试负责人(第 116 轮探活) | 2026-11-10 04:35 | 待处理(P2) |
| B-117-New(第 117 轮 · 派发回归) | 251 节点会话通道退化(create/prompt 200 但 13min 无产出) | 运维/测试 | 新登记(P2)。251:4096 端口 200、会话创建 200、prompt 200,但轮询 13 分钟零 assistant 产出(会话通道同族退化,与 B-113/B-101 及本轮 B-116 形态一致)。shell 直连 v2 兜底实派成功:POST /api/shell + 轮询 /output,命令 git reset --hard origin/cfclub 前置 + timeout 650 .venv/bin/python -m pytest tests --ignore=tests/qna --ignore=tests/test_chat.py -q --tb=line → 43 例 / 32 过 / 11 红(80.30s),与 R116 逐例一致。闭环判据:连续 3 轮 shell 直连成功取回即关闭观察;后续 langgraph 派发默认走 shell 直连 | 测试负责人(第 117 轮实派) | 2026-11-10 06:00 | 待处理(P2 观察) |
| B-69-Update(第 117 轮 · 连续第 16 轮) | /api/mind/** 鉴权缺口 | 研发 | 连续第 16 轮未修(P0)。线上匿名 POST /api/mind/fortune → HTTP 200 + {"code":400,"message":"用户不存在"}(0.15s);单测 MindFortuneControllerTest#testGetTodayFortuneWithoutAuth → $.code expected 401 but was 400。闭环判据不变:JwtInterceptor.LOGIN_REQUIRED_PATHS 增 /api/mind/ | 测试负责人(第 117 轮实测) | 2026-11-10 06:10 | 待处理(P0,第 16 轮) |
| B-90-Update(第 117 轮 · 第 9 次 · 形态漂移持续) | 251 chat 挂起 | 研发/运维 | 第 9 次复证(P0 未修),形态漂移持续。POST 251:9000/api/v1/chat(query+user_id 完整参 / 非 int user_id 两种)→ HTTP 422 / 13ms(入参校验层快速拒绝,未穿透业务层);R116 同形态。挂起老形态(000/45s)本轮未复现,均指向 LLM/检索链路无超时熔断(B-84 同源)。探针未穿透业务层,维持「挂起未复证」 | 测试负责人(第 117 轮实测) | 2026-11-10 06:12 | 待处理(P0,第 9 次) |
| B-65-Update(第 117 轮 · 连续第 22 轮) | langgraph /api/v1/analyze checkpointer 缺 thread_id | 研发 | 连续第 22 轮未修(P0)。251 shell 直连实派:test_analyze.py 2 例 assert 500 == 200,与既往逐例一致 | 测试负责人(第 117 轮复现) | 2026-11-10 06:00 | 待处理(P0,第 22 轮) |
| B-74-Update(第 117 轮 · 连续第 18 轮) | langgraph test_auto_tag.py 5 例红 | 研发/运维 | 连续第 18 轮。251 shell 直连实派:5 例 AssertionError(LLM 401)。闭环判据不变:251 注入有效 LLM 凭据 | 测试负责人(第 117 轮复现) | 2026-11-10 06:00 | 待处理(P1) |
| B-82-Update(第 117 轮 · 连续第 18 轮) | langgraph test_intent.py 4 例红(静默降级) | 研发 | 连续第 18 轮未修。251 shell 直连实派:4 例 assert <Intent.CHAT>(LLM 401 后静默降级 chat) | 测试负责人(第 117 轮复现) | 2026-11-10 06:00 | 待处理(P1) |
| B-15-Update(第 117 轮 · 延续) | tests/qna 收集期错误中断整轮 pytest | 测试/研发 | 维持。251 派发命令固化 --ignore=tests/qna --ignore=tests/test_chat.py,shell 直连下 43 例正常取回 | 测试负责人(第 117 轮实派) | 2026-11-10 06:00 | 待处理(P1) |
| B-36-Update(第 117 轮 · 零漂移) | 根级黑盒 23 例 16 红 | 测试 | 零漂移。本轮实跑 23 例 7 绿 / 16 红(与 R116 逐项一致) | 测试负责人(第 117 轮实测) | 2026-11-10 05:50 | 待处理(P1) |
| B-95-Update(第 117 轮 · 第 7 轮失联) | 192.168.16.204 节点失联 | 运维 | 第 7 轮失联。204:4090 → 000。本轮不影响 | 测试负责人(第 117 轮探活) | 2026-11-10 05:50 | 待处理(P2) |
| B-118-New(第 118 轮 · 环境能力误判第 3 次) | 「Maven/JDK 本机缺失」结论无探针支撑,导致整模块套件被跳过 | 测试/流程 | 同日内第 3 次误判(R94、R112 各纠正一次)。07:10 轮报告以「后端 mvn 本机缺失不可跑」为由跳过 339 类全量;第 118 轮实测 D:\maven\apache-maven-3.6.1(3.6.1)+ D:\jdk1.8.0_25 均可执行,mvn -o -B clean test 58:14 跑出 339 类 / 2864 例 / 98.67%。根因:环境能力靠人工记忆判定,报告无探针输出可追溯。建议把 mvn -v/node -v/251·189·443 探活固化为 docs/tdd/tools/env_probe.cjs(避开 .gitignore:70 *.py,见 B-33),报告「执行能力」表直接引用脚本输出 | 测试负责人(第 118 轮实测登记) | 2026-11-10 08:25 | 待处理(P1) |
| B-119-New(第 118 轮 · langgraph 口径) | 251 pytest 收集 43→44 例、红 11→12 的归因(非代码漂移) | 测试 | 251 检出 cac0d7f44 实派:44 例 / 32 过 / 12 红(68.9s),较 R117 的 43/32/11 各 +1。逐条核对:差额全部来自 tests/test_chat.py::test_chat_endpoint(R117 按 B-84 将其列入排除项,本轮按「全量」口径纳入);剔 test_chat 后为 43/32/11,与 R117 严格一致,零漂移。处置:报告须显式声明 langgraph 口径(含/不含 test_chat),两者不得混用做跨轮比较 | 测试负责人(第 118 轮实派核对) | 2026-11-10 08:25 | 待处理(P2,口径固化) |
| B-69-Update(第 118 轮 · 连续第 18 轮) | /api/mind/** 匿名可达(鉴权清单缺项) | 研发 | 连续第 18 轮未修,且 O-21 裁决未落码。本轮双证据:①线上匿名 POST /api/mind/fortune → HTTP 200 + {"code":400,"message":"用户不存在"};对照 /api/energy/overview → 401(机制正常、清单缺项);②JwtInterceptor.java:88-130 的 LOGIN_REQUIRED_PATHS 仍无 /api/mind/ 条目。单测同源红 MindFortuneControllerTest#testGetTodayFortuneWithoutAuth:23(期望 401 实得 400)。另:/api/mind/daily 实为 404 端点不存在,历史「4 端点 200」表述需收窄为「仅 fortune」 | 测试负责人(第 118 轮线上复证) | 2026-11-10 08:00 | 待处理(P0) |
| B-13-Update(第 118 轮 · 环境红首次归零) | 3 类硬编码 127.0.0.1:3306 的 @SpringBootTest | 研发/环境 | 本轮环境红 0 例:AdminFamilyOverviewControllerTest(历史每轮 3 红)本轮 3/3 绿,test_attr.py 归因 env: 0。判定为「潜在风险未复现」而非「已修复」——三处硬编码仍在,换机器/换网络即复现 | 测试负责人(第 118 轮实测) | 2026-11-10 08:20 | 观察(P2) |
| B-36-Update(第 118 轮 · 第 21 轮零漂移) | 根级黑盒 23 例 16 红 | 测试 | 零漂移。本轮实跑 3 套 23 例:7 绿 / 16 红(1a2b.spec.js 收集失败 + mini-games-api 13 红 + plan-chain 3 红),与 R117 逐项一致 | 测试负责人(第 118 轮实测) | 2026-11-10 08:00 | 待处理(P1) |
| G-11-Close(第 118 轮 · 闭环) | cfc.iwintrue.com:443 返回 502 | 运维 | 已闭环:https://cfc.iwintrue.com/admin 由 07:10 轮的 502 → 302(跟随后 200),HTTP:80 亦 302→200。浏览器自动化仍走 HTTP 目标;观测 2 轮稳定后销号 | 测试负责人(第 118 轮探活) | 2026-11-10 07:40 | 已闭环 |
| B-120-New(第 119 轮 · 观察第 1 轮) | 189 首轮 TC-A-U05 前置登录偶发 | 测试 | 新登记(P2 观察)。189 首轮 5 例中 TC-A-U05 前置登录停在 /admin/login(滑块拖过未出登录页,硬断言失败);同轮复验 5/5 全绿(1.4m),本机同批 U05 亦绿 → 判定节点偶发(滑块时序/风控)非产品回归,不作红例计入全量。闭环判据:连续 2 轮 189 首轮 0 偶发 → 销号;建议在登录前置加重试(P-5) | 测试负责人(第 119 轮实派+复验) | 2026-11-10 09:00 | 观察(P2) |
| B-69-Update(第 119 轮 · 连续第 19 轮) | /api/mind/** 匿名可达(鉴权清单缺项) | 研发 | 连续第 19 轮未修,O-21 未落码。线上匿名 POST /api/mind/fortune → HTTP 200 + {"code":400,"message":"用户不存在"};对照 /api/energy/overview → 401(机制正常、清单缺项)。闭环判据不变:JwtInterceptor.LOGIN_REQUIRED_PATHS 增 /api/mind/ | 测试负责人(第 119 轮线上复证) | 2026-11-10 09:42 | 待处理(P0,第 19 轮) |
| B-65-Update(第 119 轮 · 连续第 23 轮) | langgraph /api/v1/analyze checkpointer 缺 thread_id | 研发 | 连续第 23 轮未修(P0)。251 实派:test_analyze.py 2 例 assert 500 == 200,与 R118 逐例一致 | 测试负责人(第 119 轮实派) | 2026-11-10 09:40 | 待处理(P0,第 23 轮) |
| B-74-Update(第 119 轮 · 连续第 19 轮) | langgraph test_auto_tag.py 5 例红 | 研发/运维 | 连续第 19 轮。251 实派:5 例 AssertionError(LLM 401)。闭环判据:251 注入有效 LLM 凭据 | 测试负责人(第 119 轮复现) | 2026-11-10 09:40 | 待处理(P1) |
| B-82-Update(第 119 轮 · 连续第 19 轮) | langgraph test_intent.py 4 例红(静默降级) | 研发 | 连续第 19 轮未修。251 实派:4 例 assert <Intent.CHAT>(LLM 401 后静默降级) | 测试负责人(第 119 轮复现) | 2026-11-10 09:40 | 待处理(P1) |
| B-36-Update(第 119 轮 · 第 22 轮零漂移) | 根级黑盒 23 例 16 红 | 测试 | 零漂移。本轮实跑 23 例:7 绿 / 16 红(与 R118 逐项一致) | 测试负责人(第 119 轮实测) | 2026-11-10 09:30 | 待处理(P1) |
| B-13-Update(第 119 轮 · 延续观察) | 3 类硬编码 127.0.0.1:3306 的 @SpringBootTest | 研发/环境 | 维持「潜在风险未复现」:本轮环境红 0,AdminFamilyOverviewControllerTest 3/3 绿;硬编码仍在,换机即复现 | 测试负责人(第 119 轮实测) | 2026-11-10 09:30 | 观察(P2) |
| G-11-Update(第 119 轮 · 闭环后第 2 轮稳定) | cfc.iwintrue.com:443 → 302/200 | 运维 | HTTPS 302(跟前 200)连续 2 轮稳定,HTTP:80 亦 302→200。按 R118 判据「观测 2 轮稳定后销号」→ 本轮销号 | 测试负责人(第 119 轮探活) | 2026-11-10 09:42 | 已闭环(销号) |
| B-120-Close(第 120 轮 · 销号) | 189 首轮 TC-A-U05 前置登录偶发 | 测试 | 销号(第 120 轮,连续 2 轮 0 偶发)。189 admin E2E 本轮首轮即 5/5 全绿(1.3m,TC-A-U01~U05),与 R119 复验轮 5/5 共同构成连续 2 轮 0 偶发 → 满足闭环判据 → B-120 销号。判定:滑块登录偶发(时序/风控)自愈,非产品回归;不引入测试改动(保留前置失败硬断言)。P-5 从问题清单移除 | 测试负责人(第 120 轮实派+闭环) | 2026-11-10 10:2x | 已闭环(销号) |
| B-69-Update(第 120 轮 · 连续第 20 轮) | /api/mind/** 匿名可达(鉴权清单缺项) | 研发 | 连续第 20 轮未修,O-21 未落码。线上匿名 POST /api/mind/fortune → HTTP 200 + {"code":400,"message":"用户不存在"};对照同批 /api/energy/overview 维持 401(机制正常、清单缺项)。闭环判据不变:JwtInterceptor.LOGIN_REQUIRED_PATHS 增 /api/mind/ → 匿名全 401 + MindFortuneControllerTest 转绿 | 测试负责人(第 120 轮线上复证) | 2026-11-10 10:2x | 待处理(P0,第 20 轮) |
| B-65-Update(第 120 轮 · 连续第 24 轮) | langgraph /api/v1/analyze checkpointer 缺 thread_id | 研发 | 连续第 24 轮未修(P0)。本轮 251 实派:非 LLM 子集 31/31 全绿;LLM 依赖 12 例(analyze 2 在内)承袭 R119(凭据 401 + auto_tag 网络挂起)。闭环判据:251 注入有效 LLM 凭据 + analyze 补 thread_id/checkpointer | 测试负责人(第 120 轮实派) | 2026-11-10 10:2x | 待处理(P0,第 24 轮) |
| B-74-Update(第 120 轮 · 连续第 20 轮) | langgraph test_auto_tag.py 5 例红 | 研发/运维 | 连续第 20 轮。本轮定位升级:251 无 pytest_timeout 插件,test_auto_tag_short_content 存在网络重试挂起(>240s 无输出,全量首轮 KICK 超时即源于此);建议给 251 .venv 装 pytest-timeout 防挂起 + 注入有效 LLM 凭据 | 测试负责人(第 120 轮复现) | 2026-11-10 10:2x | 待处理(P1) |
| B-82-Update(第 120 轮 · 连续第 20 轮) | langgraph test_intent.py 4 例红(静默降级) | 研发 | 连续第 20 轮未修。251 实派:4 例承袭 R119(LLM 401 后静默降级)。闭环判据:注入有效 LLM 凭据,401 应抛错而非静默降级 | 测试负责人(第 120 轮复现) | 2026-11-10 10:2x | 待处理(P1) |
| B-119-Update(第 120 轮 · 口径+挂起面收窄) | langgraph 全量首轮 KICK 超时 | 测试 | 本轮处置:全量首轮 dispatch_shell.cjs KICK timeout(日志仅 FF.FF),根因为 LLM 依赖文件网络重试挂起。分拆定位后非 LLM 子集 31/31 实跑全绿(162.9s)→ 挂起面收窄至 LLM 依赖文件,非代码回归。口径不变:主口径 43/32/11(B-119 固化) | 测试负责人(第 120 轮定位) | 2026-11-10 10:2x | 已定位(挂起面收窄) |
| B-36-Update(第 120 轮 · 第 23 轮零漂移) | 根级黑盒 23 例 16 红 | 测试 | 零漂移。本轮实跑 23 例:7 绿 / 16 红(与 R119 逐项一致;9082 未启动 → ECONNREFUSED) | 测试负责人(第 120 轮实测) | 2026-11-10 10:2x | 待处理(P1) |
| B-13-Update(第 120 轮 · 延续观察) | 3 类硬编码 127.0.0.1:3306 的 @SpringBootTest | 研发/环境 | 维持「潜在风险未复现」:本轮后端未实跑(零 src 变更采信 R119),环境红 0 延续;硬编码仍在,换机即复现 | 测试负责人(第 120 轮) | 2026-11-10 10:2x | 观察(P2) |
| B-69-Update(第 121 轮 · 连续第 21 轮) | /api/mind/** 匿名可达(鉴权清单缺项) | 研发 | 连续第 21 轮未修,O-21 未落码。线上匿名 POST /api/mind/fortune → HTTP 200 + {"code":400,"message":"用户不存在"}(0.15s);对照同批 /api/energy/overview 维持 401(机制正常、清单缺项)。闭环判据不变:JwtInterceptor.LOGIN_REQUIRED_PATHS 增 /api/mind/ → 匿名全 401 + MindFortuneControllerTest 转绿 | 测试负责人(第 121 轮线上复证) | 2026-11-10 12:0x | 待处理(P0,第 21 轮) |
| B-65-Update(第 121 轮 · 连续第 25 轮) | langgraph /api/v1/analyze checkpointer 缺 thread_id | 研发 | 连续第 25 轮未修(P0)。本轮 251 实派:非 LLM 子集 31/31 全绿(134.68s);LLM 依赖 12 例承袭 R120(凭据 401)。闭环判据:251 注入有效 LLM 凭据 + analyze 补 thread_id | 测试负责人(第 121 轮实派) | 2026-11-10 12:0x | 待处理(P0,第 25 轮) |
| B-74-Update(第 121 轮 · 连续第 21 轮) | langgraph test_auto_tag.py 5 例红 | 研发/运维 | 连续第 21 轮。251 实派:5 例承袭(LLM 401 + 网络重试挂起面收窄至 LLM 依赖文件)。闭环判据不变 | 测试负责人(第 121 轮复现) | 2026-11-10 12:0x | 待处理(P1) |
| B-82-Update(第 121 轮 · 连续第 21 轮) | langgraph test_intent.py 4 例红(静默降级) | 研发 | 连续第 21 轮未修。251 实派:4 例承袭 R120(LLM 401 后静默降级)。闭环判据不变 | 测试负责人(第 121 轮复现) | 2026-11-10 12:0x | 待处理(P1) |
| B-36-Update(第 121 轮 · 第 24 轮零漂移) | 根级黑盒 23 例 16 红 | 测试 | 零漂移。本轮实跑 23 例:7 绿 / 16 红(与 R120 逐项一致;9082 未启动 → ECONNREFUSED) | 测试负责人(第 121 轮实测) | 2026-11-10 12:0x | 待处理(P1) |
| B-95-Update(第 121 轮 · 失联延续) | 192.168.16.204 节点失联 | 运维 | 延续失联。204:4090 → 000(2.03s)。本轮浏览器任务由本机 + 189 承担(每节点单任务合规),不受影响 | 测试负责人(第 121 轮探活) | 2026-11-10 12:0x | 待处理(P2) |
| B-121(第 122 轮 · 新增) | 本机 admin-desktop TC-A-U05 登录前置确定性失败 | 研发 | 新增(P1)。cfc.iwintrue.com/admin 实跑:TC-A-U05(后台核心菜单)登录前置确定性失败 2/2(全量跑 + 隔离复跑均停在 /admin/login,硬断言失败);同套件 TC-A-U04(管理员真实登录,步骤完全一致)通过 → 指向滑块/验证码时序或产品登录链路竞态(B-46/B-120 同类,但本次确定性非偶发)。相对 R120 继承的「admin 5/5」基线为新增失败。闭环判据:研发确认登录链路无回归 + 测试侧 U05 前置加重试后隔离复跑连续 2 轮通过 → 销号;若重试仍失败且 U04 同流程通过则指向产品侧,研发修复登录链路 | 测试负责人(第 122 轮实跑+隔离复跑) | 2026-11-10 12:10 | 待处理(P1,新增) |
| B-65-Close(第 122 轮 · 销号) | langgraph analyze checkpointer 缺 thread_id | 研发 | 销号(第 122 轮,fix 闭环)。研发 eeb147273 修复分析图 checkpointer 配置缺失 + pytest loop scope;本轮本地 venv 重跑 test_analyze.py 2 例不在失败清单 → 已转绿(连续 25 轮 P0 终闭环)。剩余 langgraph 失败仅为 LLM 凭据依赖(B-74 持续) | 测试负责人(第 122 轮复验) | 2026-11-10 12:10 | 已闭环(销号) |
| B-82-Close(第 122 轮 · 销号) | langgraph test_intent.py 4 例静默降级 | 研发 | 销号(第 122 轮,fix 闭环)。eeb147273 chat LLM 空响应兜底修复;本轮本地重跑 intent 4 例不在失败清单 → 已转绿(连续 21 轮 P1 终闭环)。闭环判据满足 | 测试负责人(第 122 轮复验) | 2026-11-10 12:10 | 已闭环(销号) |
| B-74-Update(第 122 轮 · 连续第 22 轮) | langgraph test_auto_tag.py 5 例红 | 研发/运维 | 连续第 22 轮。本轮本地 venv 重跑确认 5 例 AssertionError(LLM 401),与历轮 251 实派一致——属纯凭据缺口非代码缺陷。闭环判据不变:251 注入有效 LLM 凭据 + 装 pytest-timeout 防挂起 | 测试负责人(第 122 轮本地复验) | 2026-11-10 12:10 | 待处理(P1) |
| B-55-Update(第 122 轮 · 派发受阻延续) | 192.168.16.251 opencode 派发 langgraph 不可达 | 运维 | 延续(用户要求 langgraph 测试派发 251 未满足)。251:4090 → 000(CLOSED);251:4096 → UnauthorizedError(鉴权门控);251:9000 langgraph 服务 → 200 OPEN 但非 pytest runner。本轮 langgraph 测试以本地 venv 兜底重跑(验证 fix 有效),251 派发通道待运维注入 opencode 凭据后开通 | 测试负责人(第 122 轮探活) | 2026-11-10 12:10 | 待处理(P2) |
| B-69-Close(第 122 轮 · 线上闭环销号) | /api/mind/** 匿名可达(鉴权清单缺项) | 研发 | 销号(第 122 轮,连续 22 轮 P0 终落地)。研发 63cf7455a/84239ce22(merge)将 4 端点移入 JwtInterceptor.LOGIN_REQUIRED_PATHS 强制登录;本轮线上实测 POST /api/mind/fortune → 401 + {"code":401,"message":"请先登录"},对照 /api/energy/overview 维持 401(机制正常)→ O-21 落码闭环 | 测试负责人(第 122 轮线上复验) | 2026-11-10 12:10 | 已闭环(销号) |
| B-36-Update(第 122 轮 · 第 25 轮零漂移) | 根级黑盒 23 例 16 红 | 测试 | 零漂移。本轮实跑 23 例:7 绿 / 16 红(与 R121 逐项一致) | 测试负责人(第 122 轮实测) | 2026-11-10 12:10 | 待处理(P1) |
| B-55-Close(第 123 轮 · 销号) | 192.168.16.251 opencode 派发 langgraph 不可达 | 运维 | 销号(第 123 轮,实派达成)。根因是派发器用法而非鉴权门控:POST /api/shell?location[directory]=/sc-data/cfc/cfc-langgraph + Basic opencode:****(port 4096)→ 取 data.id → GET /api/shell/{id}/output。251 实派 pytest 43 例 / 42 过 / 1 红 / 344.83s(节点 HEAD 568cecac6),首次由 251 取回权威结果。R122「251:4096 UnauthorizedError」为探针路径/凭据写法问题 | 测试负责人(第 123 轮实派) | 2026-11-10 13:30 | 已闭环(销号) |
| B-122(第 123 轮 · 新增) | 192.168.16.189 通道可用但不具备浏览器执行前提 | 运维 | 新增(P2)。189 为 Windows 节点(hostname=Lenovo-y50,shell=powershell.EXE),4090 OPEN 且 Basic 认证通过、shell 可建可读;但仓库为 C:\worktrees\cfc-user-is-child @ e3e52ca38(分支 feature/user-is-child),Test-Path tests\e2e-live = False、Test-Path node_modules = False → 无法执行浏览器套件(禁止装依赖)。闭环判据:189 worktree 更新至 cfclub 且预置 tests/node_modules → 实派 admin-desktop 5/5 取回 | 测试负责人(第 123 轮探活实证) | 2026-11-10 13:30 | 待处理(P2,运维) |
| B-123(第 123 轮 · 新增) | R122 以「本机无 Maven」降级致后端整模块漏测(第 4 次误判) | 测试 | 新增(P1 流程)。实测 D:\maven\apache-maven-3.6.1 + D:\jdk1.8.0_25 完全可用;本轮 mvn -o -B clean test 48:05 拿到 2865 例 / 98.71%。R122 未做探针即写「降级(未实测)」,采信历史基线。处置:SOP 前置 java -version && mvn -v && df -h,三项任一失败才允许降级且须贴探针输出。闭环判据:连续 3 轮报告含探针输出且无同类降级 | 测试负责人(第 123 轮推翻+补测) | 2026-11-10 13:30 | 处置中(P1) |
| B-124(第 123 轮 · 新增) | TC 锚点度量口径不一致(三套正则三组数) | 测试 | 新增(P2 度量)。同一台账得:严格 57/333=17.1%、宽松 165/866=19.1%、R118 口径 86/812=10.6%,跨轮不可比。docs/tdd/tools/test_report_metrics.py 实测无 stdout 输出,各轮报告手写正则。处置:锚点定义为「测试代码引用的唯一 TC 数 / 台账定义的唯一 TC 数」,正则入脚本并输出 JSON。闭环判据:连续 2 轮 G9 由脚本产出且一致 | 测试负责人(第 123 轮度量复算) | 2026-11-10 13:30 | 待处理(P2) |
| B-125(第 123 轮 · 新增) | 远程 shell 轮询会杀掉在跑进程(派发器缺陷) | 测试 | 新增(P1 工具)。dispatch_shell.cjs 默认 8s 轮询、每轮新建 shell;251 pytest 首轮跑到第 36 例(日志 ...F................................)被后续 shell 连带终止,产出无 summary + DONE_0(伪成功)。处置:改 setsid nohup ... > LOG 2>&1 & 分离 + 本地 sleep 后单次读文件(杀器即停)。闭环判据:dispatch_shell.cjs 改为「kick 分离 + 本地等待 + 单次读」并使 -q 进度点字符数 == 用例数 | 测试负责人(第 123 轮定位) | 2026-11-10 13:30 | 待处理(P1,工具) |
| B-121-Update(第 123 轮 · 未复现,转观察) | 本机 admin-desktop TC-A-U05 登录前置确定性失败 | 研发/测试 | 未复现。本轮本机同套件 5/5 全绿,U05 58.4s 通过、U04 10.2s 通过,首轮即绿无重跑。R122 记「确定性失败 2/2」过重 → 改判「节点偶发(滑块/风控时序)」。闭环判据:连续 2 轮 U05 绿 → 销号(本轮为第 0 轮绿,尚需 1 轮);若再红且 U04 同流程绿则转产品侧 | 测试负责人(第 123 轮实跑) | 2026-11-10 13:30 | 观察(P1→P2) |
| B-74-Update(第 123 轮 · 收窄至 1 例) | langgraph test_auto_tag.py 红例 | 研发/运维 | 5 例 → 1 例。251 实派仅 test_auto_tag_content_relevance 一例 AssertionError(依赖 LLM 语义相关性判定),其余 4 例随 eeb147273 转绿。建议:主断言改确定性桩 + 另设 @pytest.mark.llm 真实链路冒烟(允许 skip);251 .venv 装 pytest-timeout 防挂起 | 测试负责人(第 123 轮 251 实派) | 2026-11-10 13:30 | 待处理(P1) |
| B-65-Close(第 123 轮 · 独立复核) | langgraph analyze checkpointer 缺 thread_id | 研发 | 销号成立(251 实派独立复核)。R122 以本地 venv 判绿,本轮由 251 节点实派复核:test_analyze 2 例不在失败清单。双通道一致,销号无异议 | 测试负责人(第 123 轮 251 实派) | 2026-11-10 13:30 | 已闭环(销号) |
| B-82-Close(第 123 轮 · 独立复核) | langgraph test_intent.py 4 例静默降级 | 研发 | 销号成立(251 实派独立复核)。test_intent 4 例不在失败清单;251 全量仅 1 红 | 测试负责人(第 123 轮 251 实派) | 2026-11-10 13:30 | 已闭环(销号) |
| B-69-Update(第 123 轮 · 双通道复核) | /api/mind/** 匿名可达 | 研发 | 维持销号。线上匿名单 POST /api/mind/fortune → 401(0.035s),对照 /api/energy/overview → 401;并且后端全量 MindFortuneControllerTest 本轮不在红类清单(R118 为 1 红)→ 生产与单测两侧同时成立 | 测试负责人(第 123 轮线上+后端双证) | 2026-11-10 13:30 | 已闭环(销号) |
| B-36-Update(第 123 轮 · 第 26 轮零漂移) | 根级黑盒 23 例 16 红 | 测试 | 零漂移。本轮实跑 23 例:7 绿 / 16 红(ECONNREFUSED,9082 未启动) | 测试负责人(第 123 轮实测) | 2026-11-10 13:30 | 待处理(P1) |
| B-13-Update(第 123 轮 · 首次实跑) | 3 类硬编码 127.0.0.1:3306 的 @SpringBootTest | 研发/环境 | 后端全量实跑 339 类,环境型红 0(AdminFamilyOverviewControllerTest 3/3 绿);硬编码仍在,换机即复现 | 测试负责人(第 123 轮实测) | 2026-11-10 13:30 | 观察(P2) |
| B-95-Update(第 123 轮 · 延续失联) | 192.168.16.204 节点失联 | 运维 | 延续失联。本轮浏览器任务由本机承担(单节点单任务合规) | 测试负责人(第 123 轮探活) | 2026-11-10 13:30 | 待处理(P2) |
| B-121-Close(第 124 轮 · 销号) | 本机 admin-desktop TC-A-U05 登录前置确定性失败 | 研发/测试 | 销号(第 124 轮,连续 2 轮绿达成)。R123 首绿、本轮再次绿(57.8s),U04 9.9s 同绿,首轮即绿无重跑 → 按 R123 判据「连续 2 轮 U05 绿 → 销号」满足。判「节点偶发(滑块/风控时序)」成立,非产品回归 | 测试负责人(第 124 轮实跑) | 2026-11-10 14:20 | 已闭环(销号) |
| B-122-Update(第 124 轮 · 延续第 2 轮) | 192.168.16.189 通道可用但不具备浏览器执行前提 | 运维 | 延续(P2 第 2 轮)。复测:仓库仍 C:\worktrees\cfc-user-is-child @ e3e52ca38(feature/user-is-child),Test-Path tests\e2e-live=False、node_modules=False → 不可承载。闭环判据不变:189 worktree 更新至 cfclub 且预置 tests/node_modules → 实派 admin-desktop 5/5 取回 | 测试负责人(第 124 轮复测) | 2026-11-10 14:20 | 待处理(P2,运维) |
| B-123-Update(第 124 轮 · 第 2 轮通过) | R122 以「本机无 Maven」降级致后端整模块漏测 | 测试 | 第 2 轮通过。本轮前置探针 java 1.8.0_25 / mvn 3.6.1 / D: 93G 全过,mvn -o -B clean test 34:03 拿 2865 例 / 98.71%。闭环判据:连续 3 轮报告含探针输出且无 Maven 类降级 → 销号(本轮为第 2 轮,尚需 1 轮) | 测试负责人(第 124 轮实测) | 2026-11-10 14:20 | 处置中(P1) |
| B-124-Update(第 124 轮 · 未闭环) | TC 锚点度量口径不一致 | 测试 | 未闭环(P2 第 2 轮)。test_report_metrics.py --reports 聚合可用(本轮 classes=339 tests=2865 pass=2828 F=30 E=3 S=4),但 --scene 输出仍无 stdout,G9 锚点沿用 17.1%/19.1% 沿用口径。闭环判据不变:连续 2 轮 G9 由脚本产出且一致 | 测试负责人(第 124 轮复算) | 2026-11-10 14:20 | 待处理(P2) |
| B-125-Update(第 124 轮 · 观察) | 远程 shell 轮询会杀掉在跑进程 / 等待时长未自适应 | 测试 | 观察(P1 第 2 轮)。本轮采用「kick 分离 + sleep + 单次读」:首读 sleep 400s < 实际 593.85s → 只取到 ...F..;探活确认 pytest 存活后再读 → 完整 summary。印证等待须以「pytest 进程退出」为判据而非固定时长(LLM 401 时总时长从 344s 拉长到 593s)。闭环判据:同一脚本连续 2 轮首读即得完整 summary | 测试负责人(第 124 轮定位) | 2026-11-10 14:20 | 待处理(P1,工具) |
| B-74-Update(第 124 轮 · 根因实锤) | langgraph test_auto_tag.py 红例 | 研发/运维 | 根因实锤(P1)。本轮 251 实派唯一红例 test_auto_tag_valid_format,日志捕获 Authentication Fails, Your api key: ****ab12 is invalid(401) → 打标空标签 → 断言失败。红例名较 R123(content_relevance)漂移但同一文件同一 LLM 依赖。处置:运维轮换有效 LLM 凭据;测试侧主断言改确定性桩 + @pytest.mark.llm 冒烟;251 装 pytest-timeout | 测试负责人(第 124 轮 251 实派) | 2026-11-10 14:20 | 待处理(P1,运维凭据) |
| B-65-Close(第 124 轮 · 独立复核第 2 轮) | langgraph analyze checkpointer 缺 thread_id | 研发 | 维持销号(251 实派第 2 轮独立复核)。test_analyze 2 例均不在失败清单,与 R123 一致 | 测试负责人(第 124 轮 251 实派) | 2026-11-10 14:20 | 已闭环(销号) |
| B-82-Close(第 124 轮 · 独立复核第 2 轮) | langgraph test_intent.py 4 例静默降级 | 研发 | 维持销号(251 实派第 2 轮独立复核)。test_intent 4 例不在失败清单;251 全量仅 1 红(B-74) | 测试负责人(第 124 轮 251 实派) | 2026-11-10 14:20 | 已闭环(销号) |
| B-69-Update(第 124 轮 · 维持销号第 2 轮) | /api/mind/** 匿名可达 | 研发 | 维持销号(第 2 轮双通道一致)。线上匿名 POST /api/mind/fortune → 401,对照 /api/energy/overview → 401;后端全量 MindFortuneControllerTest 连续 2 轮不在红类清单 | 测试负责人(第 124 轮线上+后端双证) | 2026-11-10 14:20 | 已闭环(销号) |
| B-36-Update(第 124 轮 · 第 27 轮零漂移) | 根级黑盒 23 例 16 红 | 测试 | 零漂移。本轮实跑 23 例:7 绿 / 16 红(ECONNREFUSED,9082 未启动) | 测试负责人(第 124 轮实测) | 2026-11-10 14:20 | 待处理(P1) |
| B-13-Update(第 124 轮 · 第 2 轮观察) | 3 类硬编码 127.0.0.1:3306 的 @SpringBootTest | 研发/环境 | 后端全量实跑 339 类,环境型红 0(第 2 轮);硬编码仍在,换机即复现 | 测试负责人(第 124 轮实测) | 2026-11-10 14:20 | 观察(P2) |
| B-95-Update(第 124 轮 · 延续失联) | 192.168.16.204 节点失联 | 运维 | 延续失联。本轮浏览器任务由本机承担(单节点单任务合规) | 测试负责人(第 124 轮探活) | 2026-11-10 14:20 | 待处理(P2) |
| B-74-Update(第 125 轮 · 首次全绿观察) | langgraph test_auto_tag.py 红例 | 研发/运维 | 重大改善(第 125 轮):251 实派 43 例 43 过 / 0 红 / 756.13s(8 warnings),自连续 22 轮红例(R103~R124,LLM 401)后首次全量全绿。红例名漂移(content_relevance/valid_format)本轮消失。不销号:按判据需连续 ≥2 轮全绿,本轮仅第 1 轮,转「B-74 观察第 1 轮无复现」;待下轮(R126)复跑确认后销号。运维仍建议注入有效 LLM 凭据 + 251 装 pytest-timeout 防挂起(B-125) | 测试负责人(第 125 轮 251 实派) | 2026-11-10 14:55 | 观察(P1,待连续 2 轮全绿销号) |
| B-36-Update(第 125 轮 · 第 28 轮零漂移) | 根级黑盒 23 例 16 红 | 测试 | 零漂移。本轮实跑 23 例:7 绿 / 16 红(ECONNREFUSED,9082 未启动,非产品回归) | 测试负责人(第 125 轮实测) | 2026-11-10 14:55 | 待处理(P1) |
| B-121-Confirm(第 125 轮 · 销号后第 1 轮) | 本机 admin-desktop TC-A-U05 偶发 | 研发/测试 | 维持绿。本轮 TC-A-U05 56.7s 通过(R124 销号后第 1 轮,首轮即绿无重跑),B-121 销号结论成立 | 测试负责人(第 125 轮实跑) | 2026-11-10 14:55 | 已闭环(销号) |
| B-122-Update(第 125 轮 · 延续第 3 轮) | 192.168.16.189 通道可用但不具备浏览器执行前提 | 运维 | 延续(P2 第 3 轮)。复测:ping 7ms、4090 OPEN(opencode),但仓库仍 feature/user-is-child @ e3e52ca38、tests\e2e-live 缺失、node_modules 缺失 → 不可承载。闭环判据不变:189 worktree 更新至 cfclub 且预置 tests/node_modules | 测试负责人(第 125 轮复测) | 2026-11-10 14:55 | 待处理(P2,运维) |
| B-123-Update(第 125 轮 · 第 3 轮通过) | R122 以「本机无 Maven」降级致后端整模块漏测 | 测试 | 第 3 轮通过(采信 R124 全量 2865/98.71%,源码零变更;本轮探针确认 9082 DOWN 但 Maven 可用)。闭环判据:连续 3 轮报告含探针且无 Maven 降级 → 本轮达成,转销号 | 测试负责人(第 125 轮核验) | 2026-11-10 14:55 | 已闭环(销号) |
| B-125-Update(第 125 轮 · 第 3 轮) | 远程 shell 等待时长未自适应 | 测试 | 观察(P1 第 3 轮)。本轮沿用「kick + sleep + 单次读」:首读 sleep 620s 仍只读到 35 点(pytest 756.13s 未写完,缓冲未 flush);探活确认 pytest 存活后重读 → 完整 summary 43/43。印证「等待须以 pytest 进程退出为判据」。改进:探测到进程退出再读;或给 251 装 pytest-timeout | 测试负责人(第 125 轮定位) | 2026-11-10 14:55 | 待处理(P1,工具) |
| B-74-Update(第 126 轮 · 复发 4 例) | langgraph test_auto_tag.py 红例 | 研发/运维 | 复发(P1)。251 实派 43 例 → 39 过 / 4 红(valid_format/content_relevance/short_content/empty_content),日志捕获 Authentication Fails, Your api key: ****ab12 is invalid(401);git log 确认 test 与 chat_graph 源码 24h 零提交 → 非代码回归。单独重跑 test_auto_tag.py → 1 红 / 4 绿(仅 valid_format),佐证 LLM 响应偶发无效。处置:运维轮换 251 LLM 凭据;研发评估主断言改确定性桩 + @pytest.mark.llm 冒烟拆分 | 测试负责人(第 126 轮 251 实派) | 2026-11-10 15:50 | 待处理(P1,运维凭据) |
| B-122-Close(第 126 轮 · 销号) | 192.168.16.189 通道可用但不具备浏览器执行前提 | 运维/测试 | 销号(第 126 轮,能力落地)。本轮实测 189 仓库已更新至含 tests/e2e-live + Playwright 1.65.0(Node v24.14.0),实派 admin-desktop 5/5 全绿(含滑块人机验证+真实登录+核心菜单,1.3m)→ 历史「189 不可承载」根因已消解 → 转常规浏览器节点。遗留注意事项:①须 cd tests/ 运行避免根目录双版本 @playwright/test 冲突;②npx 需经 cmd.exe /c 启动(Start-Process npx 无法解析 .cmd) | 测试负责人(第 126 轮 189 实派) | 2026-11-10 15:50 | 已闭环(销号) |
| B-95-Update(第 126 轮 · 延续失联) | 192.168.16.204 节点失联 | 运维 | 延续失联(P2)。本轮端口探活 4090/4091/4096/8082/9090/3000/5000/8000/9000 全部 000。浏览器任务由 189 + 本机 承担(各单任务合规):189 跑 admin-desktop 5/5,本机跑 frontend-mobile 6/6,合计 11/11 全绿,覆盖未受损 | 测试负责人(第 126 轮探活) | 2026-11-10 15:50 | 待处理(P2) |
| B-121-Confirm(第 126 轮 · 销号后第 2 轮) | 本机 admin-desktop TC-A-U05 偶发 | 研发/测试 | 维持绿。本轮 U05 并入 189 节点整套 admin-desktop 运行,5/5 全绿(B-122 销号后 189 实派首轮即绿,无重跑) | 测试负责人(第 126 轮 189 实派) | 2026-11-10 15:50 | 已闭环(销号) |
| B-123-Confirm(第 126 轮 · 销号后第 1 轮) | R122 以「本机无 Maven」降级致后端整模块漏测 | 测试 | 维持销号。本轮探针确认本机 Maven 3.9.9 可用,mvn -o test-compile GREEN(exit 0);后端全量连库未跑(3306/9082 均未起),沿用 R125 基线 3501/3445 | 测试负责人(第 126 轮核验) | 2026-11-10 15:50 | 已闭环(销号) |
| B-125-Update(第 126 轮 · 第 4 轮) | 远程 shell 等待时长未自适应 | 测试 | 观察(P1 第 4 轮)。本轮沿用「kick + sleep + 单次读」:首轮全量 pytest 157.10s(LLM 请求量小时快),单次读已足够;单独重跑 auto_tag 322.67s 也正常取回 → 趋势印证「等待时长随 LLM 负载变化」,仍需进程退出判据或 pytest-timeout | 测试负责人(第 126 轮定位) | 2026-11-10 15:50 | 待处理(P1,工具) |
| B-36-Update(第 126 轮 · 第 29 轮零漂移) | 根级黑盒 23 例 16 红 | 测试 | 零漂移(引用 R125)。本机 9082 未启动,根级黑盒未整跑,沿用 R125(16 红 = ECONNREFUSED,非产品回归) | 测试负责人(第 126 轮核验) | 2026-11-10 15:50 | 待处理(P1) |
| B-13-Update(第 126 轮 · 第 3 轮观察) | 3 类硬编码 127.0.0.1:3306 的 @SpringBootTest | 研发/环境 | 硬编码仍在,本机 3306 不可达,沿用历史观察(非产品回归) | 测试负责人(第 126 轮核验) | 2026-11-10 15:50 | 观察(P2) |
| B-69-Confirm(第 126 轮 · 维持销号) | /api/mind/** 匿名可达 | 研发 | 维持销号。本轮 admin-live TC-A-U03「未登录访问后台受保护路由被拦截到登录页」作为独立断言通过(1.3m 套件内),印证鉴权契约稳定;后端 MindFortuneControllerTest 本轮沿用 R125 基线绿 | 测试负责人(第 126 轮复核) | 2026-11-10 15:50 | 已闭环(销号) |
| 编号 | 问题 | 类型 | 本轮结论(R127) | 责任 | 登记时间 | 状态 |
|---|---|---|---|---|---|---|
| B-126-New | langgraph pytest 用例全绿但解释器不退出(timeout 杀进程,PYTEST_EXIT=124) |
测试/研发 | 新增(P1)。251 实派 43 例全绿(1020.56s),随后 timeout 1650 以 124 退出;同类现象 R97/R84 曾记为「套件不收敛」。CI 会因此挂死,与「用例是否通过」是两件事。修法:-p no:cacheprovider + 显式 os._exit/--timeout,或 pytest 结束后 sys.exit。 |
研发(langgraph) | 2026-11-10 17:30 | 待处理 |
| B-90-Update(第 8 轮) | 251 /api/v1/chat、/api/v1/analyze 长时零字节挂起 |
研发/运维 | 延续(P0 第 8 轮)。本轮用正确 schema 复探(chat:{query,user_id,conversation_id} / analyze:{report_id,user_id}):两者 90s 零字节(HTTP 000);同窗口 /health=200(6ms)、错误 schema 返 422(10~24ms) → 服务存活、仅 LLM 链路挂死。与「pytest 43/43 全绿」并存,说明单测未覆盖真实 LLM 链路。 |
研发/运维 | 2026-11-10 17:30 | 待处理 |
| B-74-Update(第 127 轮 · 未复现) | 251 test_auto_tag 4 例 LLM 401 |
研发/运维 | 未复现(观察第 1 轮)。本轮 43/43 全绿(R126 为 39/43)。按纪律「连续 2 轮绿才销号」,维持观察。 | 研发/运维 | 2026-11-10 17:30 | 待观察 |
| B-122-Confirm(销号后第 2 轮) | 189 节点不具备浏览器执行前提 | 运维 | 维持销号。189 实跑 admin-desktop 5/5 全绿(1.3m,第 2 轮);取证:Node v24.14.0 / Playwright 1.65.0 / tests\e2e-live 存在;且 tests/e2e-live/admin-live.spec.js blob = bb49dd1ce…,与本机 cfclub@05f48f12d 完全一致(仓库虽停在 4de82cb81@feature/s-cfc-70-star-digest,spec 版本无差异,结论有效)。 |
运维 | 2026-11-10 17:30 | 已闭环 |
| B-69-Confirm(第 3 轮) | /api/mind/** 匿名可达 |
研发 | 维持销号。线上匿名 POST /api/mind/fortune → 401「请先登录」,与 /api/energy/overview、/api/health/plan/list、/api/huawei-health/status 三个对照组一致(4/4 = 401)。 |
研发 | 2026-11-10 17:30 | 已闭环 |
| B-36-Update(第 30 轮零漂移) | 根级黑盒 23 例 16 红 | 测试 | 零漂移(本轮已实跑)。npx jest -c tests/jest.config.js → 7 过 / 16 红,全为 ECONNREFUSED(本机 9082 未启动)。 |
测试 | 2026-11-10 17:30 | 待处理(环境型) |
| B-124-Update(第 3 轮) | TC 锚点度量口径不统一 | 测试 | 未闭环(P2 第 3 轮)。本轮采用可复算口径并双报:827 TC 行 / 末列锚点非空 234(28.3%)/ 指向可执行用例 82(9.9%);另 SC 244 / 被 TC 引用 146(59.8%)。三套历史口径(17.1%/19.1%/10.6%)仍未归一。 | 测试 | 2026-11-10 17:30 | 待处理 |
| B-95-Update(第 4 轮) | 192.168.16.204 节点失联 |
运维 | 延续失联(P2 第 4 轮)。204:4090 → HTTP 000。浏览器任务由 189+本机两节点承担,未受影响。 |
运维 | 2026-11-10 17:30 | 待处理 |
| B-125-Update(第 5 轮) | 远程 shell 等待时长未自适应 | 测试 | 部分缓解(P1 第 5 轮)。v2(同 shell 轮询)在 650s 上限处截断(27 例、EXIT=124);改 v3(同 shell + tee 落盘 + 上限 1650s)后拿到完整 43 例结果。结论:长任务必须落盘,等待上限按历史最坏值(≥1650s)设定。 |
测试 | 2026-11-10 17:30 | 观察 |
口径提示:本轮「全量 3501 例 / 3445 过 = 98.40%」= 后端 2865 + web 116 + fe 426 + 根级 23 + langgraph 43 + 浏览器 28;红 49 = 后端 33 + 根级 16;skip 7 = 后端 4 + fe 3。
| 编号 | 问题 | 类型 | 本轮结论(R129) | 责任 | 登记时间 | 状态 |
|---|---|---|---|---|---|---|
| B-74-Update(第 129 轮 · 复发确认,429 变体) | 251 langgraph LLM 用例红 | 研发/运维 | 复发确认(P1)。首跑 43 例 → 35/43(8 红:auto_tag 4 + intent 4);重跑 → 37/43(6 红:auto_tag 2 + intent 4),两跑日志均 Error code: 429 - API rate limit for free users (AgnesAI_error);重跑后 auto_tag 2 例转绿 → 配额窗口波动特征。R126 为 401(凭据失效)、R127/R128 全绿,故根因从凭据演化为上游配额/限流,属环境性失败,非代码回归(test/chat 源码窗口零 commit)。 |
研发/运维 | 2026-11-10 19:4x | 待处理(P1,配额) |
| B-126-Update(第 2 轮) | langgraph pytest 全绿但解释器不退出(PYTEST_EXIT=124) |
研发 | 再现(P1 第 2 轮)。本轮重跑 120.03s 测试完成(37/43)后进程未退出,JavaClient._get_client coroutine never awaited 警告 + 挂起线程,timeout 1500 以 124 杀。与 R127 同源。 |
研发(langgraph) | 2026-11-10 19:4x | 待处理 |
| B-90-Update(第 9 轮) | 251 /api/v1/chat 长时零字节挂起 |
研发/运维 | 延续(P0 第 9 轮)。正确 schema(query/user_id 整数)POST /api/v1/chat → 90s HTTP 000 零字节;/health 200、错误 schema 422 → 服务存活、仅 LLM 链路挂死。 |
研发/运维 | 2026-11-10 19:4x | 待处理 |
| B-95-Update(第 5 轮) | 192.168.16.204 节点失联 |
运维 | 延续失联(P2 第 5 轮)。204:4090 → HTTP 000。浏览器任务由 189+本机两节点承担,未受影响(本轮合计 28/28 全绿)。 |
运维 | 2026-11-10 19:4x | 待处理 |
| B-122-Confirm(销号后第 4 轮) | 189 节点浏览器能力 | 运维 | 维持销号。189 实跑 admin-desktop 5/5 全绿(1.3m,第 4 轮稳定)。 |
运维 | 2026-11-10 19:4x | 已闭环 |
| B-69-Confirm(第 4 轮) | /api/mind/** 匿名可达 |
研发 | 维持销号。线上匿名 POST 4 端点(/api/mind/fortune、/api/energy/overview、/api/health/plan/list、/api/huawei-health/status)全部 401。 |
研发 | 2026-11-10 19:4x | 已闭环 |
| B-36-Update(第 31 轮零漂移) | 根级黑盒 23 例 16 红 | 测试 | 零漂移(本轮已实跑)。npx jest -c tests/jest.config.js → 7 过 / 16 红,全为 ECONNREFUSED(本机 9082 未启动)。 |
测试 | 2026-11-10 19:4x | 待处理(环境型) |
口径提示:本轮浏览器 live 28/28 = admin 5 + fe 6 + shop 4 + health 13;全量口径沿用历史(后端 2865 + web 116 + fe 426 + 根级 23 + langgraph 43 + 浏览器 28);红 = 后端 33 + 根级 16 + langgraph 6(环境 429)。 | B-90-Close(第 130 轮 · 销号) | langgraph live
/api/v1/chat90s 零字节挂死 | 研发/运维 | 销号(P0 第 10 轮,首次恢复)。251:9000 实测:POST /api/v1/chat→ 200 / 25.53s / 703B、二次 200 / 13.03s / 215B;POST /api/v1/analyze→ 200 / 4.20s / 1019B;/health200 / 6.8ms。R121~R129 连续 9 轮均为 90s 零字节(http=000),本轮不再复现。待研发确认是否有配置/依赖/凭据变更,若为临时波动请回帖,测试侧按纪律连续 3 轮绿后正式移出台账(本轮为第 1 轮)。 | 测试 | 2026-11-10 20:5x | 已闭环(观察 1/3 轮) | | B-74-Update(第 130 轮 · 第 3 轮) | langgraphtest_auto_tag.py/test_intent.py红例 | 研发/运维 | 延续(P0)。251 实派 43 例 38 过 / 5 红 / 150.93s(R129 37 过,+1);5 红 = auto_tag 3(content_relevance/short_content/empty_content,断言500 == 200)+ intent 2(classify_analysis/classify_mind,assert CHAT == ANALYSIS)。定向复跑同 2 文件 10 例仍 5 红 / 5 过 / 67.42s。两份日志各 6 次RateLimitError 429 (AgnesAI_error)→ C 环境红(上游配额),非代码回归(窗口内cfc-langgraph/app与tests零 commit)。根因包装点:app/agents/intent_classifier.py:62捕获异常后默认回落 chat,把 429 伪装成「分类错误」。 | 研发/运维 | 2026-11-10 20:5x | 待处理 | | B-126-Update(第 130 轮 · 第 3 轮) | langgraph pytest 用例跑完解释器不退出(PYTEST_EXIT=124) | 研发 | 本轮未复现(观察)。首跑 150.93s 内正常写出 summary(5 failed, 38 passed),timeout 1500统一收口,日志尾部无挂起线程堆栈;定向复跑 67.42s 同样正常结束。R129 记为第 2 轮再现,本轮转观察;连续 2 轮不复现再销号。 | 研发 | 2026-11-10 20:5x | 观察(第 1 轮不复现) | | B-125-Update(第 130 轮 · 第 6 轮) | 远程 shell 等待时长未自适应 / 轮询会杀掉在跑进程 | 测试 | 保持缓解(P1 第 6 轮)。251 沿用「kick 分离(setsid nohup ... &)+ 本地 sleep + 单次读文件」,未在等待期建 shell;本轮首跑 150.93s,单次读即取到完整 summary。189 沿用同一模式读_r130_admin-live_test.log。本轮新问题(已自修):kick 命令若把&与echo用;拼接会生成&;(bash 语法错误),须合并为同一条 —— 首次派发即因此静默失败,第二次修正后成功。 | 测试 | 2026-11-10 20:5x | 观察(P1) | | B-69-Confirm(第 5 轮) |/api/mind/**匿名可达 | 研发 | 维持销号。线上匿名POST4 端点全部 401:/api/mind/fortune、/api/energy/overview、/api/health/plan/list、/api/huawei-health/status。 | 研发 | 2026-11-10 20:5x | 已闭环 | | B-36-Update(第 32 轮零漂移) | 根级黑盒 23 例 16 红 | 测试 | 零漂移(本轮实跑)。npx jest -c tests/jest.config.js --ci→ 7 过 / 16 红,全部ECONNREFUSED 127.0.0.1:9082(本机后端未启)。占本轮总红 30%(16/54)。 | 测试 | 2026-11-10 20:5x | 待处理(环境型) | | B-95-Update(第 130 轮 · 第 6 轮) |192.168.16.204:4090失联 | 运维 | 延续(P2 第 6 轮)。curl http://192.168.16.204:4090/→ 000;同期 189:4090=200、251:4096=200、251:9000/health=200。浏览器任务维持 189(admin)+ 本机(fe/shop/health)双节点,无第三冗余。 | 运维 | 2026-11-10 20:5x | 待处理 | | B-122-Confirm(销号后第 5 轮) | 189 节点浏览器能力 | 运维 | 维持销号。189 实跑admin-desktop5/5 全绿(1.4m),TC-A-U01~U05 含滑块 + 真实登录入主框架。G10 双节点连续 3 轮通过(251 pytest + 189 admin)。 | 运维 | 2026-11-10 20:5x | 已闭环 |口径提示(R130):浏览器 live 28/28 = admin 5 + fe 6 + shop 4 + health 13;全量口径沿用历史(后端 2865 + web 116 + fe 426 + 根级 23 + langgraph 43 + 浏览器 28 = 3501 例 / 3440 过 = 98.26%);红 = 后端 33 + 根级 16 + langgraph 5(全 429)= 54。后端与 R129 逐例零漂移(第 5 次)。
| 编号 | 问题 | 类型 | 本轮结论(R132) | 责任 | 登记时间 | 状态 |
|---|---|---|---|---|---|---|
| B-126-Update(第 132 轮 · 第 4 轮 · 复发) | langgraph pytest 解释器不退出(PYTEST_EXIT=124) |
研发 | 复发确认(P1 第 4 轮)。251 拆跑:非 LLM 31/31 全绿(134s,EXIT=0);但 tests/test_auto_tag.py(3 例后)与 tests/test_intent.py(2 例后)进程不退出,timeout 650 以 EXIT=124 收口;日志命中 JavaClient._get_client coroutine never awaited 警告 + 挂起线程。R130 曾转观察(未复现),本轮 2 个 LLM 依赖文件均复现 → 从观察回归再现。非 LLM 31 例正常结束,挂起与 LLM 调用面强相关。 |
研发(langgraph) | 2026-11-10 夜 | 待处理 |
| B-74-Update(第 132 轮 · 第 4 轮) | langgraph LLM 用例红(429 配额) | 研发/运维 | 延续(P0)。与 B-126 叠加:auto_tag 断言面 500 == 200、intent 断言面 assert CHAT == ANALYSIS,日志 RateLimitError 429 (AgnesAI_error);app/agents/intent_classifier.py:62 捕获 429 后默认回落 chat,把配额错误伪装成「分类错误」。LLM 依赖 10 例本轮无有效结论(B-126 先挂起)。 |
研发/运维 | 2026-11-10 夜 | 待处理 |
| B-DX-1(第 132 轮 · 新观察) | dx-bridge 契约 2 例 404/502 | 部署 | 新登记(P1)。dx-health-bridge-auth.spec.js 2 例断言 [401,403] 实际 502;curl 复核 list/sync → 404(部署滞后)+ 偶发 000/502(网关瞬时)。判定:TR-24 health.dataSource.bridgeWrite 实现 47d203981 部署 pending,线上端点未就绪,非产品缺陷。部署会话回报 testing@47d203981 完成后复跑 2 例收敛 401/403 即销号。 |
部署/运维 | 2026-11-10 夜 | 待处理(观察) |
| TR-25-Close(第 132 轮 · 销号) | admin.referral 三端点零契约测试 | 测试 | 销号。新建 AdminReferralContractTest 16 例(权限门 / userId 校验 / summary 形态 / members 层级归一 L3→ALL / tree maxLevel 默认 3 传值 8 / roleList 含 backend 放行),16/16 全绿(BUILD SUCCESS),已回复 docs/tdd/dev/test-requests.md TR-25 段并置状态。 |
测试 | 2026-11-10 夜 | 已闭环 |
| B-95-Update(第 132 轮 · 第 7 轮) | 192.168.16.204:4090 失联 |
运维 | 延续(P2 第 7 轮)。curl http://192.168.16.204:4090/ → 000;同期 189:4090=200、251:4096=200、251:9000 /health=200。浏览器任务维持 189(admin)+ 本机(fe/shop/health)双节点,无第三冗余。 |
运维 | 2026-11-10 夜 | 待处理 |
| B-36-Update(第 33 轮零漂移) | 根级黑盒 23 例 16 红 | 测试 | 零漂移(本轮未重跑,沿用 R130 实跑)。全为 ECONNREFUSED 127.0.0.1:9082(本机后端未启),非产品缺陷。 |
测试 | 2026-11-10 夜 | 待处理(环境型) |
| B-122-Confirm(销号后第 6 轮) | 189 节点浏览器能力 | 运维 | 维持销号。189 实跑 admin-desktop 5/5 全绿(1.6m),TC-A-U01~U05 含滑块 + 真实登录入主框架。G10 双节点连续 4 轮通过(251 pytest + 189 admin)。 |
运维 | 2026-11-10 夜 | 已闭环 |
口径提示(R132):浏览器 live 28/28 = admin 5 + fe 6 + shop 4 + health 13;Jest 588 例全绿 = web 116 + fe 472(3 skip);后端契约 16/16 新增全绿;langgraph 33 绿 / 10 环境阻塞(非 LLM 31/31 + analyze 2/2 全绿;auto_tag / intent 两文件
EXIT=124B-126 复发 + 429);dx-bridge 2 环境红(部署滞后)。G12 达标:spec9e39128c6→R131 getArticleTags;TR-25→16 例契约闭环;TR-26→后端契约已存在。
| 编号 | 问题 | 类型 | 本轮结论(R134) | 责任 | 登记时间 | 状态 |
|---|---|---|---|---|---|---|
| B-134-1 | 分佣结算用例整链静默跳过(装置缺 2 个 Mapper mock) | 测试 | 新登记并自处置(P0)。CfCommissionServiceSettleTest 8 例 WantedButNotInvoked、cfBalanceService 零交互,表面像「停止发放销售奖」。真因:类中缺 @Mock ProductOrderMapper/OrderItemMapper → CfCommissionService.java:349 NPE 被 :381 catch 吞 → 基数 0 → :203 早退。连带发现 3 例 never() 为假绿(早退使「零交互」天然成立)。已补 mock + 订单夹具,并按 c22aca496「P点=实付−成本」更新断言 → 12/12 绿。 |
测试 | 2026-11-11 02:10 | 已闭环 |
| B-134-2 | 发布路径异步任务无 seam,自动打标用例只能按次数断言 | 测试 | 新登记(P2)。ArticleAutoTagServiceTest 4 例红因发布新增「朗读音频预生成」(ArticleService.java:915/:1253)使 execute 由 1→2 次。已改「空标签 2 次 / 非空 1 次」并在注释标注差量=打标;但打标与音频任务不可从外部区分,断言强度下降。建议生产抽 scheduleAutoTag(id) / scheduleAudio(id) 两个可测 seam。 |
研发(可测性) | 2026-11-11 02:10 | 待处理(观察) |
| B-134-3 | 分润基数语义歧义(javadoc vs 实现) | 研发 | 新登记(P1)。CfCommissionService.java:132-137 javadoc 称 orderAmountCent 为「推荐人分润基数」,但 calcOrderPpoints:344 实际取 paidAmountCent(实付)。用例当前按实现 + c22aca496 口径断言(成本 2000 → 基数 8000),已在用例注释标注待确认。 |
研发 | 2026-11-11 02:10 | 待裁决 |
| B-134-4 | 251 langgraph LLM 链路凭据 401 + 配额 429 | 研发/运维 | 新登记(P0,混合根因)。251 实派 51 例:44 过 / 7 红 / 125.6s。红例:auto_tag 3(call_chat 429)+ intent 4(assert CHAT == ANALYSIS,日志 意图分类失败 429 → 默认 chat);另 chat_graph.py:148 召回记忆失败: 401 - api key ****ab12 is invalid。窗口内 cfc-langgraph/app 与 tests 零 commit → 环境红。两处需研发改:① intent_classifier.py:62 429/401 应抛外部服务异常而非兜底 chat;② 记忆召回凭据配置。 |
研发/运维 | 2026-11-11 02:10 | 待处理 |
| B-134-5 | dispatch_shell.cjs 不支持 Windows 节点(189) |
测试 | 新登记(P2,G10 真因之一)。189 为 Windows 节点(默认 shell 为 PS 壳层),派发脚本内置 tail -60 <log> 拉取 → CommandNotFoundException,导致 189 浏览器无法派发(本轮 admin 改本机直跑)。修正方向:按平台分支改用 Get-Content -Tail。 |
测试 | 2026-11-11 02:10 | 待处理 |
| S-cfc-131-Close | content.article.listByTag RED 键契约缺失 |
测试 | 销号。新增 ArticleTagFilterContractTest 10 例(JSON/逗号双存法命中、空 tag 不过滤、无匹配空页、子串不命中、频次降序、并列字典序、limit≤0 默认 20、空标签忽略、POST /api/articles/tags + body.tag 透传),全绿。锚定规格 2026-11-10-article-tag-filter-design.md §3.1。 |
测试 | 2026-11-11 02:10 | 已闭环 |
| GrowthRecordSync-契约漂移 | 成长档案接口返回结构变更致 3 例红 | 测试 | 已自处置(本轮)。① uploadAndParse 改 Stage-1 结构 {sourceFileUrl, parsed, reportDateStr, hasDate}(旧用例断言扁平 overallScore);② createRecordWithOrder 需打桩 assessmentOrderService.createOrder(否则 order.getOrderNo() NPE);③ 文案「请选择孩子」→「请选择家庭成员」。修复后 10/10 绿。 |
测试 | 2026-11-11 02:10 | 已闭环 |
| B-74-Update(第 134 轮 · 第 5 轮) | langgraph LLM 用例红(429 配额) | 研发/运维 | 延续(P0),本轮与 B-134-4 合并取证:7 红全 401/429,intent 4 例为「429→默认 chat」伪装。 |
研发/运维 | 2026-11-11 02:10 | 待处理 |
| B-126-Update(第 134 轮 · 第 5 轮) | langgraph pytest 解释器不退出(EXIT=124) | 研发 | 本轮未复现(观察 2/3)。51 例 125.6s 正常写出 summary,timeout 1700 未触发;日志有 JavaClient._get_client coroutine never awaited 警告但进程正常退出。 |
研发 | 2026-11-11 02:10 | 观察 |
| B-95-Update(第 134 轮 · 第 8 轮) | 192.168.16.204:4090 失联 |
运维 | 延续(P2 第 8 轮)。204:4090 → 000;同期 189:4090=200、251:4096=200、251:9000 /health=200。 |
运维 | 2026-11-11 02:10 | 待处理 |
| B-36-Update(第 134 轮 · 第 33 轮零漂移) | 根级黑盒 23 例 16 红 | 测试 | 零漂移(本轮实跑)。npx jest -c tests/jest.config.js --ci → 7 过 / 16 红(8.5s),全 ECONNREFUSED 127.0.0.1:9082。 |
测试 | 2026-11-11 02:10 | 待处理(环境型) |
| B-122-Confirm(销号后第 7 轮) | 189 节点浏览器能力 | 运维 | 维持销号但本轮未派发。189:4090=200;派发受 B-134-5(tail 与 Windows 壳层不兼容)阻断 → admin 改本机直跑 5/5。 |
运维/测试 | 2026-11-11 02:10 | 已闭环(派发待修) |
口径提示(R134):浏览器 live 28/28 = admin 5 + fe 6 + shop 4 + health 13(全本机,workers=1);Jest 588 = web 116 + fe 472(3 skip);根级 23 = 7 过 / 16 红(9082 未启);langgraph 51 = 44 过 / 7 红(401+429);后端全量见 §4.1。
| 编号 | 问题 | 类型 | 本轮结论(R135) | 责任 | 登记时间 | 状态 |
|---|---|---|---|---|---|---|
| B-135-1 | 前端契约测试引用未交付组件 → jest 16 红 | 研发 | 新登记(P0,预期 RED 非回归)。cfc-frontend jest 16 红 / 9 跳 / 557 过 / 582 总(3 套件失败):signature.healthPlan(S-cfc-52,health-plan-summary.vue 不存在)、signature.consignee(S-cfc-53,consignee-edit.vue 未落地,测试注释自证预期 RED)、growthHistory.view(S-cfc-30,growth-main/index.vue 无按日期分组逻辑)。git ls-files pages/signature/components/ 仅 hand-signature.vue。测试零修改,待研发交付组件即转绿。 |
研发 | 2026-11-11 03:45 | 待处理(预期 RED) |
| B-135-2 | langgraph pytest 收尾挂起复发(EXIT=124) | 研发 | 复发确认(P1 第 6 轮)。43 例 147.04s 完整写出 summary(39 过 / 4 红)后进程不退出,timeout 650 于 ~653s 强杀 → EXIT=124;日志命中 JavaClient._get_client coroutine never awaited 警告。与 B-126 同源(LLM 调用面);本轮总耗时 10m53s(135s 实跑 + ~500s 挂起虚耗)。 |
研发(langgraph) | 2026-11-11 03:45 | 待处理 |
| B-134-4-Update(第 2 轮) | 251 langgraph LLM 链路凭据 401 + 配额 429 | 研发/运维 | 延续(P0 第 2 轮)。251 实派 43 例:39 过 / 4 红 / 147.04s。4 红:auto_tag 3(valid_format 标签空 + content_relevance/short_content 500 ← 429)+ intent 1(classify_recommend assert chat==recommend ← intent_classifier.py:62 兜底)。另一 chat_graph.py:148 401 ****ab12 invalid(不影响判定)。红例 7→4,配额窗口抖动改善,无新增产品红。 |
研发/运维 | 2026-11-11 03:45 | 待处理 |
| B-135-3 | R134 langgraph 51 例口径与本轮 43 例不一致 | 测试 | 新登记(P2 取证)。同命令(--ignore=tests/qna --ignore=tests/test_chat.py)本轮 251 侧 HEAD e3f80f683 收集 43 例(与 R130-133 一致);R134 的 51 例在当前 251 快照无法复现,疑为当时快照含额外测试文件。以 43 例为基准口径;如需复核 R134 数字可要求研发以当时 sha 复跑。 |
测试/研发 | 2026-11-11 03:45 | 口径已校准 |
| B-95-Update(第 135 轮 · 第 9 轮) | 192.168.16.204:4090 失联 |
运维 | 延续(P2 第 9 轮)。204:4090 → 000;同期 189:4090=200、251:4096=200、251:9000=404(在线无 content,/health 正常判定依赖)。 |
运维 | 2026-11-11 03:45 | 待处理 |
| B-36-Update(第 135 轮 · 第 34 轮零漂移) | 根级黑盒 23 例 16 红 | 测试 | 零漂移(本轮实跑)。npx jest -c tests/jest.config.js --ci → 7 过 / 16 红,全 ECONNREFUSED 127.0.0.1:9082(本机后端未启,B-36 第 34 轮)。 |
测试 | 2026-11-11 03:45 | 待处理(环境型) |
| B-122-Confirm(销号后第 8 轮) | 189 节点浏览器能力 | 运维/测试 | 维持销号但未派发(承袭 B-134-5:dispatch_shell.cjs tail 与 Windows 壳层不兼容)。本轮浏览器全套本机直跑 28/28。 |
运维/测试 | 2026-11-11 03:45 | 已闭环(派发待修) |
| 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 行。
| 编号 | 问题 | 类型 | 本轮结论(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/场景变更窗口零命中 → 零新增用例。
| 编号 | 问题 | 类型 | 本轮结论(R138) | 责任 | 登记时间 | 状态 |
|---|---|---|---|---|---|---|
| B-138-1 | dx 桥接契约用例存在但从未被执行 | 测试 | 新登记并自处置(P1)。tests/e2e-live/dx-health-bridge-auth.spec.js(TC-DX-U01/U02)不在任何 playwright project 的 testMatch 内 → 设计用例空转(历轮「dx 2 例环境红」实为从未跑)。另:从仓库根目录执行会因 @playwright/test 双版本(根 node_modules vs tests/node_modules)报 test.describe() called here → 必须在 tests/ 内跑。已在 playwright.config.live.js 增 dx-bridge project,实测 2 例可执行(端点 404 → 记 skip,不产生假绿)。浏览器口径 28 → 30(28 过 + 2 跳)。 |
测试 | 2026-11-11 06:10 | 已闭环 |
| B-138-2 | 189 节点 admin spec 落后本机一版 | 测试/运维 | 新登记(P2)。189 tests/e2e-live/admin-live.spec.js blob=bb49dd1ce(R97 版),本机 HEAD 4703d73fb(R133 起含 B-59 waitForURL 时序修复);189 工作区 175 个未提交改动,故不执行 reset(防破坏他人工作区)。两版均 5/5,结论可比但非同版 → 跨节点对比须先比 blob。 |
运维/测试 | 2026-11-11 06:10 | 待处理(观察) |
| B-138-3 | 后端全量内部耗时极度不均(两类各 ~300s) | 测试 | 新登记(P3 观察)。ActivityControllerTest 304.6s、DimensionAdminControllerTest 298.5s(合计约 10 分钟,占 43:12 的 23%),致前半程 ~3 类/分钟;无产品异常、无失败。建议后续排查两者是否存在真实等待(DB 锁/外部调用),以压缩 CI 时长。 |
研发/测试 | 2026-11-11 06:10 | 观察 |
| B-135-1-Update(第 3 轮) | 前端 16 红(契约引用未交付组件) | 研发 | 延续(P0 预期 RED 非回归)。cfc-frontend jest 557 过 / 16 红 / 9 跳 / 582,3 红套件与 R135/R136 逐项一致。本轮实测确认 health-plan-summary.vue、consignee-edit.vue 文件不存在 → 待交付即转绿。 |
研发 | 2026-11-11 06:10 | 待处理(RED) |
| B-74-Update / B-134-4-Update(第 4 轮) | 251 langgraph 429 配额 + 记忆凭据 401 | 研发/运维 | 延续但改善(P0)。43 例 41 过 / 2 红 / 167.42s(R136 为 38 过 / 5 红)。2 红全在 test_auto_tag(short_content / empty_content,断言 500 == 200),日志 2 次 RateLimitError 429 + chat_graph.py:148 401 ****ab12 invalid。intent_classifier.py:62 兜底 chat 问题未修(第 4 轮)。 |
研发/运维 | 2026-11-11 06:10 | 待处理 |
| B-126-Update(第 4 轮) | langgraph pytest 收尾挂起(EXIT=124) | 研发 | 本轮未复现(观察 4/4)。43 例 167.42s 正常写出 summary 并退出,timeout 1500 未触发;仍有 JavaClient._get_client coroutine never awaited 警告。 |
研发(langgraph) | 2026-11-11 06:10 | 观察 |
| B-DX-1-Update(第 3 轮) | dx-bridge 端点 404(部署滞后) | 部署 | 延续(P1)。匿名 POST bridge/list、bridge/sync-status → 404 / 404。TR-24 47d203981 部署 pending。测试侧已挂载用例,上线后自动转 401/403 断言。 |
部署/运维 | 2026-11-11 06:10 | 待处理(观察) |
| B-36-Update(第 36 轮零漂移) | 根级黑盒 23 例 16 红 | 测试 | 零漂移(本轮实跑)。npx jest -c tests/jest.config.js --ci → 7 过 / 16 红 / 23,全 ECONNREFUSED 127.0.0.1:9082(本机后端未常驻)。建议改 webServer 自启或 skipif 化,避免长期占用 G2 名额。 |
测试 | 2026-11-11 06:10 | 待处理(环境型) |
| B-95-Update(第 11 轮) | 192.168.16.204:4090 失联 |
运维 | 延续(P2 第 11 轮)。204:4090 → 000;同期 189:4090=200、251:4096=200、251:9000 /health=ok。浏览器任务由 189 + 本机双节点承载。 |
运维 | 2026-11-11 06:10 | 待处理 |
| B-122-Confirm(销号后第 10 轮) | 189 节点浏览器能力 | 运维/测试 | 维持销号(本轮实派)。189 admin-desktop 5/5(1.5m),含滑块 + 真实登录入主框架;R137 记的「3/5 伪失败」本轮未复现(同 R123/R136 判节点偶发)。G10 双节点连续通过(189 admin + 251 pytest)。 | 运维/测试 | 2026-11-11 06:10 | 已闭环 |
| 后端 17 红基线(G2) | 后端 2928 例中 17 红 | 研发 | 事实更新(P0)。本轮实跑替代 R134 采信:344 类 / 2928 例 / 16F+1E = 99.28%,红类 9 个:EnergySystem 6、DimensionRegistryMap 3、Orchestration 2、GuideModule 1E、MembershipPay 1、PaymentORD 1、WechatLogin 2、TeamProfitCron 1。与 R134 同 17 红、红类集合一致 → 无回归;新增 1 类为 DietRecommendationServiceTest(17 例全绿,G12 食材推荐用例已生效)。 |
研发 | 2026-11-11 06:10 | 待处理 |
口径提示(R138):全量 3722 例 = 后端 2928 + 前端 582 + 管理端 116 + 根级 23 + langgraph 43 + 浏览器 30;通过 3656 = 98.23%;红 51 = 后端 17 + 根级 16 + 前端 16(预期 RED)+ langgraph 2(429);跳 15 = 后端 4 + 前端 9 + 浏览器 2(dx 404)。浏览器 28/28(189 admin 5 + 本机 fe 6 / shop 4 / health 13)+ dx 2 skip。G12 合规:SRS/场景窗口零变更 → 零新增用例;dx 用例由「未执行」转为可执行(配置挂载)。
| 编号 | 关联键/对象 | 类型 | 描述 | 经办 | 登记时间 | 状态 |
|---|---|---|---|---|---|---|
| B-139 | langgraph 251 派发通道(R140 复探) | 运维 | 192.168.16.251:9000 /health=ok(服务 OPEN)但 251:4090 opencode API=000(CLOSED,B-55 延续)→ pytest 无法在 251 权威复验;改本地 venv 兜底 38 过 / 6 红 / 44 收集(223s,6 红全为 LLM 依赖 auto_tag5+chat1,本地 venv 无 LLM 凭据,非代码回归)。窗口新增 S-cfc-135/136 契约(5 例 RED)未在 251 复验。对比 R139 251 权威 41 过/2 红/43 例 = 环境口径差异。 |
测试(R140 复探) | 2026-11-11 07:16 | 待处理(B-55 延续) |
| R140-RED | S-cfc-132~136 五个新 RED 契约待 GREEN | 研发 | 窗口内研发侧新增 5 个契约测试文件(前端 3:healthPlanSummary 8红 / consignee-editor 13红 / dayGroupView 10红;langgraph 2:intent.errorPropagate 3红 / pytest.exitHang 2红),均预期 RED(组件未落地 / LLM 依赖),待研发实现使绿。前端红例由 R139 的 16 → 47(+31)。非回归,为覆盖增强。 | 测试(研发交接通知) | 2026-11-11 07:16 | 待处理 |
R140 变更触发:对比 R139,前端红例 16→47(+31 预期 RED,研发侧新增契约)为已验证变化;按用户规则「测试结果有变化时提交远程+通知研发」→ 本报告 + 本台账已 commit + push origin/cfclub。Agent Mail 不可用,以 blockers.md + 报告为研发通知载体。浏览器 28/28、web 116/116、后端采信 R138 零漂移。
| 编号 | 关联键/对象 | 类型 | 描述 | 经办 | 登记时间 | 状态 |
|---|---|---|---|---|---|---|
| B-141-1 | langgraph tests/qna/test_graph.py 收集期中断 |
研发(langgraph) | 新增(P0)。pytest -q 在收集期 Interrupted: 1 error during collection(0.53s,0 例执行);根因 tests/qna/test_graph.py:7 from src.qna import ... 而仓库无 src/qna 包(ModuleNotFoundError)。当前只能 --ignore=tests/qna 绕过 → CI 若直跑必红。处置:补 src/qna/ 或 collect_ignore/importorskip。 |
测试(R141 实测) | 2026-11-11 09:05 | 待处理 |
| B-141-2 | 251 LLM 链路时延劣化 | 研发/运维 | 新增(P1)。251 线上 POST /api/v1/chat 200 / 728B / 100.03s、POST /api/v1/analyze 200 / 923B / 46.99s;R138 同接口 12.2s / 10.2s。同窗口 /health 200(10.6ms)、错参 422(27ms) → 服务活,仅 LLM 调用面慢(疑 429 退避叠时)。测试侧无时延断言 → 建议补 P95 ≤30s 守卫。 |
测试(R141 探测) | 2026-11-11 09:05 | 待处理(观察) |
| B-141-3 | 站点根 / 502 |
运维/部署 | 新增(P2)。https://cfc.iwintrue.com/ → 502(62ms),同窗口 /admin 200、/frontend 200 → 仅根 location 上游缺失,非全站故障。建议配 302 → /frontend。 |
测试(R141 巡检) | 2026-11-11 09:05 | 待处理 |
| B-DX-1-Update(第 4 轮) | dx-bridge 端点 404 | 部署 | 延续(P1)。首探 bridge/list、bridge/sync-status → 502/502(网关瞬抖),复探 404/404。TR-24 47d203981 仍 pending。 |
部署/运维 | 2026-11-11 09:05 | 待处理(观察) |
| B-36-Update(第 37 轮零漂移) | 根级黑盒 23 例 16 红 | 测试 | 零漂移。npx jest -c tests/jest.config.js --ci → 7 过 / 16 红 / 23(5.9s),全 ECONNREFUSED 127.0.0.1:9082。 |
测试 | 2026-11-11 09:05 | 待处理(环境型) |
| B-55/B-139-Update | 251 派发通道 | 运维/测试 | 撤销「不可用」判定(本轮实派成功)。251:4096=200 + POST /api/shell?location[directory]= → setsid nohup kick 分离 → 单次读日志,取回 51 例 / 46 过 / 5 红 / 137.10s,节点 HEAD d4626e5f1 = 本地 HEAD。R140 记的「4090 CLOSED」为端口写错(应为 4096)。 |
测试(R141 实派) | 2026-11-11 09:05 | 已闭环 |
| B-122-Confirm(第 11 轮) | 189 节点浏览器能力 | 运维/测试 | 维持销号。189 admin-desktop 5/5(1.2m),sh_1c7e2f98... 78s 取回 stdout;HEAD 2f74afb23@feature/s-cfc-70-star-digest,本轮未执行 git reset(保护 175 处他人未提交改动,B-138-2 纪律维持)。 |
运维/测试 | 2026-11-11 09:05 | 已闭环 |
| B-95-Update(第 12 轮) | 192.168.16.204:4090 失联 |
运维 | 延续(P2)。204:4090 → 000;189:4090=200、251:4096/9000=200。 |
运维 | 2026-11-11 09:05 | 待处理 |
| 后端红基线(G2) | 346 类 / 2937 例 / 22 红 | 研发 | 实跑更新(P0)。2911 过 / 21F+1E+4S = 99.11%(62:00)。22 红 = 预期 RED 5(LangGraphErrorPropagate 3 + LangGraphExitHang 2,S-cfc-135/136)+ 装置 16 + 数据 1(platform_fee 截断)。存量 17 红与 R138 逐类逐例一致 → 零回归。 | 研发 | 2026-11-11 09:05 | 待处理 |
| G9 锚点 | SRS 场景锚点 17.5% | 测试 | 口径更新。15 份台账 / 366 唯一 TC,严格口径(排除 tests/e2e/api/generated)被引用 64 = 17.5%;宽口径 325 = 88.8%(生成物虚高,B-86 同源)。R138 记 11.7% 为另一套正则,本轮口径已固定。 |
测试 | 2026-11-11 09:05 | 待处理 |
| G11 CI | 无 .github/workflows/ |
研发 | 延续(P1)。仓库仍无 CI 全量 job;后端全量 62 分钟只能靠人工轮次。 | 研发 | 2026-11-11 09:05 | 待处理 |
R141 口径:全量 3773 例 = 后端 2937 + 前端 616 + 管理端 116 + 根级 23 + langgraph 51 + 浏览器 30;通过 3665 = 97.14%(剔 skip 97.60%);红 90 = 后端 22 + 根级 16 + 前端 47(预期 RED)+ langgraph 5(429/401);跳 18 = 后端 4 + 前端 12 + 浏览器 2(dx 404)。 R141 变更触发:后端由 R139/R140 连续 2 轮采信转为实跑(+2 类 +9 例),langgraph 由本地 venv 兜底转为 251 实派(+8 例),dx 首探 502 → 复探 404,站点根 502 新增 → 结果有变化,已 commit + push origin/cfclub 并生成研发通知。
cfc6f8334)| 编号 | 关联键 | 类型 | 描述 | 经办 | 登记时间 | 状态 |
|---|---|---|---|---|---|---|
| S-cfc-137 | family.signature.healthPlanSummary |
研发 | GREEN 确认。0a01a0e8a 落地 health-plan-summary.vue → 前端 8 红全部转绿。 |
测试(R141 增量复验) | 2026-11-11 09:10 | 已闭环 |
| S-cfc-138 | family.signature.consigneeEditor |
研发 | GREEN 确认。f6590c89f 落地收件人编辑 + 手签名段 → 13 红全部转绿。 |
测试(R141 增量复验) | 2026-11-11 09:10 | 已闭环 |
| S-cfc-140 | langgraph.pytest.exitHang |
研发 | GREEN 确认。a1ead33a1 AsyncConfig 注入守护线程工厂 → 定向复跑 2/2 绿(0.067s)。 |
测试(R141 增量复验) | 2026-11-11 09:10 | 已闭环 |
| S-cfc-141 | langgraph.intent.errorPropagate |
研发 | GREEN 确认。a8cda0169 AiGateway 不再静默吞 null → 定向复跑 5/5 绿(5.119s),合并 9/9 BUILD SUCCESS。 |
测试(R141 增量复验) | 2026-11-11 09:10 | 已闭环 |
| 前端残留 14 红 | S-cfc-134 + signature.consignee AC-R1/R2 |
研发 | 仍为预期 RED。growthHistory.dayGroupView 12 例(日期分组状态/groupByDate/模板分组与空态)、signature.consignee.test.js 2 例(确认回调方法 + 模板 HandSignature 段)。R141 前端实测 616 / 590 过 / 14 红 / 12 跳。 |
测试(R141 增量复验) | 2026-11-11 09:10 | 待处理 |
| 增量推算 | 全量趋势 | 测试 | 98.14%(估):3773 例 / 3703 过 / 红 52 / 跳 18。前端与 2 契约类为实测,后端其余沿用 d4626e5f1 全量 → 下轮全量重跑升格。 |
测试 | 2026-11-11 09:10 | 待下轮确认 |
R141 增量口径:G1 仍以全量实测 97.14% 记账;98.14% 为「GREEN 落地后的趋势推算」,未全量重跑不升格(B-57 纪律:不为让指标变好而降级取证方式)。
5523629ad)| 编号 | 关联键 | 类型 | 描述 | 经办 | 登记时间 | 状态 |
|---|---|---|---|---|---|---|
| B-142-1 | /api/admin/** 鉴权门缺失 |
研发(P1 安全) | 新增。线上 /api/admin/families/stats、/families/count、/families/{id}/overview、/families 匿名 POST 均 200 / data:null(对照 /api/mind/** 等 5 端点 → 401)。根因 JwtInterceptor.LOGIN_REQUIRED_PATHS 不含 /api/admin/,匿名被 setAnonymousUser 放行至 controller,controller 内 AdminRoles 判断兜住数据。当前未越权、未泄露,但依赖 controller 自觉。处置:LOGIN_REQUIRED_PATHS 追加 "/api/admin/"(保留 /api/admin-auth/ 例外),匿名 → 401。 |
测试(R142 探针) | 2026-11-11 10:21 | 待处理 |
| B-142-2 | LLM chat 时延劣化 | 研发/运维(P1) | 延续劣化。251 POST /api/v1/chat {"query":"你好","user_id":1} → 120s timeout(R141 100.03s 200 通过、R138 12.2s)。同窗口 analyze 200/5.13s(−89% 改善)。处置方向:服务侧 LLM 调用超时 30s + 429 退避上限;测试侧 P95 ≤30s 守卫。 |
测试(R142 探针) | 2026-11-11 10:21 | 待处理 |
| B-141-1 | langgraph tests/qna 收集期中断 |
研发(P0) | 延续。本轮 251 仍用 --ignore=tests/qna 绕过。去除 ignore 后必 Interrupted: 1 error during collection。 |
研发(未修) | 2026-11-11 10:21 | 待处理 |
| B-141-3-Update | 站点根 / 404 |
运维(P2) | 502 → 404。https://cfc.iwintrue.com/ 本轮 404(R141 502);openresty 侧已改但未配正确目标(应 302 → /frontend)。 |
测试(R142 巡检) | 2026-11-11 10:21 | 待处理 |
| B-DX-1-Update(第 5 轮) | dx-bridge 端点 404 | 部署 | 延续。bridge/{list,sync-status} → 404/404。TR-24 47d203981 仍 pending。 |
部署/运维 | 2026-11-11 10:21 | 待处理 |
| B-36-Update(第 38 轮零漂移) | 根级黑盒 23 例 16 红 | 测试 | 零漂移。npx jest -c tests/jest.config.js --ci → 7 过 / 16 红 / 23(14.8s),全 ECONNREFUSED 127.0.0.1:9082。 |
测试 | 2026-11-11 10:21 | 待处理(环境型) |
| B-95-Update(第 13 轮) | 192.168.16.204:4090 失联 |
运维 | 延续。204:4090 → 000;189:4090=200、251:4096/9000=200。 |
运维 | 2026-11-11 10:21 | 待处理 |
| 后端红基线(G2) | 347 类 / 2946 例 / 17 红 | 研发 | 实跑更新(P0)。2925 过 / 16F+1E+4S = 99.29%(52:04)。17 红 = 装置 16 + 数据 1(platform_fee);R141 的 22 红中 5 红(S-cfc-135/136 契约)已 GREEN → 零回归。 | 研发 | 2026-11-11 10:21 | 待处理 |
| 前端 3 预期 RED | S-cfc-138 AC-R1/R2 + S-cfc-134 RED-A7 | 研发 | 改善。signature.consignee 2(确认回调 + 模板 HandSignature 段)+ growthHistory.dayGroupView RED-A7 1(全无效日期 7 组)。R142 前端实测 616 / 601 过 / 3 红 / 12 跳。R141 47 红 → R142 3 红。 |
测试(R142 实测) | 2026-11-11 10:21 | 待处理 |
| G9 锚点 | SRS 场景锚点 17.5% | 测试 | 延续。严格口径 64/366。 | 测试 | 2026-11-11 10:21 | 待处理 |
| G11 CI | 无 .github/workflows/ |
研发 | 延续(P1)。仓库仍无 CI 全量 job;后端全量 52 分钟只能靠人工轮次。 | 研发 | 2026-11-11 10:21 | 待处理 |
| G12 SRS 同步 | 新增 families/stats 接口 |
测试 | 本轮合规闭环。检出 8f9b29a42 新增接口后补 AdminFamilyStatsContractTest 9 例 9/9 绿(随本轮入库)。 |
测试 | 2026-11-11 10:21 | 已闭环 |
| S-cfc-135/136/137/138/139/140/141 | 七键 GREEN 闭环确认 | 研发 | 全部闭环验证:后端 S-cfc-135/136 契约 5 红→0;langgraph S-cfc-135 intent 2 红→0、auto_tag 3 红→1;前端 S-cfc-137/138/139 33 红→3。合计 53 红转绿。 |
测试(R142 实测) | 2026-11-11 10:21 | 已闭环 |
R142 口径:全量 3782 例 = 后端 2946 + 前端 616 + 管理端 116 + 根级 23 + langgraph 51 + 浏览器 30;通过 3727 = 98.55%(剔 skip 99.02%);红 37 = 后端 17 + 根级 16 + 前端 3 + langgraph 1;跳 18 = 后端 4 + 前端 12 + 浏览器 2(dx 404)。 G1 首次达阈值 ≥98%;G5/G6/G8/G10/G12 ✅;G2/G9/G11 ❌;G3/G7 ⚠️。 结论:⚠️ 有条件通过(较 R141「不通过」升一档)—— S-cfc-135~141 七个 GREEN 全闭环、零回归、零未归因红。
e37498f70,零漂移轮)| 编号 | 关联键 | 类型 | 描述 | 经办 | 登记时间 | 状态 |
|---|---|---|---|---|---|---|
| B-142-2-Update | 251 LLM 上游连接失败 | 运维(P0) | 恶化。R142 120s timeout → R143 POST /api/v1/chat 20s CHAT=000/0B 连接失败(ConnectError('All connection attempts failed') → 端点 500)。langgraph 3 红(auto_tag valid_format/content_relevance/short_content)全因 chat 500,非代码回归(源码 24h 零 commit)。处置:运维检查 251→LLM 上游网络/凭据/服务。 |
测试(R143 探针) | 2026-11-11 11:30 | 待处理 |
| B-142-1-Update(第 2 轮) | /api/admin/** 鉴权门缺失 |
研发(P1 安全) | 延续。匿名 POST /api/admin/families/stats、/families/count、/families/{id}/overview、/families 仍 200/data:null;根因 LOGIN_REQUIRED_PATHS 缺 /api/admin/。未越权未泄露。 |
测试(R143 探针) | 2026-11-11 11:30 | 待处理 |
| B-134-4-Update(第 6 轮) | intent_classifier 429 兜底伪装 | 研发/运维(P1) | 延续。LLM 依赖用例(auto_tag/intent)红例仍全为上游异常;chat 连接失败掩盖 429 根因,建议错误透传(AiGateway 429/401 传播修复是否生效待复核)。 | 测试(R143 探针) | 2026-11-11 11:30 | 待处理 |
| B-95-Update(第 14 轮) | 192.168.16.204:4090 失联 |
运维(P2) | 延续。204:4090 → 000;189:4090=200、251:4096/9000=200。frontend 回退本机串行兜底合规。 | 运维 | 2026-11-11 11:30 | 待处理 |
| B-DX-1-Update(第 5 轮) | dx-bridge 端点 404 | 部署(P2) | 延续。bridge/{list,sync-status} → 404/404(2 skip)。TR-24 47d203981 仍 pending。 |
部署/运维 | 2026-11-11 11:30 | 待处理 |
| B-69-Update(第 22 轮) | mind/fortune 匿名 200 | 研发(P1) | 延续。/api/mind/** 匿名 200 口径与 B-142-1 同族(LOGIN_REQUIRED_PATHS 缺 /api/mind/);O-21 未落码。 |
测试(R143 巡检) | 2026-11-11 11:30 | 待处理 |
| B-13-Update | 环境红 MySQL 连接 | 运维(P2) | 延续。根级 16 红全 ECONNREFUSED 127.0.0.1:9082(后端未启)。 |
测试(R143 巡检) | 2026-11-11 11:30 | 待处理(环境型) |
| B-36-Update(第 39 轮零漂移) | 根级黑盒门控 | 测试(P3) | 零漂移。7/16 采信 R142;9082 启动前可忽略。 | 测试 | 2026-11-11 11:30 | 待处理(环境型) |
R143 口径:零漂移轮(后端/前端/langgraph 源码零 diff),仅实跑浏览器 E2E + langgraph + cfc-web 采样。 浏览器 28/28 + dx 2 skip ✅(189 admin 5/5 + 本机 fe 6/shop 4/health 13);langgraph 43 例 40 过/3 红(auto_tag 3,ConnectError 环境);cfc-web 116/116;后端/前端/根级采信 R142。 结论:⚠️ 有条件通过(与 R142 同级)—— 浏览器 G6/G10 ✅、G3/G4 ✅、G8 ✅、G12 ✅;G7 3 环境红 ❌、G2 41 红 ❌、G9 9.9% ❌、G11 无 CI ❌。 变化点:langgraph 红例 1→3(B-142-2 环境恶化),已推送 + 通知研发。
c7c7523c8,零漂移轮 + langgraph 恶化)| 编号 | 关联键 | 类型 | 描述 | 经办 | 登记时间 | 状态 |
|---|---|---|---|---|---|---|
| B-142-2-Update | 251 LLM 上游 429 免费额度耗尽 | 运维(P0) | 恶化。R143 ConnectError(连接失败)→ R144 RateLimitError 429 - You've reached the API rate limit for free users(额度耗尽)。langgraph 7 红(auto_tag 3 + intent 4)全因 429→chat 500 / 默认 chat 兜底→断言失败。非代码回归(源码 24h 零 commit,git reset --hard origin/cfclub 重跑)。处置:运维为 251 LLM 上游(AgnesAI)充值/换付费 key/提升限额。 |
测试(R144 探针) | 2026-11-11 11:43 | 待处理 |
| B-134-4-Update(第 7 轮) | intent_classifier 429 兜底伪装 | 研发/运维(P1) | 恶化。intent 由 R143 5/5 转 R144 4 红:429→静默兜底默认 chat→断言 ANALYSIS/RECOMMEND/MIND/HEALTH 失败;同族 auto_tag 3 红。建议错误透传或将兜底改为显式抛错,测试侧对 429 标注 env-skip。 |
测试(R144 探针) | 2026-11-11 11:43 | 待处理 |
| B-189-Update(新增·本轮) | 192.168.16.189:4090 鉴权门控 |
运维(P2) | 新增观察。本轮回探 189 api/info=UnauthorizedError(R143 尚可用 admin 实派);本机无 opencode 凭证无法派发 → 浏览器全量回退本机单节点。建议注入 189 凭证或确认退役。 |
测试(R144 巡检) | 2026-11-11 11:43 | 待处理 |
| B-142-1-Update(第 3 轮) | /api/admin/** 鉴权门缺失 |
研发(P1 安全) | 延续。匿名 POST /api/admin/families/stats 等仍 200/data:null;根因 LOGIN_REQUIRED_PATHS 缺 /api/admin/。 |
测试(R144 探针) | 2026-11-11 11:43 | 待处理 |
| B-95-Update(第 15 轮) | 192.168.16.204:4090 失联 |
运维(P2) | 延续。204:4090 → 000;189:4090=200(鉴权门控)、251:4096/9000=200。 | 运维 | 2026-11-11 11:43 | 待处理 |
| B-DX-1-Update(第 6 轮) | dx-bridge 端点 404 | 部署(P2) | 延续。bridge/{list,sync-status} → 404/404(2 skip)。TR-24 仍 pending。 |
部署/运维 | 2026-11-11 11:43 | 待处理 |
| B-69-Update(第 23 轮) | mind/fortune 匿名 200 | 研发(P1) | 延续。/api/mind/** 匿名 200 口径与 B-142-1 同族;O-21 未落码。 |
测试(R144 巡检) | 2026-11-11 11:43 | 待处理 |
| B-13-Update | 环境红 MySQL 连接 | 运维(P2) | 延续。根级 16 红全 ECONNREFUSED 127.0.0.1:9082(后端未启)。 |
测试(R144 巡检) | 2026-11-11 11:43 | 待处理(环境型) |
| B-36-Update(第 40 轮零漂移) | 根级黑盒门控 | 测试(P3) | 零漂移。7/16 采信 R142;9082 启动前可忽略。 | 测试 | 2026-11-11 11:43 | 待处理(环境型) |
R144 口径:零漂移轮(后端/前端/langgraph 源码零 diff),仅实跑浏览器 E2E + langgraph + Jest 采样。 浏览器 28/28 + dx 2 skip ✅(本机单节点串行:189 鉴权门控/204 失联);langgraph 43 例 36 过/7 红(auto_tag 3 + intent 4,全 429 免费额度耗尽);cfc-web 116/116;cfc-frontend 601/3/12;后端/前端/根级采信 R142/R143。 结论:⚠️ 有条件通过(与 R143 同级)—— 浏览器 G6 ✅、G3/G4 ✅、G8 ✅、G12 ✅;G7 7 环境红 ❌、G2 45 红 ❌、G9 9.9% ❌、G11 无 CI ❌、G10 单节点。 变化点:langgraph 红例 3→7(B-142-2 环境恶化:ConnectError→429 额度耗尽,intent 由 5/5 转 4 红),已推送 + 通知研发(结果实质变化触发)。
ab33afac8,后端强制实跑 + 双节点恢复)| 编号 | 关联键 | 类型 | 描述 | 经办 | 登记时间 | 状态 |
|---|---|---|---|---|---|---|
| B-145-1(新增) | nutrition_age_dosage 建表 SQL 无效 |
研发(P1 Schema) | 新增。schema.sql:5354 建表语句含 INDEX idx_product (product_id),但该表无 product_id 列 → MySQL 报 SQLSyntaxErrorException: Key column 'product_id' doesn't exist in table,DatabaseInitializer catch 后继续(日志仍打「数据表检查完成」)→ 该表从未创建成功,依赖它的剂量建议在运行期不可用。PRD 2026-10-27-nutrition-product-tagging-prd.md 第 4 条已自述该缺陷但一直未修。本轮启动段重复 2 次报错。处置:删该索引行(表本身无产品关联字段);若需产品维度则补列 + 实体 + ensureColumn 迁移并同步 schema.sql。 |
测试(R145 探针) | 2026-11-11 13:25 | 待处理 |
| B-142-2-Update(第 4 轮) | 251 LLM 上游 429 免费额度耗尽 | 运维(P0) | 延续(略改善)。langgraph 51 例 6 红(R144 为 7 红)全为 429 you've reached the API rate limit for free users:test_auto_tag 3(assert 500 == 200)+ test_intent 3(兜底 chat)。进程正常退出,B-126 未复现(第 5 轮)。 |
测试(R145 实派) | 2026-11-11 13:25 | 待处理 |
| B-134-4-Update(第 8 轮) | intent_classifier 429 兜底伪装 | 研发/运维(P1) | 延续。intent_classifier.py:62 捕获异常后「默认 chat」,把上游故障伪装成分类结果;本轮 intent 5 例中 3 红。 |
测试(R145 实派) | 2026-11-11 13:25 | 待处理 |
| B-142-1-Update(第 4 轮) | /api/admin/** 鉴权门缺失 |
研发(P1 安全) | 延续(复核成立)。匿名 POST /api/admin/families/overview → HTTP 200 + {"code":400,"message":"请求参数格式错误"},证明请求穿过 JwtInterceptor 到达控制器;对照组 /api/energy/overview → 401。定性:只看 HTTP 码会误判为正常,须同时看 body 与对照组。 |
测试(R145 探针) | 2026-11-11 13:25 | 待处理 |
| B-189-Update(撤销) | 192.168.16.189:4090 鉴权门控 |
运维(P2) | 本轮未复现 → 撤销。189 shell 可建可读、admin-desktop 5/5(1.6m,EXIT=0);仓库在 C:\code\cfc(非 C:\worktrees\cfc-user-is-child),spec blob 4703d73fb 与本机一致。R144 的「UnauthorizedError」实为沿用旧路径/旧派发器所致。G10 双节点本轮恢复。备注:该节点 shell 为 PowerShell,禁用 tail/POSIX 路径;禁止 git reset(他人工作区有未提交改动)。 |
测试(R145 实派) | 2026-11-11 13:25 | 已闭环 |
| B-95-Update(第 16 轮) | 192.168.16.204:4090 失联 |
运维(P2) | 延续。204:4090 → 000;189:4090=200、251:4096/9000=200。 | 运维 | 2026-11-11 13:25 | 待处理 |
| B-DX-1-Update(第 7 轮) | dx-bridge 端点 404 | 部署(P2) | 延续。bridge/{list,sync-status} → 404/404(浏览器 2 例 skip)。TR-24 仍 pending。 |
部署/运维 | 2026-11-11 13:25 | 待处理 |
| B-69-Update(第 8 轮销号维持) | mind/fortune 匿名 200 | 研发(P1) | 维持销号。匿名 POST 5 端点(mind/fortune、energy/overview、health/plan/list、huawei-health、xiaomi-health)全 401。 | 测试(R145 巡检) | 2026-11-11 13:25 | 已闭环(维持第 8 轮) |
| B-138-3-Update(第 3 轮) | 后端超慢测试类 | 研发(P3 效率) | 延续(新增进榜)。AuthControllerTest 348.8s、ActivityControllerTest 337.3s、ArticleControllerTest 184.5s,合计 13.1min 占全量 1:09h 的 19%。 |
测试(R145 实跑) | 2026-11-11 13:25 | 待处理 |
| B-126-Update(第 5 轮未复现) | pytest 收尾挂起 EXIT=124 |
测试(P3) | 未复现。251 pytest 127.77s 正常退出(shell status=exited,summary 完整)。继续观察。 | 测试 | 2026-11-11 13:25 | 观察中 |
| B-141-3-Update | 站点根 / 502 |
运维(P3) | 状态变化。/ 由 502 → 404;/admin 302→200、/frontend 302→200 均正常。 |
测试(R145 巡检) | 2026-11-11 13:25 | 观察中 |
| B-36-Update(第 41 轮零漂移) | 根级黑盒门控 | 测试(P3) | 零漂移。23 例 7 过 / 16 红,全 ECONNREFUSED 127.0.0.1:9082;建议加探活 skip 以让 G2 可清零(R145 问题 7 已给方案)。 |
测试 | 2026-11-11 13:25 | 待处理(环境型) |
R145 口径:全部套件实跑(后端由连续 2 轮采信改实跑,R143/R144 采信达上限)。 后端 347 类 / 2946 例 / 2925 过 / 17 红 / 4 跳 = 99.29%(1:09h,347/347 XML,dump 0,353 源 0 错);17 红与 R142 逐类逐例一致 → 零回归(第 5 次零漂移)。 浏览器 28/28 + dx 2 skip(189 admin 5/5 + 本机 fe 6/shop 4/health 13);langgraph 51 例 45 过/6 红;cfc-web 116/116;cfc-frontend 601/3/12;根级 23 = 7/16。 全量 3782 / 3722 过 = 98.41%(剔 skip 98.88%)。 结论:⚠️ 有条件通过 —— G1 ✅ 98.41%、G4 ✅、G5 ✅、G6 ✅ 28/28、G8 ✅ 5/5、G10 ✅ 双节点、G12 ✅;❌ G2 42 红、G7 6 红(429)、G9 29.1%、G11 无 CI;⚠️ G3 3 预期 RED。 变化点:① 后端由采信改实跑(零回归);② langgraph 7 红→6 红;③ 189 节点恢复实派(B-189 撤销);④ 新增 B-145-1(建表 SQL 无效)→ 已推送 + 通知研发。
80dfa4526 → origin b7da21994,全量实跑 + langgraph 改善)| 编号 | 关联键 | 类型 | 描述 | 经办 | 登记时间 | 状态 |
|---|---|---|---|---|---|---|
| B-145-1-Update(第 2 轮) | nutrition_age_dosage 建表 SQL 无效 |
研发(P1 Schema) | 延续(上市后第 2 轮挂账,未见修复提交)。schema.sql:5354 无效索引 idx_product(product_id) → 表从未创建成功,DatabaseInitializer catch 后静默继续。 |
测试(R146 实跑) | 2026-11-11 14:42 | 待处理 |
| B-142-2-Update(第 5 轮) | 251 LLM 上游连接故障 | 运维(P0) | 延续(形态漂移:429 → ConnectError)。langgraph 51 例 2 红全为 ConnectError('All connection attempts failed')(test_auto_tag valid_format/content_relevance),较 R145 的 6 红改善 4 例:intent 3 红转绿(上游恢复)、auto_tag 3→2。根因由免费额度 429 漂移为网络链路失败——运维排查方向相应调整。 |
测试(R146 实派) | 2026-11-11 14:42 | 待处理 |
| B-134-4-Update(第 9 轮) | intent_classifier 上游故障兜底伪装 | 研发/运维(P1) | 延续(缺陷仍在,本轮未触发)。intent_classifier.py:62 捕获异常后「默认 chat」;本轮 intent 5/5 全绿(上游恢复)但兜底缺陷仍存在,上游一故障就会假绿。 |
测试(R146 实派) | 2026-11-11 14:42 | 待处理 |
| B-142-1-Update(第 5 轮) | /api/admin/** 鉴权门缺失 |
研发(P1 安全) | 延续(复核成立)。匿名 POST /api/admin/families/overview → HTTP 200 + code:400(请求穿过拦截器到达控制器);对照组 /api/energy/overview → 401。 |
测试(R146 探针) | 2026-11-11 14:42 | 待处理 |
| B-95-Update(第 17 轮) | 192.168.16.204:4090 失联 |
运维(P2) | 延续。204:4090 → 000;189:4090=200、251:4096/9000=200。 | 运维 | 2026-11-11 14:42 | 待处理 |
| B-DX-1-Update(第 8 轮) | dx-bridge 端点 404 | 部署(P2) | 延续。bridge/{list,sync-status} → 404/404(浏览器 2 例 skip)。TR-24 仍 pending。 |
部署/运维 | 2026-11-11 14:42 | 待处理 |
| B-69-Update(第 9 轮销号维持) | mind/fortune 匿名 200 | 研发(P1) | 维持销号。匿名 POST 5 端点(mind/fortune、energy/overview、health/plan/list、huawei-health、xiaomi-health)全 401。 | 测试(R146 巡检) | 2026-11-11 14:42 | 已闭环(维持第 9 轮) |
| B-138-3-Update(第 4 轮) | 后端超慢测试类 | 研发(P3 效率) | 延续。AuthControllerTest / ActivityControllerTest / ArticleControllerTest 三慢类仍占全量大头(本轮全量 44m 受此影响)。 | 测试(R146 实跑) | 2026-11-11 14:42 | 待处理 |
| B-126-Update(第 6 轮未复现) | pytest 收尾挂起 EXIT=124 |
测试(P3) | 未复现。251 pytest 331.43s 正常退出(无 EXIT=124)。继续观察。 | 测试 | 2026-11-11 14:42 | 观察中 |
| B-141-3-Update | 站点根 / 502 |
运维(P3) | 维持观察。/ 404、/admin 302→200、/frontend 302→200。 |
测试(R146 巡检) | 2026-11-11 14:42 | 观察中 |
| B-36-Update(第 42 轮零漂移) | 根级黑盒门控 | 测试(P3) | 零漂移。23 例 7 过 / 16 红,全 ECONNREFUSED 127.0.0.1:9082;建议加探活 skip(R146 问题 7 已给方案)。 |
测试 | 2026-11-11 14:42 | 待处理(环境型) |
R146 口径:全部套件实跑(后端全量第 2 次强制实跑)。 后端 347 类 / 2946 例 / 2925 过 / 17 红 / 4 跳 = 99.29%(44m,347/347 XML,353 源 0 错;1 个 fork-checker dump 判无害);17 红与 R145 逐类逐例一致 → 零回归(第 6 次零漂移)。 浏览器 28/28 + dx 2 skip(189 admin 5/5 + 本机 fe 6/shop 4/health 13);langgraph 51 例 49 过/2 红(ConnectError 上游,较 R145 改善 4 例);cfc-web 116/116;cfc-frontend 601/3/12;根级 23 = 7/16。 全量 3782 / 3726 过 = 98.52%(剔 skip 98.99%)。 结论:⚠️ 有条件通过 —— G1 ✅ 98.52%、G4 ✅、G5 ✅、G6 ✅ 28/28、G8 ✅ 5/5、G10 ✅ 双节点、G12 ✅;❌ G2 38 红、G7 2 红(ConnectError)、G9 29.1%、G11 无 CI;⚠️ G3 3 预期 RED。 变化点:langgraph 6 红→2 红(intent 转绿、根因 429→ConnectError)、全量 98.41%→98.52% → 已推送 + 通知研发(结果实质改善触发)。
df4c2ab45 → origin c21934790,langgraph 首次全绿)| 编号 | 关联键 | 类型 | 描述 | 经办 | 登记时间 | 状态 |
|---|---|---|---|---|---|---|
| B-145-1-Update(第 3 轮) | nutrition_age_dosage 建表 SQL 无效 |
研发(P1 Schema) | 延续(上市后第 3 轮挂账,未见修复提交)。schema.sql:5354 无效索引 idx_product(product_id) → 表从未创建成功。 |
测试(R147 采信 R146) | 2026-11-11 16:05 | 待处理 |
| B-142-2-Update(第 6 轮) | 251 LLM 上游连接故障 | 运维(P0) | 红例清零(疑似销号,待 1 轮复验)。langgraph 51/51 全绿(506.90s),日志零 ConnectError/429/401——上游已恢复,R146 的 auto_tag 2 红全部转绿。按纪律不立即销号:连续 2 轮全绿后正式销号。 | 测试(R147 实派) | 2026-11-11 16:05 | 待处理(复验中) |
| B-142-1-Update(第 6 轮) | /api/admin/** 鉴权门缺失 |
研发(P1 安全) | 延续(复核成立)。匿名 POST /api/admin/families/overview → HTTP 200 + code:400;对照组 /api/energy/overview → 401。 |
测试(R147 巡检) | 2026-11-11 16:05 | 待处理 |
| B-134-4-Update(第 10 轮) | intent_classifier 上游故障兜底伪装 | 研发/运维(P1) | 延续(缺陷仍在,本轮未触发)。intent 5/5 全绿(上游恢复)但兜底缺陷仍存在。 | 测试(R147 实派) | 2026-11-11 16:05 | 待处理 |
| B-95-Update(第 18 轮) | 192.168.16.204:4090 失联 |
运维(P2) | 延续。204:4090 → 000;189:4090=200、251:4096/9000=200。 | 运维 | 2026-11-11 16:05 | 待处理 |
| B-DX-1-Update(第 9 轮) | dx-bridge 端点 404 | 部署(P2) | 延续。bridge/{list,sync-status} → 404/404(浏览器 2 例 skip)。TR-24 仍 pending。 |
部署/运维 | 2026-11-11 16:05 | 待处理 |
| B-69-Update(第 10 轮销号维持) | mind/fortune 匿名 200 | 研发(P1) | 维持销号。匿名 POST 5 端点(mind/fortune、energy/overview、health/plan/list、huawei-health、xiaomi-health)全 401。 | 测试(R147 巡检) | 2026-11-11 16:05 | 已闭环(维持第 10 轮) |
| B-138-3-Update(第 5 轮) | 后端超慢测试类 | 研发(P3 效率) | 延续。AuthControllerTest / ActivityControllerTest / ArticleControllerTest 三慢类仍占全量大头(R146 全量 44m 受影响)。 | 测试(R147 采信) | 2026-11-11 16:05 | 待处理 |
| B-126-Update(第 8 轮未复现) | pytest 收尾挂起 EXIT=124 |
测试(P3) | 未复现。251 pytest 506.90s 完整输出 51 passed 正常收尾(LG_EXIT=124 为 timeout 管道噪音,非挂起)。继续观察。 |
测试 | 2026-11-11 16:05 | 观察中 |
| B-141-3-Update | 站点根 / 502 |
运维(P3) | 维持观察。/ 404、/admin 302→200、/frontend 302→200。 |
测试(R147 巡检) | 2026-11-11 16:05 | 观察中 |
| B-36-Update(第 43 轮零漂移) | 根级黑盒门控 | 测试(P3) | 零漂移。23 例 7 过 / 16 红,全 ECONNREFUSED 127.0.0.1:9082。 |
测试 | 2026-11-11 16:05 | 待处理(环境型) |
| B-141-1(延续) | qna 收集期缺陷 | 研发(P1) | 延续(排除项)。pytest 口径 --ignore=tests/qna --ignore=tests/test_chat.py。 |
测试(R147 实派) | 2026-11-11 16:05 | 待处理 |
R147 口径:后端采信 R146(44m 实跑、窗口零源码变更);浏览器 / langgraph / 三套 Jest / 根级全部实跑。 后端 347 类 / 2946 例 / 2925 过 / 17 红 / 4 跳 = 99.29%(与 R146 同集合 → 零回归第 7 次)。 浏览器 28/28 + dx 2 skip(189 admin 5/5 + 本机 fe 6/shop 4/health 13);langgraph 51 例 51 过 / 0 红(首次全绿,506.90s);cfc-web 116/116;cfc-frontend 601/3/12;根级 23 = 7/16。 全量 3782 / 3728 过 = 98.57%(剔 skip 99.04%)。 结论:⚠️ 有条件通过 —— G1 ✅ 98.57%、G4 ✅、G5 ✅、G6 ✅ 28/28、G7 ✅ langgraph 51/51 首次全绿、G8 ✅ 5/5、G10 ✅ 双节点、G12 ✅;❌ G2 36 红、G9 29.1%、G11 无 CI;⚠️ G3 3 预期 RED。 变化点:langgraph 2 红→0 红(首次全绿,B-142-2 疑似销号待复验)、全量 98.52%→98.57% → 已推送 + 通知研发(结果实质改善触发)。
ffa97bf02,后端强制实跑 + langgraph 复验未过)| 编号 | 关联键 | 类型 | 描述 | 经办 | 登记时间 | 状态 |
|---|---|---|---|---|---|---|
| B-142-2-Update(第 7 轮) | 251 LLM 上游连接故障 | 运维/AI(P0) | 不销号(复验未过)。langgraph 51 例 / 50 过 / 1 红 / 292.22s;红例 test_auto_tag_short_content → chat 500,日志 ConnectError('All connection attempts failed') + 加载提示词 intent_classifier 失败 + SLOW_REQUEST 14.99s。R147 全绿为第 1 轮,需连续 2 轮绿方可销号。 |
测试(R148 实派) | 2026-11-11 17:40 | 待处理(观察 1/2) |
| B-148-1(新) | 网关瞬抖 502 污染鉴权断言 | 运维(P2) | health 套件首跑 TC-H-U01 POST /api/huawei-health/auth-url 收 502(断言仅允许 401/403)→ 首次 12/13;同一窗口直连 2/2 = 401、套件复跑 13/13 绿。判定:网关瞬抖,非鉴权缺陷。建议用例对 5xx 做 ≤2 次退避重试或 test.fixme + 「网关不可用」标注。 |
测试(R148 巡检) | 2026-11-11 17:40 | 观察中 |
| B-142-1-Update(第 7 轮) | /api/admin/** 鉴权门缺失 |
研发(P1 安全) | 延续(复核成立,7 轮未修)。匿名 POST /api/admin/families/overview → HTTP 200 + {"code":400,"message":"请求参数格式错误"};对照组 mind/energy/health-plan/huawei/xiaomi 全 401。 |
测试(R148 巡检) | 2026-11-11 17:40 | 待处理 |
| B-145-1-Update(第 4 轮) | nutrition_age_dosage 建表 SQL 无效 |
研发(P1 Schema) | 延续(4 轮未修)。schema.sql:5343 建表体第 12 行 INDEX idx_product (product_id),而列定义中无 product_id → DDL 恒失败;DatabaseInitializer catch 后仍打印「数据表检查完成」。 |
测试(R148 复核) | 2026-11-11 17:40 | 待处理 |
| B-134-4-Update(第 11 轮) | intent_classifier 兜底伪装 | 研发/AI(P1) | 延续(缺陷仍在,本轮触发路径为 ConnectError)。app/intent_classifier.py:62 异常 → 默认 chat,上游故障被伪装正常。 |
测试(R148 实派) | 2026-11-11 17:40 | 待处理 |
| B-95-Update(第 19 轮) | 192.168.16.204:4090 失联 |
运维(P2) | 延续。204:4090 → 000;189:4090 = 200、251:4096 = 200。 | 运维 | 2026-11-11 17:40 | 待处理 |
| B-DX-1-Update(第 10 轮) | dx-bridge 端点 404 | 部署(P2) | 延续。浏览器 dx-bridge 2 例 skip(端点 404)。 | 部署/运维 | 2026-11-11 17:40 | 待处理 |
| B-36-Update(第 44 轮零漂移) | 根级黑盒门控 | 测试(P3) | 零漂移。23 例 7 过 / 16 红,全 ECONNREFUSED 127.0.0.1:9082。建议下轮改「探活失败即 skip 并输出原因」。 |
测试 | 2026-11-11 17:40 | 待处理(环境型) |
| B-138-3-Update(第 6 轮) | 后端超慢测试类 | 研发(P3 效率) | 延续。本轮全量 51:57(R146 44m、R145 1:09h),前端 Jest 并发期间耗时抬升;慢类仍占大头。 | 测试(R148 实测) | 2026-11-11 17:40 | 待处理 |
| B-69-Update(第 11 轮销号维持) | mind/fortune 匿名 200 | 研发(P1) | 维持销号。匿名 POST 5 端点(mind/fortune、energy/overview、health/plan/list、huawei-health、xiaomi-health)全 401。 | 测试(R148 巡检) | 2026-11-11 17:40 | 已闭环 |
| B-141-3-Update | 站点根 / 502 |
运维(P3) | 维持观察。/ = 404、/admin = 302→200、/frontend = 302→200。 |
测试(R148 巡检) | 2026-11-11 17:40 | 观察中 |
| B-126-Update(第 9 轮) | pytest 收尾 EXIT=124 |
测试(P3) | 本轮口径不可判:/tmp/r148_pytest.log 未见 PYTEST_EXIT= 行(kick 命令转义导致 $? 未落盘)→ 退出码缺失,不能据此判正常退出。建议:kick 命令改用 bash -c '... ; echo EXIT=$? >> LOG' 单引号包裹避免 $? 被外层展开。 |
测试 | 2026-11-11 17:40 | 待核实 |
| B-141-1(延续) | qna 收集期缺陷 | 研发(P1) | 延续(排除项)。pytest 口径 --ignore=tests/qna --ignore=tests/test_chat.py。 |
测试(R148 实派) | 2026-11-11 17:40 | 待处理 |
R148 口径:后端强制实跑(R147 采信 R146 累计 1 轮,且窗口含 cfc-web 构建元数据变更)。 后端 347 类 / 2946 例 / 2925 过 / 17 红 / 4 跳 = 99.29%(恒等式
@Test 2935 − @Disabled 4 + 净增 15;347/347 XML;dump 0;与 R146/R145 逐类逐例一致 → 零回归第 8 次)。 浏览器 28/28 + dx 2 skip(189 admin 5/5 81s、本机 fe 6/shop 4/health 13);langgraph 51 例 50 过 / 1 红(ConnectError);cfc-web 116/116;cfc-frontend 601/3/12;根级 23 = 7/16。 全量 3782 / 3727 过 = 98.55%(剔 skip 99.02%)。 结论:⚠️ 有条件通过 —— G1 ✅ 98.55%、G4 ✅、G5 ✅、G6 ✅ 28/28、G8 ✅ 5/5、G10 ✅ 双节点、G12 ✅;❌ G2 37 红、G7 langgraph 1 红(由上轮 ✅ 回落)、G9 30.0%、G11 无 CI;⚠️ G3 3 预期 RED。 变化点:langgraph 0 红→1 红(B-142-2 复验未过、不销号)、全量 98.57%→98.55% → 已推送 + 通知研发。
1573d89e3,后端强制实跑 + langgraph B-74 复燃)| 编号 | 关联键 | 类型 | 描述 | 经办 | 登记时间 | 状态 |
|---|---|---|---|---|---|---|
| B-74-复燃(第 1 轮) | 251 LLM API key ****ab12 401 + 429 |
运维/AI(P0) | 复燃(曾于 R127/R128 销号)。langgraph 51 例 / 48 过 / 3 红 / 151s;红例 test_auto_tag_{content_relevance,short_content,empty_content} → chat 500,日志两级证据:recall 记忆失败: 401 Authentication Fails, api key ****ab12 is invalid + intent 分类失败: 429 AgnesAI free rate limit + middleware RateLimitError → 500。需运维轮换 key + 升级额度。 |
测试(R149 实派) | 2026-11-11 18:30 | 待处理(P0) |
| B-142-2-Update(第 3 轮未绿) | 251 LLM 上游故障 | 运维/AI(P0) | 不销号(形态漂移 ConnectError→401/429)。连续 2 轮绿方可销号,本轮 3 红未达。 | 测试(R149 实派) | 2026-11-11 18:30 | 待处理(观察 0/2) |
| B-142-1-Update(第 8 轮) | /api/admin/** 鉴权门缺失 |
研发(P1 安全) | 延续(8 轮未修)。匿名 POST /api/admin/families/overview → HTTP 200 + code:400;对照组 5 端点全 401。 |
测试(R149 巡检) | 2026-11-11 18:30 | 待处理 |
| B-145-1-Update(第 5 轮) | nutrition_age_dosage 建表 SQL 无效 |
研发(P1 Schema) | 延续(5 轮未修)。schema.sql:5343 无效索引 idx_product(product_id) → 表从未创建成功。 |
测试(R149 复核) | 2026-11-11 18:30 | 待处理 |
| B-134-4-Update(第 12 轮) | intent_classifier 兜底伪装 | 研发/AI(P1) | 延续(缺陷仍在,本轮触发路径为 401+429)。app/intent_classifier.py:62 异常 → 默认 chat。 |
测试(R149 实派) | 2026-11-11 18:30 | 待处理 |
| B-95-Update(第 20 轮) | 192.168.16.204:4090 失联 |
运维(P2) | 延续。204:4090 → 000;189:4090 = 200、251:4096/9000 = 200。 | 运维 | 2026-11-11 18:30 | 待处理 |
| B-DX-1-Update(第 11 轮) | dx-bridge 端点 404 | 部署(P2) | 延续。浏览器 dx-bridge 2 例 skip(端点 404)。 | 部署/运维 | 2026-11-11 18:30 | 待处理 |
| B-36-Update(第 45 轮零漂移) | 根级黑盒门控 | 测试(P3) | 零漂移。23 例 7 过 / 16 红,全 ECONNREFUSED 127.0.0.1:9082。 |
测试 | 2026-11-11 18:30 | 待处理(环境型) |
| B-138-3-Update(第 7 轮) | 后端超慢测试类 | 研发(P3 效率) | 延续。本轮全量 39:08(R148 51:57、R146 44m),慢类仍占大头。 | 测试(R149 实测) | 2026-11-11 18:30 | 待处理 |
| B-69-Update(第 12 轮销号维持) | mind/fortune 匿名 200 | 研发(P1) | 维持销号。匿名 POST 5 端点(mind/fortune、energy/overview、health/plan/list、huawei-health、xiaomi-health)全 401。 | 测试(R149 巡检) | 2026-11-11 18:30 | 已闭环 |
| B-148-1-Update(第 2 轮未复现) | 网关瞬抖 502 | 运维(P3) | 未复现。health 套件直跑 13/13 全绿(8.5s),无 502;维持观察。 | 测试(R149 巡检) | 2026-11-11 18:30 | 观察中 |
| B-141-3-Update | 站点根 / 502 |
运维(P3) | 维持观察。/ = 404、/admin = 302、/frontend = 302。 |
测试(R149 巡检) | 2026-11-11 18:30 | 观察中 |
| B-126-Update(第 10 轮) | pytest 收尾 EXIT=124 |
测试(P3) | 本轮正常收尾:/tmp/r149_pytest.log 含 3 failed, 48 passed, 8 warnings in 151.00s 完整 summary,无挂起。 |
测试 | 2026-11-11 18:30 | 观察中 |
| B-141-1(延续) | qna 收集期缺陷 | 研发(P1) | 延续(排除项)。pytest 口径 --ignore=tests/qna --ignore=tests/test_chat.py。 |
测试(R149 实派) | 2026-11-11 18:30 | 待处理 |
R149 口径:后端强制实跑(窗口含研发版本 bump,继续实跑取证)。 后端 347 类 / 2946 例 / 2925 过 / 17 红 / 4 跳 = 99.29%(39:08,347/347 XML;dump 0;与 R148/R146 逐类逐例一致 → 零回归第 9 次)。 浏览器 28/28 + dx 2 skip(189 admin 5/5 99s、本机 fe 6/shop 4/health 13);langgraph 51 例 48 过 / 3 红(401
****ab12+ 429,B-74 复燃);cfc-web 116/116;cfc-frontend 601/3/12;根级 23 = 7/16。 全量 3782 / 3725 过 = 98.49%(剔 skip 98.96%)。 结论:⚠️ 有条件通过 —— G1 ✅ 98.49%、G4 ✅、G5 ✅、G6 ✅ 28/28、G8 ✅ 5/5、G10 ✅ 双节点、G12 ✅;❌ G2 39 红、G7 langgraph 3 红(B-74 复燃)、G9 30.0%、G11 无 CI;⚠️ G3 3 预期 RED。 变化点:langgraph 1 红→3 红(B-74 复燃 + B-142-2 未绿)、全量 98.55%→98.49% → 已推送 + 通知研发。
3c3d4b0a5,后端强制实跑 55:56 + 双节点实派 + CI 门禁双缺陷)| 编号 | 关联键 | 类型 | 描述 | 经办 | 登记时间 | 状态 |
|---|---|---|---|---|---|---|
| B-152-2(新) | .gitlab-ci.yml:61 排除清单漏项 → blocking 必红 |
研发/CI(P0) | 新增(最高优先)。BACKEND_OBSERVED_CLASSES 未含当前实测红类 UserServiceWechatLoginTest、UserServiceWechatLoginContractTest、TeamProfitCronContractTest;backend-blocking-junit 用 -Dtest=!${...} 跑其余全部 → 3 个已知红被纳入硬门禁 → 流水线必然失败。修法:3 类入清单(或修红)。闭环:blocking job 一次 success。 |
测试(R152 实跑对表) | 2026-11-11 20:40 | 待处理(P0) |
| B-152-1(新) | CI 排除清单陈旧(26 绿类未解禁) | 研发/CI(P1) | 新增。清单冻结于「第 69 轮 33 红类」,本轮实测其中 26 类全绿(AuthControllerTest 39/39、ProductControllerTest 334s 全绿、PaymentControllerTest、WishControllerTest 29/29、ArticleControllerTest、CfCommissionServiceSettleTest、GrowthRecordSyncFlowTest、MindFortuneControllerTest 等)仍被排除 → 硬门禁覆盖被缩小、回归不拦。修法:清单收敛为当前 10 红类(建议落 docs/tdd/test/backend-red-classes.txt 供 CI 读取)。闭环:blocking 覆盖 ≥337 类且连续 2 轮无新红。 |
测试(R152 实跑对表) | 2026-11-11 20:40 | 待处理 |
| B-152-3(新) | @EnableScheduling 在测试上下文常驻 |
研发(P1 装置/效率) | 新增。CfcApplication.java:12 的 @EnableScheduling + @SpringBootTest(如 integration/controller/AIChatControllerTest.java:28)+ src/test/resources 不存在 → cfc-scheduler-1..4 在全量跑测期间常驻查库写 DEBUG 日志:本轮 20,965 / 73,267 行(28.6%) 为调度日志、上下文启动 34 次;慢类 ProductController 334s / AdminFamilyOverview 324s / UserServiceFamilyNameLink 283s / Activity 174s / Payment 139s / GuidePackage 118s,6 类占全量 41%(55:56 vs R149 39:08)。修法:建 src/test/resources/application-test.yml、任务类 @ConditionalOnProperty(cfc.scheduling.enabled) 测试置 false、慢类改切片。闭环:调度日志 0 行、全量 ≤45min、17 红集合不变。 |
测试(R152 日志分析) | 2026-11-11 20:40 | 待处理 |
| B-152-4(新) | 1a2b 首猜积分口径 92 vs 100 | 产品/研发(P3 契约) | 新增。cfc-frontend/pages/games/1a2b.vue:154 Math.max(100 - (maxGuesses - remainingGuesses)*8, 60) → 首猜命中 92;原骨架用例期望 100;无 SRS 明文。本轮用例按实现取值断言并注释待确认。修法:契约明确口径;若为 100 则修正公式。 |
测试(R152 迁移时发现) | 2026-11-11 20:40 | 待确认 |
| B-152-5(新,已闭环) | 根级骨架用例从未执行 | 测试(P2 资产) | 新增并本轮自处置闭环。tests/unit/games/1a2b.spec.js(tracked)用 ESM + .vue,但 tests/jest.config.js 无 babel preset / .vue transform、tests/package.json 未声明 @vue/test-utils/vue-jest → 收集期 SyntaxError: Cannot use import statement outside a module,该 1 例从未执行(历轮「根级 23 例」口径遗漏)。处置:迁移至 cfc-frontend/__tests__/games/1a2b.test.js(复用现有 .vue transform + jsdom docblock),修正 startGame()→makeGuess()、补 memberId 与 uni 桩,原文件 git rm。效果:前端 616→617(602 过),根级套件 3→2、23 例不变。 |
测试(R152 自处置) | 2026-11-11 20:40 | 已闭环 |
| B-74 / B-142-2-Update(第 4 轮未绿,恶化) | 251 LLM 上游 429 + 401 | 运维/AI(P0) | 恶化(3 红 → 5 红)。51 例 / 46 过 / 5 红 / 128.76s;红例 test_auto_tag_{content_relevance,short_content,empty_content}(chat 500)+ test_intent_{classify_analysis,classify_recommend}(CHAT vs ANALYSIS/RECOMMEND);日志 6 次 429 AgnesAI free users rate limit + 401 api key ****ab12 invalid。同窗口 /api/v1/chat 200/6.4s、/analyze 200/5.5s、/health 200/8ms → 服务活、仅并发突发触配额。需轮换/扩容 key 与额度。连续 2 轮绿才销号(观察 0/2)。 |
测试(R152 实派) | 2026-11-11 20:40 | 待处理(P0) |
| B-134-4-Update(第 13 轮) | intent_classifier 兜底伪装 | 研发/AI(P1) | 延续。app/agents/intent_classifier.py:62 异常 → 默认 chat,本轮把 429 伪装成「分类错误」(2 例断言失败)。修法:兜底改为 unknown/抛出并记录上游状态码。 |
测试(R152 实派) | 2026-11-11 20:40 | 待处理 |
| B-142-1-Update(第 9 轮) | /api/admin/** 鉴权门缺失 |
研发(P1 安全) | 延续(9 轮未修)。匿名 POST /api/admin/families/overview → HTTP 200 + {"code":400};对照组 energy/health/mind/huawei/xiaomi 5/5 = 401。 |
测试(R152 巡检) | 2026-11-11 20:40 | 待处理 |
| B-145-1-Update(第 6 轮) | nutrition_age_dosage 建表 SQL 无效 |
研发(P1 Schema) | 延续(6 轮未修)。schema.sql:5343 建表体第 12 行 INDEX idx_product (product_id),列定义无 product_id → DDL 恒失败,DatabaseInitializer catch 后仍打「数据表检查完成」。 |
测试(R152 复核) | 2026-11-11 20:40 | 待处理 |
| B-69-Update(第 13 轮销号维持) | mind/fortune 匿名 200 | 研发(P1) | 维持销号。匿名 POST 5 端点(mind/fortune、energy/overview、health/plan/list、huawei-health、xiaomi-health)5/5 = 401。 | 测试(R152 巡检) | 2026-11-11 20:40 | 已闭环 |
| B-36-Update(第 46 轮零漂移) | 根级黑盒门控 | 测试(P3) | 零漂移。23 例 7 过 / 16 红,全 fetch failed(9082 未启动);套件数 3→2(死套件已移除)。建议改 E2E_BASE_URL 或探活 skip,避免 16 红常驻掩盖新红。 |
测试(R152 实测) | 2026-11-11 20:40 | 待处理(环境型) |
| B-95-Update(第 21 轮) | 204:4090 失联 |
运维(P2) | 延续。204:4090 = 000;189:4090 = 200、251:4096 = 200、251:9000 = 200。 | 运维 | 2026-11-11 20:40 | 待处理 |
| B-DX-1-Update(第 12 轮) | dx-bridge 端点 404 | 部署(P2) | 延续。/api/dx/health/bridge、/api/dx/report/parse → 404/404;dx-bridge 2 例 skip(不假绿)。 |
部署/运维 | 2026-11-11 20:40 | 待处理 |
| B-138-3-Update(第 8 轮) | 后端超慢测试类 | 研发(P3 效率) | 延续且恶化。本轮全量 55:56(R149 39:08),慢类 ProductController 334s 等 6 类占 41%;根因见 B-152-3(调度器常驻 + 上下文启动 34 次)。 | 测试(R152 实测) | 2026-11-11 20:40 | 待处理 |
| B-126-Update(第 11 轮,口径失效再现) | pytest 退出码未落盘 | 测试(P3) | 再现。kick 命令用双引号包 bash -c,$? 被本地 shell 提前展开 → /tmp/r150_pytest.log 无 EXIT= 行,仅可按 summary 判读。修法:单引号包 bash -c '...; echo EXIT=$? >> LOG'。 |
测试(R152 实派) | 2026-11-11 20:40 | 观察中 |
| B-141-3-Update | 站点根 / 异常 |
运维(P3) | 维持观察。/ = 404、/admin = 302、/frontend = 302。 |
测试(R152 巡检) | 2026-11-11 20:40 | 观察中 |
| B-148-1-Update(第 3 轮未复现) | 网关瞬抖 502 | 运维(P3) | 未复现。health 套件 13/13(5.3s),无 502。 | 测试(R152 巡检) | 2026-11-11 20:40 | 观察中 |
| B-141-1(延续) | qna 收集期缺陷 | 研发(P1) | 延续(排除项)。pytest 口径 --ignore=tests/qna --ignore=tests/test_chat.py。 |
测试(R152 实派) | 2026-11-11 20:40 | 待处理 |
R152 口径:后端强制实跑(R149 已实跑,本轮窗口含 auto bump,继续实跑取证)。 后端 347 类 / 2946 例 / 2925 过 / 16F+1E+4S = 99.29%(55:56,347/347 XML、dump 1;与 R149/R148 逐类逐例一致 → 零回归第 10 次)。 前端 617 = 602 过 / 3 红 / 12 跳;管理端 116/116;根级 23 = 7/16;langgraph@251 51 = 46/5(128.76s);浏览器 28/28 + 2 skip(189 admin 5/5 1.3m)。 全量 3783 / 3724 过 = 98.44%(剔 skip 98.91%;红 41 / 跳 18)。 结论:不通过 —— G1 ✅ 98.44%、G4 ✅、G5 ✅、G6 ✅ 28/28、G8 ✅ 5/5、G10 ✅ 双节点、G12 ✅;❌ G2 17 红、G7 5 红(429/401)、G9 23.0%、G11 CI 必红(B-152-2);⚠️ G3 3 预期 RED。 变化点:langgraph 48→46 过;前端 616→617(+1 绿);新增 5 项发现(B-152-1~5,其中 B-152-5 已闭环);较 R149「有条件通过」收紧为「不通过」(CI 门禁基础不成立)→ 已推送 + 通知研发。
| 编号 | 关联键/对象 | 类型 | 描述 | 经办 | 登记时间 | 状态 |
|---|---|---|---|---|---|---|
| B-153-1-New(P3) | 189 admin TC-A-U05 登录前置偶发 | 测试(观察项) | 首轮 4/5:account-roles 接口断言非 200(admin-live.spec.js:188)→ 同轮复验 5/5 全绿(U05 复验 59.6s,EXIT=0)。判滑块/登录态偶发,非产品回归(B-120-New/B-121 同模式)。拟登录前置加重试,连续 2 轮 0 偶发销号。 |
测试(R153 实派) | 2026-11-11 21:20 | 观察中 |
| B-74 / B-142-2-Update(第 5 轮,改善) | 251 LLM 上游 429 + 401 | 运维/AI(P0) | 改善(5 红 → 3 红)。51 例 / 48 过 / 3 红 / 137.00s;红例 test_auto_tag_{content_relevance,short_content,empty_content}(chat 500);日志 401 api key ****ab12 invalid + 429 AgnesAI free users rate limit;同窗口 /health 200/25.8ms → 服务活、仅上游凭据/配额。test_intent 2 例已转绿。连续 2 轮绿才销号(观察 0/2)。 |
测试(R153 实派) | 2026-11-11 21:20 | 待处理(P0) |
| B-152-2-Update(第 2 轮未修) | CI 排除清单漏 3 红类 | 研发(P0 CI) | 延续。.gitlab-ci.yml:61 仍漏 UserServiceWechatLoginTest/UserServiceWechatLoginContractTest/TeamProfitCronContractTest → backend-blocking-junit 必红。 |
测试(R153 复核) | 2026-11-11 21:20 | 待处理(P0) |
| B-152-1-Update(第 2 轮未修) | CI 排除清单陈旧 26 绿类 | 研发(P1 CI) | 延续。清单 33 类中 26 类已转绿仍未解禁,硬门禁覆盖被缩小。 | 测试(R153 复核) | 2026-11-11 21:20 | 待处理 |
| B-152-3-Update(复验) | @EnableScheduling 测试期常驻 |
研发(P1) | 复验。本轮 cfc-scheduler 日志 4,334/31,758 行(13.6%)(R152 28.6%),全量 39:42(R152 55:56)→ 占比与耗时强相关,坐实影响。未修。 |
测试(R153 实测) | 2026-11-11 21:20 | 待处理 |
| B-152-4-Update(第 2 轮) | 1a2b 首猜 92 vs 100 | 研发(P3 契约) | 延续。用例已按实现断言 92(B-152-5 迁移时统一),仍无 SRS 明文。 | 测试(R153 复核) | 2026-11-11 21:20 | 待处理 |
| B-134-4-Update(第 14 轮) | intent_classifier 兜底伪装 | 研发/AI(P1) | 延续。app/agents/intent_classifier.py:62 异常 → 默认 chat。本轮 429 时 auto_tag 3 例断言失败。 |
测试(R153 实派) | 2026-11-11 21:20 | 待处理 |
| B-142-1-Update(第 10 轮) | /api/admin/** 鉴权门缺失 |
研发(P1 安全) | 延续(10 轮未修)。匿名 POST /api/admin/families/overview → HTTP 200 + {"code":400};5 对照端点全 401。 |
测试(R153 巡检) | 2026-11-11 21:20 | 待处理 |
| B-145-1-Update(第 7 轮) | nutrition_age_dosage 建表 SQL 无效 |
研发(P1 Schema) | 延续(7 轮未修)。schema.sql:5343 索引行 product_id 无对应列 → DDL 恒失败。 |
测试(R153 复核) | 2026-11-11 21:20 | 待处理 |
| B-69-Update(第 14 轮销号维持) | mind/fortune 匿名 200 | 研发(P1) | 维持销号。匿名 POST 5 端点 5/5 = 401。 | 测试(R153 巡检) | 2026-11-11 21:20 | 已闭环 |
| B-36-Update(第 47 轮零漂移) | 根级黑盒门控 | 测试(P3) | 零漂移。23 例 7 过 / 16 红,全 fetch failed(9082 未启动)。 |
测试(R153 实测) | 2026-11-11 21:20 | 待处理(环境型) |
| B-95-Update(第 22 轮) | 204:4090 失联 |
运维(P2) | 延续。204:4090 = 000;189/251 均 200。 | 运维 | 2026-11-11 21:20 | 待处理 |
| B-DX-1-Update(第 13 轮) | dx-bridge 端点 404 | 部署(P2) | 延续。dx 2 例 skip(不假绿)。 | 部署/运维 | 2026-11-11 21:20 | 待处理 |
| B-138-3-Update(第 9 轮) | 后端超慢测试类 | 研发(P3 效率) | 波动。本轮全量 39:42(R152 55:56),scheduler 日志占比同步 28.6%→13.6% → B-152-3 为耗时主因。 | 测试(R153 实测) | 2026-11-11 21:20 | 待处理 |
| B-141-3-Update | 站点根 / 异常 |
运维(P3) | 维持观察。/ = 404、/admin = 302、/frontend = 302。 |
测试(R153 巡检) | 2026-11-11 21:20 | 观察中 |
| B-148-1-Update(第 4 轮未复现) | 网关瞬抖 502 | 运维(P3) | 未复现。health 套件 13/13(16.0s),无 502。 | 测试(R153 巡检) | 2026-11-11 21:20 | 观察中 |
| B-141-1(延续) | qna 收集期缺陷 | 研发(P1) | 延续(排除项)。pytest 口径 --ignore=tests/qna --ignore=tests/test_chat.py。 |
测试(R153 实派) | 2026-11-11 21:20 | 待处理 |
R153 口径:后端强制实跑(窗口
3c3d4b0a5..39717eb07仅 R152 报告 + auto bump,零源码差异)。 后端 347 类 / 2946 例 / 2925 过 / 16F+1E+4S = 99.29%(39:42,347/347 XML;与 R152/R149 逐类逐例一致 → 零回归第 11 次)。 前端 617 = 602 过 / 3 红 / 12 跳;管理端 116/116;根级 23 = 7/16;langgraph@251 51 = 48/3(137.00s,改善 2 绿);浏览器 28/28 + 2 skip(189 admin 5/5 复验 + 本机 fe 6/shop 4/health 13/dx 2 skip)。 全量 3783 / 3726 过 = 98.49%(剔 skip 98.96%;红 39 / 跳 18)。 结论:不通过 —— G1 ✅ 98.49%、G4 ✅、G5 ✅、G6 ✅ 28/28、G8 ✅ 5/5、G10 ✅ 双节点、G12 ✅;❌ G2 17 红、G7 3 红(429/401)、G9 23.0%、G11 CI 必红(B-152-2 第 2 轮未修);⚠️ G3 3 预期 RED。 变化点:langgraph 46→48 过(红 5→3);全量 98.44%→98.49%(+0.05pp);新增观察项 B-153-1(189 U05 偶发复验绿)→ 已推送 + 通知研发。
| 编号 | 关联键/对象 | 类型 | 描述 | 经办 | 登记时间 | 状态 |
|---|---|---|---|---|---|---|
| B-154-1-New(P1) | langgraph pytest 挂起恶化(早期 hang + 收尾挂起) | 研发(测试装置) | 新增。本轮三跑:① 前台直跑 420s 断连;② timeout 250 仅 5 dots EXIT=124(早期 hang);③ timeout 380 全量 51 例 133.36s 完成(47 过 4 红)但 EXIT=124 收尾挂起。警告含 coroutine 'JavaClient._get_client' was never awaited(teardown 协程泄漏)。与 B-135-2 同源并发。修法:pytest-timeout 每用例超时 + teardown 协程泄漏修复 + 251 派发统一 timeout/落盘规程。闭环:连续 2 轮 51 例 <300s 且 EXIT≠124。 |
测试(R154 实派) | 2026-11-11 22:25 | 待处理(P1) |
| B-74 / B-142-2-Update(第 6 轮,波动) | 251 LLM 上游 429 + 401 | 运维/AI(P0) | 波动。51 例 / 47 过 / 4 红 / 133.36s;红例 test_auto_tag_{short_content,empty_content} + test_intent_{classify_analysis,classify_recommend};日志 401 api key ****ab12 invalid + 429 AgnesAI free users rate limit;同窗口 /health 200 → 服务活、仅上游凭据/配额。较 R153:auto_tag content_relevance 转绿(+1)、intent 2 例回红(−2)、净 −1。连续 2 轮绿才销号(观察 0/2)。 |
测试(R154 实派) | 2026-11-11 22:25 | 待处理(P0) |
| B-153-1-Update(第 2 轮 0 偶发) | 189 admin TC-A-U05 登录前置偶发 | 测试(观察项) | 未复现。本轮首轮即 5/5 全绿(1.3m,EXIT=0),U05 account-roles 200。观察计数 1/2,连续 2 轮 0 偶发销号(R155 若仍首轮绿则销)。 |
测试(R154 实派) | 2026-11-11 22:25 | 观察中 |
| B-152-2-Update(第 3 轮未修) | CI 排除清单漏 3 红类 | 研发(P0 CI) | 延续。.gitlab-ci.yml:61 仍漏 UserServiceWechatLoginTest/UserServiceWechatLoginContractTest/TeamProfitCronContractTest → backend-blocking-junit 必红。 |
测试(R154 复核) | 2026-11-11 22:25 | 待处理(P0) |
| B-152-1-Update(第 3 轮未修) | CI 排除清单陈旧 26 绿类 | 研发(P1 CI) | 延续。清单 33 类中 26 类已转绿仍未解禁。 | 测试(R154 复核) | 2026-11-11 22:25 | 待处理 |
| B-152-3-Update(第 3 轮未修) | @EnableScheduling 测试期常驻 |
研发(P1) | 延续。R153 实测调度日志 13.6% 与全量 39:42 强相关;本轮后端采信 R153 未复跑,影响面不变。 | 测试(R154 复核) | 2026-11-11 22:25 | 待处理 |
| B-134-4-Update(第 15 轮) | intent_classifier 兜底伪装 | 研发/AI(P1) | 延续。app/agents/intent_classifier.py:62 异常 → 默认 chat。本轮 429 时 intent 2 例断言失败(classify_analysis/classify_recommend)。 |
测试(R154 实派) | 2026-11-11 22:25 | 待处理 |
| B-142-1-Update(第 11 轮) | /api/admin/** 鉴权门缺失 |
研发(P1 安全) | 延续(11 轮未修)。匿名 POST /api/admin/families/overview → HTTP 200 + {"code":400};5 对照端点全 401。 |
测试(R154 巡检) | 2026-11-11 22:25 | 待处理 |
| B-145-1-Update(第 8 轮) | nutrition_age_dosage 建表 SQL 无效 |
研发(P1 Schema) | 延续(8 轮未修)。schema.sql:5343 索引行 product_id 无对应列 → DDL 恒失败。 |
测试(R154 复核) | 2026-11-11 22:25 | 待处理 |
| B-69-Update(第 15 轮销号维持) | mind/fortune 匿名 200 | 研发(P1) | 维持销号。匿名 POST 5 端点(mind/fortune、energy/overview、health/plan/list、huawei-health/status、xiaomi-health/status)5/5 = 401。 | 测试(R154 巡检) | 2026-11-11 22:25 | 已闭环 |
| B-36-Update(第 48 轮零漂移) | 根级黑盒门控 | 测试(P3) | 零漂移。23 例 7 过 / 16 红,全 fetch failed(9082 未启动)。 |
测试(R154 实测) | 2026-11-11 22:25 | 待处理(环境型) |
| B-95-Update(第 23 轮) | 204:4090 失联 |
运维(P2) | 延续。204:4090 = 000;189/251 均 200。 | 运维 | 2026-11-11 22:25 | 待处理 |
| B-DX-1-Update(第 14 轮) | dx-bridge 端点 404 | 部署(P2) | 延续。dx 2 例 skip(不假绿)。 | 部署/运维 | 2026-11-11 22:25 | 待处理 |
| B-138-3-Update(第 10 轮) | 后端超慢测试类 | 研发(P3 效率) | 维持。R153 全量 39:42,scheduler 13.6%;本轮采信未复跑。 | 测试(R154 复核) | 2026-11-11 22:25 | 待处理 |
| B-141-3-Update | 站点根 / 异常 |
运维(P3) | 维持观察。/ = 404、/admin = 302、/frontend = 302。 |
测试(R154 巡检) | 2026-11-11 22:25 | 观察中 |
| B-148-1-Update(第 5 轮未复现) | 网关瞬抖 502 | 运维(P3) | 未复现。health 套件 13/13,无 502。 | 测试(R154 巡检) | 2026-11-11 22:25 | 观察中 |
| B-141-1(延续) | qna 收集期缺陷 | 研发(P1) | 延续(排除项)。pytest 口径 --ignore=tests/qna --ignore=tests/test_chat.py。 |
测试(R154 实派) | 2026-11-11 22:25 | 待处理 |
R154 口径:后端采信 R153 强制实跑(窗口
39717eb07..d9866096a零测试资产变更)。 后端 347 类 / 2946 例 / 2925 过 / 16F+1E+4S = 99.29%(39:42,347/347 XML;零回归第 12 次)。 前端 617 = 602 过 / 3 红 / 12 跳;管理端 116/116;根级 23 = 7/16;langgraph@251 51 = 47/4(133.36s,EXIT=124 收尾挂起 B-154-1);浏览器 28/28 + 2 skip(189 admin 首轮即 5/5 + 本机 fe 6/shop 4/health 13/dx 2 skip)。 全量 3783 / 3725 过 = 98.47%(剔 skip 98.94%;红 40 / 跳 18)。 结论:不通过 —— G1 ✅ 98.47%、G4 ✅、G5 ✅、G6 ✅ 28/28、G8 ✅ 5/5、G10 ✅ 双节点、G12 ✅;❌ G2 17 红、G7 4 红(429/401 + 挂起)、G9 23.0%、G11 CI 必红(B-152-2 第 3 轮未修);⚠️ G3 3 预期 RED。 变化点:langgraph 48→47 过(红 3→4,上游抖动);全量 98.49%→98.47%(−0.02pp);新增 B-154-1(pytest 挂起恶化);B-153-1 第 2 轮 0 偶发 → 推送 + 通知研发。
R155 口径:浏览器真跑 28/28(189 admin 5/5 首轮即绿 + 本机 fe 6/shop 4/health 13);langgraph@251 51 = 48 过 / 3 红(131.86s,EXIT=0 正常收尾,红例 −1);后端/前端/管理端采信 R154/R153 基线(窗口
39717eb07..e81e978a6源码零变更);SRS/场景变更零命中 → G12 合规零新增用例。 结论:⛔ 有条件通过 —— G1 ✅ 98.91%、G4 ✅、G5 ✅、G6 ✅ 28/28、G8 ✅、G10 ✅ 三节点(189+本机+251)、G12 ✅、G13 ⚠️ 临界 17;❌ G2 25 红、G7 3 红(改善未全绿)、G9、G11 CI 必红(B-152-2 第 4 轮)、G14 dx 404。 变化点:langgraph 47→48 过(红 4→3,上游抖动改善);EXIT=124 挂起未复现(B-154-1 观察 1/2);浏览器连续零漂移 → 已推送 + 通知研发(notice-2026-11-11-R155 随 commit 入库)。
| 编号 | 关联键/对象 | 类型 | 描述 | 经办 | 登记时间 | 状态 |
|---|---|---|---|---|---|---|
| B-142-2-Update(第 7 轮,波动) | 251 LLM 上游 429/401 | 运维/AI(P0) | 波动改善。51 例 48 过 3 红(131.86s),红例 test_auto_tag_{content_relevance,short_content,empty_content},/health 200 → 服务活、仅上游凭据/配额。较 R154(4 红含 intent 2 例)本周 intent 全绿转好。连续 2 轮绿才销号(观察 0/2)。 |
测试(R155 实派) | 2026-11-11 23:15 | 待处理(P0) |
| B-154-1-Update(第 2 轮未复现) | langgraph pytest 收尾挂起 | 研发(P1 测试装置) | 未复现。本轮 timeout 420 全量 51 例 131.86s 正常收尾 EXIT=0,无 JavaClient._get_client 协程泄漏警告。连续 2 轮未复现才销号(观察 1/2),修法(pytest-timeout + teardown 修复)建议仍落地防复发。 |
测试(R155 实派) | 2026-11-11 23:15 | 观察中 |
| B-153-1-Update(第 3 轮 0 偶发) | 189 admin TC-A-U05 登录前置偶发 | 测试(观察项) | 未复现 → 销号成立。连续 3 轮首轮即 5/5 全绿(本轮 1.3m,U05 account-roles 200),P-5 偶发 0。 |
测试(R155 实派) | 2026-11-11 23:15 | 已销号 |
| B-152-2-Update(第 4 轮未修) | CI 排除清单漏 3 红类 | 研发(P0 CI) | 延续。.gitlab-ci.yml:61 仍漏 UserServiceWechatLoginTest/UserServiceWechatLoginContractTest/TeamProfitCronContractTest → backend-blocking-junit 必红。 |
测试(R155 复核) | 2026-11-11 23:15 | 待处理(P0) |
| B-152-1-Update(第 4 轮未修) | CI 排除清单陈旧 26 绿类 | 研发(P1 CI) | 延续。清单 33 类中 26 类已转绿仍未解禁。 | 测试(R155 复核) | 2026-11-11 23:15 | 待处理 |
| B-134-4-Update(第 16 轮) | intent_classifier 兜底伪装 | 研发/AI(P1) | 延续。本轮 intent 段全绿(4 例),兜底伪装未触发;auto_tag 3 红为上游直返。 | 测试(R155 实派) | 2026-11-11 23:15 | 待处理 |
| B-142-1-Update(第 12 轮) | /api/admin/** 鉴权门缺失 |
研发(P1 安全) | 延续。匿名 POST /api/admin/families/overview → 200(未修);5 对照端点全 401。 |
测试(R155 巡检) | 2026-11-11 23:15 | 待处理 |
| B-145-1-Update(第 9 轮) | nutrition_age_dosage 建表 SQL 无效 |
研发(P1 Schema) | 延续。schema.sql:5343 索引行 product_id 无对应列 → DDL 恒失败。 |
测试(R155 复核) | 2026-11-11 23:15 | 待处理 |
| B-69-Update(第 16 轮销号维持) | mind/fortune 匿名 200 | 研发(P1) | 维持销号。5 端点 5/5=401。 | 测试(R155 巡检) | 2026-11-11 23:15 | 已闭环 |
| B-36-Update(第 49 轮零漂移) | 根级黑盒门控 | 测试(P3) | 零漂移。23 例 7 过/16 红,fetch failed(9082 未启动)。 |
测试(R155 实测) | 2026-11-11 23:15 | 待处理(环境型) |
| B-95-Update(第 24 轮) | 204:4090 失联 |
运维(P2) | 延续。204 全端口探活 000;189/251 均在线。 | 运维 | 2026-11-11 23:15 | 待处理 |
| B-DX-1-Update(第 15 轮) | dx-bridge 端点 404 | 部署(P2) | 延续。dx 2 例 skip(不假绿)。 | 部署/运维 | 2026-11-11 23:15 | 待处理 |
| B-141-3-Update(观察) | 站点 /frontedn 路径 404 |
运维(P3) | 观察。/frontedn = 404、/admin = 302、/frontend = 302。疑似 nginx 无 /frontedn 别名(拼写 typo 用户走错路径)。 |
运维 | 2026-11-11 23:15 | 观察中 |
| B-148-1-Update(第 6 轮未复现) | 网关瞬抖 502 | 运维(P3) | 未复现。health 套件 13/13,无 502。 | 测试(R155 巡检) | 2026-11-11 23:15 | 观察中 |
| B-141-1(延续) | qna 收集期缺陷 | 研发(P1) | 延续(排除项)。pytest 口径 --ignore=tests/qna --ignore=tests/test_chat.py。 |
测试(R155 实派) | 2026-11-11 23:15 | 待处理 |
| B-156-1(新) | nutrition_age_dosage 三重不一致 | 研发(P1) | 新登记。① schema.sql:5354 建表含 INDEX idx_product (product_id) 但表无该列 → 本轮 34/34 次 Spring 上下文建表全部失败,表从未创建成功;② 实体 NutritionAgeDosage.java:33-34 声明 updateTime(→update_time)而 DDL 无此列 → 即便建表成功仍会 Unknown column;③ NutritionProductService.java:48 注入 ageDosageMapper 但全类零调用(死注入)。建议:删索引或补 product_id 列 + DDL 补 update_time + DatabaseInitializer.runMigrations() 加幂等 ensureColumn 并同步 schema.sql + 清理死注入。 | 研发 | 2026-11-12 00:50 | 待处理 |
| B-145-1-Update(延续未修) | 建表 SQL 无效 | 研发(P1) | 延续。SQLSyntaxErrorException: Key column 'product_id' doesn't exist 本轮仍 34 次(每上下文 1 次),DatabaseInitializer catch 后仍打「数据表检查完成」→ 静默掩盖。合并见 B-156-1。 | 研发 | 2026-11-12 00:50 | 待处理 |
| B-152-1-Update(延续) | CI 漏拦当前红类 | 研发(P0) | 未修。.gitlab-ci.yml:61 33 类白名单缺 3 个本轮实测红类:UserServiceWechatLoginTest、UserServiceWechatLoginContractTest、TeamProfitCronContractTest → backend-blocking-junit 必然失败。 | 研发 | 2026-11-12 00:50 | 待处理 |
| B-152-2-Update(延续) | CI 白名单陈旧 | 研发(P1) | 未修。33 类中 26 类本轮实测全绿(AuthControllerTest 239s 全绿、ProductControllerTest、StatsControllerTest、WishControllerTest 等)仍被永久排除 → 硬门禁覆盖人为缩小。 | 研发 | 2026-11-12 00:50 | 待处理 |
| B-152-3-Update(延续) | 测试装置放大全量耗时 | 测试装置(P3) | 延续。后端全量 61:02(347 类):34 次 @SpringBootTest 上下文,每次重跑 DatabaseInitializer 全量迁移;DatabaseInitializer 日志 10715 行、cfc-scheduler 22365 行 = 全日志 75346 行 29.7%;最慢 UserServiceFamilyNameLinkTest 331s / GuidePackageServiceTest 307s / GuideRolePermissionTest 258s / AuthControllerTest 239s。 | 测试 | 2026-11-12 00:50 | 待处理 |
| B-142-2-Update(恶化) | langgraph LLM 上游 429 | 运维(P0) | 恶化:3 红 → 10 红(51 例 41 过)。test_analyze 1 + test_auto_tag 5 + test_intent 4,全部 429 免费额度耗尽(AgnesAI)+ chat_graph.py:148 401 api key ****ab12 invalid;同窗口 /health 200 → 服务活、仅 LLM 面被掐。不销号,观察 0/2。 | 运维 | 2026-11-12 00:50 | 待处理(P0) |
| B-134-4-Update(延续) | 429 静默兜底 chat | 研发(P1) | 未修。intent_classifier.py:62 捕获 429/401 后默认返回 chat,把上游故障伪装成分类错误(本轮 4 条 test_intent 红即由此产生「像代码错」的假象)。 | 研发 | 2026-11-12 00:50 | 待处理 |
| B-142-1-Update(延续未修) | /api/admin/** 鉴权门缺失 | 研发(P1 安全) | 延续。匿名 POST /api/admin/families/overview → HTTP 200 + body code:400;对照组 5 个 /api/* 均 401。纪律:匿名「200 + 业务错误码」不可判为接口正常。 | 研发 | 2026-11-12 00:50 | 待处理 |
| B-154-1(观察 2/2 → 建议销号) | pytest 收尾挂起 EXIT=124 | 测试(P3) | 未复现第 2 轮。langgraph@251 51 例 126.67s 正常收尾、无挂起、日志完整 308 行。建议销号;但退出码未落盘(见 B-126),销号需连同 B-126 一起验证。 | 测试 | 2026-11-12 00:50 | 观察 2/2(建议销号) |
| B-126-Update(仍复现) | 远程派发退出码未落盘 | 测试装置(P3) | 仍复现。/tmp/r156_pytest.log 无 EXIT= 行(308 行以 summary 结尾)。kick 命令虽用 bash -c '...' 单引号包裹,$? 仍未落盘 → 不能据 summary 判正常退出,只能据「日志完整 + shell 返回」间接判断。修法待查:改用 set -o pipefail + 显式 ; exit_code=$?; echo EXIT=$exit_code。 | 测试 | 2026-11-12 00:50 | 待处理 |
| B-36-Update(第 50 轮零漂移) | 根级黑盒门控 | 测试(P1 装置) | 零漂移。23 例 7 过 / 16 红,全 fetch failed(本机 9082 未启动)。建议 beforeAll 探活 → 不可达 describe.skip + 打印 BACKEND_UNAVAILABLE。 | 测试(R156 实测) | 2026-11-12 00:50 | 待处理(环境型) |
| B-DX-1-Update(第 16 轮) | dx-bridge 端点 404 | 部署(P2) | 延续。bridge/list、bridge/sync-status 均 404,2 例正确 skip(不假绿)。 | 部署/运维 | 2026-11-12 00:50 | 待处理 |
| B-69-Update(维持销号) | 线上匿名鉴权 | 研发 | 维持销号。mind/fortune、energy/overview、health/plan/list、huawei-health、xiaomi-health 5/5 = 401。 | 测试(R156 实测) | 2026-11-12 00:50 | 已解除 |
| B-95-Update(延续) | 204:4090 失联 | 运维(P2) | 延续。本轮未探 204(仅用 189:4090 + 251:4096 + 本机),189/251 均在线可用。 | 运维 | 2026-11-12 00:50 | 待处理 |
| R156 门禁 | 全量 3790 / 3726 | 测试 | 不通过(较 R155「有条件通过」收紧)。✅G1 98.31%/G3/G4 116/G5/G6 28-28/G8 5-5/G10 三节点/G12;❌G2 46/G7 41-51/G9/G11/G14;⚠️G13 17。唯一动因:langgraph 3→10 红。 | 测试(R156 闭环) | 2026-11-12 00:50 | 已记录 |
| B-156-2(新·本轮自处置闭环) | 会员门控合入零测试 | 测试(P2) | 新登记 + 测试侧自处置。3d35ab714 合入 cfc-frontend/utils/membershipGate.js(决定 9 个页面聊天·消息入口可见性)时零测试、零用例编号。已补 cfc-frontend/__tests__/utils/membershipGate.test.js 7 例(TC-MG-U01~U07,全绿):无 token 不发请求 / isActive===true 放行 / isActive===false 拒绝 / data 缺失 fail-closed / 非布尔真值(1 与字符串 true)不误放行 / 接口 reject fail-closed / resolve undefined fail-closed。未改任何生产代码。 | 测试 | 2026-11-12 01:05 | 已闭环(函数级) |
| B-156-3(新) | 会员门控缺页级 E2E | 测试(P1) | 新登记。函数级已有 7 例保护,但 9 个入口页的模板层隐藏未被验证(index-home / profile / app-library / action-detail / body-detail / mind-detail / wisdom-detail / ProfileMenu / profile/index)→ 模板漏改不会转红。建议 Playwright 双态断言(游客态入口不可见 + 会员态可见)2 条用例。 | 测试 | 2026-11-12 01:05 | 待处理 |
R160 口径:浏览器真跑 28/28 + dx 2 skip(189 admin 5/5 第 5 轮首轮即绿 + 本机 fe 6/shop 4/health 13);langgraph@251 51 例全执行 = 46 过 / 5 红(128.76s,主口径;并处一次 41/10);后端/前端/管理端采信 R156/R159 基线(窗口
96399bc7f..9e3f09dba源码零变更,仅 auto bump);SRS/场景变更零命中 → G12 合规零新增用例。 结论:⚠️ 有条件通过 —— ✅G1 ≈98.65%(3739/3790)、G4 116/116、G5 编译、G6 28/28、G8 5/5=401、G10 三节点(189+本机+251)、G12 合规;❌G2 41~46 红、G9 cfc-web 覆盖率 ~10%、G11 无 CI(B-152-2 第 5 轮)、G14 dx 404;⚠️G3 3 预期 RED、G7 46-51(90.2% 显著改善,5 红全 429 环境)、G13 后端 17 临界。 变化点:langgraph 通过率 34/43(79.1%)→ 46/51(90.2%)(红 9→5);51 例全执行消除 R158「差 8 例」待核实;251 清理 6 个残留 pytest 僵尸(负载 11.71→5.96)→ 结果有变化,已推送 + 通知研发(notice-2026-11-12-R160 随 commit 入库)。
| 编号 | 关联键/对象 | 类型 | 描述 | 经办 | 登记时间 | 状态 |
|---|---|---|---|---|---|---|
| B-142-2-Update(第 8 轮,改善) | 251 LLM 上游 429/401 | 运维/AI(P0) | 波动改善。51 例全执行 46 过 5 红(128.76s),红例 = auto_tag 3 + intent 2,日志实证全 429 RateLimitError(free users 限流) + intent_classifier.py:62 兜底;同窗口另一次运行 41/10 → 红数 5~10 随配额窗口波动。连续 2 轮 51/51 全绿才销号(观察 0/2)。 |
测试(R160 实派) | 2026-11-12 02:35 | 待处理(P0) |
| B-160-1(新·自处置闭环) | 251 残留 pytest 僵尸×6 | 测试(装置) | 已闭环。清理 R153/R156/R157/R158 遗留的 6 个卡死 pytest(运行 44min~3h15min),负载 11.71→5.96,本轮后 0 残留;同时消除 R158「收集 51/实跑 43」资源型假象(本轮 2 次运行均 51 全执行)。建议固化为派发前 pgrep -c pytest 前置清理 + timeout 420 护栏。 |
测试(R160 处置) | 2026-11-12 02:35 | 已解除(建议固化) |
| B-154-1(销号维持观察) | langgraph pytest 收尾挂起 | 研发(P1 测试装置) | 维持销号。连续多轮正常收尾(本轮 128.76s EXIT 正常)。 | 测试(R160 实派) | 2026-11-12 02:35 | 观察中 |
| B-153-1(维持销号第 5 轮) | 189 admin U05 偶发 | 测试(观察项) | 维持销号。连续 5 轮首轮即 5/5(本轮 1.9m)。 | 测试(R160 实派) | 2026-11-12 02:35 | 已销号 |
| B-152-2-Update(第 5 轮未修) | CI 排除清单漏 3 红类 | 研发(P0 CI) | 延续。.gitlab-ci.yml:61 仍漏 UserServiceWechatLoginTest/UserServiceWechatLoginContractTest/TeamProfitCronContractTest → backend-blocking-junit 必红(G11 ❌)。 |
测试(R160 复核) | 2026-11-12 02:35 | 待处理(P0) |
| B-152-1-Update(第 5 轮未修) | CI 排除清单陈旧 26 绿类 | 研发(P1 CI) | 延续。清单 33 类中 26 类已转绿仍未解禁。 | 测试(R160 复核) | 2026-11-12 02:35 | 待处理 |
| B-134-4-Update(第 17 轮) | intent_classifier 兜底伪装 | 研发/AI(P1) | 延续。本轮 5 红中 2 条 intent 红由兜底伪装(429→默认 chat)产生;auto_tag 3 红为上游直返。 | 测试(R160 实派) | 2026-11-12 02:35 | 待处理 |
| B-142-1-Update(第 13 轮) | /api/admin/** 鉴权门缺失 |
研发(P1 安全) | 延续。匿名 POST /api/admin/families/overview → 200(未修);对照 5 端点全 401。 |
测试(R160 巡检) | 2026-11-12 02:35 | 待处理 |
| B-156-1-Update(第 2 轮未修) | nutrition_age_dosage 建表 SQL 无效 |
研发(P1 Schema) | 延续。表从未创建成功(DDL 含无列索引)+ 实体 updateTime 无列 + 死注入三合一。 |
测试(R160 复核) | 2026-11-12 02:35 | 待处理 |
| B-145-1-Update(第 10 轮) | 建表 SQL 无效(并入 B-156-1) | 研发(P1) | 延续。SQLSyntaxErrorException: Key column 'product_id' doesn't exist。 |
研发 | 2026-11-12 02:35 | 待处理 |
| B-69-Update(维持销号) | mind/fortune 匿名 200 | 研发(P1) | 维持销号。health 套件 13/13(含 5/5=401 鉴权断言)。 | 测试(R160 实测) | 2026-11-12 02:35 | 已闭环 |
| B-36-Update(第 51 轮零漂移) | 根级黑盒门控 | 测试(P3) | 零漂移。23 例 7 过/16 红,fetch failed(9082 未启动,采信 R158/R159 口径)。 |
测试(R160 采信) | 2026-11-12 02:35 | 待处理(环境型) |
| B-95-Update(第 25 轮) | 204:4090 失联 |
运维(P2) | 延续。本轮探活 204:4090 = 000;189/251 均在线。 | 运维 | 2026-11-12 02:35 | 待处理 |
| B-DX-1-Update(第 18 轮) | dx-bridge 端点 404 | 部署(P2) | 延续。dx 2 例 skip(不假绿)。 | 部署/运维 | 2026-11-12 02:35 | 待处理 |
| B-141-3-Update(观察) | 站点 /frontedn 路径 404 |
运维(P3) | 观察。/frontedn=404、/admin=302、/frontend=302(用户拼写路径备忘)。 |
运维 | 2026-11-12 02:35 | 观察中 |
| B-148-1-Update(未复现) | 网关瞬抖 502 | 运维(P3) | 未复现。health 套件 13/13 无 502。 | 测试(R160 巡检) | 2026-11-12 02:35 | 观察中 |
| B-141-1(延续) | qna 收集期缺陷 | 研发(P1) | 延续(排除项)。pytest 口径 --ignore=tests/qna --ignore=tests/test_chat.py。 |
测试(R160 实派) | 2026-11-12 02:35 | 待处理 |
R162 口径:五节点全部实跑(非承袭)——后端本机 Maven 全量 51:59 实测 353 类/2974 例/2945 过/25 红/4 跳=99.02%;浏览器 28/28 + dx 2 skip(189 admin 5/5 首轮即绿第 6 轮 + 本机 fe 6/shop 4/health 13);cfc-web 116/116、cfc-frontend 609/3/12;根级 7/16(B-36 第 52 轮);langgraph@251 51 例全执行 = 41 过 / 10 红(234.76s);合计 3818 例 3750 过 ≈ 98.25%。 结论:不通过(较 R161「有条件通过」收紧)。动因:① langgraph 46/51→41/51(红 5→10,B-142-2 升级 P0:API key
****ab12401 失效 + AgnesAI 免费额度 429 耗尽双因);② 后端 +8 红 = S-cfc-143 预期 RED 3 + 未入库文件 5(B-162-1)。零代码回归(后端历史 10 类 17 红与 R156 逐类一致、前端/web/浏览器零漂移)。SRS/场景零变更 → G12 合规零新增用例。 变化点 → 已推送 + 通知研发(notice-2026-11-12-R162 随 commit 入库)。
| 编号 | 关联键/对象 | 类型 | 描述 | 经办 | 登记时间 | 状态 |
|---|---|---|---|---|---|---|
| B-142-2-Update(第 9 轮,升级 P0) | 251 LLM 上游 401+429 | 运维/AI(P0) | 恶化 5→10 红(51 例 41 过)。红例 = test_analyze 1 + test_auto_tag 5 + test_intent 4;日志实证 ① 401:API key ****ab12 invalid(Authentication Fails,chat_graph.py:148 召回记忆失败);② 429:rate_limit_exceeded(free users 每日文本配额耗尽,限速 1 请求/3 分钟);intent_classifier.py:62 兜底伪装加剧(B-134-4)。251:9000 /health 200 → 服务活、仅 LLM 面被掐。连续 2 轮 51/51 才销号(观察 0/2)。 |
测试(R162 实派) | 2026-11-12 05:40 | 待处理(P0) |
| B-162-1(新) | 后端 3 个未入库测试文件编译执行 | 测试(P1 治理) | 新登记。GrowthPublicEndpointMappingTest(5 红)/JwtInterceptorGrowthPolicyTest(0 红)/ArticleTagsContractTest(0 红)为 git status ?? 未跟踪文件却被 surefire 编译执行 → 实测 353 类 vs 版本库 HEAD 纯度 346 类(历轮口径 R152 已有 ArticleTags 记录,本轮新增 Growth/Jwt 2 个)→ 口径漂移 7 类/39 例。红例 5 计入本轮「25 红」但非版本库资产。处置:确认 3 文件归属——有效则入库(红例随库评估),无效则删除。 |
测试(R162 实跑) | 2026-11-12 05:40 | 待归口 |
| B-156-1-Update(第 3 轮未修) | nutrition_age_dosage 建表 SQL 无效 |
研发(P1 Schema) | 延续。34 次/上下文建表失败被 DatabaseInitializer catch 静默掩盖(SchemaInit 日志 11k 行仍 29%)。 |
测试(R162 复核) | 2026-11-12 05:40 | 待处理 |
| B-142-1-Update(第 14 轮) | /api/admin/** 鉴权门缺失 |
研发(P1 安全) | 延续。匿名 POST /api/admin/families/overview → 200 + body code:400;对照 5 端点全 401。 |
测试(R162 巡检) | 2026-11-12 05:40 | 待处理 |
| B-145-1-Update(第 11 轮) | nutrition_age_dosage 索引 SQL 无效(并入 B-156-1) |
研发(P1) | 延续。SQLSyntaxErrorException: Key column 'product_id' doesn't exist。 |
研发 | 2026-11-12 05:40 | 待处理 |
| B-152-1-Update(第 6 轮未修) | CI 排除清单漏 3 红类 | 研发(P0 CI) | 延续。.gitlab-ci.yml:61 仍漏 UserServiceWechatLoginTest/ContractTest/TeamProfitCronContractTest(本轮 3 例实测红仍在外)→ backend-blocking-junit 必红。 |
测试(R162 复核) | 2026-11-12 05:40 | 待处理(P0) |
| B-152-2-Update(第 6 轮未修) | CI 排除清单陈旧 26 绿类 | 研发(P1 CI) | 延续。清单 33 类中 26 类已转绿仍未解禁。 | 测试(R162 复核) | 2026-11-12 05:40 | 待处理 |
| B-134-4-Update(第 18 轮) | intent_classifier 兜底伪装 | 研发/AI(P1) | 延续且本轮加重。4 条 test_intent 红由 429→默认 chat 兜底伪装产生(「像代码错」假象),根因仍是上游 401/429(B-142-2)。 | 测试(R162 实派) | 2026-11-12 05:40 | 待处理 |
| B-153-1-Update(第 6 轮销号维持) | 189 admin U05 前置偶发 | 测试(观察项) | 维持销号。连续 6 轮首轮即 5/5(本轮 1.5m)。 | 测试(R162 实派) | 2026-11-12 05:40 | 已销号 |
| B-36-Update(第 52 轮零漂移) | 根级黑盒门控 | 测试(P3) | 零漂移。23 例 7 过/16 红,fetch failed(9082 未启动)。 |
测试(R162 实测) | 2026-11-12 05:40 | 待处理(环境型) |
| B-95-Update(第 26 轮) | 204:4090 失联 |
运维(P2) | 延续。本轮探活 204:4090 = 000;189/251 均在线。 | 运维 | 2026-11-12 05:40 | 待处理 |
| B-DX-1-Update(第 19 轮) | dx-bridge 端点 404 | 部署(P2) | 延续。dx 2 例 skip(不假绿)。 | 部署/运维 | 2026-11-12 05:40 | 待处理 |
| B-69-Update(维持销号) | mind/fortune 匿名 200 | 研发 | 维持销号。health 套件 13/13(5/5=401 鉴权断言含)。 | 测试(R162 实测) | 2026-11-12 05:40 | 已闭环 |
| B-141-3-Update(观察) | 站点 /frontedn 路径 404 |
运维(P3) | 观察。/frontedn=404、/admin=302、/frontend=302。 |
运维 | 2026-11-12 05:40 | 观察中 |
| R162 门禁 | 全量 3818 / 3750 | 测试 | 不通过(较 R161「有条件通过」收紧)。✅G1 98.25%/G4 116/G5 编译/G6 28-28/G8 5-5/G10 三节点/G12;❌G2 54 红/G7 41-51/G9/G11/G14/G13 25 红;⚠️G3 3 预期 RED。唯一实质动因:langgraph 5→10 红(上游 401+429)。 | 测试(R162 闭环) | 2026-11-12 05:40 | 已记录 |
R163 口径:浏览器 admin@189 5/5(首轮即绿,B-153-1 维持第 7 轮)+ 本机 fe 6/shop 4/health 13 + dx 2 skip(23 过 0 败);cfc-web 116/116、cfc-frontend 609/3/12(预期 RED,S-cfc-132/133);langgraph@251 51 例全执行 = 43 过 / 8 红(497.33s);契约批次 S-cfc-142~151 定向首验 11 类 96 例 = 78 绿 / 18 红,18 红全部 = 研发声明预期 RED,零意外、零代码回归;后端 src 零变更 → 采信 R162 全量(353 类/2974 例/2945 过/25 红/4 跳)。 结论:不通过(承袭),但唯一变化项为正向——langgraph 红 10→8(B-142-2 环境红自愈 2 例,auto_tag 5→4、intent 4→3,仍全为上游 401/429 环境红,非代码回归);前端/web/浏览器零漂移;SRS/场景零变更 → G12 合规零新增用例。变化点 → 已推送 + 通知研发(notice-2026-11-12-R163 随 commit 入库)。
| 编号 | 关联键/对象 | 类型 | 描述 | 经办 | 登记时间 | 状态 |
|---|---|---|---|---|---|---|
| B-142-2-Update(第 10 轮,改善) | 251 LLM 上游 401+429 | 运维/AI(P0) | 改善 10→8 红(51 例 43 过)。红例 = test_analyze 1 + test_auto_tag 4 + test_intent 3(auto_tag -1、intent -1 为环境自愈);日志仍实证 ① 401:API key ****ab12 invalid;② 429:rate_limit_exceeded(free 用户每日文本配额耗尽);intent_classifier.py:62 兜底伪装持续(B-134-4)。251:9000 /health 200 → 服务活、仅 LLM 面被掐。连续 2 轮 51/51 才销号(观察 0/3)。 |
测试(R163 实派) | 2026-11-12 06:30 | 待处理(P0,风向改善) |
| B-163-1(新) | 契约批次 S-cfc-142~151 首验 | 测试(TDD 核验) | 新登记(核验结论)。定向实测 11 类 96 例 = 78 绿 / 18 红,18 红全部与研发 commit 声明预期 RED 逐条吻合:143×3(admin.article.create 权限流 B-142-1)+144×3(admin.article.audit 权限流 3 红+行为锁定 9 绿)+145×2(health.report.create reportType 校验缺口)+147×4(dan.assessment.recordCreate 必填/材料/归属缺一)+148×2(dan.assessment.resultRecord SC-T-07/30 钩子未落地)+150×1(task.task.complete 超期提交锚点)+151×3(task.task.review 权限流 SC-P-11-P 越权未拦截)。零意外红:绿 78 = 142 全绿 6 + 146 全绿 13 + 149 全绿 14 + TaskTaskCreate 7 + 部分 143(3)/144(9)/145(8)/147(2)/148(1)/150(10)/151(5)。 | 测试(R163 定向实测) | 2026-11-12 06:30 | 待研发按 TDD 推进(红→黄) |
| B-162-1-Update(第 2 轮) | 后端 3 个未入库测试文件 | 测试(P1 治理) | 延续。GrowthPublicEndpointMappingTest(5 红)/JwtInterceptorGrowthPolicyTest(0 红)/ArticleTagsContractTest(0 红)仍 git status ?? 未跟踪。 |
测试(R163 巡检) | 2026-11-12 06:30 | 待归口 |
| B-36-Update(第 53 轮零漂移) | 根级黑盒门控 | 测试(P3) | 零漂移。23 例 7 过/16 红(9082 未启动,采信 R162 口径)。 | 测试(R163 巡检) | 2026-11-12 06:30 | 待处理(环境型) |
| B-95-Update(第 27 轮) | 204:4090 失联 |
运维(P2) | 延续。本轮探活 204:4090 = 000;189/251 均在线。 | 运维 | 2026-11-12 06:30 | 待处理 |
| B-DX-1-Update(第 20 轮) | dx-bridge 端点 404 | 部署(P2) | 延续。dx 2 例 skip(不假绿)。 | 部署/运维 | 2026-11-12 06:30 | 待处理 |
| B-152-1/2-Update(第 7 轮未修) | CI 排除清单漏 3 红类 / 陈旧 26 绿类 | 研发(P0/P1 CI) | 延续。backend-blocking-junit 必红仍未解。 |
测试(R163 复核) | 2026-11-12 06:30 | 待处理(P0) |
| B-156-1-Update(第 4 轮未修) | nutrition_age_dosage 建表 SQL 无效 |
研发(P1 Schema) | 延续。建表失败被静默 catch。 | 测试(R163 复核) | 2026-11-12 06:30 | 待处理 |
| B-142-1-Update(第 15 轮) | /api/admin/** 鉴权门缺失 |
研发(P1 安全) | 延续。契约类 S-cfc-143/144 红例即此缺口(admin.article.create/audit 权限流)。 | 测试(R163 复核) | 2026-11-12 06:30 | 待处理 |
| R163 门禁 | 全量 3818 / 3748 | 测试 | 不通过(承袭)。✅G1 98.16%/G4 116/G5 编译/G6 28-28/G8 5-5/G10 三节点/G12;❌G2 52 红/G7 43-51(84.3%,改善但未 51/51)/G9/G11/G14/G13 25 红(采信);⚠️G3 3 预期 RED。唯一变化 = langgraph 10→8 红(正向)。 | 测试(R163 闭环) | 2026-11-12 06:30 | 已记录 |
R165 口径(后端源码变更轮,全量实跑):浏览器 admin@189 5/5(首轮即绿,B-153-1 维持第 8 轮)+ 本机 fe 6/shop 4/health 13 + dx 2 skip(23 过 0 败);cfc-web 116/116、cfc-frontend 609/3/12(预期 RED,S-cfc-132/133);langgraph@251 51 例 = 41 过 / 10 红(128.51s);后端全量实跑 72m17s:3078 例 = 3045 过 / 29 红 / 4 跳(98.93%);契约批次 S-cfc-142~151 并入全量核验 = 8 类全绿 / 2 类预期 RED(82 绿 / 7 红)——S-cfc-143/144/145/148/150 共 11 个预期 RED 经研发 5 修复全部转绿(本轮最大正向);根级 7/16(B-36 第 54 轮)。 结论:不通过(承袭),但显著正向——契约批次 11 红闭环(51→40 非预期红减除后,非预期红仅剩历史零漂移 17 + langgraph 10 环境红 + fe 3 预期 RED + 根级 16 环境);langgraph 43/8→41/10 为 AgnesAI 429 配额波动非代码回归;SRS/场景零变更 → G12 合规零新增用例。变化点 → 已推送 + 通知研发(notice-2026-11-12-R165 随 commit 入库)。
| 编号 | 关联键/对象 | 类型 | 描述 | 经办 | 登记时间 | 状态 |
|---|---|---|---|---|---|---|
| B-142-2-Update(第 11 轮,波动) | 251 LLM 上游 429 | 运维/AI(P0) | 波动 8→10 红(51 例 41 过)。红例 = test_analyze 1 + test_auto_tag 5 + test_intent 4;日志实证 429:rate_limit_exceeded(AgnesAI free users 每日文本配额耗尽,限速 1 请求/3 分钟,Try again after 23:00:55);intent_classifier.py:62 兜底伪装持续(B-134-4)。251:9000 /health 正常 → 服务活、仅 LLM 面被掐。连续 2 轮 51/51 才销号(观察 0/4)。 |
测试(R165 实派) | 2026-11-12 08:15 | 待处理(P0,波动) |
| B-163-1-Update(第 1 轮,核心正向) | 契约批次 S-cfc-142~151 | 测试(TDD 核验) | 11/18 红闭环。并入后端全量核验 10 类:8 类全绿 / 2 类预期 RED(82 绿 / 7 红)。转绿 5 类 = S-cfc-143(AdminArticleCreate 6/6,45b29e5f8)/144(AdminArticleAudit 12/12,a79b26640)/145(HealthReportCreate 10/10,3b90e26d6)/148(DanAssessmentResultRecord 3/3,c36d6515b)/150(TaskCompleteScC02 11/11,12317d458)。剩余预期 RED = S-cfc-147(DanRecordCreate 4 红)+ S-cfc-151(TaskReviewScP11 3 红)。 |
测试(R165 全量实测) | 2026-11-12 08:15 | 待研发按 TDD 推进(剩余 2 类 7 红) |
| B-162-1-Update(第 3 轮) | 后端未入库测试文件 | 测试(P1 治理) | 延续。GrowthPublicEndpointMappingTest(5 errors,311.8s 超时型)仍 git status ?? 未跟踪。 |
测试(R165 巡检) | 2026-11-12 08:15 | 待归口 |
| B-36-Update(第 54 轮零漂移) | 根级黑盒门控 | 测试(P3) | 零漂移。23 例 7 过/16 红(9082 未启动,fetch failed,实跑)。 | 测试(R165 实测) | 2026-11-12 08:15 | 待处理(环境型) |
| B-95-Update(第 28 轮) | 204:4090 失联 |
运维(P2) | 延续。本轮探活 204:4090 = 000;189/251 均在线。 | 运维 | 2026-11-12 08:15 | 待处理 |
| B-DX-1-Update(第 21 轮) | dx-bridge 端点 404 | 部署(P2) | 延续。dx 2 例 skip(不假绿)。 | 部署/运维 | 2026-11-12 08:15 | 待处理 |
| B-152-1/2-Update(第 8 轮未修) | CI 排除清单漏 3 红类 / 陈旧 26 绿类 | 研发(P0/P1 CI) | 延续。TeamProfitCronContractTest 1 红仍在外清单 → backend-blocking-junit 必红。 |
测试(R165 复核) | 2026-11-12 08:15 | 待处理(P0) |
| B-156-1-Update(第 5 轮未修) | nutrition_age_dosage 建表 SQL 无效 |
研发(P1 Schema) | 延续。建表失败被静默 catch。 | 测试(R165 复核) | 2026-11-12 08:15 | 待处理 |
| B-142-1-Update(第 16 轮,收窄) | /api/admin/** 鉴权门缺失 |
研发(P1 安全) | 大幅改善。S-cfc-143/144 修复转绿(JwtInterceptor 收口 /api/admin/ 前缀 + admin 角色守卫生效);剩余 S-cfc-151 review 权限流 3 红同根。 | 测试(R165 复核) | 2026-11-12 08:15 | 待处理(收窄) |
| B-153-1-Update(第 8 轮销号维持) | 189 admin U05 前置偶发 | 测试(观察项) | 维持销号。连续 8 轮首轮即 5/5(本轮 1.3m)。 | 测试(R165 实派) | 2026-11-12 08:15 | 已销号 |
| R165 门禁 | 全量 3922 / 3846 | 测试 | 不通过(承袭)。✅G1 98.51%/G4 116/G5 编译(surefire 红仅测试)/G6 28-28/G8 5-5/G10 三节点/G12;❌G2 58 红(后端 29+lg 10+fe 3+根级 16)/G7 41-51/G9/G11/G14;⚠️G3 3 预期 RED。变化 = 契约批次 11 红闭环(正向)+ langgraph 8→10 红(环境波动)。 | 测试(R165 闭环) | 2026-11-12 08:15 | 已记录 |
| B-167-1 | 189 admin account-roles 502 |
环境/网络(P2) | 08:47 首派 189 admin-desktop 3/5:TC-A-U04/U05 均在 admin-live.spec.js:160/188 断言「account-roles 接口应 200」处收 502。同窗口本机直连 POST http://cfc.iwintrue.com/api/admin-auth/account-roles 4/4 = 200(0.32~1.18s),本机 Playwright admin 5/5、189 复跑 5/5 EXIT=0 → 判节点侧网关瞬态,非契约回归。建议用例对 502/503 加 2 次指数退避,仍失败则输出响应头/耗时证据。 |
测试(R167 实测) | 2026-11-12 08:47 | 观察 1/3(连续 3 轮首跑 5/5 才销号) |
| B-167-2 | 251 live chat/analyze 挂死 |
运维/AI(P1) | 09:22 探活:http://192.168.16.251:9000/health 200 / 23.9ms,但 POST /api/v1/chat(query/user_id/conversation_id 正确 schema)与 POST /api/v1/analyze(report_id/user_id)均 120s 零字节(000)。与同轮 pytest 日志 429 AgnesAI free limit ×2 + 401 ****ab12 invalid ×1 同源:配额耗尽 → LLM 客户端长退避,表现为端点挂死。B-90 状态反转(历轮记销号,本轮 live 端点不可用)。 |
测试(R167 实测) | 2026-11-12 09:22 | 待处理(归 B-142-2 运维侧) |
| B-167-3 | R166「本机无 Chromium」结论勘误 | 测试(P3) | R166(08:35)记「~/.cache/ms-playwright 空、无 playwright-core/.local-browsers → 浏览器 E2E 未执行,引用 R165」。R167 实测 Windows 默认路径 C:/Users/iwt/AppData/Local/ms-playwright 下有 chromium-1228 / chromium-1243 / chromium_headless_shell-*,本机 admin 5/5、fe 6/6、shop 4/4、health 13/13、dx 2 skip 全部实跑成功 → R166 的「缺 Chromium」为探测路径错误(Linux 路径套用到 Windows)。 |
测试(R167 实测) | 2026-11-12 08:40 | 已闭环(口径纠正,SOP 增补 Windows 默认路径) |
| B-142-1-Close(第 17 轮,闭环) | /api/admin/** 鉴权门缺失 |
研发(P1 安全) | 已闭环。R167 匿名 POST 六端点全部 401:/api/mind/fortune、/api/energy/overview、/api/health/plan/list、/api/huawei-health/status、/api/xiaomi-health/status、/api/admin/families/overview(历轮长期 200 + code:400)。对应修复 45b29e5f8(JwtInterceptor 收口 /api/admin/ 前缀)+ 角色守卫。G8 由 ⚠️ 转 ✅。 |
测试(R167 实测) | 2026-11-12 09:20 | 已解除 |
| B-156-1-Update(第 3 轮) | nutrition_age_dosage 建表恒失败 |
研发(P1 数据) | 仍未修。schema.sql:5345-5354 CREATE TABLE nutrition_age_dosage 列清单无 product_id,仍声明 INDEX idx_product (product_id);本轮 361 类全量期间每次上下文启动仍触发 SQLSyntaxErrorException,DatabaseInitializer catch 后继续打印「数据表检查完成」。实体 NutritionAgeDosage.java 另有 updateTime 而 DDL 无 update_time(建表成功后仍会 Unknown column)。 |
测试(R167 实测) | 2026-11-12 09:44 | 待处理 |
| B-152-1/2-Update(第 4 轮,恶化) | CI BACKEND_OBSERVED_CLASSES 双向失真 |
研发(P1 门禁) | 本轮实测红类 13 vs .gitlab-ci.yml:61 清单 33:漏拦 6 类(GrowthPublicEndpointMappingTest、UserServiceWechatLoginTest、UserServiceWechatLoginContractTest、DanAssessmentRecordCreateContractTest、TaskReviewScP11ContractTest、TeamProfitCronContractTest)→ backend-blocking-junit 必然失败(R165 为漏 3 类,本轮扩大至 6 类);26 类已转绿仍被排除 → 硬门禁覆盖被人为缩小。G11 仍 ❌。 |
测试(R167 实测) | 2026-11-12 09:50 | 待处理(建议 CI 增双向差集断言) |
| R167 门禁 | 全量 3889 / 3820 | 测试 | 不通过(有条件)。✅G1 98.23%(剔 skip 98.68%)、G3 609/624、G4 116/116、G5 编译(2121+367 源 0 错)、G6 28-28、G8 6-6 全 401(B-142-1 闭环)、G10 双节点(189 5/5 + 251 47/51)、G12 SRS 零变更;❌G2 51 红(后端 28 + 根级 16 + lg 4 + fe 3)、G7 4 红(429)、G9 锚点 18.5%、G11 CI 必红、G14 场景映射 56.1%;⚠️G13 存量 17 零漂移(第 15 次)。 | 测试(R167 全量实跑) | 2026-11-12 09:55 | 复评条件见报告 §5.1 |
R169 口径(全量实跑轮,三节点派发):admin admin-desktop @189 首轮即 5/5 EXIT=0(1.2m,含滑块+登录流,B-153-1 维持第 9 轮)+ 本机 fe 6/shop 4/health 13 + dx 2 skip(23 过 0 败);cfc-web 116/116、cfc-frontend 609/3/12(预期 RED,S-cfc-132/133);根级 7/16(B-36 第 55 轮);langgraph@251 51 例 = 48 过 / 3 红(141.61s,红 3 全为 AgnesAI 429);后端全量实跑 38m05s(HEAD
8524533c8):3057 例 = 3030 过 / 23 红(17F+6E)/ 4 跳(99.12%,R167 为 22F+6E)。 结论:不通过(承袭,正向改善)。唯一变化项全部为正向:① S-cfc-147 闭环(DanAssessmentRecordCreateContractTest 4 红 → 6/6);② S-cfc-151 收窄(TaskReviewScP11ContractTest 2→1);③ 后端 28→23 红(版本库内 18);④ langgraph 47-4→48-3(环境自愈 1);⑤ 本轮需求变更对齐资产首验全绿:ServiceRoleApplyBindInviteContractTest 6/6(团队邀请改造)+ MembershipChatMemberGateContractTest 6/6 + AIChatControllerGateTest 18/18(聊天仅会员可见)。零代码回归、零新缺陷。SRS 窗口命中 1 次(dc5522d09)→ G12 对齐资产已存在,零新增用例。变化点 → 已推送 + 通知研发(notice-2026-11-12-R169 随 commit 入库)。
| 编号 | 关联键/对象 | 类型 | 描述 | 经办 | 登记时间 | 状态 |
|---|---|---|---|---|---|---|
| B-142-2-Update(第 11 轮,改善) | 251 LLM 上游 429 | 运维/AI(P0) | 改善 4→3 红(51 例 48 过)。红例 = test_analyze 1 + test_intent 2;日志实证 429:rate_limit_exceeded(AgnesAI free 每日文本配额耗尽);intent_classifier.py:62 兜底伪装持续(B-134-4)。251:9000 /health 正常 → 服务活、仅 LLM 面被掐。连续 2 轮 51/51 才销号(观察 0/5)。 |
测试(R169 实派) | 2026-11-12 13:50 | 待处理(P0,改善) |
| S-cfc-147-Close(闭环) | DanAssessment 记录创建 4 守卫 | 研发(TDD) | 已闭环。DanAssessmentRecordCreateContractTest 4 红 → 6/6 全绿(materialId 必填 / 材料有效性 / memberId 必填 / 成员-家庭归属 全落地)。 |
测试(R169 全量实测) | 2026-11-12 13:50 | 已解除 |
| S-cfc-151-Update(第 1 轮,收窄) | TaskReviewScP11 越权发分 | 研发(P1) | 2→1 红。剩余 permission_crossFamilyReview_mustBeRejected(跨家庭/匿名审批仍可发分)。 |
测试(R169 全量实测) | 2026-11-12 13:50 | 待处理(剩余 1 红) |
| S-cfc-162(首验) | 团队邀请改造(dc5522d09) |
研发(TDD) | 首验全绿。ServiceRoleApplyBindInviteContractTest 6/6(口径①②③防冒领 + 两级解耦无分销副作用)。 |
测试(R169 全量实测) | 2026-11-12 13:50 | 已核验 GREEN |
| S-cfc-163(首验) | 聊天仅会员可见(dc5522d09) |
研发(TDD) | 首验全绿。MembershipChatMemberGateContractTest 6/6 + AIChatControllerGateTest 18/18。 |
测试(R169 全量实测) | 2026-11-12 13:50 | 已核验 GREEN |
| B-162-1-Update(第 4 轮) | 后端未入库测试文件 | 测试(P1 治理) | 延续。GrowthPublicEndpointMappingTest(5E)仍 git status ?? 未跟踪却被 surefire 编译执行;另 JwtInterceptorGrowthPolicyTest(0 红)/ArticleTagsContractTest(0 红)同属未入库。 |
测试(R169 巡检) | 2026-11-12 13:50 | 待归口 |
| B-36-Update(第 55 轮零漂移) | 根级黑盒门控 | 测试(P3) | 零漂移。23 例 7 过/16 红(9082 未启动,实跑)。 | 测试(R169 实测) | 2026-11-12 13:50 | 待处理(环境型) |
| B-95-Update(第 29 轮) | 204:4090 失联 |
运维(P2) | 延续。本轮探活 204:4090 = 000;189/251 均在线。 | 运维 | 2026-11-12 13:50 | 待处理 |
| B-DX-1-Update(第 22 轮) | dx-bridge 端点 404 | 部署(P2) | 延续。dx 2 例 skip(不假绿)。 | 部署/运维 | 2026-11-12 13:50 | 待处理 |
| B-152-1/2-Update(第 5 轮未修) | CI 排除清单双向失真 | 研发(P0/P1 CI) | 延续。漏拦 6 类 → backend-blocking-junit 必红;26 类已转绿仍被排除。 |
测试(R169 复核) | 2026-11-12 13:50 | 待处理(P0) |
| B-156-1-Update(第 5 轮未修) | nutrition_age_dosage 建表 SQL 无效 |
研发(P1 Schema) | 延续。建表失败被静默 catch。 | 测试(R169 复核) | 2026-11-12 13:50 | 待处理 |
| B-153-1-Update(第 9 轮销号维持) | 189 admin U05 前置偶发 | 测试(观察项) | 维持销号。连续 9 轮首轮即 5/5(本轮 1.2m)。 | 测试(R169 实派) | 2026-11-12 13:50 | 已销号 |
| B-167-1-Update(观察 2/3) | 189 admin account-roles 502 |
环境/网络(P2) | 观察。本轮首轮即 5/5(无 502)→ 连续 2 轮首跑 5/5,剩 1 轮观察。 | 测试(R169 实派) | 2026-11-12 13:50 | 观察中 2/3 |
| R169 门禁 | 全量 3901 / 3838 | 测试 | 不通过(承袭,正向改善)。✅G1 98.38%(剔 skip 98.84%)/G3 609-624/G4 116-116/G5 编译(dump 0)/G6 28-28/G8 5-5(189 首绿)/G10 双节点(189 5/5 + 251 48/51)/G12 对齐零新增;❌G2 45 红(后端 23 + 根级 16 + lg 3 + fe 3)/G7 48-51(94.1%)/G9 锚点 18.5%/G11 CI 必红/G14;⚠️G13 存量 17 零漂移(第 16 次)。变化 = 后端 22F→17F、S-cfc-147 闭环、S-cfc-151 收窄、lg 4→3 红(全正向)。 | 测试(R169 闭环) | 2026-11-12 13:50 | 已记录 |
R170 口径(全量实跑轮,三节点派发 + API 层首次入闭环):189 admin 5/5 EXIT=0(1.4m,spec blob
4703d73fb= 本机)+ 本机 fe 6/shop 4/health 13 + dx 2 skip;cfc-web 116/116;cfc-frontend 609/3/12(3 全 S-cfc-132/133 预期 RED);根级 7/16(B-36 第 56 轮);langgraph@251 51 例 = 46 过 / 5 红(129.43s,全 AgnesAI 429);后端全量实跑 45m00s(HEADefc730771):3057 例 = 3030 过 / 23 红(17F+6E)/ 4 跳(99.12%);新增线上 API 非功能层 22 例(19 过 / 3 跳 / 0 红)。 结论:不通过(承袭,结构改善 / 指标略降)。变化项:① API 层 22 例首次入闭环且 0 红;② 3 处用例自身缺陷修正(TC-A-N05 探针错 / TC-P-N11 路径+口径错 / TC-P-N02 未随 S-cfc-163 更新)→ 2 假红转绿 + 1 改 skip;③ 后端 23 红逐类逐例持平(零漂移第 17 次);④ langgraph 3→5 红(上游 429 恶化);⑤ 新发现 B-170-1;⑥ 首次做锚点双向核对(85 孤儿可见)。全量 3933/3861 = 98.17%。
| 编号 | 关联键/对象 | 类型 | 描述 | 经办 | 登记时间 | 状态 |
|---|---|---|---|---|---|---|
| B-170-1 | activities.approved_count 回填 |
研发(P2 数据一致性) | 新增。DatabaseInitializer.java:2261 的 UPDATE activities a SET a.approved_count = (SELECT … WHERE r.activity_id = a.id …) 语法非法(MySQL 不允许 SET a.col 带别名,派生表不可引用被更新表别名)→ 本轮 28/28 次上下文启动全失败(Unknown column 'a.id')。该列唯一写入点即此语句 → 持久化列恒 0(创建时 ActivityService:188 置 0、审批不递增)。消费侧 ActivityRegistrationService:327 为动态计算,前端暂不受影响,但任何按该列统计/排序的报表失真。 |
测试(R170 全量实测) | 2026-11-12 15:20 | 待处理 |
| B-170-2(已自修) | API 安全用例 2 处缺陷 | 测试(P1 资产) | 已闭环。① TC-A-N05 拿 /api/admin-auth/login(登录入口)当特权探针 → 改 /api/admin/families/overview(匿名 401);② TC-P-N11 路径 /api/assessment/report/upload 不存在(真实 /api/health/report/upload)+ 用 HTTP 码判业务拒绝(本项目 HTTP 200 承载业务码)→ 改判 code≠200 且 HTTP<500 且 data.reportId 空。修正后 security 11/11 全绿(原 9/11)。 |
测试(R170 实修) | 2026-11-12 15:20 | 已解除 |
| B-170-3(已转 skip) | TC-P-N02/X-N01 未随 S-cfc-163 更新 |
测试(P1 需求对齐) | 假红消除。非会员调 /api/ai/health-coach/send 返 code=46003 会员专享(S-cfc-163/dc5522d09 落地)→ 原断言 code===200 恒红。改为探针识别门控后 test.skip(不假绿)→ perf-compat 4 过/3 跳/0 红。真正闭环需会员夹具 → G-170-1。 |
测试(R170 实修) | 2026-11-12 15:20 | 部分闭环(待夹具) |
| B-170-4 | 锚点台账双向失真 | 测试(P2 度量) | 新增。台账唯一 TC 367 vs 可执行锚点 161 vs 双向命中 76 → 严格覆盖率 20.7%;孤儿锚点 85(执行有/台账无,占锚点 52.8%)、台账空转 291。根因:并存 TC-<域>-U<NN>(UI)与 TC-<域>-<标签>-<NN> 两套命名,台账只登记单套。明细已写入 tests/TRACEABILITY-MATRIX.md §10(含 85 孤儿分组清单)。 |
测试(R170 实测) | 2026-11-12 15:20 | 待处理(P2) |
| B-170-5 | 251 chat 端点挂死 |
运维/AI(P0) | 新增/反转。live POST /api/v1/chat 000 / 90s / 0 字节;同窗口 /api/v1/analyze 200 / 8.66s / 1131B(R167 曾两会挂死,本轮 analyze 恢复)、/health 200/3.9ms;对照生产 ai.etotem.com.cn chat = 200 → 仅 251 节点上游被掐(429 ×7 + 401 ×3)。 |
测试(R170 实测) | 2026-11-12 15:20 | 待处理(归 B-142-2) |
| B-142-2-Update(第 12 轮,恶化) | 251 LLM 上游 429 | 运维/AI(P0) | 恶化 3→5 红(51 例 46 过)(R169 为 48 过)。5 红 = test_auto_tag 3(assert 500==200)+ test_intent 2;日志 429 AgnesAI free limit ×7 + 401 ****ab12 invalid ×3。连续 2 轮 51/51 才销号(观察 0/6)。 |
测试(R170 实派) | 2026-11-12 15:20 | 待处理(P0) |
| B-152-1/2-Update(第 6 轮未修) | CI 排除清单双向失真 | 研发(P0/P1 CI) | 延续。清单 33 类 vs 实测红类 12:漏拦 5 类(GrowthPublicEndpointMappingTest / UserServiceWechatLoginTest / UserServiceWechatLoginContractTest / TaskReviewScP11ContractTest / TeamProfitCronContractTest)→ backend-blocking-junit 必红;26 类已转绿仍排除(R169 记漏 6,DanAssessment 转绿后收窄为 5)。 |
测试(R170 复核) | 2026-11-12 15:20 | 待处理(P0) |
| B-156-1-Update(第 6 轮未修) | nutrition_age_dosage 建表 SQL 无效 |
研发(P1 Schema) | 延续。schema.sql:5345-5357 无 product_id 列却建 INDEX idx_product (product_id) → 本轮 28/28 上下文 Key column 'product_id' doesn't exist,建表失败被静默 catch。 |
测试(R170 全量) | 2026-11-12 15:20 | 待处理 |
| B-162-1-Update(第 5 轮) | 后端未入库测试文件 | 测试(P1 治理) | 延续。GrowthPublicEndpointMappingTest(5E,176s 超时型)仍 git status ??;JwtInterceptorGrowthPolicyTest(0 红)/ArticleTagsContractTest(0 红) 同属未入库。 |
测试(R170 巡检) | 2026-11-12 15:20 | 待归口 |
| B-126-Update(第 5 轮复现) | 251 EXIT= 未落盘 |
测试(P2 工具) | 复现。/tmp/r150_pytest.log 无 PYTEST_EXIT= 行 → 退出码不可判(kick 串里 $? 被外层展开)。修法:单引号包 bash -c '…; echo EXIT=$? >> LOG'。 |
测试(R170 实派) | 2026-11-12 15:20 | 待修 |
| B-36-Update(第 56 轮零漂移) | 根级黑盒门控 | 测试(P3) | 零漂移。23 例 7 过 / 16 红(9082 未监听,fetch failed,实跑)。 | 测试(R170 实测) | 2026-11-12 15:20 | 待处理(环境型) |
| B-95-Update(第 30 轮) | 204:4090 失联 |
运维(P2) | 延续。204:4090 = 000;189:4090 = 200、251:4096 = 200。 | 运维 | 2026-11-12 15:20 | 待处理 |
| B-DX-1-Update(第 23 轮) | dx-bridge 端点 404 | 部署(P2) | 延续。dx 2 例 skip(不假绿)。 | 部署/运维 | 2026-11-12 15:20 | 待处理 |
| B-153-1-Update(第 10 轮销号维持) | 189 admin U05 前置偶发 | 测试(观察项) | 维持销号。连续 10 轮首轮即 5/5(本轮 1.4m EXIT=0)。 | 测试(R170 实派) | 2026-11-12 15:20 | 已销号 |
| B-167-1-Update(观察 3/3,销号) | 189 admin account-roles 502 |
环境/网络(P2) | 销号。连续 3 轮首跑 5/5(无 502),达「连续 3 轮」条件。 | 测试(R170 实派) | 2026-11-12 15:20 | 已销号 |
| G-170-1 | 缺会员夹具 | 测试(P0 夹具) | 新增。S-cfc-163 后 AI 教练仅会员可用,无会员夹具 → 并发/隔离链路 3 例只能 skip。建议新增 registerMember()。 |
测试(R170) | 2026-11-12 15:20 | 待补 |
| G-170-2/3/4/5/6/7/8 | 锚点 / JaCoCo / 变异 / 压测 / 安全扫描 / 无障碍 / 环境型红 | 测试(P1~P3) | 见报告 §七 覆盖缺口清单(G-170-2 锚点≥80%、G-170-3 后端 JaCoCo、G-170-4 PIT、G-170-5 k6、G-170-6 OWASP DC+Semgrep、G-170-7 axe、G-170-8 自动拉起 9082)。 | 测试(R170 方案) | 2026-11-12 15:20 | 待排期 |
| R170 门禁 | 全量 3933 / 3861 | 测试 | 不通过(承袭)。✅G1 98.17%(剔 skip 98.80%)/G3 609-624/G4 116-116/G5 编译 0 错 dump 0/G6 28-28/G8 6-6 全 401/G10 三节点(189 5/5 + 251 51 例 + 本机)/G12 SRS 零变更;❌G2 47 红(后端 23 + 根级 16 + lg 5 + fe 3)/G7 46-51(90.2%)/G9 20.7%/G11 CI 必红/G14 58.2%;⚠️G13 存量 17 零漂移(第 17 次)。 | 测试(R170 闭环) | 2026-11-12 15:20 | 已记录 |
R171 口径(承袭 + 定向实跑轮):窗口
26b549762..d1192b33a仅 cfc-web 构建元数据 + 研发 docs,零功能源码变更 → 后端全量采信 R170(3057/3030/23 红 = 99.12%,零漂移第 17 次)。本轮实测:189 admin 5/5 EXIT=0(1.3m,B-153-1 销号维持第 12 轮)+ 本机 fe 6/shop 4/health 13 + dx 2 skip = 浏览器 28/28 + 2 skip;cfc-web 116/116;cfc-frontend 609/3/12(3 全 S-cfc-132/133 预期 RED);根级 7/16(B-36 第 57 轮);langgraph@251 50/51(红 5→1,162.22s,R170 以来最佳);线上 API 32 例(25 过 / 7 跳 / 0 红)。 结论:不通过(承袭,正向改善)。变化项:① langgraph 红 5→1(唯一红test_auto_tag_content_relevance,chat 端点 500,根因仍为上游 429AgnesAI free limit+ 401****ab12 invalid,环境型非回归);② 后端存量红零漂移(第 17 次);③POST /api/v1/chat转入 422 快速失败(R170 为 000/90s 挂死)→ 节点响应能力恢复(B-170-5 改善);④ 其余维度零漂移。全量 3945/3865 = 98.00%(剔 skip 98.91%)。 | B-142-2-Update(第 13 轮,显著改善) | 251 LLM 上游 429/401 | 运维/AI(P0) | 改善 5→1 红(51 例 50 过)(R170 为 46/51)。唯一红test_auto_tag_content_relevance(assert 500==200,chat 端点 500);日志429 AgnesAI free limit(middleware.py:113RateLimitError)+401 ****ab12 invalid(chat_graph.py:148召回记忆失败)。连续 2 轮 51/51 才销号(观察 1/2,本轮为第 1 轮 50/51)。 | 测试(R171 实派) | 2026-11-12 15:40 | 待处理(P0,风向改善) | | B-170-5-Update(观察改善) | 251chat端点挂死 | 运维/AI(P0) | 改善。livePOST /api/v1/chat转入 422 参数校验快速失败(R170 为 000/90s 挂死)、/api/v1/analyze200/8.66s、/health200/3.9ms → 节点响应能力恢复;对照生产ai.etotem.com.cn可达。 | 测试(R171 实测) | 2026-11-12 15:40 | 观察(归 B-142-2) | | B-152-1/2-Update(第 7 轮未修) | CI 排除清单双向失真 | 研发(P0/P1 CI) | 延续。清单 33 类 vs 实测红类 12:漏拦 5 类(GrowthPublicEndpointMappingTest / UserServiceWechatLoginContractTest / UserServiceWechatLoginTest / TaskReviewScP11ContractTest / TeamProfitCronContractTest)→backend-blocking-junit必红;26 类已转绿仍排除。 | 测试(R171 复核) | 2026-11-12 15:40 | 待处理(P0,第 7 轮) | | B-156-1-Update(第 7 轮未修) |nutrition_age_dosage建表 SQL 无效 | 研发(P1 Schema) | 延续。schema.sql:5345-5357无product_id列却建INDEX idx_product (product_id)→ 28/28 上下文Key column 'product_id' doesn't exist,建表失败被静默 catch。 | 测试(R171 采信 R170) | 2026-11-12 15:40 | 待处理 | | B-170-1-Update(第 2 轮未修) |activities.approved_count回填 SQL 无效 | 研发(P2 数据一致性) | 延续。DatabaseInitializer.java:2261UPDATE 语法非法 → 28/28 上下文Unknown column 'a.id',持久列恒 0;消费侧走动态计算,前端暂不受影响。 | 测试(R171 采信 R170) | 2026-11-12 15:40 | 待处理 | | B-162-1-Update(第 6 轮) | 后端未入库测试文件 | 测试(P1 治理) | 延续。GrowthPublicEndpointMappingTest(5E,176s 超时型)仍git status ??;JwtInterceptorGrowthPolicyTest(0 红)/ArticleTagsContractTest(0 红) 同属未入库。 | 测试(R171 巡检) | 2026-11-12 15:40 | 待归口 | | B-126-Update(第 6 轮复现) | 251EXIT=未落盘 | 测试(P2 工具) | 复现。/tmp/r150_pytest.log无PYTEST_EXIT=行 → 退出码不可判。修法:单引号包bash -c '…; echo EXIT=$? >> LOG'。 | 测试(R171 实派) | 2026-11-12 15:40 | 待修 | | B-36-Update(第 57 轮零漂移) | 根级黑盒门控 | 测试(P3) | 零漂移。23 例 7 过 / 16 红(9082 未监听,fetch failed,实跑)。 | 测试(R171 实测) | 2026-11-12 15:40 | 待处理(环境型) | | B-153-1-Update(第 12 轮销号维持) | 189 admin U05 前置偶发 | 测试(观察项) | 维持销号。连续 12 轮首轮即 5/5(本轮 1.3m EXIT=0)。 | 测试(R171 实派) | 2026-11-12 15:40 | 已销号 | | B-167-1-Update(观察 4/4,销号) | 189 adminaccount-roles502 | 环境/网络(P2) | 维持销号。连续 4 轮首跑 5/5(无 502)。 | 测试(R171 实派) | 2026-11-12 15:40 | 已销号 | | R171 门禁 | 全量 3945 / 3865 | 测试 | 不通过(承袭,正向改善)。✅G1 98.00%(剔 skip 98.91%)/G3 609-624/G4 116-116/G5 编译 0 错 dump 0/G6 28-28/G8 6-6 全 401/G10 三节点(189 5/5 + 251 51 例 + 本机)/G12 SRS 零变更;❌G2 43 红(后端 23 + 根级 16 + lg 1 + fe 3)/G7 50-51(98.04%,R170 以来最佳)/G9 20.7%/G11 CI 必红/G14 58.2%;⚠️G13 存量 17 零漂移(第 17 次)。 | 测试(R171 闭环) | 2026-11-12 15:40 | 已记录 |
R172 口径(测试资产变更轮 + 定向实跑轮):窗口
4db4362e8..93f5ba1c2新增 5 契约测试类 46 例(S-cfc-165/166/167/168/169),src/main 与 SRS/场景零变更 → 后端全量采信 R171(3057/3030/23 红 = 99.12%,零漂移第 18 次)+ 定向实跑新增 46 例(30 绿 / 16 预期 RED,与研发声明 100% 一致)。本轮实测:189 admin 5/5 EXIT=0(1.2m,B-153-1 销号维持第 13 轮)+ 本机 fe 6/shop 4/health 13 + dx 2 skip = 浏览器 28/28 + 2 skip;cfc-web 116/116;cfc-frontend 609/3/12(3 全 S-cfc-132/133 预期 RED);根级 7/16(B-36 第 58 轮);langgraph@251 45/51(红 1→6 恶化,139.02s,全 AgnesAI 429/401);线上 API 32 例(25 过 / 7 跳 / 0 红)。 结论:不通过(承袭,结构性进账 / 环境回摆)。变化项:① 新增契约批次首验与研发声明 100% 一致——S-cfc-165/167 30 例全绿(实现已合入)、S-cfc-166/168/169 16 例预期 RED 待实现;② langgraph 环境红 1→6(B-142-2 恶化,非代码回归);③ G1 通过率 97.76%(剔 skip 98.38%);④ 其余维度零漂移(存量红第 18 次)。
| 编号 | 关联键/对象 | 类型 | 描述 | 经办 | 登记时间 | 状态 |
|---|---|---|---|---|---|---|
| S-cfc-165(首验) | shop.order.create 特价分支 | 研发(TDD) | 首验全绿。 ShopOrderCreateSpecialDealContractTest 10/10(特价下单分支契约已落地)。 |
测试(R172 定向实跑) | 2026-11-12 18:20 | 已核验 GREEN |
| S-cfc-167(首验) | shop.coupon.apply 优惠券 | 研发(TDD) | 首验全绿。 ShopCouponApplyContractTest 20/20(实现已链上 CouponController/CouponService)。 |
测试(R172 定向实跑) | 2026-11-12 18:20 | 已核验 GREEN |
| S-cfc-166(首验 RED) | shop.order.queryRefund 退款查询 | 研发(TDD/P1) | 新增预期 RED。 ShopOrderQueryRefundContractTest 4/4 红:ProductOrderService#queryRefund 未落地(SC-P-56)。 |
测试(R172 定向实跑) | 2026-11-12 18:20 | 待研发实现(YELLOW 待派) |
| S-cfc-168(首验 RED) | membership.plan.purchase 购买会员 | 研发(TDD/P1) | 新增预期 RED。 MembershipPlanPurchaseContractTest 7/7 红:MembershipService#purchasePlan 端点 + 五参方法未落地(SC-P-58,含支付失败回滚/重复购买拦截)。 |
测试(R172 定向实跑) | 2026-11-12 18:20 | 待研发实现(YELLOW 待派) |
| S-cfc-169(首验 RED) | supplier.order.fulfill 到店核销 | 研发(TDD/P1) | 新增预期 RED。 SupplierOrderFulfillContractTest 5/5 红:ProductOrderService#redeem 未实现(SC-S-04,缺校验/幂等/越权拒绝)。 |
测试(R172 定向实跑) | 2026-11-12 18:20 | 待研发实现(YELLOW 待派) |
| B-142-2-Update(第 14 轮,恶化) | 251 LLM 上游 429/401 | 运维/AI(P0) | 恶化 1→6 红(51 例 45 过)(R171 为 50/51)。6 红 = test_auto_tag 3 + test_intent 3;日志 429 AgnesAI free limit(middleware.py:113 RateLimitError)+ 401 api key ****ab12 invalid(chat_graph.py:148)。连续 2 轮 51/51 才销号(观察 0/7)。 |
测试(R172 实派) | 2026-11-12 18:20 | 待处理(P0,恶化) |
| B-152-1/2-Update(第 8 轮未修) | CI 排除清单双向失真 | 研发(P0/P1 CI) | 延续。漏拦红类(含新增契约 RED 类 3 个)→ backend-blocking-junit 必红;26 类已转绿仍排除。 |
测试(R172 复核) | 2026-11-12 18:20 | 待处理(P0,第 8 轮) |
| B-156-1-Update(第 8 轮未修) | nutrition_age_dosage 建表 SQL 无效 |
研发(P1 Schema) | 延续。schema.sql:5345-5357 无 product_id 列却建 INDEX idx_product (product_id) → 28/28 上下文 Key column 'product_id' doesn't exist,建表失败被静默 catch。 |
测试(R172 采信) | 2026-11-12 18:20 | 待处理 |
| B-170-1-Update(第 3 轮未修) | activities.approved_count 回填 SQL 无效 |
研发(P2 数据一致性) | 延续。DatabaseInitializer.java:2261 UPDATE 别名语法非法 → 28/28 上下文 Unknown column 'a.id',持久列恒 0。 |
测试(R172 采信) | 2026-11-12 18:20 | 待处理 |
| B-162-1-Update(第 7 轮) | 后端未入库测试文件 | 测试(P1 治理) | 延续。GrowthPublicEndpointMappingTest(5E,176s 超时型)仍 git status ??;JwtInterceptorGrowthPolicyTest(0 红)/ArticleTagsContractTest(0 红) 同属未入库。 |
测试(R172 巡检) | 2026-11-12 18:20 | 待归口 |
| B-36-Update(第 58 轮零漂移) | 根级黑盒门控 | 测试(P3) | 零漂移。23 例 7 过 / 16 红(9082 未监听,实跑)。 | 测试(R172 实测) | 2026-11-12 18:20 | 待处理(环境型) |
| B-95-Update(第 32 轮) | 192.168.16.204:4090 失联 |
运维(P2) | 延续。204:4090 = 000;189:4090 = 200、251:4096 = 200。 |
运维 | 2026-11-12 18:20 | 待处理 |
| B-DX-1-Update(第 24 轮) | dx-bridge 端点 404 | 部署(P2) | 延续。dx 2 例 skip(不假绿)。 | 部署/运维 | 2026-11-12 18:20 | 待处理 |
| B-153-1-Update(第 13 轮销号维持) | 189 admin U05 前置偶发 | 测试(观察项) | 维持销号。连续 13 轮首轮即 5/5(本轮 1.2m EXIT=0)。 | 测试(R172 实派) | 2026-11-12 18:20 | 已销号 |
| B-167-1-Update(观察 5/4,维持销号) | 189 admin account-roles 502 |
环境/网络(P2) | 维持销号。连续 5 轮首跑 5/5(无 502)。 | 测试(R172 实派) | 2026-11-12 18:20 | 已销号 |
| R172 门禁 | 全量 3979 / 3890 | 测试 | 不通过(承袭,结构性进账/环境回摆)。✅G4 116-116/G5 编译 0 错 dump 0/G6 28-28/G8 6-6 全 401/G10 三节点(189 5/5 + 251 51 例 + 本机)/G12 SRS 零变更/G3 609-624(3 预期 RED);❌G1 97.76%(剔 skip 98.38%)/G2 64 红(后端 39 + 根级 16 + lg 6 + fe 3)/G7 45-51(88.24%)/G9 ~20.7%/G11 CI 必红/G14 ~58.2%;⚠️G13 存量红零漂移(第 18 次)。变化 = +46 契约例(30 绿/16 预期 RED)+ lg 环境红 1→6。 | 测试(R172 闭环) | 2026-11-12 18:20 | 已记录 |
| B-173-1 | Playwright 启动即被 safe-delete 守卫拦截 | 测试/CI(P2 新登记) | 新登记。本轮 shop-api、dx-bridge、api 三组套件首次启动均在 Running N tests 之前中断:Error: [safe-delete][SAFE_DELETE_BULK_GUARD_ERROR] state lock timeout(shim 清理 outputDir/test-results 时被守卫拦下,10s helper 超时)。人工 mv 旧产物目录后同一命令即 4/4、2 skip、25 过。判据:日志里没有 Running N tests 就不是用例红,不得计入 G2。 建议所有 Playwright 调用固定 --output=_art/<runid> 一次性目录。 |
测试(R173 实测) | 2026-11-12 19:55 | 待处理 |
| B-173-2 | playwright.config.api.js 默认收集 990 例,门禁口径可放大 31 倍 |
测试/CI(P1 新登记) | 新登记。tests/playwright.config.api.js:18 testMatch: /api[\/].*\.spec\.js$/ 覆盖 e2e/api/generated/** → 不带文件参数运行时 Running 990 tests;R172/R173 报告的「32 例」实为点名 4 文件的结果(api-smoke / nonfunc-security / nonfunc-perf-compat / traceability-p94-p95-c26)。CI 若直跑该 config 将产生大量 401/404 假红并对线上发起近千请求。修正:testMatch 收窄为 4 文件白名单,generated/** 单列 project 默认不跑。 |
测试(R173 实测) | 2026-11-12 19:55 | 待处理 |
| B-173-3 | 后端全量耗时劣化(51:52 vs R171 45m) | 研发/测试(P2 新登记) | 新登记。368 类 / 51:52,平均 8.5s/类但分布极不均:GrowthPublicEndpointMappingTest 237s、UserServiceFamilyNameLinkTest 168s、ActivityControllerTest 104s、ArticleCategoryControllerTest 99s、GuideRolePermissionTest 94s、StatsControllerTest 91s(前 6 类约占 45%)。并发负载仅 Jest 84s + 浏览器 ~3.5m,不足以解释全部。建议抽 AbstractSpringTest 关闭 @EnableScheduling 并复用上下文缓存。 |
研发/测试 | 2026-11-12 19:55 | 待处理 |
| B-142-2-Update(第 7 轮) | 251 langgraph 上游 429/401 | 研发/运维(P0) | 改善(红 6→5)。51 例 46 过 / 5 红 / 129.33s;5 红 = test_auto_tag 3 + test_intent 2;日志 RateLimitError 429 AgnesAI free limit ×7 + chat_graph.py:148 401 ****ab12 invalid ×3。同窗口 live /health 200(8.9ms) 但 /api/v1/chat 与 /api/v1/analyze 均 000/150s 零字节 → 服务活、LLM 链路挂死。B-142-2 不销号(观察 0/2)。 |
研发/运维 | 2026-11-12 19:55 | 待处理 |
| B-152-1/2-Update(第 9 轮) | CI BACKEND_OBSERVED_CLASSES 双向失真 |
CI(P0/P1) | 恶化(漏拦 5→8 类)。清单 33 类 vs 本轮实测红类 15 类:漏拦 8 类(GrowthPublicEndpointMappingTest、MembershipPlanPurchaseContractTest、ShopOrderQueryRefundContractTest、SupplierOrderFulfillContractTest、TaskReviewScP11ContractTest、TeamProfitCronContractTest、UserServiceWechatLoginContractTest、UserServiceWechatLoginTest)+ 陈旧已绿 26 类 → backend-blocking-junit 必红且覆盖虚化。 |
CI/研发 | 2026-11-12 19:55 | 待处理 |
| B-162-1-Update(第 5 轮) | 3 个测试类未入库却被编译执行 | 治理(P1) | 延续。本轮 testCompile 374 源 vs HEAD git ls-files 371 源 → GrowthPublicEndpointMappingTest(5E)、JwtInterceptorGrowthPolicyTest、ArticleTagsContractTest 仍为 ??。HEAD 纯度口径 = 371 类。 |
研发/测试 | 2026-11-12 19:55 | 待处理 |
| B-126-Update(第 6 轮) | langgraph pytest 退出码未落盘 | 测试工具(P2) | 复现。/tmp/r173_pytest.log 末行为 5 failed, 46 passed ... 129.33s,无 EXIT= 行 → 不能据 summary 判正常退出。修法:kick 串用单引号 bash -c '...; rc=$?; echo EXIT=$rc >> LOG'。 |
测试 | 2026-11-12 19:55 | 待处理 |
| B-36-Update(第 59 轮零漂移) | 根级黑盒 23 例 16 红 | 测试(P2 环境) | 零漂移。tests && npx jest --ci → 7 过 / 16 红 / 23(8.8s),全 ECONNREFUSED 127.0.0.1:9082。 |
测试 | 2026-11-12 19:55 | 待处理(环境型) |
| B-95-Update(第 33 轮) | 192.168.16.204:4090 失联 |
运维(P2) | 延续。204:4090 → 000;同期 189:4090=200、251:4096=200、251:9000 /health=200。 |
运维 | 2026-11-12 19:55 | 待处理 |
| B-142-1-Confirm(销号维持第 8 轮) | /api/admin/families/overview 匿名 200+code:400 |
研发(已闭环) | 维持销号。匿名 6 端点全 401(mind/energy/health-plan/huawei/xiaomi/admin-families)。 | 测试(R173 实测) | 2026-11-12 19:55 | 已销号 |
| B-DX-1-Update(第 25 轮) | dx-bridge 端点 404 | 部署(P2) | 延续。dx 2 例 skip(不假绿)。 | 部署/运维 | 2026-11-12 19:55 | 待处理 |
| R173 门禁 | 全量 3979 / 3891 | 测试 | 不通过(承袭)。✅G4 116-116 / G5 368 类 368 XML 0 沉默 0 dump / G6 28-28 / G8 6-6 全 401 / G10 双节点(189 5/5 EXIT=0 + 251 46-51)/ G12 SRS 零变更 / G13 存量红零漂移第 19 次;⚠️G3 609-624(3 预期 RED);❌G1 97.79%(剔 skip 98.41%)/ G2 63 / G7 46-51 / G9 13.4%(官方口径)/ G11 漏拦 8 类 / G14 72.1%。 | 测试(R173 全量实跑) | 2026-11-12 19:55 | 结论已发布 |
| B-142-2-Update(第 8 轮) | 251 langgraph 上游 429/401 | 研发/运维(P0) | 改善(红 5→3)。51 例 48 过 / 3 红 / 136.47s;3 红全落 test_auto_tag(content_relevance/short_content/empty_content);日志 429 AgnesAI free limit + 401 ****ab12 invalid。不销号(观察 0/3)。 | 研发/运维 | 2026-11-12 20:46 | 待处理 |
| B-152-1/2-Update(第 10 轮) | CI BACKEND_OBSERVED_CLASSES 双向失真 | CI(P0/P1) | 延续。漏拦 8 类 + 陈旧已绿 26 类 → backend-blocking-junit 必红。 | CI/研发 | 2026-11-12 20:46 | 待处理 |
| B-162-1-Update(第 6 轮) | 3 个测试类未入库却被编译执行 | 治理(P1) | 延续。GrowthPublicEndpointMappingTest(5E)等 3 文件仍 ??。 | 研发/测试 | 2026-11-12 20:46 | 待处理 |
| B-126-Update(第 7 轮,实证) | 251 节点残留 pytest 进程堆积 + 退出码未落盘 | 测试工具(P2) | 实证。本轮 kick 前发现 4 个残留(R150×2 挂 2h13m / R173×2 挂 1h07m)→ 按 PID kill 后重派成功;新日志仍无 EXIT= 行。修法:kick 串单引号包裹 + 收尾清理钩子。 | 测试 | 2026-11-12 20:46 | 待处理 |
| B-173-1/2/3-Update(第 2 轮) | safe-delete 守卫 / API 990 例 / 后端耗时 | 测试/CI(P2/P1/P2) | B-173-1 本轮以 --output 一次性目录全部规避;B-173-2 沿用点名 4 文件;B-173-3 待后端回填。 | 测试(R174 实测) | 2026-11-12 20:46 | 待处理 |
| B-36-Update(第 60 轮零漂移) | 根级黑盒 23 例 16 红 | 测试(P2 环境) | 零漂移。cd tests && npx jest --ci → 7 过 / 16 红(8.65s),全 ECONNREFUSED 127.0.0.1:9082。 | 测试 | 2026-11-12 20:46 | 待处理(环境型) |
| B-95-Update(第 34 轮) | 192.168.16.204:4090 失联 | 运维(P2) | 延续。204:4090 = 000;189:4090=200、251:4096=200、251:9000 /health=200。 | 运维 | 2026-11-12 20:46 | 待处理 |
| B-DX-1-Update(第 26 轮) | dx-bridge 端点 404 | 部署(P2) | 延续。dx 2 例 skip(不假绿)。 | 部署/运维 | 2026-11-12 20:46 | 待处理 |
| B-142-1-Confirm(销号维持第 9 轮) | /api/admin/families/overview 匿名 | 研发(已闭环) | 维持销号。匿名 6 端点全 401(本轮 6/6)。 | 测试(R174 实测) | 2026-11-12 20:46 | 已销号 |
| B-153-1/B-167-1(销号维持) | 189 admin 偶发/502 | 测试(观察项) | 维持销号。本轮 189 admin 5/5 EXIT=0(1.4m)。 | 测试(R174 实派) | 2026-11-12 20:46 | 已销号 |
| G12 入册(R174 完成) | 需求变更派生用例 21 例 | 测试(完成) | 已入册。SC 基线 241→244;admin.md SC-A-23/24 三流 9 例 + chat-invite-rework TC-X-23~31 三流 12 例;提交 f8acc8c52。 | 测试(R174 入册) | 2026-11-12 20:46 | 已闭环 |
| B-142-2-Update(第 9 轮) | 251 langgraph 上游 429/401 | 研发/运维(P0) | 回摆(红 3→5)。51 例 46 过 / 5 红 / 129.43s;5 红 = auto_tag 3(content_relevance/short_content/empty_content)+ intent 2(classify_analysis/classify_recommend);日志 429 AgnesAI free limit + 401 ****ab12 invalid。红集合与 R173 一致,属配额抖动回摆,非代码回归。不销号(观察 1/9)。 | 研发/运维 | 2026-11-12 21:20 | 待处理 |
| B-126-Update(第 8 轮,复现) | 251 pytest EXIT 落盘失效 | 测试工具(P2) | 复现。/tmp/r150_pytest.log 收尾无 EXIT= 行(grep 0 命中),末行为 5 failed, 46 passed ... 129.43s;summary 齐备非挂起,但退出码不可判定。修法:kick 串整体重定向 bash -c "... ; rc=$?; echo EXIT=$rc" >> LOG 2>&1。 | 测试 | 2026-11-12 21:20 | 待处理 |
| B-153-1/B-167-1(销号维持第 14 轮) | 189 admin 偶发/502 | 测试(观察项) | 维持销号。189 admin 5/5 EXIT=0(1.5m),连续 14 轮首跑即绿,无 502。 | 测试(R175 实派) | 2026-11-12 21:20 | 已销号 |
| B-142-1(销号维持第 10 轮) | 匿名 6 端点 | 研发(已闭环) | 维持销号。匿名 6 端点全 401(本轮 6/6)。 | 测试(R175 实测) | 2026-11-12 21:20 | 已销号 |
| B-36(第 61 轮零漂移) | 根级黑盒 23 例 16 红 | 测试(P2 环境) | 零漂移。cd tests && npx jest --ci → 7 过 / 16 红(4.9s),全 ECONNREFUSED 127.0.0.1:9082。 | 测试 | 2026-11-12 21:20 | 待处理(环境型) |
| B-95(第 35 轮) | 192.168.16.204:4090 失联 | 运维(P2) | 延续。204:4090 = 000;189:4090=200、251:4096=401(认证)、251:9000 /health=200。 | 运维 | 2026-11-12 21:20 | 待处理 |
| B-DX-1(第 27 轮) | dx-bridge 端点 404 | 部署(P2) | 延续。dx 2 例 skip(不假绿)。 | 部署/运维 | 2026-11-12 21:20 | 待处理 |
| B-152-1/2(第 10 轮) | CI BACKEND_OBSERVED_CLASSES 双向失真 | CI(P0/P1) | 延续。漏拦 8 类 + 陈旧已绿 26 类 → backend-blocking-junit 必红。 | CI/研发 | 2026-11-12 21:20 | 待处理 |
| B-162-1(第 6 轮) | 3 个测试类未入库却被编译执行 | 治理(P1) | 延续。GrowthPublicEndpointMappingTest(5E)等 3 文件仍 ??。 | 研发/测试 | 2026-11-12 21:20 | 待处理 |
| B-173-1/2/3(第 2 轮,承袭) | safe-delete / API 990 / 后端耗时 | 测试/CI | B-173-1 本轮以 --output 一次性目录全部规避;B-173-2 沿用点名 4 文件;B-173-3 R174 后端已回 40:12(观察)。 | 测试(R175 实测) | 2026-11-12 21:20 | 待处理 |
| R175 门禁 | 全量 3979 / 3891 | 测试 | 不通过(承袭,环境回摆)。✅G3 609-624(3 预期 RED)/G4 116-116/G5 编译 0 错 dump 0/G6 28-28/G8 6-6 全 401/G10 双节点(189 5/5 + 251 51 例)/G12 SRS 零变更/G13 存量红零漂移第 21 次/G14 台账刷新;❌G1 97.79%(剔 skip 98.41%)/G2 63 红(后端 39 + langgraph 5 + fe 3 + 根级 16)/G7 46-51/G9 锚点/G11 CI 必红。变化 = langgraph 环境红 3→5(48→46 过,非回归)。 | 测试(R175 闭环) | 2026-11-12 21:20 | 已记录 |
| B-142-2-Update(第 10 轮,恶化) | 251 langgraph 上游 429/401 | 研发/运维(P0) | 恶化(红 5→7)。51 例 44 过 / 7 红 / 120.57s;7 红 = auto_tag 3(content_relevance/short_content/empty_content)+ intent 4(classify_analysis/recommend/mind/health);日志实证 429 AgnesAI free limit ×6 + 401 ****ab12 invalid ×4(chat_graph.py:148 召回/保存记忆失败 + intent_classifier.py:62 兜底 chat)。非代码回归(源码 24h 零 commit);同一窗口已清理 251 残留卡死 pytest(r150 48min + r174 1h42m 双组)防资源抢占。不销号(观察 2/10)。 | 研发/运维 | 2026-11-12 21:55 | 待处理(P0,恶化) |
| B-126-Update(第 9 轮,复现) | 251 pytest EXIT 落盘失效 | 测试工具(P2) | 复现(观察 2)。/tmp/r176_lg_pytest.log 收尾仍无 EXIT= 行(grep 0 命中),末行为 7 failed, 44 passed ... 120.57s;summary 齐备非挂起,退出码不可判定。 | 测试 | 2026-11-12 21:55 | 待处理 |
| B-153-1/B-167-1(销号维持第 15 轮) | 189 admin 偶发/502 | 测试(观察项) | 维持销号。189 admin 5/5 EXIT=0(1.3m),连续 15 轮首跑即绿,无 502。 | 测试(R176 实派) | 2026-11-12 21:55 | 已销号 |
| B-142-1(销号维持第 11 轮) | 匿名 6 端点 | 研发(已闭环) | 维持销号。匿名 6 端点全 401(health 13/13 全 401,G8 维持)。 | 测试(R176 实测) | 2026-11-12 21:55 | 已销号 |
| B-36(第 62 轮零漂移) | 根级黑盒 23 例 16 红 | 测试(P2 环境) | 零漂移。cd tests && npx jest --ci → 7 过 / 16 红(4.0s),全 ECONNREFUSED 127.0.0.1:9082。 | 测试 | 2026-11-12 21:55 | 待处理(环境型) |
| B-95(第 36 轮) | 192.168.16.204:4090 失联 | 运维(P2) | 延续。204:4090 = 000;189:4090=200、251:4096=200、251:9000 /health=200(7ms)。 | 运维 | 2026-11-12 21:55 | 待处理 |
| B-DX-1(第 28 轮) | dx-bridge 端点 404 | 部署(P2) | 延续。dx 2 例 skip(不假绿)。 | 部署/运维 | 2026-11-12 21:55 | 待处理 |
| B-152-1/2(第 10 轮,承袭) | CI BACKEND_OBSERVED_CLASSES 双向失真 | CI(P0/P1) | 延续。漏拦 8 类 + 陈旧已绿 26 类 → backend-blocking-junit 必红。 | CI/研发 | 2026-11-12 21:55 | 待处理 |
| B-162-1(第 6 轮,承袭) | 3 个测试类未入库却被编译执行 | 治理(P1) | 延续。GrowthPublicEndpointMappingTest(5E)等 3 文件仍 ??。 | 研发/测试 | 2026-11-12 21:55 | 待处理 |
| B-173-1/2/3(第 3 轮,承袭) | safe-delete / API 990 / 后端耗时 | 测试/CI | B-173-1 本轮以 --output 一次性目录全部规避;B-173-2 沿用点名 4 文件;B-173-3 承 40:12(未重跑)。 | 测试(R176 实测) | 2026-11-12 21:55 | 待处理 |
| R176 门禁 | 全量 3979 / 3889 | 测试 | 不通过(承袭,langgraph 恶化)。✅G3 609-624(3 预期 RED)/G4 116-116/G5 编译 0 错 dump 0/G6 28-28/G8 6-6 全 401/G10 双节点(189 5/5 + 251 51 例)/G12 SRS 零变更/G13 存量红零漂移第 22 次/G14 台账刷新;❌G1 97.74%(剔 skip 98.36%)/G2 65 红(后端 39 + langgraph 7 + fe 3 + 根级 16)/G7 44-51/G9 锚点/G11 CI 必红。变化 = langgraph 环境红 5→7(46→44 过,非回归,B-142-2 第 10 轮恶化)。 | 测试(R176 闭环) | 2026-11-12 21:55 | 已记录 |
| B-177-1(新) | 251 langgraph pytest 退出挂死 | 研发/测试(P1) | R177 根因定位(更正 B-126 归因):pytest 已打印完整 summary(4 failed, 47 passed ... 286.85s)后进程不退出——R176 的 pid 854300/854301 存活 46m30s、本轮 1327744/1327745 存活 16m42s,均 99 线程、状态 Sl;因此 ...; rc=$?; echo EXIT=$rc 永远执行不到,历轮把「EXIT 未落盘」归因为 shell 引号/MSYS 路径改写均不成立。线索:RuntimeWarning: coroutine 'JavaClient._get_client' was never awaited。影响:残留进程累积 → 与下轮抢资源 → 上游超时/429 概率上升。自处置:已 kill -TERM 清理 4 个进程,清理后 live /api/v1/chat 200/4.2s、/health 200/1.9ms。建议:① 派发器 kick 前置 timeout -k 10 900,并在 read 模式判「summary 已出 + 进程存活」→ 自动 TERM 并回报 HANG_AFTER_SUMMARY=1;② 产品侧 JavaClient 在 shutdown await client.aclose()。闭环标准:连续 2 轮 grep -oE 'EXIT=[0-9]+' 有值且 ps \| grep pytest 为空 | 测试(R177 自处置) | 2026-11-12 23:12 | 待研发修(测试侧已清理残留) |
| B-177-2(新) | 网关瞬态 502 被计成用例红 | 测试(P2) | R177 实测:本机首跑 shop-api 4 例 + dx-bridge 2 例全红,断言收到 502(dx 打印 Expected value: 502);同刻直连 POST /api/product/list 3/3 = 200(0.80/0.12/0.09s);套件复跑 4/4 绿 + dx 2 跳 → 判网关瞬态(B-148-1 模式第 2 次)。用例缺陷:shop-sort-api.spec.js:26 与 dx-health-bridge-auth.spec.js:51 未区分「网关 5xx」与「业务拒绝」,任何瞬时 502 直接变红并污染 G2/G6。建议:live 套件统一 fetchWithRetry(仅 5xx/网络错误重试 2 次,退避 800/2400ms)+ 断言分型(status>=500 → skip 并注记原因)。闭环标准:含 5xx 时段连跑 3 次,5xx 均被标 skip 且其余用例判定稳定 | 测试(R177 自处置待办) | 2026-11-12 23:12 | 待测试侧修 |
| B-DX-1(第 26 轮) | dx 桥接端点 404 | 研发/需求(P1) | 线上 POST /api/health/data-sources/bridge/list 与 /sync-status 404/404。本轮新证据:docs/superpowers/specs/2026-11-08-dx-health-bridge.md:5 明示「状态:仅登记不实现(契约补建阶段,未派发实现)」→ 属契约已登记、实现待派发,非缺陷;测试侧 skip(不假绿)为正确行为。建议:规格与用例标注 blocked: pending implementation,避免每轮被读成「端点缺失」 | 测试(R177 核规格) | 2026-11-12 23:12 | 待研发派发实现 |
| B-142-2(观察 1/2) | langgraph 上游 401/配额 | 运维(P0) | R177:51 例 47 过 / 4 红(R176 44/7,回升 +3);4 红全 test_auto_tag(chat 500 ConnectError('All connection attempts failed'))。本轮 429 出现 0 次(上轮 7 次),但 401 api key ****ab12 is invalid 出现 2 次(chat_graph.py:148/195)。清理残留进程后 live /api/v1/chat 200/4.2s、/health 200/1.9ms → 服务活、模型链路可应答 → 环境红。按「连续 2 轮绿才销号」纪律不销号(观察 1/2) | 运维/研发 | 2026-11-12 23:12 | 观察中 |
| R177 门禁 | 全量 3979 / 3892 | 测试 | 不通过(承袭)。✅G4 116-116/G5 编译 0 错 0 dump 368 XML 无沉默/G6 28-28+2 跳/G8 6-6 全 401/G10 双节点(189 5/5 EXIT=0 + 251 51 例)/G12 SRS 零变更/G13 存量红零漂移第 23 次;⚠️G3 预期 RED 3;❌G1 97.81%(剔 skip 98.43%)/G2 62 红(后端 39 + 根级 16 + 前端 3 + lg 4)/G7 47-51/G9 锚点 13.4%(115/861)/G11 CI 漏拦 8 类 + 陈旧 26 类/G14 场景映射 72.1%。变化 = langgraph 环境红 7→4(44→47 过),后端 42m08s 实跑零漂移。 | 测试(R177 闭环) | 2026-11-12 23:12 | 已记录 |