|
|
@@ -4,6 +4,81 @@
|
|
|
|
|
|
---
|
|
|
|
|
|
+## v1.0.2431 (2026-11-13)
|
|
|
+
|
|
|
+### 文档
|
|
|
+- 研发负责人第152轮闭环汇报 2026-11-13 1051(巡检核验轮:状态机112键 RED17/YELLOW72/GREEN8/DONE15 零漂移;任务池197=done179+dispatched17+pending0 池满;上轮派发 S-cfc-176/177/179 GREEN 实现回执已回填 yellow_sha 三sha IN CHAIN ✓、175/178 属 O-22 豁免;17 RED T域契约在途5节点session全挂;--changes 0新键不add-task;--resume 0候选;deploy pending63(open19)/confirmed77;SC主表241=241唯一跑通15/241无漂移;O-1~O-25全已裁决无新增;730处他人WIP零接触单文件入库)
|
|
|
+- ca56f8699 部署回执 testing(S-cfc-176 membership.plan.purchase 已含于 dae706c7d,JAR/进程/健康核实通过)
|
|
|
+- sc-key-map 台账回填 12 行 SC-T(54→66 已映射,SC-T 域 32/32 全映射)
|
|
|
+- sc-key-map 台账回填 21 行 SC-T 与 SC-X-22 映射(52→54 已映射)
|
|
|
+- 研发负责人第151轮闭环汇报(T域closure续派+17 RED全派发)
|
|
|
+
|
|
|
+### 测试
|
|
|
+- S-cfc-183 teacher.plan.review 契约 RED — SC-T-28 AI 方案内容安全复核缺失
|
|
|
+- s run: 9, Failures: 4(SC-T-28 探针全红,SC-T-04 锚点全绿),BUILD FAILURE。
|
|
|
+- GREEN 契约测试 teacher.login.switch(SC-T-01/T-20)— 实现已由 SEC-20261031-01 + 既有代码落地,16/16 全绿;作为契约证据留存,交编排侧转测试登记。
|
|
|
+- S-cfc-194 teacher.dimension.score 契约级 RED 单测
|
|
|
+- teacher.mind.record 规划师舌诊/情绪测评录入 契约级 RED 单测
|
|
|
+- RED 契约测试 teacher.data.isolation(SC-T-13 family-list 数据隔离缺口)
|
|
|
+- S-cfc-181 teacher.appointment.guard contract RED
|
|
|
+
|
|
|
+### 其他
|
|
|
+- 新增契约级单测 PlanContentSafetyReviewContractTest:
|
|
|
+- - 已绿锚点(5):GuidePlanReviewController /pending|/{planId}/approve|/{planId}/reject、
|
|
|
+- PlanReviewController /review、ReviewCenterController /summary 端点映射;
|
|
|
+- HealthPlan.planContent/planJson 复核载体;WechatServiceInterface.checkText 原语。
|
|
|
+- - RED 探针(4):审核链路(HealthPlanServiceImpl/GuidePlanReviewController/
|
|
|
+- HealthPlanController)未接入内容安全依赖;ContentFilterController 仅有 /by-tags
|
|
|
+- 无方案复核端点;approveAndPublish 命中敏感词仍置 published 且落库。
|
|
|
+- 实测 mvn -Dtest=PlanContentSafetyReviewContractTest test:
|
|
|
+- SC-T-04 生命周期由 PlanReviewTeacherContractTest 覆盖且实现已存在,本类不重复。
|
|
|
+- 仅新增 src/test,未改 src/main。
|
|
|
+-
|
|
|
+- S-cfc-191: Add contract test for teacher.message.push (SC-T-19) [teacher.message.push]
|
|
|
+- - T-11/12→teacher.assessment.record(DAN 上传解析/八类报告)
|
|
|
+- - T-14/15→teacher.plan.create(方案编辑/套餐任务项)
|
|
|
+- - T-17/21/27→teacher.family.overview;T-18→teacher.task.review
|
|
|
+- - T-22→teacher.plan.create(⚠ G-2 归档缺口)
|
|
|
+- - T-23→teacher.report.proxy;T-28→teacher.plan.review
|
|
|
+- - 依据 EVD-10 契约 §3 定稿表;未映射降至 175
|
|
|
+-
|
|
|
+- S-cfc-187: teacher.task.review - Implement contract tests for cross-family task audit guard (TC-T-09-P, TC-T-18-E)
|
|
|
+- - SC-T-30 测评录入触发五维变化:锚定 AssessmentService → DimensionScoreService.refreshFromDanAssessment 桥接(绿)
|
|
|
+- - SC-T-31 手动维度打分:ManualDimensionScoreController submit/latest/history + submit 落 five_dimension_scores(source_type=manual)(绿)
|
|
|
+- - SC-T-32 五维自评录入与变化:自评 submit 应桥接五维分数/能量落点(DimensionScoreService/EnergyService/FiveDimensionScoreMapper)+ five_dimension_scores.source_type 应含 selfcheck 来源(红:当前 submitSelfCheck 仅写 five_dimension_self_checks,契约"自评→变化落 EnergyController"未落地)
|
|
|
+- RED 结果:Tests run: 6, Failures: 2, Errors: 0(2 红=SC-T-32 桥接缺口,GREEN 阶段实现后转绿)
|
|
|
+-
|
|
|
+- - SC-T-30/31/32 回填 teacher.dimension.score
|
|
|
+- - SC-X-22 回填 reward.cfEstimate.expectedCf(键 DONE,三类流证据待补)
|
|
|
+- - 未映射降至 187
|
|
|
+-
|
|
|
+- [S-cfc-192] [teacher.nutrition.plan] TDD-RED 契约测试:精准营养方案制定
|
|
|
+- 纯 Mockito 行为级单测,预期红:
|
|
|
+- 正常流-1:generateRecommendation 的 nutritionSummary 应聚合宏量营养素
|
|
|
+- (protein/carbs/fat),当前 aggregateNutrition 恒置 0(源码注释:
|
|
|
+- protein/carbs/fat 恒 0 不在本轮范围)— 断言失败。
|
|
|
+- 边界流-1/2:负热量目标(calories=-500)与超上限热量目标(999999)
|
|
|
+- 应被拦截返回非 200;当前实现静默忽略并照常返回 success(200) — 断言失败。
|
|
|
+- 权限流:家庭隔离由 JwtInterceptor + familyId 承载,本控制器粒度不适用。
|
|
|
+-
|
|
|
+- - controller: create 代录入口 + list 客户测评记录查看
|
|
|
+- - service: createAssessment 入库 + getAssessments(assessmentDate 倒序)
|
|
|
+- - entity: memberId/guideId/assessmentType/status(默认 draft)/assessmentDate 字段契约
|
|
|
+- RED: 13 用例 12 失败(0 错误),断言契约所需统一录入链路缺失(实现未落地)
|
|
|
+- 溯源: sc-key-map SC-T-25 + planner-zone-contract(EVD-10) §2/§5 + API_REFERENCE §4.57
|
|
|
+- 能力键: teacher.mind.record | 任务号: S-cfc-195 | 分支: task/S-cfc-195
|
|
|
+-
|
|
|
+- - 定位:PlanReviewController /api/guide/plans/family-list teacher 越权缺口——
|
|
|
+- 当前 body.familyId 直接透传、无 guide_families(status=binding) isBound 校验,
|
|
|
+- 控制器未注入全项目唯一授权判定点 GuideFamilyAccessGuard。
|
|
|
+- - 新增 cfc-backend/src/test 单测(纯 Mockito/反射,无 Spring/DB):
|
|
|
+- 权限流 3 条(teacher 越权非绑定家庭 403 / body.familyId 不泄漏跨家庭方案 /
|
|
|
+- 越权不查询 planMapper)+ 结构流 1 条(注入统一授权守卫),预期红。
|
|
|
+- 正常流/异常流/授权源基线/观察钉住 5 条(绿)。
|
|
|
+- - 验证:9 通过 5、失败 4(红)——RED 阶段完成,GREEN 阶段实现 isBound 校验使绿。
|
|
|
+-
|
|
|
+
|
|
|
+
|
|
|
## v1.0.2430 (2026-11-13)
|
|
|
|
|
|
### 文档
|