|
|
@@ -4,6 +4,29 @@
|
|
|
|
|
|
---
|
|
|
|
|
|
+## v1.0.2395 (2026-11-12)
|
|
|
+
|
|
|
+### 文档
|
|
|
+- 研发负责人第145轮闭环汇报 2026-11-12 1005(S-cfc-157 dan.assessment.recordCreate 实现收口:核验 worktree task/S-cfc-157 分支 69ff26a7f+d8969ea6f(25行最终版三契约守卫,4红→0失败全绿)已推 origin 未合主线→双父 merge 提交 1f31f4b09 合入 diff 仅1文件M;回填 state.json yellow_sha + tasks.json done,任务池彻底清零 done161+failed1+dispatched0+pending0;状态机86键 RED0/YELLOW63(63/63有sha)/GREEN8/DONE15;--changes 0新键;--resume 0候选;部署pending12/confirmed77;SC 15/241无漂移)
|
|
|
+
|
|
|
+### 新功能
|
|
|
+- dan.assessment.recordCreate 契约守卫使绿
|
|
|
+- S-cfc-157 dan.assessment.recordCreate 创建记录契约守卫转绿
|
|
|
+
|
|
|
+### 其他
|
|
|
+- 由 GlobalExceptionHandler 映射 400,绝不落库):
|
|
|
+- 1. 必填参数守卫:materialId / memberId 为空拒绝
|
|
|
+- 2. 材料有效性:materialId 须指向存在且启用的测评材料(经 baseMapper)
|
|
|
+- 3. 成员-家庭归属:memberId 须属于 familyId,防跨家庭越权(参照 SC-T-13)
|
|
|
+- DanAssessmentRecordCreateContractTest 结果:6 tests,4 失败(3 边界 + 1 权限)→ 0 失败全绿。
|
|
|
+-
|
|
|
+- - memberId/materialId 非空必填守卫(拒绝 null 字段落库)
|
|
|
+- - 材料存在且启用校验(经 baseMapper)
|
|
|
+- - 成员-家庭归属校验(经 familyMemberMapper,防跨家庭越权,参照 SC-T-13)
|
|
|
+- DanAssessmentRecordCreateContractTest 6/6 绿(红 4 例 → 0),无回归。
|
|
|
+-
|
|
|
+
|
|
|
+
|
|
|
## v1.0.2394 (2026-11-12)
|
|
|
|
|
|
### 文档
|