Browse Source

chore: auto bump version and changelog [skip ci]

zxyj-langgraph 1 hour ago
parent
commit
d459adadb0

+ 1 - 1
cfc-web/.last_build_commit

@@ -1 +1 @@
-dca0505a2e2d6147d48f0880c18f62b6bbf4e1a1
+2598548729d71ef977d3b99a433d03991321a6ef

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

@@ -1,12 +1,12 @@
 {
   "name": "cfc-web",
-  "version": "1.0.2442",
+  "version": "1.0.2443",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "cfc-web",
-      "version": "1.0.2442",
+      "version": "1.0.2443",
       "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.2443",
+  "version": "1.0.2444",
   "private": true,
   "scripts": {
     "dev": "vue-cli-service serve",

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

@@ -4,6 +4,72 @@
 
 ---
 
+## v1.0.2444 (2026-11-13)
+
+### 文档
+- 研发负责人错峰巡检汇报 2026-11-13 1712(S-cfc-310/312 实现收口 第153轮)
+
+### Bug 修复
+- teacher.family.overview 成员任务端点补跨家庭 memberId 归属校验(SC-T-13 数据隔离)
+
+### 其他
+- 未校验路径 memberId 是否属于该 familyId,已绑定家庭 A 的规划师传入属于家庭 B 的
+- memberId 即可跨家庭越权读取成员任务(IDOR)。补 selectById(memberId) 归属校验,
+- member 存在但 familyId 不匹配 → 403 拒绝,不进入 taskService。
+- TeacherFamilyOverviewContractTest RED 1(跨家庭 IDOR)→ GREEN 7/7;
+- GuideFamilyTaskControllerTest 全量 20/20 无回归。
+- 
+- - 覆盖 WishService 状态机:提心愿 draft→定价 active→兑换审批→兑现 confirmReceived;积分不足拦截、被驳回不可兑、非归属成员越权拒绝
+- - 覆盖 EnergyService.deductForWish 真实扣减(余额充足/不足/非正金额)与 EnergyController 参数契约
+- - 实测结论:该能力实现已在 origin/cfclub 落地并被既有测试覆盖,本类按任务要求 #2 作为登记验证,12 用例全绿、不修改 src/main
+- 
+- 1. 同步失败重试(SC-A-08/A-22 边界):
+-    - LanggraphSyncService 新增 maxRetries 配置(dify.sync.max-retries 默认3)与
+-      syncWithRetry(指数退避重试),syncToLanggraph 委托之;
+-    - KnowledgeBaseVectorController.triggerSync 接受 @RequestBody Map 重试配置
+-      (maxRetries),HTTP 调用失败按重试次数重试(postWithRetry)。
+- 2. 大批量分批(SC-A-08 边界):
+-    - DanKnowledgeBaseService 新增 BATCH_SIZE(=100) 分批哨兵;
+-    - backfillTags 按批回填并返回 batchSize/batchCount 批统计;
+-    - 新增 syncBatch 分批同步入口(total/processed/batchSize/batchCount/batches)。
+- 3. 平台角色门禁(SC-A-08 权限粒度,对齐 AdminUnifiedKnowledgeController):
+-    - KnowledgeBaseController 写入端点(save/delete/bind-tags/bind-dimensions/backfill-tags)
+-      增加 allowed(request) 门禁;
+-    - KnowledgeBaseVectorController 全部端点增加 allowed(request) 门禁;
+-    角色集合 admin/operator/finance/knowledge_admin/butler。
+- 验证:mvn -q -Dtest=AdminKnowledgeBaseManageContractTest test → 13 run/0 fail/0 error。
+- 
+- - SC-C-17 logout: POST /api/auth/logout endpoint missing; server-side token
+-   invalidation (TokenBlacklistService) missing -> assertions RED
+- - SC-C-18 device/account binding: login DTO deviceId, /api/auth/device/verify,
+-   device_bind table, DeviceBindService all missing -> assertions RED
+- - SC-C-01 / SC-C-16 status anchors: login family endpoints + LoginResultDTO.role
+-   + maskChildSensitiveFields already implemented (GREEN, to be registered by orchestration)
+- Expected RED: 11 tests, 6 failures (logout x2 / device x4); GREEN phase implements
+- to turn green.
+- 
+- RED(5): GrowthTaskController 无 checkin 提交端点; TaskCheckinDTO 未契约化;
+-         GrowthPlanController 无 progress 端点; GrowthPlanProgressVO 未契约化;
+-         小游戏 score=999999 得125000分无上限(G-09)。
+- GREEN(4,已落地上报): /child/{id}/active 锚点; 重复打卡幂等(T24-A);
+-         驳回重做 reviewTask→pending; 打卡归属成员匹配(说明性)。
+- 溯源: SC-C-02/05/08/14 + API_REFERENCE §4.6 + child-zone-contract §2/§5G-09。
+- 
+
+### 测试
+- 新增 child.wish.manage 契约级单测(SC-C-04 提心愿,实测全绿转测试登记)
+- 契约RED单测 child.diet.viewMenu 饮食食谱查看(SC-C-12 当日三餐·空态)
+- 契约级单测 child.badge.view 勋章墙+解锁通知 11绿(基线36b671565已实现,意外全绿转登记)
+- S-cfc-217 child.growth.archive RED 契约测试(G-11 成长档案归属校验 + G-05 家长代导出,5 红 2 绿锚)
+- child.ai.chat 契约测试 RED - 孩子视角AI对话适龄过滤契约未落地,反射结构契约 7 红 5 绿(端点/多轮锚点+权限流说明)
+- child.auth.login RED contract: logout/device/binding not implemented
+- child.energy.view 契约RED单测 3红(SC-C-06 /overview+logs 越权拦截 + SC-C-07 draft未录入不展示)
+- child.task.checkin TDD-RED 契约测试(5红/4绿) 打卡提交/方案进度/小游戏上限 缺口登记
+
+### 新功能
+- admin.knowledgeBase.manage 契约闭环——同步失败重试/大批量分批/角色门禁
+
+
 ## v1.0.2443 (2026-11-13)
 
 ### 测试

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

@@ -1,6 +1,6 @@
 # 更新日志
 
-> 当前版本: v1.0.2443
+> 当前版本: v1.0.2444
 
 ## 历史版本
 
@@ -8,6 +8,72 @@
 
 ---
 
+## v1.0.2444 (2026-11-13)
+
+### 文档
+- 研发负责人错峰巡检汇报 2026-11-13 1712(S-cfc-310/312 实现收口 第153轮)
+
+### Bug 修复
+- teacher.family.overview 成员任务端点补跨家庭 memberId 归属校验(SC-T-13 数据隔离)
+
+### 其他
+- 未校验路径 memberId 是否属于该 familyId,已绑定家庭 A 的规划师传入属于家庭 B 的
+- memberId 即可跨家庭越权读取成员任务(IDOR)。补 selectById(memberId) 归属校验,
+- member 存在但 familyId 不匹配 → 403 拒绝,不进入 taskService。
+- TeacherFamilyOverviewContractTest RED 1(跨家庭 IDOR)→ GREEN 7/7;
+- GuideFamilyTaskControllerTest 全量 20/20 无回归。
+- 
+- - 覆盖 WishService 状态机:提心愿 draft→定价 active→兑换审批→兑现 confirmReceived;积分不足拦截、被驳回不可兑、非归属成员越权拒绝
+- - 覆盖 EnergyService.deductForWish 真实扣减(余额充足/不足/非正金额)与 EnergyController 参数契约
+- - 实测结论:该能力实现已在 origin/cfclub 落地并被既有测试覆盖,本类按任务要求 #2 作为登记验证,12 用例全绿、不修改 src/main
+- 
+- 1. 同步失败重试(SC-A-08/A-22 边界):
+-    - LanggraphSyncService 新增 maxRetries 配置(dify.sync.max-retries 默认3)与
+-      syncWithRetry(指数退避重试),syncToLanggraph 委托之;
+-    - KnowledgeBaseVectorController.triggerSync 接受 @RequestBody Map 重试配置
+-      (maxRetries),HTTP 调用失败按重试次数重试(postWithRetry)。
+- 2. 大批量分批(SC-A-08 边界):
+-    - DanKnowledgeBaseService 新增 BATCH_SIZE(=100) 分批哨兵;
+-    - backfillTags 按批回填并返回 batchSize/batchCount 批统计;
+-    - 新增 syncBatch 分批同步入口(total/processed/batchSize/batchCount/batches)。
+- 3. 平台角色门禁(SC-A-08 权限粒度,对齐 AdminUnifiedKnowledgeController):
+-    - KnowledgeBaseController 写入端点(save/delete/bind-tags/bind-dimensions/backfill-tags)
+-      增加 allowed(request) 门禁;
+-    - KnowledgeBaseVectorController 全部端点增加 allowed(request) 门禁;
+-    角色集合 admin/operator/finance/knowledge_admin/butler。
+- 验证:mvn -q -Dtest=AdminKnowledgeBaseManageContractTest test → 13 run/0 fail/0 error。
+- 
+- - SC-C-17 logout: POST /api/auth/logout endpoint missing; server-side token
+-   invalidation (TokenBlacklistService) missing -> assertions RED
+- - SC-C-18 device/account binding: login DTO deviceId, /api/auth/device/verify,
+-   device_bind table, DeviceBindService all missing -> assertions RED
+- - SC-C-01 / SC-C-16 status anchors: login family endpoints + LoginResultDTO.role
+-   + maskChildSensitiveFields already implemented (GREEN, to be registered by orchestration)
+- Expected RED: 11 tests, 6 failures (logout x2 / device x4); GREEN phase implements
+- to turn green.
+- 
+- RED(5): GrowthTaskController 无 checkin 提交端点; TaskCheckinDTO 未契约化;
+-         GrowthPlanController 无 progress 端点; GrowthPlanProgressVO 未契约化;
+-         小游戏 score=999999 得125000分无上限(G-09)。
+- GREEN(4,已落地上报): /child/{id}/active 锚点; 重复打卡幂等(T24-A);
+-         驳回重做 reviewTask→pending; 打卡归属成员匹配(说明性)。
+- 溯源: SC-C-02/05/08/14 + API_REFERENCE §4.6 + child-zone-contract §2/§5G-09。
+- 
+
+### 测试
+- 新增 child.wish.manage 契约级单测(SC-C-04 提心愿,实测全绿转测试登记)
+- 契约RED单测 child.diet.viewMenu 饮食食谱查看(SC-C-12 当日三餐·空态)
+- 契约级单测 child.badge.view 勋章墙+解锁通知 11绿(基线36b671565已实现,意外全绿转登记)
+- S-cfc-217 child.growth.archive RED 契约测试(G-11 成长档案归属校验 + G-05 家长代导出,5 红 2 绿锚)
+- child.ai.chat 契约测试 RED - 孩子视角AI对话适龄过滤契约未落地,反射结构契约 7 红 5 绿(端点/多轮锚点+权限流说明)
+- child.auth.login RED contract: logout/device/binding not implemented
+- child.energy.view 契约RED单测 3红(SC-C-06 /overview+logs 越权拦截 + SC-C-07 draft未录入不展示)
+- child.task.checkin TDD-RED 契约测试(5红/4绿) 打卡提交/方案进度/小游戏上限 缺口登记
+
+### 新功能
+- admin.knowledgeBase.manage 契约闭环——同步失败重试/大批量分批/角色门禁
+
+
 ## v1.0.2443 (2026-11-13)
 
 ### 测试