Kaynağa Gözat

chore: auto bump version and changelog [skip ci]

iwt 4 gün önce
ebeveyn
işleme
3298eeb547

+ 1 - 1
cfc-web/.last_build_commit

@@ -1 +1 @@
-49b4a71ef234ee0d5018f345371fdb017a981b23
+ac7116d4f3ef19479512957987d6592265b69e4f

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

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

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

@@ -4,6 +4,41 @@
 
 ---
 
+## v1.0.2216 (2026-11-08)
+
+### 文档
+- 研发负责人汇报 2026-11-08 18:16(第70轮·guhe_v2/diet 14 RED 入池 + 场景覆盖矩阵 15/241)
+- 迁移方案追加 T7 会话恢复 --resume 子命令落地状态
+- 浠艾福平台程序修改计划 v1.0(guhe_v2 兼容·知识库低侧口径·专家同步)——入池溯源锚点
+- 迁移方案追加 T6 填槽并入 --auto 落地状态(池空提示 + 巡检 prompt 对齐 fill_slots)
+
+### 新功能
+- 发布后异步预生成朗读音频 + 正文变更作废旧音频
+- 规划师(teacher)按 roles 列表判定身份,修复主角色为 parent 的认证规划师看不到服务中心入口
+
+### 其他
+- - 文章更新时:朗读文本变化,或朗读文本为空时正文变化,均作废旧音频并异步重新生成
+- - 生成中并发保护:发布预生成与用户点听文章不重复合成,点播短暂等待缓存
+- - 新增单元测试:发布预生成 3 例 + 作废规则 8 例
+- 
+- - 新增 RolesUtil:hasTeacherRole(role, roles) 按完整角色列表判定规划师身份;
+-   effectiveRoles(user) 保证签发 token 时首位恒为主角色(role claim 不变)、roles claim 携带完整角色集
+- - 小程序 token 签发(UserService×10、InviteCardService×4)改为携带完整 roles
+- - 40 处原 !"teacher".equals(role) 守卫改为 !RolesUtil.hasTeacherRole(role, roles),
+-   涉及 guide/planner/health-plan/assessment/growth/article 相关控制器及 GuideFamilyAccessGuard
+- - GuidePlanReviewController/GuideFamilyQueryController 调用方透传 roles
+- - 既有契约测试补 roles=null(语义等价旧断言);新增 RolesUtilTest 与
+-   GuideFamilyAccessGuardTest roles 放行用例;123 个受影响单测通过
+- 前端(需人工重新打包小程序):
+- - api.js: 修正 getUserRoles/switchRole URL(/api/family/user/...),
+-   新增 getTeacherInfo/getTeacherPendingTasks(指向 dashboard-stats)/getTeacherUnreadCount
+- - profile-main: loadTeacherIdentity 按 roles 探测规划师身份,服务中心入口/待审核提示
+-   改用 isTeacherUser,写 teacherStatus/userRoles 至 storage
+- - service-center: initRole 按 roles 判定 + 状态兜底拉取,解析 dashboard-stats 待办/服务家庭数,
+-   新增「培训认证」入口(打通 certification-center 唯一入口)
+- 
+
+
 ## v1.0.2215 (2026-11-08)
 
 ### 文档

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

@@ -1,6 +1,6 @@
 # 更新日志
 
-> 当前版本: v1.0.2215
+> 当前版本: v1.0.2216
 
 ## 历史版本
 
@@ -8,6 +8,41 @@
 
 ---
 
+## v1.0.2216 (2026-11-08)
+
+### 文档
+- 研发负责人汇报 2026-11-08 18:16(第70轮·guhe_v2/diet 14 RED 入池 + 场景覆盖矩阵 15/241)
+- 迁移方案追加 T7 会话恢复 --resume 子命令落地状态
+- 浠艾福平台程序修改计划 v1.0(guhe_v2 兼容·知识库低侧口径·专家同步)——入池溯源锚点
+- 迁移方案追加 T6 填槽并入 --auto 落地状态(池空提示 + 巡检 prompt 对齐 fill_slots)
+
+### 新功能
+- 发布后异步预生成朗读音频 + 正文变更作废旧音频
+- 规划师(teacher)按 roles 列表判定身份,修复主角色为 parent 的认证规划师看不到服务中心入口
+
+### 其他
+- - 文章更新时:朗读文本变化,或朗读文本为空时正文变化,均作废旧音频并异步重新生成
+- - 生成中并发保护:发布预生成与用户点听文章不重复合成,点播短暂等待缓存
+- - 新增单元测试:发布预生成 3 例 + 作废规则 8 例
+- 
+- - 新增 RolesUtil:hasTeacherRole(role, roles) 按完整角色列表判定规划师身份;
+-   effectiveRoles(user) 保证签发 token 时首位恒为主角色(role claim 不变)、roles claim 携带完整角色集
+- - 小程序 token 签发(UserService×10、InviteCardService×4)改为携带完整 roles
+- - 40 处原 !"teacher".equals(role) 守卫改为 !RolesUtil.hasTeacherRole(role, roles),
+-   涉及 guide/planner/health-plan/assessment/growth/article 相关控制器及 GuideFamilyAccessGuard
+- - GuidePlanReviewController/GuideFamilyQueryController 调用方透传 roles
+- - 既有契约测试补 roles=null(语义等价旧断言);新增 RolesUtilTest 与
+-   GuideFamilyAccessGuardTest roles 放行用例;123 个受影响单测通过
+- 前端(需人工重新打包小程序):
+- - api.js: 修正 getUserRoles/switchRole URL(/api/family/user/...),
+-   新增 getTeacherInfo/getTeacherPendingTasks(指向 dashboard-stats)/getTeacherUnreadCount
+- - profile-main: loadTeacherIdentity 按 roles 探测规划师身份,服务中心入口/待审核提示
+-   改用 isTeacherUser,写 teacherStatus/userRoles 至 storage
+- - service-center: initRole 按 roles 判定 + 状态兜底拉取,解析 dashboard-stats 待办/服务家庭数,
+-   新增「培训认证」入口(打通 certification-center 唯一入口)
+- 
+
+
 ## v1.0.2215 (2026-11-08)
 
 ### 文档