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

chore: auto bump version and changelog [skip ci]

zxyj-langgraph 11 часов назад
Родитель
Сommit
0d7c13a84f

+ 1 - 1
cfc-web/.last_build_commit

@@ -1 +1 @@
-71c4e545941289633cf8f68228e287e73b8c7c54
+8103d16deed72ebbb82a3eada33a31719d867213

+ 2 - 2
cfc-web/package-lock.json

@@ -1,12 +1,12 @@
 {
   "name": "cfc-web",
-  "version": "1.0.2429",
+  "version": "1.0.2430",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "cfc-web",
-      "version": "1.0.2429",
+      "version": "1.0.2430",
       "dependencies": {
         "@wangeditor/editor": "^5.1.23",
         "@wangeditor/editor-for-vue": "^1.0.2",

+ 1 - 1
cfc-web/package.json

@@ -1,6 +1,6 @@
 {
   "name": "cfc-web",
-  "version": "1.0.2430",
+  "version": "1.0.2431",
   "private": true,
   "scripts": {
     "dev": "vue-cli-service serve",

+ 75 - 0
cfc-web/public/CHANGELOG-v1.0.md

@@ -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)
 
 ### 文档

+ 76 - 1
cfc-web/public/CHANGELOG.md

@@ -1,6 +1,6 @@
 # 更新日志
 
-> 当前版本: v1.0.2430
+> 当前版本: v1.0.2431
 
 ## 历史版本
 
@@ -8,6 +8,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)
 
 ### 文档