Parcourir la source

chore: auto bump version and changelog [skip ci]

iwt il y a 1 mois
Parent
commit
9b5eb3f526

+ 1 - 1
cfc-web/.last_build_commit

@@ -1 +1 @@
-a118164c3ecb09042f3ed5caa0a7d193c8b6dab3
+c1665b3c1789c73d4984ed058fe4044ba5b8e9d9

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

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

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

@@ -4,6 +4,6696 @@
 
 ---
 
+## v1.0.1010 (2026-08-12)
+
+### Bug 修复
+- 移除报告审核 Tab 及相关路由
+- 迁移227 product_skus.id 升级为 BIGINT
+- RegionController 移除硬编码数据,改用 StreetService 读取 DB 全量省市区数据
+- 迁移226 products 添加 growth_category 列
+- 迁移225 articles 添加 growth_category 列
+- 成长页推荐只调用一次API,前端按growth_category分组显示
+- 推荐接口移除 growth_category 过滤,直接取精选内容
+- GrowthRecommendationService 修复 getCategory 调用错误
+- 报告详情行距优化、富维度商品封面图URL修复、智维度功能区间距调整
+- 修复成就页分包注册路径,健康/成长页移除家庭成员选择条
+- LangGraph 容器挂载宿主机上传目录替代命名卷
+- getFamilyEnergySandbox 兼容新返回格式,避免16个旧页面崩溃
+- 图片路径替换为京东云OSS URL
+- 自驱力/自我概念/成长型思维解析改为嵌套Map+中文key的structuredAnalysis真实结构
+- 修正 UserController 变量重复声明
+- UserController 编译错误 - 修复 getPointsBalance 方法和 log 引用
+- 修复测试编译错误和 FoodService 列名映射错误
+- 修复 EnergyControllerTest 编译错误
+- SortUtil 修复 LambdaQueryWrapper 类型不兼容问题
+- 雷达图销毁后停止初始化重试 + 成长页定期调研改名成长回看并防御空项点击
+- 我的页面isLoggedIn改为data+onShow赋值,修复登录后仍显示登录前视图
+- NutritionProductService 字段名冲突导致 Bean 注入失败
+- 补全 FileRecord 实体和 Mapper(JdCloudStorageService 依赖)
+- 雷达图标签边界约束 + 底部留白防tabbar遮挡 + 五维卡片标题单行 + 移除闭环图
+- diet/record/daily, survey/status, survey/history memberId 为空时优雅降级
+- 移除公告分类(27篇文章+68个chunk)
+- HealthReportControllerTest 适配 listReports 方法签名变更
+- LangGraphAdmin.vue 修复 ES6 spread 语法兼容 webpack4
+- 报告列表接口不强制 memberId——未传时回退到家庭报告列表
+- 修复测试编译错误——适配 controller 方法签名变更(增加 @RequestAttribute 参数)
+- HealthDimensionControllerTest 适配 history 方法签名变更
+- LangGraph管理页全屏布局 + 健康检查修复
+- LangGraph健康检查修复Java后端状态显示
+- LangGraph管理页全屏布局 + Java后端健康检查修复
+- 修复重置用户密码接口请求体参数丢失 - data 改为 data: { password }
+- 天盘页面 routeDone 路由错误修复 - 导航工具加锁防重复跳转、修复 canvas 混合 API 用法
+- TeacherLoginTest 适配 roles 改为 List<String>
+- 健康/成长页不传memberId + 后端自动解析当前用户memberId JwtInterceptor对所有角色设置currentMemberId/familyMemberId
+- 无 memberId 时跳过健康/成长页数据请求,避免后端 400 空字符串解析错误
+- User.roles 改为 List<String> 修复修改角色反序列化错误
+- 健康/成长页 memberId 为空修复 - getReportList 传 selectedMemberId、onShow 顺序调整、FamilyMemberStrip 绑定 @select 事件
+- 权限不足时跳403而非/,避免无限循环导致栈溢出
+- 修复 4Tab 编译错误 - 补回 wealth/index.vue 缺失的 service-item v-for 和 serviceList 数据; 修复 report-detail.vue 和 report-blocks-renderer.vue 的 :key 表达式改为方法调用
+- JwtConfig 兼容短密钥,避免 WeakKeyException
+- LangGraph管理页改造 + 新增health/coach/generate端点
+- 修复预存编译错误(DanshopSyncService引用 + 缺失File/FileOutputStream import)
+- 移除维度页未使用的LoginGuideCard import
+- 修正指标异常计数与展示不一致
+- 修复 parse 读取文件路径重复拼接 uploadBaseDir
+- 健康报告上传改用 upload-only 接口
+- 删除DanshopSync stub + 实现EnergyService占位方法 + PdfReport用PDFBox渲染 + AiGateway新增generateHealthPlan
+- 迁移208 health_gut_flora.detection_rate 列扩容
+- 后台管理列表页统一显示用户名而非用户ID
+- 移除 @Slf4j 注解,改用显式 Logger 避免编译错误
+- CouponService 改用显式 Logger 替代 @Slf4j,修复编译错误
+- 健康报告页修复 - memberId兜底、移除自定义导航、指标状态标签、文案优化
+- 清理残留成长档案文案 (DimensionIntroCard + profile-main)
+- health tab getReportList 空 memberId → 从 store/storage 取当前用户ID
+- AdminController 补 @Slf4j + 修复 AdminNoticeController LambdaQueryWrapper 写法
+- AdminNoticeController LambdaQueryWrapper eq方法参数类型错误
+- 富维度 banner 配色改为琥珀金
+- 推荐服务商品状态改 on_shelf 修复 dimension-products 空数组; feat(frontend): 推荐阅读三列书封比例/推荐商品自加载/会员级别样式
+- getOrderCounts 接口路径错误导致 404
+- growth-main 移除活动维度参数
+- home-detail 移除任务维度参数
+- member-detail 移除任务维度参数
+- index-home 移除维度参数
+- wisdom 成员详情页移除维度参数
+- wisdom-detail 成员详情页移除维度参数
+- mind-detail 成员详情页移除维度参数
+- body-detail 成员详情页移除维度参数
+- action 成员详情页移除维度参数
+- mind 成员详情页移除维度参数
+- body 成员详情页移除维度参数
+- DimensionTasks 移除维度参数自加载
+- DimensionActivities 移除维度参数自加载
+- DimensionArticles 移除维度参数自加载
+- DimensionProducts 移除维度参数自加载
+- 推荐商品接口支持空 dimensionCode 返回全量
+- 添加家庭成员数量校验 - 任务分配需≥2人/挑战需≥2参与者/互动双方不能同一人
+- createOrder 透传 couponId(会员优惠券此前未生效)
+- modifyColumnToText 跳过不存在的表,消除启动日志WARN
+- unify section headers + quick bar + task shortcuts; fix(tab-bar): center button position; fix(backend): ClassCastException in purchase field save
+- 修复DBI启动日志WARN(RENAME语法+不存在表/列的迁移)
+- 管理员登录兼容 BCrypt 密码验证 + 新管理员密码用 BCrypt
+- 家庭成员邀请改为小程序原生分享
+- 完善信息页面移除 hasFamily 门控 — 老用户编辑时始终显示表单
+- 修复我的页面主包引用分包组件导致内容不显示
+- adjust position of heart icon and update tab icons
+- growth tab 空态不刷新 — hasFamily 加入 children/records 判断
+- TabBar 分包冲突 + 自定义TabBar不显示修复
+- 缩小推荐商品卡片尺寸
+- 能量沙盘调整顺序 - 心在最上,顺时针身智富行
+- 修复邀请流程 - 传递familyRole、改用小程序分享
+- 创建家庭时自动将创建人加入为家庭成员(修复空心家庭问题)
+- 修复 UserService 中 createJoinRequest 调用
+- 修复 createJoinRequest 调用参数
+- 修复邀请流程 - 保存familyRole、修复轮询逻辑
+- 修复 RequestBodyCachingFilter 编译问题
+- FamilyMemberStrip centerMemberId watcher 加 immediate + 清理重复 .action-header 样式
+- pairwise VO 补齐 isSpouse 与 lastInteractionAt(修复成员详情页 action-sheet 关系标签和上次填写时间显示)
+- 修正 parseDate import 语法(named export)
+- 移除多余的 String 构造函数调用
+- 修复 Java 8 兼容性问题 - readAllBytes 改用 readStream
+- 将 Java 11 HttpClient 改为 RestTemplate 兼容 Java 8
+- LangGraph 管理页面使用原生 fetch 避免 axios 拦截器问题
+- 迁移192 verification_codes.type 添加默认值
+- LangGraph 管理页面使用独立 axios 实例避免 CORS 和响应格式问题
+- 处理生产日志错误(foods.report_id/score + 知识库JSON + DBI迁移112)
+- 修复测试编译与 getTemplates 断言;补充肠道菌群解析参考脚本
+- 修复 diet/index.vue 运行时错误
+- 饮食首页改造——原生导航栏+空数据弹窗+未配置共餐降级
+- 家庭成员扇形展开 - fan-wrap 改 fixed 修复成员错位+不可点击; 半径 280→220rpx
+- 修复 FamilyChallengeService.getTemplates 数组越界 Index 7 out of bounds
+- 修正身页面饮食入口路径
+- 迁移180/181 health_reports.health_report_drafts 缺列修复
+- 首页家庭挑战区块增加管理入口跳转 challenge-manage
+- 修复 FamilyControllerTest 编译错误 - 废弃接口测试改为无参断言 410
+- FamilyMemberStrip fan-wrap 改 v-if 不再遮挡五维页点击; diet :key 表达式改方法调用
+- 修复家庭FAB按钮点击失效 + 位置上移
+- 恢复添加家庭成员页保存按钮
+- 统一 SKU specs 存库为数组格式,修复规格名丢失
+- 已登录用户富页面误显'请先登录'的会话过期修复
+- 修复 HealthReport 预存编译错误 - HttpServletRequest import / reportMapper 变量名 / remark 字段缺失
+- 修复 ContentSharePoster 分享海报 String 属性收到 null 告警
+- 修复商品详情页会员身份加载与详情图片显示
+- 修正 profile-page.vue 中 Profile* 组件的 import 路径
+- 修正 profile-page.vue 移动后的相对路径 import
+- 后端身份参数改从JWT推导,不再信任客户端传入
+- 移除前端身份参数传递——前端只传memberId,不传userId/familyId/childId
+- 将 tabbar 入口页移至 pages/tabs/ 消除与分包 root 的路径冲突
+- 修复 meal.py 语法错误
+- 修复 tabbar 路径与分包 root 冲突导致的 HBuilderX 编译失败
+- 修复路由前缀重复问题
+- 修复行/身页面 hasFamily 误判导致 FamilyEmptyState 覆盖内容区
+- pages.json 修复 diet 分包错位导致的 JSON 语法错误(HBuilderX 编译失败→白板)
+- 修复pages.json饮食分包位置错误 + 饮食模块config引用改为config.js
+- 修复 FamilyEmptyState 误显示 - 28处 hasFamily 守卫改为数据优先判断
+- 修复编译错误(类型不匹配)
+- 多控制器支持 familyId 为空 + WeChat token 过期重试 + 服务/产品改进
+- 打卡请求失败时补充错误提示
+- 家庭挑战打卡每日限次 + memberId 归属校验
+- 商品海报分享未携带封面图(coverImage 未转完整 URL)
+- 移除无家庭时的创建或加入家庭弹窗(5001 仅拒绝请求)
+- 分享海报封面图按原比例绘制(contain 居中),不再拉伸变形
+- 报名弹窗点击家庭成员/添加报名人即关闭(.self 修饰符在 mp-weixin 被丢弃,改用 @click.stop)
+- 活动报名弹窗重复导致点击家庭成员关闭弹窗
+- checkout.vue methods 间缺逗号语法错误
+- 库存流水列表显示商品名称
+- 商品详情页移除会员价展示
+- 报告确认页 :key 表达式改为方法调用(微信小程序兼容)
+- 修复orderService.ship参数不匹配+添加进价字段(purchase_price)到products/product_skus/inventory_inbound_items(迁移177)+同步schema.sql
+- 服务商/家长端页面日期解析改用 parseDate(iOS 兼容)
+- 商城页面日期解析改用 parseDate(iOS 兼容)
+- 奖励/个人中心页面日期解析改用 parseDate(iOS 兼容)
+- 推广/会员页面日期解析改用 parseDate(iOS 兼容)
+- 家庭/成长/身体页面日期解析改用 parseDate(iOS 兼容)
+- 活动/任务/孩子页面日期解析改用 parseDate(iOS 兼容)
+- 测评/心智页面日期解析改用 parseDate(iOS 兼容)
+- 健康/饮食维度页日期解析改用 parseDate(iOS 兼容)
+- 组件日期解析改用 parseDate(iOS/HarmonyOS 兼容)
+- 打卡/活动详情/推广/结算页 fixed 元素移出 scroll-view(iOS 兼容)
+- 迁移174 product_skus添加min_stock_alert列+同步schema.sql(SKU库存预警)
+- 迁移173 创建库存管理4张表(inventory_transactions/counting_records/inbound_orders/inbound_items)+ 同步schema.sql
+- 安全加固——SQL日志/密钥外部化/BCrypt限流/后台防重
+- 迁移172 products添加min_stock_alert列+同步schema.sql(库存管理功能遗漏)
+- Controller gutFlora 入库补全 taxonomy+pathogen 8 列表 (对齐 Service); 确认页新增 taxonomy 分类组成 + 病原菌 + 益生菌种区块(采到啥显示啥)
+- gender枚举校验+MindFortuneController空值防御 - UserService.updateUserInfo: gender 仅接受 male/female,修复 Data truncated 错误 - FortuneServiceImpl: generatePlaceholderFortune/getFamilyFortune 添加 familyId 空值校验 - MindFortuneController: 三个端点添加 familyId 空值检查,返回友好提示
+- make LangGraph URL configurable via @Value + app.yml (IMPORTANT-3) + overview key normalization (BLOCKING-1) + Docker deployment TODO comment
+- normalize Chinese→English overview keys in ReportParseAgent (BLOCKING-1)
+- add audit logging for family_id/user_id + trailing newline
+- register report_parse router in main.py (missing include_router)
+- 心维度页面 loadHealthAlerts/loadMilestones 移除残留 familyId 存储读取(后端已 JWT 派生)
+- add raise_for_status to expose real LLM HTTP errors
+- 心维度页面 milestones/health-alerts 传入实际 familyId 替代 {} 对象
+- MindFortuneController 添加 userId 为空检查(过期JWT被设为匿名用户时抛出'用户不存在')
+- detect_format 兜底分支改为返回 inline(修复同义反复)
+- compose 显式覆盖 JAVA_CONTEXT_URL 指向宿主机 9082,修复容器内 chat load_context 回调 Java 失败
+- DatabaseInitializer.initializeDatabase() xzyj→zxyj 数据库名拼写错误
+- 问卷推理超时防护 — gunicorn timeout 60→300s + ChatOpenAI timeout=180/max_retries=1
+- 问卷生成服务接入旧入口 — src 路由重构为 router + LLM env 兼容 + healthcheck 修复
+- GraphState 补 _prompt 字段 + 测试 mock 目标修正为模块内引用
+- schema.sql 移除重复的 guide_commissions CREATE TABLE 空壳行(导致 initializeTables 正则匹配合并成畸形 SQL)
+- 迁移166 payment_orders添加group_no/period_no列(会员拆单支付)
+- 修复图片上传 URL 语法错误,清理认知测评/成长报告重复接口定义,修正注释乱码
+- 修复健康报告上传 URL 语法错误,首页宫格替换为记录互动/家庭天盘/成员管理,清理重复的 getChildOverview 定义
+- 迁移165 virtual_goods_config添加goods_price列(会员道具价格,用于拆单判断)
+- controller parameter signatures, test compilation fixes
+- 迁移163 为family_challenge添加creator_id列(原迁移158在runMigration100死代码中从未执行)
+- 修复WXSS中文类名编译错误 + 恢复getPublicConfig函数
+- resolve duplicate exports in api.js and syntax errors in report-upload.vue
+- 补全打卡系统缺失的 schema.sql 建表 + 迁移 + 小程序前端打卡功能
+- 购物车结算页传递SKU信息到下单
+- 防重复提交整改——补齐唯一约束/统一订单号/修复竞态/批量前端守卫
+- 上报健康报告页加载即崩溃 - 移除未实现的 getPublicConfig 调用
+- _roundRect arcTo missing parameter in ContentSharePoster
+- 去掉指标项上的状态文字标签,只保留颜色
+- discardReportDraft传参修复 - 对象改为直接传draftId
+- FamilyMemberStrip 编辑资料补全 nickname/gender/phone/birthday query 参数
+- 迁移155-157 创建 interaction_logs/questionnaire_snapshots/questionnaire_responses 三张缺失表
+- report-upload member selector + api.js dead code removal + comment mojibake restoration
+- extractInlineNamesFromRegion substring 越界保护
+- 补充PDF解析缺失指标 - 菌群层级表/致病菌/其它重要菌属/病原菌属
+- 商品SKU规格specs字段保存失败
+- 维度首页推荐阅读补传 dimensionCode,与知识中心一致
+- 商城首页/搜索页商品价格显示放大100倍(漏除100)
+- activity 详情/列表封面拼接 API_BASE_URL
+- call applyDisplayState for guests so displayStatus/registrationStatus are always populated
+- 邀请接口相关修复
+- 微信安全检测改用stable_token接口避免'not latest'冲突
+- 商品详情页修复 — 封面轮播、字段映射修正、按钮等大
+- CORS放行111.228.6.214; 实现/article/updated-since增量查询接口
+- 家庭地址编辑与区域匹配页面消除 $http 引用并接入真实接口
+- 地址选择器改用标准 API 封装 - 修复省市选择控件无法使用
+- 行Tab页推荐阅读修复 - coverImage补传 + actionArticles过滤修正(indexArticles而非articles)
+- 心/智/行首页推荐阅读补传 coverImage 修复封面图不显示
+- 推荐商品组件移除五维权重徽章展示
+- 新建商品维度权重默认值未初始化导致保存失败
+- 首次登录创建家庭后跳转到带底部TabBar的行首页
+- self-check 页面 :style 空对象 {} 改用字符串避免 WXML 编译错误
+- 移除 DatabaseInitializer 残留冲突标记行 - 修复生产构建失败
+- 修复 Playwright addInitScript 单参数传参 bug + 远程 E2E 测试套件
+- PaymentService 微信支付V3解密用原始API密钥而非SHA-256哈希
+- 商品详情原生分享补上 setShareInfo - 分享路径带商品ID和邀请码
+- resolve merge conflict in tap-water-pollution.html (accept upstream version)
+- 圈子页无 childId 时跳过请求, 后端 memberId 空串防御 - 修复 discover 500 与 my-circles 400
+- ActivityControllerTest 适配活动模块升级后的接口签名
+- 上传存储路径统一 upload.base-dir - 修复 transferTo 相对路径落盘失败与 /uploads URL 404
+- VirtualGoodsConfig.save() 重命名 saveConfig() 避免 saveOrUpdate 递归 StackOverflow
+- 会员接口匿名访问返回 FREE 空数据 + getMemberLevel 查询 LIMIT 1
+- 修复成员条移除后不刷新 + 可见成员列表字段缺失
+- 迁移151 growth_records 补齐学校/年级7列 - 修复 Unknown column 'school'
+- List.of 替换为 Arrays.asList 兼容 Java 8
+- 完善 PDF 解析服务 - 支持 inline 格式、Kangxi 部首归一化、指标去重、白名单过滤
+- 迁移148 payment_orders.user_coupon_id 兜底添加
+- globalData.currentChildId 替换为 uni.getStorageSync('currentChildId'),修复孩子视角切换数据失效
+- getApp().globalData.baseUrl/apiBase 替换为 config.API_BASE_URL,修复 uploadFile invalid url 与图片加载
+- 消除开发者工具告警 - getSystemInfoSync 弃用替换为 getWindowInfo, 修复 article-center articles prop 非数组类型错误
+- 修复 ArticleBookshelf relatedDimensions 数组拆分崩溃与 switchTab 非 TabBar 路由系统错误
+- FamilyRelationGraph 力导向模拟增加动能收敛检测, 布局稳定后自动停止避免永续占用主线程
+- add missing goodsCategory API to fix empty product list on shop index page
+- offerId 改为支付应用ID并按官方 camelCase JSON 串重建 signData 签名
+- 统一商城首页路径并修复 switchTab 非 TabBar 跳转
+- 维度权重保存移除 CAST(? AS JSON) — MariaDB 不兼容
+- interaction/add 修复 familyId 为空报错——后端按 userId 自动解析
+- 生成海报二维码必须登录 — 拦截 anonymous 流量反复触发 access_token 'not latest'
+- 开通会员页改用 getMembershipPlans 获取实际配置价格
+- 未登录时跳过邀请码请求与维度商品展示守卫
+- GlobalExceptionHandler, ErrorLoggingFilter, migration102 call, article_admin_status, ContentRecommendService
+- wangEditor v5 上传图片改用customInsert+限制5M+错误提示
+- 图片上传multipart大小限制+微信安全检测超过1M跳过
+- 文章详情页封面图和正文图片拼接 API_BASE_URL,修复未登录时相对路径图片加载失败
+- 新建商品时显示SKU维护入口
+- wangEditor 初始化配置提前到 created 生命周期
+- 更新VirtualPayServiceTest发货推送断言为handleVirtualPaySuccess路由
+- 修复外部提交引入的语法错误,恢复小程序构建
+- 虚拟支付Task4评审修复 sessionKey防序列化泄露/发货推送幂等/缺参ack/签名断言
+- AI/promotion/vendor/parent pages use API_BASE_URL for uploaded images
+- upload/meal/points pages use API_BASE_URL for uploaded images
+- index/product/detail pages use API_BASE_URL for uploaded images
+- activity/guide pages use API_BASE_URL for uploaded cover images
+- order pages use API_BASE_URL for uploaded order cover images
+- shop core pages use API_BASE_URL for uploaded product images
+- product/discover pages use API_BASE_URL for uploaded cover images
+- article pages use API_BASE_URL for uploaded cover images
+- base config/components use API_BASE_URL for uploaded image URLs
+- WechatService 用 StreamUtils.copyToByteArray 替代 readAllBytes,兼容 Java 8 编译
+- 富文本编辑器图片上传路径和网络图片弹窗被遮挡
+- ErrorLoggingFilter 捕获链式异常并记录500日志; DimensionWeightController 参数校验; GlobalExceptionHandler 兜底异常处理
+- 五维首页为你推荐商品区改为使用公开接口数据, 未选孩子也能显示
+- simplify payment QR instruction text
+- set gut testing price to ¥1,314
+- update payment QR instructions for WeChat browser users
+- DatabaseInitializer 清理 — 修正 modifyColumnToText 表名、移除已删表的残留迁移
+- skip OAuth2 JSAPI flow, use Native QR code directly for WeChat browser
+- show contact info in QR payment popup
+- sync ProductOrder for admin order management
+- ArticleBookshelf 书籍横向排列 — scroll-view 内包 inline-flex 容器
+- show product info in payment popup, auto-close on success
+- missing braces in JS, add backend QR code endpoint, use backend QR code instead of external API
+- add CORS origin for www.cf-club.com, fix QR code display, add diagnostic filter
+- 文章列表点击直接进入详情页,未登录也可阅读公开文章
+- 统一移除RecommendedSection的v-if条件
+- 统一五维首页推荐组件 — 顺序为活动→商品→阅读→推荐
+- getOAuth2Url 用 String 重载的 URLEncoder.encode,兼容 Java 8 编译
+- add payment endpoints to JWT exclude list
+- fix fallbackNativePay syntax error, center order form modal
+- 重绘底部tab身图标,更简洁的弯曲胳膊造型
+- ContentRecommendService 商品/活动推荐改用 dimension_weights JSON 列查询
+- add /upgrade-records route alias to MembershipController
+- promotion模板缺少</template>闭合标签
+- promotion模板多根元素 + 内联赋值
+- RecommendedSection无数据时显示空状态而非隐藏整个组件
+- 重新绘制底部tab身图标,更清晰的弯曲胳膊造型
+- DimensionProductList使用attached生命周期在uni-app中不触发
+- recommend-mixin传参字段名与后端DTO不匹配
+- family-members弹窗关闭内联表达式
+- 健康报告上传失败时 console 输出错误详情
+- 后台活动权重维度code与标准五维体系不一致导致新活动小程序端不显示
+- add missing List import in ActivityController and DB migrations for dimension_code/family_scope columns
+- circle接口空字符串解析Long报NumberFormatException
+- 富页登录按钮因重复CSS规则min-height:80vh位置偏高
+- article-detail auto-merge遗留重复方法
+- article-detail内联表达式导致data-event-opts编译错误
+- 未登录可浏览商品/活动/文章详情 + 富页面预登录内容
+- 统一活动详情页,删除 discover-detail 重复文件
+- 补充ActivityDTO缺失字段 requireRegistration/requireCheckinReview/memberPrice/feedbackDimensions
+- resolve 6 backend compilation errors
+- article-detail模板结构错误 — template作容器/多余闭合标签/tag无匹配end
+- override ejs to 3.1.10 to fix critical CVE in webpack-bundle-analyzer
+- ContentRecommendService NPE when type is null
+- replace Map.of() with HashMap for Java 8 compatibility
+- recommend-mixin.js 导入路径多一层目录
+- ContentRecommendService select() incompatibility, ProductRecommendationService bean injection conflict
+- 登录合规整改 - 跳过登录入口、静默授权、协议措辞
+- remove WeChat branding from login page per review guideline
+- promotion try无catch语法错误 + 创建缺失的member-detail分包页面
+- parameterize JSON_EXTRACT dimension_weights queries to prevent SQL injection
+- OCR finding - DimensionActivities CSS flex overflow
+- resolve OCR findings - AIService workflowId URL + EnergyService parent role filter
+- 财商打卡页内联表达式导致data-event-opts编译错误 + 修复模板编译器recyclableRender未定义
+- add sendWorkflow and getTodayTasks(Long) overload, pull remote changes
+- 推荐商品和活动价格显示到分
+- allow tracking screenshots in web/articles/ via .gitignore
+- 智首页六维认知雷达图无数据时也显示人群平均值
+- 身首页七维雷达图无数据时也显示人群平均值
+- 关系图连线映射交换 — 信任度→颜色(低红高绿),沟通度→线形
+- 关系图连线视觉映射调整 — 粗细/颜色/虚线 + 无数据默认黑色
+- payment.wxss 多余逗号导致编译错误
+- EnergyService 修复 JSONObject.getInt -> getIntValue 和 executeAward 缺少 totalAmount 参数
+- ActivityEdit/ArticleEdit full scroll, action tab no auto-select, timeout 800ms
+- edit page scrolling, action tab blank screen, SKU specs save
+- 推荐活动和推荐商品显示实际价格而非'登录查看价格'
+- ProductEdit card layout, sales page add leaky-gut/pancreatitis articles
+- remove required:true from dimensionCode prop in DimensionActivities/Products
+- el-main添加overflow-y:auto使内容区可滚动,解决长表单被截断问题
+- replace template literal fallback with computed props for WXML compat
+- add null defaults for dailyFortune and dominantElement props
+- add currentChildId guard and fix getMyCircles params
+- add iOS date parsing fallback for Java format
+- 商品编辑页el-card__body增加overflow-y:auto使表单可滚动,保存按钮可见
+- member pricing display, wisdom/body page layout, :key expr in FamilyTianpanCard, remove FamilyRelationGraph
+- add membership_levels seed data and period-specific pricing keys
+- add mind/alert/active and mind/traditional/mirror to public paths
+- verify-password 400 error — replace broad /api/auth/ public path with explicit list
+- empty purchasedIds causing NOT IN () SQL syntax error
+- 8 test failures — entity fixes + test param alignment
+- Product entity column mapping + test param fixes
+- add migrations 126-132 with ensureColumn for column alignment
+- add 9 missing tables (migrations 117-125) + fix JwtInterceptor familyId + fix test emotion childId
+- 商城升级提示文案通用化 - '开通家庭会员'改为'开通付费会员'
+- move migrations 105/106 into runMigrations() — they were in dead code migration102()
+- resolve P0-1/2/2b/3/5/6 test bugs + P0-4 DB migration for growth_records
+- migration 106 add growth_records missing columns (family_member_id/school info)
+- restore tab-wisdom icons from earliest valid version (faedcc33)
+- year_month reserved word quoting + products.min_quantity migration
+- 修复 stats-report-flow.md Mermaid 虚线连接语法错误(-:- → -.-)
+- 修复 promotion_tier 表列名映射——teamSize1st→team_size_1st
+- decode tab-wisdom PNG icons from base64 to binary
+- 梳理慢性病文章因果措辞——炎症不再作为唯一病因
+- schema.sql 补充 4 个 butler 表定义
+- key 表达式改为方法调用,修复小程序非 H5 平台编译警告
+- 修复growth-record-flow.md Mermaid语法错误
+- remove broken image refs in gut-microbiota-testing.html
+- replace {param} with :param in mermaid node text to fix syntax error in v11.12.1
+- replace bare <br> with <br/> in mermaid flow diagrams to fix syntax error in v11.12.1
+- goDiscoverCircles 跳转到 discover 首页(原路径 /pages/discover/circles 不存在)
+- add products.min_quantity migration to runMigrations()
+- remove invalid shape:box from all mermaid classDef
+- update article count from 2→1 after turmeric article removal
+- 报告日期/综合评分仅文件上传后显示,ping文件Ping重置日期评分
+- 改进ensureColumn错误处理+添加迁移104/103验证日志
+- correct activity flow diagram with proper business rules
+- 补充缺失的default-avatar.png,统一路径
+- tianpan_daily_fortune表添加8个缺失字段修复Unknown column错误
+- prioritize K8 (8-plate, 37900元), fix 20-year cost analysis, update certifications placeholder
+- DimensionProductList activeChildId为空时跳过渲染
+- 推荐阅读数据补充dimensionWeights和likes字段
+- P2/P3 article fixes
+- 快捷入口对齐action页原版样式和funcList
+- 行TabBar章鱼图+联系人导入,顺序对齐原计划
+- unify 活性氢→分子氢 terminology across sales pages and infographic
+- unify terminology - 活性氢→分子氢, 磷脂配比→天然基底油, refine descriptions
+- remove dead link to deleted turmeric_rewritten.html
+- 行TabBar登录态数据加载对齐action页(孩子/能量/任务/活动/商品/文章)
+- products表添加min_quantity列(迁移103)+ schema.sql同步
+- restore article reading timer + recordRead积分发放 + fix response code
+- recapture UKPDS 16 and DPP study reference screenshots
+- update microplastic and tap-water sales pages
+- update article content
+- update WHO PDF link to IRIS archive, restore ref-18 CAS card
+- 去掉行TabBar页的redirectTo,登录态内容内联渲染,保持底签可见
+- 文章编辑页内容过长时无法滚动到底部
+- 闭合rating.vue模板中缺失的view标签,修复编译报错
+- add 300+ missing CSS rules to diabetes.html
+- correct gut-microbiome-damage.jpg path in cancer.html and diabetes.html feat: add missing reference screenshots (turmeric marketplace, nature figures)
+- 修复 createMultiItem 中 minQuantity 产品级校验注入位置错误
+- move Hallmarks screenshot to content area, fix container nesting
+- 修复cardio-cerebro.html中ref-screenshot图片路径(/img→../img)
+- 替换cancer_ref3截图源,补全三篇文章ref-shot img标签
+- 恢复行首页redirectTo;修复CircleRanking WXML编译错误;新增plans占位页
+- 行首页登录后保持TabBar;家庭挑战任务移至身页面
+- 用evidence-inline替换cancer/diabetes/osteoporosis断链截图
+- 添加真实DOI参考文献到3篇geo-faq文章,修复导航链接路径
+- 为8篇独立文章补充footer CSS样式
+- resolve subpackage path conflict in pages.json
+- 修复肠脑轴图/页脚/参考文献/证据截图
+- fix encoding corruption from directory rename and restore UTF-8
+- Fix:
+- 修正图片引用路径并替换缺失的参考截图
+- rename pages/index to pages/home and update all references
+- 修正 cancer/cardio-cerebro 路径引用
+- 修正子目录路径引用,添加 turmeric 文章
+- remove stale RelationshipTypes route referencing deleted component
+- add throws Exception to test methods calling preHandle
+- add missing MockHttpServletRequest import
+- resolve compilation errors - Java 8 var removal + type casts
+- fix 405 POST→GET redirect, RecommendedFeed items ref, and unhandled rejections
+- PROJECT-OVERVIEW §2.3 家庭成员体系状态 🚧→✅(4/4 全部完成)
+- remove dead getRelationshipTypes API after P0-001 backend removal
+- extend postinstall-fix.js to also patch HBuilderX bundled remove-scoped.js
+- revert to @vue/cli-service v4 + patch remove-scoped.js via postinstall
+- Fix:
+- fix syntax error in parent-index.vue - loadAlerts + handleDismissAlert
+- restore @vue/cli-service v5, remove PostCSS config files
+- Fix:
+- restore @vue/cli-service to v5 to fix WeChat DevTools compile error
+- use ES module default-export for generationLevel constants
+- @keyframes 从 scoped 移到非 scoped 样式块,修复 vue-cli-plugin-uni 编译错误
+- point develop env to cfc.etotem.com.cn; extract deep selector to non-scoped style for HBuilderX compat
+- replace >>> deep selector with ::v-deep for postcss compat
+- fix hash operator precedence, use floorMod for negative-safe index
+- use setFontSize in renderLegacy for WeChat compat, add _destroyed lifecycle guard
+- 联系电话 010-86461234 → 010-58733188
+- ensure .vue resolution in webpack
+- 修复 uni-app 小程序编译兼容性问题及运行优化
+- align MemorySaver import path and pin dependency upper bounds
+- restore file encoding to UTF-8 (was corrupted by PowerShell ANSI default)
+- 添加 tab-wisdom 图标文件,修复 gitignore 顺序
+- add tab-wisdom icons (temporary - copied from tab-mind)
+- add wx:key to v-for loops in RecommendedFeed and parent-index to suppress WXML warnings
+- pages.json tabBar icons corrected - wisdom uses tab-wisdom, wealth uses tab-wealth
+- FamilyMemberCard roleBadgeColor use this.member instead of bare member
+- 运势接口Mybatis错误 - 添加@Select注解修复Invalid bound statement + 表结构对齐
+- add fallback when navigateBack has no pages in stack
+- parent-index wx:for 添加 wx:key 消除 WXML 运行时警告
+- extract_full_report_v5.py - report interpretation content no longer truncated
+- FamilyFortuneMapper.selectByFamilyAndDate 添加 @Select SQL 注解
+- 智首页渲染层FLOW_DEPTH错误 + web baseURL/401提示修复 + 页面and组件完善
+- 每日运势接口(/api/mind/fortune) 400 错误修复 - 移除无效 request body
+- isLoggedIn computed → data property to fix login state reactivity
+- FamilyRelationGraph 组件兼容性修复 - 修正小程序requestAnimationFrame错误
+- normalize Kangxi radicals in Java service
+- add CAG candidate genera for full coverage
+- move floating migrations into runMigrations(), fix brace balance
+- add 4 missing genera + fix Kangxi radical chars
+- 开发环境跳过 auto-login 避免启动时 10s 超时错误
+- 修复支付页订单金额显示为0元
+- 修复体检报告详情页小程序编译失败
+- add wx:key to v-for placeholder loop in DimensionArticles
+- SKU编辑器适配Map类型specs + enabled Boolean转1/0
+- 新增findByProductIdAll供管理端SKU列表(无enabled过滤)
+- ProductSkuDTO specs类型从List<Map>改为Map<String,String>
+- resolve login API 405 and logo 404 on /admin/ deployment
+- clean bacteria names (remove Chinese prefix) + add 3 missing genera
+- product-detail 移除 memberPrice 价格回退
+- update test to match new BindController signatures
+- resolve @RequestAttribute familyId 400 error by resolving via MembershipService
+- replace @RequestAttribute("familyId") with
+- 商品图片上传两项关键修复
+- 商品图片上传两项关键修复
+- probiotic species-level extraction (22 items), inline format timeout
+- inline format bacteria table timeout - skip truly compressed format, 朱评估报告 now completes
+- bacteria table inline parsing, pathogen tables, antibiotic dedup, harmful/other bacteria expansion
+- FamilyRelationGraph 齿轮/+号/高度自适应被误回退,重新实现
+- comprehensive extraction fixes - Kangxi radicals, inline fallback, amino acid boundary, taxonomy levels
+- 移除活动菜单项 + MembershipCenter 改用本地axios
+- 管理端API请求方法修复 — PUT/DELETE统一改用POST
+- 文件存储调用方适配 — upload→store、移除原始文件IO逻辑
+- 文件存储重构 — 可配置上传目录、MIME类型校验、delete方法
+- comprehensive bacteria table & indicator extraction fixes
+- 非管理员登录避免死循环 — teacher 直接进 /teacher-dashboard
+- AdminArticleController.create 修复ArrayList强转String — visibility/visibleTo/articleType字段可能为JSON数组
+- 修复循环依赖 + ProductOrder重复字段 + QrCodeService静态调用
+- navigateBack instead of deleted plans page
+- add ProductService.getById() to resolve pre-existing compile error
+- break circular dependency between HealthReportService and DimensionScoreServiceImpl
+- remove duplicate closing brace in CSS
+- 解决 git stash 合并冲突残留标记(body/index, gut-index, report-list)
+- user delete soft-delete + ActivityProvision entity + DAN execution service
+- class 绑定改用预计算/内联表达式,避免方法调用
+- 修复管理端多处模板标签闭合并将本地开发接口指向 127.0.0.1:9082 代理
+- 完善Canvas渲染逻辑
+- 修复小程序编译错误和完善商品下单流程
+- 添加 getWealthDetail 到 api.js(富维度详情 API)
+- 迁移40 ALTER ENUM前先UPDATE非法role值,避免Data truncated错误
+- FamilyTianpanCard 修复多余闭合括号导致编译失败 + Canvas动画改用setTimeout兼容小程序
+- SKU specs Map正确序列化为JSON + 审核中心滚动容器统一
+- 修复拖动时按比例分配算法,首维度多分配问题
+- ArticleManage分页onPageChange未接收页码参数; 增加每页条数选择器
+- 活动列表滚动容器统一用overflow:auto消除分页导致的宽度抖动
+- 修复身页面编译错误 - 商品组件导入路径和天盘卡片语法
+- 活动管理列表横向滚动 + 查询条件间距调大
+- PackageAudit getPackageList/reviewPackage函数缺失修复; 修复后端reject用params传递reason
+- ActivityReview overflow-x:auto 修复横向滚动
+- showDialog处理object规格+update移除productId避免400
+- approveGuide 中 username 字段为 null 时使用 teacher_{userId} 兜底; fix(web): ArticleAudit 接口名/参数修正 + GuideAudit 分页
+- 创建规划师admin时phone为null导致username为空
+- ProductSkuDTO 适配 specs 字段 String→Object 变更
+- sku.getSpecs() 返回非String类型时类型转换保护
+- normalizeSpecsToJson 参数类型改为 Object 适配 specs 字段变更
+- 审核中心10个页面添加横向滚动+filter-bar美化
+- 修复规划师审核列表数据显示问题
+- ProductSku create() sku_code NOT NULL 缺失自动生成默认值
+- SupplyHierarchy change-requests systemId 改为可选 + ((Number)→Long.valueOf) 解析修复
+- 修正管理端4个API路径+2个分页兼容
+- ProductAudit 兼容 records 分页格式
+- 修正7个小程序API路径错误(article/supplier/messages/upload/families)
+- 移除无对应路由的文章审核侧边栏项
+- 退出切换改用 switchBackVerify 原子接口,修正密码校验逻辑
+- 迁移guides表添加university和education_system列(修复GuideService查询报错)
+- 创建 GuideFamilyListController - /api/guide/family/list 端点
+- 修复 createFamily API 路径错误
+- body page radar chart display issue
+- entire chain: dimension data -> score validation -> canvas render -> visual display
+- SupplySettlementService/Controller ((Number)→.toString()) 修复ClassCastException
+- ProductService 添加 getById 方法,SupplierProductController 编译错误
+- SupplySystemController @RequestParam→@RequestBody 修复400错误
+- schema.sql 同步补充 79 张缺失表的 CREATE TABLE 定义
+- add dimension_weights column to products table (migration 89)
+- DatabaseInitializer 显式声明 Logger 替代 @Slf4j 注解,避免 Lombok 处理异常
+- add dimension_weights column to activities table (migration 88)
+- CommissionRecord 添加 family_id 字段 + CommissionService createCommissionRecord 集成 familyId
+- CommissionService 编译错误 - 补充 familyId 字段和 L2 调用参数
+- move familyId declaration before use
+- resolve Spring MVC ambiguous mapping conflicts from PostMapping unification
+- 代码规范修复 — @Autowired→@Resource + Result<T>泛型补全
+- 后端稳定性 — catch块日志/空值处理/PostMapping统一/管家stub
+- 金融安全修复 — payment绕过/验证码stub/积分兑换/教师端点/类型转换
+- 迁移87: articles表添加content_type/difficulty_level/dimension_ids/dimension_weights字段
+- 迁移86: product_orders表添加purchase_info字段(OrderTimeoutCancelTask)
+- 调整 pages/profile/index 在 tabBar 中的位置并移除 customTabBar 配置
+- 同步 pages/wealth/index 路径与远程一致
+- 修复 Recipes.vue el-dialog 开始标签丢失
+- missing SubscriptionBenefitLog import + column comparison in ButlerService
+- remove extra closing braces at end of DatabaseInitializer
+- 修复 pages.json tabBar 富页面注册缺失 + 维度权重前端修改
+- resolve merge conflicts in package.json, CHANGELOG.md, .last_build_commit
+- add missing closing brace for export default in Detail.vue — fixes build error
+- resolve merge conflicts in cfc-web build files
+- 二维码分享功能统一收敛 — 新增通用 QR 后端接口 + 修复三处前端 QR 生成
+- PpointService null date handling + adminList keyword filter; ProductPpointManage effectiveDate→startDate field name fix
+- resolve ambiguous mapping /api/recommend/dimension-products - remove duplicate from RecommendationController
+- SupplyManageController detail/update/delete robust id parsing
+- api.js repurchase-reminders GET→POST + click tracking
+- 添加 dify.callback-secret 配置 + 管理端多页面优化
+- break circular dependency CircleService↔CircleMatchService with @Lazy
+- 修复DatabaseInitializer编译错误
+- ProductController spec map JSON.parseArray type inference for Java 8
+- CartService 回填 skuId + wisdom 阅读统计条件优化
+- restore family member menu + auto-derive generationLevel + add birth/preference form fields
+- 退款流程5项修复 (ISSUE-007~011)
+- 拆分 v-if 条件提高可读性
+- ArticleManage table 添加 max-height 防止溢出
+- 修复前后端数据流5个关键bug
+- 待退款队列可见性 + 退款到帐中状态 + 防重复审核
+- body index simplify childId checks use || '' fallback
+- FamilyRelationGraph 修复单成员家庭显示重复的问题
+- 补充迁移79(pending_refund.order_type/order_no) + 修复TianpanDailyFortune import
+- add missing FamilyRelationGraph to mind page
+- 删除body页face多余的</view>修复模板多根元素错误
+- 修复E2E-TEST-SCENARIOS.md section12编码乱码
+- 鏇存柊 playwright 閰嶇疆 + 鏂板娴嬭瘯鏂囦欢 (consignee/health-report/teacher-dashboard/publish-dimension-articles)
+- add updateTier(Long, String, String) overload to match call in PromotionTierEvalService
+- 七维健康图无个人数据时返回默认值 65
+- 身/心维度页推荐文章添加dimensionCode过滤
+- 修复退款失败 - package_orders表缺少user_coupon_id列
+- add missing PpointService for CommissionService compilation
+- specs字段规范化为合法JSON避免MySQL JSON列报错
+- resolve getPlanDetail duplicate declaration and clean up assessment controllers
+- getTrendStats send {} to avoid axios stringify undefined
+- 用原生 button @click 替换 el-button 绕过组件事件问题
+- knowledge layout — wrap body, add status filter dropdown
+- el-link 点击事件改用 .native 修饰符
+- 注册 Element UI Link 组件使变更日志可点击
+- AdminArticleController 空字串转Long抛NumberFormatException
+- 系统状态卡片增加变更日志入口与服务器运行监控
+- convert content-bearing VARCHAR columns to TEXT to prevent Data too long errors
+- show family relation graph card even with single member
+- connect after-sales request and product order refund flows
+- restore DatabaseInitializer encoding and fix ActivityController tests
+- 修复 numsoul_config 种子数据语法错误(缺失引号和逗号)
+- improve health report scoring and add admin report list
+- add role-based permission checks to activity endpoints
+- 补齐个人信息保存缺失的 idCard/mascot 映射
+- repair playwright baseURL, add test scripts and lockfile
+- resolve merge conflict in DatabaseInitializer, add mascot to UpdateUserDTO
+- normalize time format to YYYY-MM-DD HH:mm:ss across admin pages
+- complete scroll wrapper for all 59 pages with fixed=right columns
+- revert error-throwing, keep auto-create for unidentified users
+- prevent auto-create user when openid not found and no phoneCode
+- wechatLogin use real code2Session API instead of mock openid
+- validate openid before WeChat prepay - reject phone-prefixed/mock openid (resolves PARAM_ERROR 无效的openid)
+- add missing wangEditor Toolbar component to enable rich text editing
+- add overflow:auto scroll wrapper to all 58 pages with fixed=right columns
+- admin UI improvements - action dropdown, scroll, labels, confirm dialogs
+- guard loadHealthDimensions on activeChildId + debug logs
+- add table overflow scroll to admin pages
+- CSS grid violations, teacher API null guards, progress fallback, improved changelog parser
+- add null/undefined guards in TeacherDashboard loadStats
+- replace grid with flexbox in Dashboard quick actions + today stats
+- guard null userId in ArticleService.recordRead to prevent creator_id NOT NULL error
+- redesign ContactImport - support WeChat contacts import & fix picker modal issue
+- ISSUE-007 SupplySystemService.create() validate adminId
+- fix FamilyMemberService.addMember DTO compatibility for generationLevel/peerType
+- map generationLevel/peerType to relationshipTypeKey for RelationshipType lookup, set generation/isSpouse on FamilyMember entity.
+- resolve ProductEdit.vue rebase conflict + cleanup supply entities
+- migration 36-37 — family_members generation/is_spouse columns
+- admin edit pages and CHANGELOG updates
+- add GenerationLevel enum and family member entity updates
+- PaymentService testMode mock + WeChat JSAPI payer.openid
+- resolve 5 UI bugs across CFC mini-program
+- CORS - add PrivateNetwork header + explicit allowedOrigins
+- points_log表添加family_member_id列(迁移35,修复家庭能量计算报错)
+- align supply distribution system with spec — member management, period-based settlement, 3-page frontend
+- FamilyRelationGraph 完善 + login/family-dashboard 页面更新
+- add dan_assessment_results missing columns - familyMember/EMI/Big Five/snapshot fields
+- relationship_types.capability_role 添加默认值
+- 迁移33 供应商分销体系(4新表+product_orders 3列)
+- health_reports补subject_id列 + 迁移32供商体系表(4张新表+product_orders 3列)
+- HealthEnergyConfig.vue 全角括号导致前端构建失败
+- add deliveryMethod/rejectReason/categoryId/distributionSystemId mappings - ProductEdit field alignment
+- 多页面综合修复 + 后端关系质量/能量同步 + 前端组件完善 - 后端: DatabaseInitializer/RelationshipQualityController/DimensionEnergySyncService - 前端组件: ContactImport/DimensionActivities 完善 - 页面: action/body/mind/wisdom/discover/health 各维度更新 - splash.vue 删除 - 新增 HealthEnergyConfig.vue 管理端页面 - router/Layout 同步更新
+- resolve rebase conflicts + update tests/docs
+- resolve .last_build_commit conflict
+- ProductEdit wangeditor 生产构建错误 — 改用 @wangeditor/editor-for-vue Vue组件替换programmatic API
+- product order stock check by product type (physical only)
+- resolve merge conflicts and sync build artifacts
+- create cart table migration and sync to schema.sql
+- add relationship score column migrations for family_members table
+- add require_registration, require_checkin_review, energy_penalty_unregistered migrations for activities table
+- add role_override column migration for family_members table
+- add default_role column migration for relationship_types table
+- add remaining child-specific column migrations for family_members table
+- activities表添加审核相关字段迁移(迁移25)
+- package.json 版本更新
+- add id_card column migration for family_members table
+- resolve ArticleService.java merge conflict (autoGenerateTags + submitForReview/withdraw/reDraft)
+- 活动创建后弹窗提供继续添加/返回列表/直接发布选项 + 表单必填校验
+- TabTransition 默认 true 确保首次渲染即出现,消除页面框架闪现
+- 首次进入首页时 TabTransition 不应展示(由 splash overlay 覆盖)
+- DimensionWeightPicker 拖动时按比例重新分配维持100%
+- 环境配置更新
+- action/index.vue 集成 WuxingSandbox 能量沙盘
+- index.vue 闪屏逻辑优化 + api.js 中文注释编码修复
+- DatabaseInitializer 添加 family_member_id 和 role_override 列迁移
+- E2E tests for deployed admin at cfc.iwintrue.com/admin
+- relationship_types 迁移 default_role → capability_role
+- 后端+前端全面修复 - ArticleService/EnergyService/DimensionArticles/FamilyRelationshipSection及多页面完善 - ArticleService: getAdminList 返回值修复 - EnergyService: getEnergyOverview 能量概览补全 - DimensionArticles: 修复文章组件 - FamilyRelationshipSection: 完善关系管理组件 - 多页面: action/mind/wisdom-detail/promotion 等页面更新
+- FamilyMemberVO/Service + family-members.vue 完善
+- 后端全面修复 - 实体字段、Controller参数、Service方法补齐 + DTO新增 \n- 修复字段类型不匹配(Long/Integer/String)\n- 补齐缺失的 import/方法/参数\n- 修改 @PostMapping 路由统一\n- 新增 Cart/CartItemDTO/SystemConfig 相关实体和Service\n- 重命名 ChildNutritionProfileService -> FamilyMemberNutritionProfileService\n- 修复测试用例
+- createUser — unique openid + try-catch exception handling
+- 测试编译错误修复 - ArticleService.getAdminList 参数补齐 + update 方法参数类型修正
+- 修复编译错误(重复字段 + 缺失import + 参数不匹配)
+- update deployment script and admin router/activity api
+- add auto-migration for articles audit fields in DatabaseInitializer
+- create missing HealthDimensionsSection component
+- DimensionArticles & FamilyRelationGraph show empty state
+- uncomment ALTER TABLE for article audit fields in schema.sql
+- DimensionProducts always shows section with empty state
+- resolve Bean name collision between GuideActivityService and ActivityService
+- wisdom index radar chart - loadCognitiveReport race condition
+- call loadCognitiveReport() inside loadChildren's .then callback,
+- resolve API naming conflict for activity guide endpoints and WXML :class compatibility
+- connect article-center entry from discover page + profile menu
+- 修复退出登录遮罩冲突, 添加beforeunload防护
+- correct article publish path in v8 final test
+- add article publish path endpoint + product_skus table auto-init
+- 修复退出登录确认框不显示、文章编辑页刷新弹出浏览器提示
+- fix body goMoreProducts URL - was wrongly set to type=activity instead of type=product by rebase auto-merge
+- always show more button in DimensionActivities, fix goMoreActivities URLs with type param
+- 修复Controller单元测试编译错误
+- 修复集成测试编译错误(适配生产API签名变更)
+- DailyCheckinService.updateCheckin改为Map参数,deleteCheckin增加userId参数
+- 修复NEW-01/02/03运行时API错误
+- login redirectTo + goMoreActivities/Products URLs with type filters
+- fix all tab pages - empty navigation methods, wrong paths, bad query params for goMoreActivities/goMoreProducts
+- remove DimensionProducts section from body page, fix goMoreProducts navigation
+- goShop navigates to correct product pages instead of broken action/index
+- relationship_types enabled 修复 + 清理 body/index.vue 冗余产品链接 - DatabaseInitializer: 启动时修复 enabled=NULL 的种子数据 - schema.sql: relationship_types INSERT 补上 enabled 列 - body/index.vue: 删除菌群检测产品链接区块, showTabTransition=true, 移除废弃方法 - RelationshipPicker.vue: 组件增强 - DimensionActivities.vue: 组件增强
+- small adjustment in ArticleManage.vue
+- repair broken tag in mall.vue, CSS rename and normLevel fix in cognitive-report, small adjustments to add-member and ProfileMenu
+- testMode flag skips private key loading
+- Login.vue success路径补上this.守卫
+- 修复后台登录成功后的崩溃bug (防止重复提交 + catch块防御)
+- 移除所有UTF-8 BOM - api.js + 3个shop页面
+- PaymentService添加@Lazy解决循环依赖
+- 心页快捷入口从一行改为两行布局
+- GrowthTaskManagement import path and function names
+- add resolvedAt to EmotionAlertVO in toVO() mapping in both services
+- add resolvedAt field to EmotionAlertVO
+- make crisis hotline clickable in PsychCrisisBanner via uni.makePhoneCall
+- add emotion_checkin missing columns (moodScore, stressLevel, arousalLevel, sleepHours, sleepQuality, energyLevel)
+- resolve schema migration gate, controller NPE, auth check, WeChat template message support
+- 修复编译错误 - ActivityRegistrationService toList(), ProductOrder/TrialMembership缺失字段, DanshopSyncService BOM
+- ISSUE-001 ProductService.shelve() 状态检查 & ISSUE-003 AdminController.createUser() 缺省值
+- 修复管理端侧边栏菜单滚动问题
+- 修复report-survey微信小程序finally不兼容问题
+- 修复文章发布500错误,补充detail接口及relatedDimensions类型转换
+- List.of()→Collections.emptyList() (JDK8兼容)
+- 解决ambiguous mapping冲突(List.of改Collections+删除productList/productReview重复端点)
+- 调整tabBar顺序为行心身智富(五行相生)
+- 移除 date-picker value-format 避免 400
+- Danshop迁移到cfc-backend + coupons/upgrade模板修复
+- 修复energyMapForGraph缺wisdomScore + 添加返回首页快捷按钮
+- resolve merge conflict + upgrade.vue template root element
+- add .pillar-card to scroll-reveal observer selector
+- restore and fix pre-existing test files for Java 8 compatibility
+- improve FIRST_TASK onboarding trigger to use task child ID
+- HealthDimensionScore/HealthDataSourceRecord 新表字段匹配
+- use PDDocument.load() instead of deprecated Loader class
+- 修复小程序登录后首页状态不更新 + TabBar图标缺失
+- FAQ精简为11个核心问题,修正文不对题;新增销售文案页 sales.html
+- 全站理念统一——精准健康方案→精准健康,SEM/FAQ/百科/策略同步
+- 精准健康方案→精准健康
+- 修正产品理念——健康档案/成长档案为容器,菌群/DAN测评为实际内容
+- remove danLevel field call causing compilation error and add PdfParseServiceTest (10 tests)
+- add missing memberType and danLevel fields to FamilyMemberVO
+- 修复 Profile 子组件 import 路径
+- Core function 识别诊断→科学识别 desc -3chars, 跟踪执行+5chars, 成果检验+5chars; enhance 菌群检测+精准健康; stats in about section
+- Move stats into about section; enhance 成长规划/菌群检测/精准健康 descriptions
+- Revamp about section into 企业使命/愿景/价值观; remove 40,000+ stats
+- Center QR code image
+- QR code 200px desktop, 160px mobile - correct media query placement
+- QR code to 200px; tighten role descriptions
+- Reduce QR code size to 100px (from 180px)
+- hero按钮统一蓝底黑字,消除点击困惑
+- 营养健康模块5项缺陷修复
+- 统一平台运营图标尺寸与对齐方式
+- refactor profile.vue into 6 components + remove duplicate loadRewards
+- resolve git conflict markers in router/index.js and fix Layout.vue computed syntax
+- add monthActiveDays to /api/stats/child/overview
+- unify all order ops to DanShop API
+- convert totalAmount fen→yuan before passing to payment page
+- unify DanShop order operations — cancel/confirm/pay now route to DanShop API not CFC
+- 修复首页10个实现问题(主页风险修复计划)
+- pre-login entry flow - fix page order, remove stale resetTabBar, fix goShop nav, add auto-login refresh
+- 根据登录状态显示/隐藏TabBar(未登录跳转发现页)
+- ProductOrderController 使用 @RequestAttribute 读取用户ID
+- ProductService.decreaseStock 改用原子 UPDATE 防止超卖
+- 数据库 schema 加 UNIQUE 约束 + 时间戳默认值 + 平台商品 vendor_id 置空
+- 修复登录限制和密码重置逻辑
+- 修复Task.java缩进和duration字段一致性
+- 批量操作添加用户认证和所有权检查
+- 修复SfmsDataSourceConfig配置前缀不匹配,去掉hikari层级
+- 批量修复API路由冲突和权限控制
+- 修复数据库迁移SQL语法错误和测试用例
+- 修复预存的编译错误(DTO类型不匹配,status值)
+- 修复预存的编译错误并添加Service接口规范
+- 注册teacher目录页面到pages.json
+- 修复tasks.vue和添加SchemaSyncHandler
+- 优化RewardService和pages.json路由配置
+- 修复跨Controller路由冲突(RewardWishlistController+TaskReminderController)
+- 批量修复GET→POST迁移导致的路由冲突(TeacherController+UserController)
+- 修复ParentController路由冲突(getParentWishlist路径改为wishlist/list)
+- 修复TaskTemplatePackageController路由冲突(getPackageItems路径改为item-list)
+- 统一处理参数校验异常返回
+- 补充createChild必填字段校验
+- 修正测试基类元素解析契约
+- 修复UserService.createChild空指针异常
+- 统一前后端API为POST请求(安全迁移)
+- 修复AdminController类型转换异常和数据库迁移缺失
+- tasks表child_id字段改为可空,支持parent任务
+- rewards表child_id字段允许NULL,修复模板奖励插入失败问题
+- 修复profile.vue模板格式
+- 切换孩子模式时检查孩子数量并引导添加
+- 优化手机号输入体验,11位自动触发检查
+- 修复孩子端导航返回逻辑及移除TabBar游戏入口
+- 修复RewardWishlistController API映射冲突
+- 添加admin_task_templates表teacher_id字段迁移
+- 修复TaskTemplatePackageController API映射冲突
+- 修复GuideController与GuideFamilyTaskController API路径冲突
+- 修复GuideController与BindInviteController API路径冲突
+- 修复schema.sql中ALTER TABLE重复执行错误
+- 修复数据库迁移重复执行错误
+- 修复Java 8编译兼容性问题
+- 修复小程序登录流程和用户编辑页跳转
+- 修复Controller层userId获取方式及多个API端点
+
+### 其他
+- - 生产库 id/product_id 为 INT,实体为 Long,插入超出 INT 范围的 id 报错
+- - 生产 DB 已直连 ALTER(即时生效)
+- 
+- - Product 实体已含字段,生产库缺列,商品列表分页查询报错
+- - 生产 DB 已直连 ALTER(即时生效)
+- - schema.sql 同步补列
+- 
+- - Article 实体已含字段,生产库缺列,getFeatured 精选查询报错
+- - 生产 DB 已直连 ALTER(即时生效)
+- - schema.sql 同步补列 + 解决 unlock_gates/microbiome_article 冲突
+- 
+- - 后端: AI自动分类接口 /api/growth/articles/products/ai-classify
+- - 前端: growth-main 新增推荐文章和推荐商品卡片
+- - 前端: api.js 新增 getGrowthRecommendations()
+- 
+- - 后端: GrowthRecommendationService 推荐查询 + AI分类
+- - 后端: GrowthController /api/growth/recommendations + /ai-classify
+- - 前端: growth-main 新增推荐文章+推荐商品板块
+- 
+- - gut-flora-caution-detail → pages/growth/caution-detail
+- - gut-flora-foods-detail → pages/growth/foods-detail
+- - growth-main 新增戒备/饮食推荐行动卡片(戒备有数据时显示)
+- - 更新 gut-flora-detail.vue 跳转链接
+- 
+- - profile-main: 新增购物车(角标99+封顶)与收货地址入口
+- - profile-main: 移除功能入口网格, 设置改为菜单项放退出登录上方
+- - profile-main: loadOrderCounts 修正字段映射(pending/paid/shipped/refunding)
+- - profile-main: 补充 loadCartCount 方法定义
+- - order-list: onLoad 支持 status 参数, 我的订单五宫格点击直达对应状态列表
+- Ultraworked with [Sisyphus](https://github.com/oh-my-open-code/oh-my-open-code)
+- Co-authored-by: Sisyphus <sisyphus@ohmyopencode.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- /data/cfc-uploads/ 文件,导致解析时报「文件不存在」。
+- 修复:将 langgraph-data:/data 拆分为两层挂载:
+- - /data/cfc-uploads → bind mount 宿主机路径(共享上传文件)
+- - langgraph-data:/data/chroma_db → 独立命名卷(chroma 向量数据持久化)
+- 
+- - report-confirm.vue 去除 onLoad 重复的 draftId/memberId 赋值,draftId 模式自动跳转详情页
+- - report-upload.vue 上传草稿后跳转详情页
+- - 新增健康报告编辑日志(HealthReportEditLog + Mapper + 建表迁移)
+- - 报告服务/区块组装/排序工具相关后端增强
+- 
+- - 前端: 新建 gut-flora-caution-detail.vue 页面,倒序展示 indexScore < 0 的食材
+- - 前端: gut-flora-detail.vue 新增'食材戒备'入口卡片(有戒备食材时显示)
+- - 前端: api.js 新增 getFoodCautionList()
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - BeijingNutritionService.analyzeGutFlora: 按功能分类聚合菌属
+-   (丁酸盐生产者/黏液屏障/蛋白质发酵者/SCFA/产气菌/益生菌等)
+- - 计算 Prevotella/Bacteroides 比值推断饮食模式
+- - 组合风险模型(IBD/代谢/肠易激/神经-肠轴)
+- - 益生菌补充指导
+- - POST /api/nutrition/beijing/analysis
+- 前端:
+- - gut-flora-detail.vue 新增分析卡片(功能维度评估/PB比值/饮食模式/风险/益生菌)
+- - api.js 添加 getGutFloraAnalysis
+- 
+- Ultrawwork with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 后端: SortInterceptor + SortUtil 全量支持
+- - 支持单击设主排序、Shift+Click追加、双击切换方向,最多3列组合
+- 
+- - 新增 SortUtil.applySort(wrapper) 自动注入 ORDER BY
+- - 批量 patch 110+ 个 controller/service 文件
+- 
+- 解决方案,平台承诺未经授权不向第三方提供报告内容。未勾选时点击上传
+- 卡片会弹出确认弹窗,用户同意后自动勾选并继续选文件流程。
+- Closes: 报告上传用户隐私声明需求
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 后端: AdminFoodController 解析前端 sort 数组传入 Service
+- - 前端: 列头点击排序(单击设主排序,Shift+Click追加,Ctrl+Click切换方向)
+- - 前端: 排序徽章显示当前排序链,最多支持3列组合排序
+- - 前端: 排序列高亮 + 方向图标
+- 
+- - DietRecordService: getDailySummary/getWeeklyTrend 增加 userId 参数 + resolveMemberId 反查当前用户自己的 family_members 记录
+- - SurveyController: 移除 status/history/submit 的缺少成员ID 报错
+- - SurveyServiceImpl: resolveMemberId 兜底,submit 时仍无法确定则抛业务异常返回 400
+- 
+- - 11个分类: 蔬菜58、水果42、水产品35、肉类27、干果15、豆类14、主食14、蛋类7、乳制品6、汤3、快餐3
+- - 字段: name, category, energy_kj, protein, fat, carbs, fiber, starch, cholesterol
+- - SQL: docs/superpowers/specs/food_seed_data.sql (可直接执行)
+- - 数据库已有 UNIQUE INDEX idx_name(name) 防重复
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 新增月度引导语(12个月差异化文案)
+- - 💧金色主题样式
+- 健康页(health-main)登录前:
+- - 新增五维闭环体系可视化(身/心/智/行/富环形图)
+- - 相生关系: 身→智→富→行→心→身
+- - 相克关系: 身克富·智克行·富克心·行克身·心克智
+- - 五维介绍卡片(点击跳转对应维度页)
+- 成长页(growth-main)登录前:
+- - 同构五维闭环体系(绿色主题区分)
+- - 替换原理念卡位置,内容更丰富
+- - 保留原登录后逻辑不变
+- 
+- - 品牌定位语'科学管理全家健康数据'
+- - 痛点卡: 指标正常≠健康 + 孩子反复生病文案
+- - 4宫格功能预览(报告/认知测评/心理测评/智能方案)
+- - 15题五维健康自检入口
+- - LoginGuideCard 升级版
+- 成长页(growth-main)登录前:
+- - 品牌定位语'看见改变正在发生'
+- - 理念卡: 记录不是目的,看见改变才是
+- - 脱敏案例展示(小明3个月前后对比)
+- - 4宫格功能预览(打卡/调研/里程碑/家庭挑战)
+- - LoginGuideCard 升级版
+- - 原登录后逻辑不变
+- 
+- - pages.json 注册 pages/action-detail/index 页面
+- - custom-tab-bar dimMap.action 从首页改为 /pages/action-detail/index
+- 
+- - monitoring.py: Java后端检查由GET /api/改为POST /api/admin-auth/login-by-password
+- - monitoring.py: LLM检查由ainvoke改为abatch(max_tokens=1)加速
+- - .env.production: JAVA_BASE_URL改为172.17.0.1(Docker桥接网关)
+- 
+-   (Java后端所有接口均为POST,GET返回404)
+- - .env.production: JAVA_BASE_URL由远程IP改为172.17.0.1(Docker桥接网关)
+-   (Java后端运行在同服务器宿主机,Docker容器通过桥接网络访问)
+- 
+- - parent-index.vue: 去掉自动选中children[0],默认显示自己,用户从FamilyMemberStrip选择后设置selectedChild
+- - 后端: HealthSleep/Water/Exercise/DailyCheckin/HealthDimension 五个Controller添加@RequestAttribute('currentMemberId')回退
+- - 前端: sleep/water/exercise/daily-checkin/diet 五个健康页,child角色不从storage取currentChildId
+- 
+- - 理念依据:《家的算法》书稿(测量先行→最小输入→循环→反馈→系统升级)
+- - 主线硬门禁:家庭级判据,任一成员完成五维自检解锁全家沙盘
+- - 增值关卡:下单菌群检测/DAN测评(无前置依赖,可先于主线完成)
+- - 软引导:微行动/打卡里程碑/复测趋势,推荐不锁死
+- - 管理端完整配置页:开关/顺序/奖励/条件,数据驱动
+- - 同步更新 PROJECT-OVERVIEW.md 功能表与文档索引
+- 
+- - 表格高度自适应,无固定 max-height
+- - Java后端健康检查由 /health 改为 /api/(返回401=正常需认证)
+- - 组件详情展示 detail 字段而非 code
+- 
+- - 健康页登录前新增痛点卡、功能预览、五维自测入口
+- - 成长页新增登录前内容(理念卡+示例展示+功能预览+LoginGuideCard)
+- - 所有内容来自《家的算法》书稿(book/目录)
+- - 登录后内容保持不变
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - LoginResultDTO.roles: String → List<String>
+- - UpdateUserDTO.roles: String → List<String>
+- - UserService: 移除 parseRoles/joinRoles,直接使用 List
+- - EnergyService: 简化 parent 角色检查
+- - SupplyManageController: 直接使用 List.contains()
+- - DataMigrationService: 使用 Arrays.asList()
+- - ServiceRoleApplicationServiceImpl: 保留 JSON 序列化(独立表字段)
+- 
+- 形成 '/dashboard → / → /dashboard → …' 无限循环。
+- 改为 next('/403') 直接跳 403 页面,终止循环。
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 低于 JWT HMAC-SHA 要求的 256 位。新增自动扩展逻辑:
+- - SHA-256 哈希扩展(密钥>=256位时直接使用原密钥)
+- - 字节填充回退
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 移除功能测试面板(quickTests)
+- - API端点列表高度 500→700px
+- - 日志面板高度 250→600px
+- - 状态判定改为只看LLM/ChromaDB,Java后端因内外网隔离不作为降级依据
+- - 刷新间隔从30s改为60s
+- 后端:
+- - adapter.py 新增 POST /api/v1/health/coach/generate 端点
+- - 接收 {familyId, memberIds, dimensions, goal},调用 health_coach_graph
+- - 修复 Java 后端 HealthPlanServiceImpl 调用端点 404 问题
+- 部署:
+- - 新增 deploy.sh 脚本(rsync同步 + docker-compose重启 + 健康检查)
+- 
+- - 前端 profile.vue: loadUserInfo 按14个字段计算个人信息完整度 profileProgress, 修复一直显示0/14的问题
+- - 后端: users/consignees 表新增 province/city/district/street 字段(迁移211 + schema.sql同步)
+- - UserService.updateUserInfo: 保存地区后自动创建/更新同名同手机号联系人, 共享地区数据
+- - ConsigneeService.save: 联系人姓名手机号与当前用户一致时, 反向同步地区回用户
+- 
+- - 步骤指示器 + 卡片式报告选择
+- - 需求输入区改为标准表单,非对话样式
+- - LangGraph 调用逻辑不变(aiSendMessage),仅前端 UI 改造
+- - 方案结果以普通卡片展示,任务列表支持执行人修改
+- 
+- - 后端 HealthReportService 新增 getFamilyReports(familyId) 方法
+- - report-confirm.vue 确认后跳转 health-plan-summary
+- - 重写 health-plan-summary.vue:
+-   - 选择全家已有报告(含其他家人)
+-   - AI 对话式输入需求,返回方案内容
+-   - 自动解析任务列表,支持修改执行人
+-   - 确认后批量创建任务单
+- 
+- - 后端 HealthReportService 新增 getFamilyReports(familyId) 方法
+- - report-confirm.vue 确认后跳转 health-plan-summary
+- - 重写 health-plan-summary.vue:
+-   - 选择全家已有报告(含其他家人)
+-   - AI 对话式输入需求,返回方案内容
+-   - 自动解析任务列表,支持修改执行人
+-   - 确认后批量创建任务单
+- 
+- (未知文本一律算异常),而 _cssClass/statusText 用白名单映射(未知显示正常),
+- 导致分组标题'X 项异常'把样式正常的指标计入异常数。
+- 改为与 _cssClass 一致的白名单判定(仅 high/low/abnormal/偏高/偏低/异常/
+- 缺乏/不足/注意/高风险 计异常),并补齐 _cssClass/statusText 的'异常'中文键。
+- 
+- parse/parse-preview 读取时又拼一次 uploadBaseDir,形成
+- /data/cfc-uploads/data/cfc-uploads/uploads/... 的重复路径导致文件找不到。
+- 新增 resolveUploadFilePath 兼容绝对/相对两种历史格式,两处读取统一走该方法。
+- 
+- 前端 uploadReportOnly 仍调旧路由命中一体化 uploadReport(返回详情无 draftId),
+- 导致上传成功但 res.data.draftId 为空、不跳转确认页且 toast 显示 message=success。
+- 修正 URL 为 /api/health/report/upload-only。
+- 
+- - 新增SurveyTemplate/SurveyRecord实体 + Mapper + SurveyService
+- - 新增SurveyController(小程序端status/active/submit/history)
+- - 新增AdminSurveyController(管理端save/list/delete/ai-generate)
+- - AI生成调研题目调用LangGraph,失败回退本地fallback
+- - 前端小程序:新增survey-questionnaire/survey-history页面
+- - 重构growth-main为干预中心(今日干预进度卡+持续追踪Tab+里程碑+定期调研)
+- - 前端api.js新增调研API,pages.json注册新页面
+- - Web管理端:新增SurveyTemplates.vue(CRUD+AI生成)+ survey.js API
+- - 修复getSurveyStatus命名冲突(旧report-survey重命名为getReportSurveyStatus)
+- - 同步更新schema.sql + PROJECT-OVERVIEW.md
+- 
+- - VARCHAR(50)→VARCHAR(255),源数据(菌种检出率描述)可能超过50字符
+- - 生产 DB 已直连 ALTER(即时生效)
+- - schema.sql 新增 health_gut_flora 表 DDL
+- 
+- - CouponGrantLog/DanExecution/CfValueManage/MembershipCenter/PendingRefund/ButlerAudit/ServiceRoleApplications/supply-system/Detail/HealthReportAudit: 新增resolveUserNames方法,通过searchUsers API将userId解析为用户名显示
+- 
+- - 在线测评(dimension-questionnaire.vue)扩展:cognitive/mental/relationship三套题库(各8题)+dim参数路由
+- - 方案汇总页(health-plan-summary.vue)新建:生成表单+结果展示+历史列表
+- - 后端:health_plans表+HealthPlan实体/Mapper/Service/Controller(4端点)
+- - 数据库迁移207:health_plans表
+- - 前端API:generateHealthPlan/saveHealthPlan/getHealthPlanList/getHealthPlanDetail
+- - pages.json注册health-plan-summary页面
+- - PROJECT-OVERVIEW更新
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 成长Tab: 移除重复体征记录入口,保留每日打卡等8项执行层入口
+- - 全局改名: 成长档案 → 成长记录 (15个文件: 页面文本/导航标题/注释)
+- - 导航修复: mind-detail和wealth的TabBar页跳转改用nav.goPage; child-index/child-detail goToGrowth改用switchTab
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - ArticleBookshelf 组件: 书册横滑改四列网格, 显示4篇文章
+- - index-home: 推荐阅读移到推荐商品下方, 推荐商品请求数量 2->4
+- - FamilyMemberStrip: 无 props 用法时自我加载可见家庭成员
+- - UserService: 家庭成员列表按 userId 去重(创建者双表记录)
+- 
+- - 8 个不存在的表(user_operation_log/daily_health_checkin等)不再产生噪声
+- 
+-   → 改用 tableExists() 前置检查 + RENAME TABLE(无 IF EXISTS)
+- - 修复 1 处 CHANGE COLUMN min_quantity(列已不存在时报错)
+-   → 改用 columnExists() 前置检查,不存在则跳过
+- - 新增 tableExists() + columnExists() 辅助方法
+- - 不影响业务,仅消除启动日志噪声
+- 
+- - 移除 dead code: 无意义的 empty-tip 视图
+- - 移除无用 import: generateFamilyInviteQrCode
+- - onInvite 使用 uni.share type=5(小程序原生卡片分享),不再依赖 QR 图片
+- - 分享卡片带标题+家庭名,被邀请人直接打开 invite/join 页面
+- 
+- 🛒 购物车 (pages/shop/cart/cart) 快捷入口。
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 当 store familyId 为空时显示 FamilyEmptyState(暂无数据)。
+- 编辑个人资料不应依赖是否有家庭,改为老用户 (isNewUserFlow=false) 始终显示表单。
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 移除 FamilyEnergyBar(沙盘已含能量信息)
+- - 移除 DimensionTasks/圈子模块,移入功能入口
+- - 新增 3列功能入口网格(对齐健康/成长页 grid-3col)
+- - 移除未登录态五维全景幸福矩阵
+- - 重构结构:Banner → FamilyMemberStrip → 沙盘 → 网格 → 挑战 → 推荐
+- - 清理冗余 JS 数据/方法/API调用和 CSS 样式
+- 
+- 导致 ProfileHeader/Badges/Growth/Menu 加载失败,页面仅显示内联个人信息卡片。
+- 将 4 个 Profile 组件复制到全局 components/ 目录,并更新两处 import 路径。
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+-   pages/health/index → pages/health-main/index
+-   pages/growth/index → pages/growth-main/index
+-   pages/profile/profile → pages/profile-main/profile
+- - 更新 nav.js, custom-tab-bar, pages.json 等 10 处引用
+- - main.js 添加 custom-tab-bar 显式注册(强制构建编译)
+- - pages.json 4个Tab页添加 usingComponents 引用 custom-tab-bar
+- - 修复 checkout.vue ES6 简写方法语法错误
+- 
+- - 五维 index 页移入分包: mind→mind-detail, body→body-detail, wisdom→wisdom-detail, wealth分包
+- - 新建 custom-tab-bar: 4Tab + 中间⭐按钮 + 五维半屏浮层, 规划师5Tab不变
+- - 新建 pages/health/index.vue 健康Tab页(报告/测评/打卡概览)
+- - 增强 pages/growth/index.vue 为方案执行中心(待办/功能入口)
+- - 新建 utils/nav.js 统一导航工具
+- - 替换 switchTab 引用为 nav.goPage/navigateTo
+- - 活动推荐移至成长页, 健康页新增科普文章推荐
+- - profile 显示完整菜单(showServices=true)
+- 
+- - 旧版 INSERT 未携带 type 字段,DB 列 NOT NULL 无默认值导致插入失败
+- - 使用 MODIFY COLUMN 添加 DEFAULT 'login'(向后兼容,无需改代码)
+- - 直连生产 DB ALTER 已执行(下次服务重启 DBI 迁移幂等跳过)
+- 
+-   - 迁移191: foods 添加 report_id/score 列
+-   - 直连生产 DB ALTER 已执行
+- - 修复 菌属-食材映射 JSON 解析失败:
+-   - DB 顶层为 JSON Array 但代码期望 Map,加载时包装为 {_list: [...]}
+-   - 消费端兼容两种形态
+- - 修复 迁移112 日志等级:
+-   - Duplicate column 已存在是幂等预期,log.error → log.warn
+-   - 避免误报
+- 
+- - report_parse API 对接报告类型注册表
+- - 新增 test_auto_tag 自动标注测试
+- 
+-   report_unknown_cluster/report_unknown_upload/report_parser_import 五表
+- - 新增 ReportParserController + ReportParserAdminController
+- - 新增 5 entity + 5 mapper + 3 service(ReportFingerprintService/
+-   ReportImportService/ReportParserDispatchService)
+- - schema.sql 同步 5 张新表定义
+- 
+- - addIngredient/removeIngredient/addFood 方法缺少 var self = this
+- 
+- 2. 前端:无菌群报告/无推荐食材时弹窗引导上传报告
+- 3. 后端:generateIngredientList 未配置共餐时降级为查询
+-    家庭全部成员,而非返回空列表
+- 
+- 导致 ArrayIndexOutOfBoundsException: Index 7 out of bounds for length 7
+- 
+- 改为指向正确的饮食模块首页 /pages/diet/index
+- 
+- - 修复 Unknown column 'is_living_together'(family_members, 迁移174已生效但DBI嵌套错误未触发)
+- - 修复嵌套 try/catch 结构(迁移178/180 误嵌在迁移179 catch 内)
+- - 迁移号校正:178→180, 180→181(diet 模块占用了原 178-181 编号)
+- - health_reports 新增 proxy_uploader_id / proxy_upload_note / ai_analysis
+- - health_report_drafts 新增 remark
+- 生产 DB 已直连 ALTER(无需等下次重启)
+- 
+- 
+- 
+- - product-detail.vue: 详情页按会员身份展示 - 非会员显示普通价+加入会员享会员价链接,会员显示会员价+原价划线;去掉底部栏价格
+- - 修复远端合并引入的编译错误: HealthReportController缺import、HealthReportService的reportMapper笔误、HealthReportDraft实体补remark字段
+- 
+- revert(frontend): 撤销 tabbar 4Tab 重构, 恢复 5维TabBar(行心身智富)
+- revert(frontend): 撤销分包重命名 -pkg, 恢复为 health/growth/profile
+- revert(frontend): 撤销 tabbar 入口页移至 pages/tabs/ 的改动
+- 改为 v-if="!fanOpen"(默认常驻),且背景由透明边框改为实心半透明
+- rgba(249,115,22,0.25)。该层绝对定位 72rpx 与 .fab-avatar 完全重合、
+- DOM 顺序在后且未设 pointer-events: none,常驻覆盖在 FAB 按钮上层,
+- 拦截所有点击,导致家庭成员扇形无法展开。
+- - .fab-pulse 增加 pointer-events: none,点击穿透到按钮本体
+- - FAB 位置从 bottom: 33.33% 上移至 bottom: 45%(黄金分割位下移后过于靠下)
+- Reviewed-by: Sisyphus
+- 
+- (<button class="btn-primary" @click="submit">)替换为监护人同意弹窗的
+- 注释代码时误删了按钮且未加回,导致表单无法提交。script 中 submit()/
+- doSubmit() 方法与 CSS .btn-primary 均为死代码残留。
+- 已在手机号字段后恢复保存按钮,监护人弹窗确认流程(14岁以下儿童)不受影响。
+- Reviewed-by: Sisyphus
+- 
+- 对象 Map、后端 DTO 只认对象),导致规格名记录不进去:
+- - ProductSkuEditor.normalizeSpecsToJson 改为输出数组格式,空值默认 '[]'
+- - ProductSkuDTO.from 兼容数组格式(数组→Map),旧数组数据可正常回显
+- - formatSpecsForInput/parseSpecs 数组分支正确解析 {name,value},不再显示 [object Object]
+- - CartService 兼容对象格式(旧数据兜底),修复购物车规格描述丢失
+- - ProductSkuService 空 specs 默认 '[]'
+- 同步修复预存编译错误:HealthReportController 缺 HttpServletRequest import、
+- HealthReportService reportMapper 应为 healthReportMapper、HealthReportDraft
+- 补 remark 字段(含 schema.sql + DatabaseInitializer 迁移180)。
+- Reviewed-by: Sisyphus
+- 
+- - AuthController.verify: 增加 user 存在性检查,用户被删/禁用时返回 401
+- - api.js: 新增 verifyToken() 导出函数
+- - App.vue: onLaunch 时调用 verifyStoredToken() 启动校验 token(develop 跳过)
+- - api.test.js: 新增 3 条 verifyToken 测试(成功/过期/用户不存在)
+- 后端 mvn clean compile BUILD SUCCESS
+- 前端 npm test auth API 16/16 通过
+- 
+- ContentSharePoster 的 String props(title/coverImage/summary/priceText 等)。
+- Vue 2 中 props 的 default 只在未传时生效,显式绑定 null 会触发微信类型检查
+- 告警 [Component] property received type-uncompatible value: expected <String>
+- but get null value。已在所有绑定处加 || '' 兜底。
+- Reviewed-by: Sisyphus
+- 
+-   TypeError: this.loadMembership is not a function
+- - 商品介绍/详情 mp-html 传入 domain(config.API_BASE_URL),
+-   修复富文本中相对路径图片被解析到本地 DevTools 服务器的问题
+- Reviewed-by: Sisyphus
+- 
+- 修正后路径: ../profile-pkg/components/Profile*.vue
+- 
+- 移至 pages/tabs/
+- 
+- - 修复 X-User-Id header 断言(改为断言不再发送)
+- - 新增 identity parameter hardening 4 个回归测试:
+-   request 不发 X-User-Id 头、测评 wrapper 无参且 body 为空、today-tasks 仅含 memberId
+- 
+-   改为 @RequestAttribute("userId") 获取当前用户,移除 body.userId 读取
+- - record/current 标记为已废弃(无前端调用方,familyId 参数不再被信任)
+- - FamilyController:guide-bind 的 @RequestHeader("X-User-Id") 改为 @RequestAttribute("userId");
+-   两个已废弃端点移除 X-User-Id 参数
+- - AdminController:/api/admin/families/** 及 /families/count 增加 admin 角色校验
+- - HealthReportController:parse-preview 的 familyId 由 @RequestParam 改为 @RequestAttribute
+- 
+- - 移除 pages/promotion/material.vue 本地 _request 的 X-User-Id 头
+- - 测评 wrapper(getMy/ChildAssessmentResults)改为无参发送 {}
+- - 测评页面(results/apply/purchase)停传 userId
+- - 删除 mind/index.vue 两个指向不存在端点的死调用(/api/mind/report/*)
+- - 移除 report-upload/meal-config/bind-invite 的 familyId/family_id 传参
+- - parent-index.vue getPendingWishes() 去实参(wrapper 已忽略)
+- 
+- 后,路径前缀与同名分包 root(pages/health、pages/growth、pages/profile)冲突,
+- 导致 HBuilderX 编译失败→全白板。
+- 修复方案:将 tabbar 入口页从分包目录移到 pages/tabs/ 目录,
+- 路径前缀与所有 48 个分包 root 完全无重叠,消除冲突。
+- 变更:
+- - pages/health-pkg/index.vue -> pages/tabs/health-index.vue
+- - pages/growth-pkg/index.vue -> pages/tabs/growth-index.vue
+- - pages/profile-pkg/profile.vue -> pages/tabs/profile-page.vue
+- - pages.json: 主包 tabbar 页路径 + 分包 root 保持 -pkg 后缀
+- - 10 个文件中的路径引用同步更新
+- 
+- - pages/growth → pages/growth-pkg
+- - pages/health → pages/health-pkg
+- - pages/profile → pages/profile-pkg
+- 同步更新 pages.json 分包 root、tabBar 路径及 30 个文件中的 66 处引用
+- 
+-   改为乐观加载模式(接口未返回前返回 true),避免暂无数据闪烁
+- - index-home/index.vue: loadChildren/loadFamilyMembers 增加 checked 标记设置
+- - DimensionProducts.vue: hasFamily 增加 isLoggedIn 判断,信任父组件可见性控制
+- 
+-   导致 pages.json 语法错误,HBuilderX 编译失败、小程序全部白板
+- - 将 diet 块移回 subPackages 数组内(正确缩进)
+- - cfc-frontend/AGENTS.md: 写入打包规范(HBuilderX 打包 → unpackage/,禁止 npm build 自行打包)
+- 
+-   store getter 仅兜底(store.familyId 恒空导致空态吞掉正常内容)
+- - App.vue 冷启动从接口恢复 familyId,store setFamilyId 持久化供恢复
+- - login.vue 登录/自动登录同步 familyId 到 store
+- - 修复 9 处批量修改导致的 computed 对象未闭合语法错误
+- 
+- design: 家庭FAB悬浮按钮重新设计 - 家庭图标 + 渐变光环 + 黄金分割定位
+- - 图标: 默认态显示家庭图标👨‍👩‍👧‍👦, 展开时渐变过渡为当前成员头像
+- - 效果: 暖橙渐变背景 + 双层光晕阴影 + 展开光环 + 呼吸脉冲动画
+- - 交互: 展开时弹性缩放(1.05), 头像淡入旋转过渡
+- 
+- - custom-tab-bar: 4 functional tabs + center star button + half-screen overlay
+- - utils/nav.js: unified navigation utility for auto switchTab/navigateTo
+- - health/index.vue: new health tab as closed-loop hub (测评/报告/打卡/饮食/运动)
+- - Replace all switchTab→dimension pages with nav.js (nativeTabs pattern removed)
+- - Move growth/index and profile/profile from subpackages to main package
+- - Teacher independent tabbar preserved (v-if='currentRole !== "teacher"')
+- 
+- - 5 dimension pages moved from tabbar to subpackages
+- - custom-tab-bar redesign with half-screen overlay
+- - Unified nav utility for switchTab/navigateTo routing
+- 
+- fix: 家庭FAB悬浮左缘中部 + 无家庭用户查询接口自动创建兜底
+- - 新增 UserService.ensureUserFamily 公开兜底入口
+- - UserController/FamilyUserController.getFamilyMembers 与 getVisibleMembers 在 familyId 为空时自动创建家庭
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - JwtInterceptor: 查询 familyId 失败时显式设为 null 而非空置
+- - WechatService: 新增 invalidateAccessToken() + 过期重试机制(42001/40001)
+- - UserService: 大幅重构和改进
+- - MembershipService: 新增逻辑
+- - FamilyJoinRequestService: 改进
+- - ProductController: 产品相关改进
+- - cfc-web: 构建版本同步
+- 
+- - 用户协议重写:13章覆盖付费/退款/服务商/免责/争议解决
+- - 新增服务商入驻协议
+- - 后端:user_consent_records 表 + ConsentController(4接口)
+- - 后端:user_data_permissions 表 + DataPermissionController(2接口)
+- - 后端:账号注销匿名化 + 数据导出接口
+- - 后端:DataMaskUtil 日志脱敏工具
+- - 后端:DataCleanupTask 每日2点清理定时任务
+- - 前端:添加<14岁儿童时监护人同意弹窗
+- - 前端:API 层新增 consent/data-permission 调用
+- - 迁移168/169 + schema.sql 同步
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 后端: requestJoinByCode 兼容 token/inviteCode/familyId 三种输入
+- - 后端: FamilyJoinRequestService.createJoinRequest 支持 UUID token 识别
+- - 前端: invite/join.vue 展示邀请人头像, 改为提交申请+轮询审批流程
+- - 前端: FamilyMemberStrip.vue 加 isAdmin prop、红点徽章、审批弹窗(通过/拒绝)
+- - 前端: api.js 补充 pending-requests/approve-request/reject-request/my-request API
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 导致后端解析 Long.valueOf('{}') 时抛出 NumberFormatException。
+- 改为从 currentFamilyId/userInfo.familyId 获取实际值,与同文件
+- loadCompatibilityData 等方法的现有模式保持一致。
+- 
+- - 从 extract_full_report_v5.py 提取核心逻辑(overview/疾病风险/营养/氨基酸/维生素)
+- - requirements.txt: 补充 PyPDF2 依赖
+- 
+- - 统一知识库 knowledge_base_section 表 + UnifiedKnowledgeBaseService(迁移165,DB为查询源,classpath种子兜底)
+- - HealthKnowledgeBaseController 新增 /unified/* 系列端点
+- - 控制器增加家庭ID解析与成员归属校验辅助方法
+- - JwtInterceptor/Result/api.js 同步增强
+- 
+- 超过 gunicorn 60s 超时导致 worker 被杀(WORKER TIMEOUT + SIGABRT)。
+- - gunicorn --timeout 60→300:给推理留足时间
+- - ChatOpenAI timeout=180/max_retries=1:单次推理上限 180s,失败仅重试 1 次
+- 
+- - app/main.py: 合并 questionnaire_router,旧路由/中间件/知识库同步不变
+- - src/llm/client.py: LLM_* 环境变量优先(与 .env.production 一致),兼容 OPENAI_*
+- - Dockerfile: 新增 COPY src/ src/(生产镜像此前无问卷代码)
+- - docker-compose.yml: langgraph-svc healthcheck 改用 python urllib 探 /health(镜像无 curl + 原路径 404)
+- 
+- - 支持通过模板快速创建自定义挑战
+- - 支持编辑/删除挑战
+- - 移除非兜底的自动创建模板逻辑
+- - 后端新增 creator_id 字段区分系统/用户创建
+- - 后端新增 templates/create/update/delete 接口
+- - 前端新增 challenge-manage 管理页
+- - 行首页挑战区添加管理入口
+- 
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 会员价联动展示(非会员可点击升级)
+- - 未选规格时按钮禁用提示
+- - 加购/购买时传递 skuId 和 specDesc
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 改为调用已有的 getProductsByDomain('body', 1, 4),行为等同于原 getPublicConfig 返回空时的回退路径(domain='body' 加载身体维度推荐商品)。功能语义不退化。
+- 同时移除变成 unused 的 productList import。
+- 文件: cfc-frontend/pages/health/report-upload.vue (+3/-13)
+- 验证: npm run build:mp-weixin DONE; 编译产物 getPublicConfig=0, getProductsByDomain=1
+- 
+- - Caused bottom-left rounded rect rendering failure on all canvas shapes
+- 
+- - MembershipService: 新增 refundByOrderNo(orderNo) 退单+降级管理员
+- - VirtualPayService: handleRefundNotify ORD 分支调用 membershipService.refundByOrderNo
+- Task B: iOS退款问询按官方协议接入
+- - VirtualPayController: notify() 新增 xpay_subscribe_ios_refund_query_notify 事件分发
+- - VirtualPayService: 新增 handleIosRefundQuery 按 pay_order_id 路由+判定退款
+- - VirtualPayController: iosRefundBaseResponse 字段修正为官方 IosRefundQueryResponse 协议
+- - 测试: 新增5个用例覆盖ORD退款路由+iOS问询(同意/拒绝/不存在/已退款)
+- 
+- - api.js: remove unused parseReportPreview function (33 lines)
+- - api.js: restore 86 garbled Chinese comments (UTF-8 bytes decoded as GBK then re-encoded)
+- 
+- MyBatis-Plus无TypeHandler导致updateById无法正确写入JSON列。
+- 修复: specs改为String类型,service层校验空值默认设为{}
+- 
+- dimensionCode 参数,导致后端返回所有精选文章而非按维度过滤。
+- - body/index.vue: 补传 dimensionCode: 'body'
+- - wealth/index.vue: 补传 dimensionCode: 'wealth',移除客户端
+-   relatedDimensions hack(后端已正确过滤无需前端二次筛选)
+- 
+- 导致封面加载失败。统一走 getImageUrl() 拼接 config.API_BASE_URL。
+- 
+- unauthenticated users, leaving displayStatus/displayLabel/
+- registrationStatus as null. This caused the activity detail page to
+- hide the cover, registration button, and check-in button for all
+- visitors. Now applyDisplayState() runs for everyone; guests get
+- default values ('open'/'not_registered') derived purely from activity
+- time windows.
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 添加 getImageUrl() 自动补全 API_BASE_URL 前缀
+- - 修正字段映射:商品介绍 → intro,商品详情 → description
+- - 价格/会员价上下排列,会员价字体缩小
+- - 加购物车和立即购买按钮统一字体大小
+- - 供应商编辑页新增「商品简介」intro 字段
+- 
+- 删除废弃的 pages/action 分包并修复引用
+- - parent-index.vue: /pages/action/contact-detail → /pages/action-detail/contact-detail
+- - action-section.vue: activity-detail 跳转修正为 /pages/activity/activity-detail/activity-detail
+- - action-section.vue: task-detail 标记 TODO(该页面不存在,为死代码)
+- - pages.json: 移除 pages/action 分包注册
+- 
+- - ArticleController: POST /api/articles/updated-since 支持since+status过滤
+- - ArticleService: getUpdatedSince() 按updatedAt+status查询已发布文章
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 
+- /pages/home-pages/parent-index(非 TabBar 页),导致底部 TabBar 不显示。
+- 改为 uni.switchTab() 跳到 /pages/index-home/index(行 Tab)。
+- 同样修复 submitGuideApplication 中相同的 redirectTo 错误跳转。
+- 
+- (7498行), 导致 mvn compile 报 illegal start of expression。
+- 仅删除该残留标记行, 迁移152/153 内容保持不变。
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 首页能量沙盘下方新增会员入口卡(非会员开通 / 会员≤30天续费)
+- - 活动详情页非会员显示会员价引流链接
+- - 活动列表会员价点击跳转开通
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- (list(Map,Long) / create(Activity,Long) / update(Activity,Long,String) / end(Map,Long,String))
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 且其 snake_case 列名与实体不匹配, 导致全列查询报 Unknown column 'school'。
+- schema.sql 同步为 camelCase 与实体一致。
+- 
+- Unknown column 'user_coupon_id' in 'field list':entity PaymentOrder
+- 已声明 userCouponId 但部分库建表时缺失该列。
+- 使用 ensureColumn 幂等添加。本地 MariaDB 与新 MySQL 8 远端已
+- 有此列,迁移对它们为 no-op。schema.sql 已含 user_coupon_id,
+- 无需同步。
+- 
+- - 详情行合并为单行, 卡片内边距/字号/进度条全面收紧约20%
+- - parent-index.vue: 移除无用的 childId 传参与 @updated 监听
+- 
+- - custom-tab-bar/index.vue: 富 tab 指向 wealth/index, tab 顺序对齐原生 tabBar, nativeTabPages 只含原生 tab 页
+- - login.vue / action / wisdom / index-home: 清理 stale nativeTabs 列表, 避免对非 tabBar 页面调用 switchTab 触发 routeDone 路由错误
+- - user-edit.vue: 规划师入驻提交后 redirectTo 分包页而非 switchTab
+- - utils/format.js + DimensionActivities.vue: 新增 iOS 安全 parseDate 统一日期解析
+- 
+- 家庭挑战 (d6bb7d48):
+- - 挑战列表带 familyId 参数(修复之前漏传导致返回空)
+- - 验证 targetMode/targetValue 双目标模式字段
+- - 验证 totalProgress/memberProgress 进度字段
+- - 新增 /api/health/challenge/history 历史
+- - 新增 /api/health/challenge/progress 进度上报(childId 已有活跃挑战时)
+- 活动会员价 (15a93dd3 + 89673f07):
+- - 管理端活动列表验证 memberPrice 字段
+- - 管理端活动详情验证 memberPrice
+- 文章 (ab9f4a44 + 阅读时长功能):
+- - admin/articles/list 带 auditStatus 参数过滤
+- - 文章详情返回 readTime 字段
+- - /api/articles/record-read 上报阅读时长(需 childId)
+- - /api/share/qrcode 生成小程序码(855a8df5 分享改海报)
+- - /api/admin/articles/upload/image 端点存在性(598e7601 + c697fb7b)
+- 测试结果:211 passed / 0 failed / 0 skipped(原 199 → +12 新增全通过)。
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - VirtualPayService: effectiveAppKey() 按 virtual-pay-env 选择签名密钥,paySig/query_order pay_sig 统一切换
+- - VirtualPayController: 新增 GET /notify URL 验证端点(echostr 校验);POST /notify 增加微信签名校验(sha1(token+timestamp+nonce))防伪造推送
+- 
+- - tasks/rewards/home-pages/teacher 等非 TabBar 页面改用 navigateTo,修复 switchTab 无法跳转分包页的问题
+- - user-edit 登录后角色分流、家长/孩子端任务/奖励入口同步修复
+- 
+- mysql-internet-cn-north-1-23feae22680e4dfa.rds.jdcloud.com:3306,
+- 库名 zxyj(与本地同名),账号 cfc/cfc@1314。
+- main 与 sfms 两段 datasource 同步切换(sfms 默认 enabled=false)。
+- 
+- {memberId, source: "family_member"},source 是 String,
+- Map<String, Long> 会导致 Jackson 反序列化失败。其他端点
+- (kick / editable / logs)不接收 source,保持 Map<String, Long>。
+- 
+- BadSqlGrammarException。直接赋值在两库均可用(MySQL 8 JSON 列接受
+- 字符串时自动校验,MariaDB JSON 为 LONGTEXT 别名)。
+- 
+- - /api/share/qrcode 加入必登录清单,根因解决 anonymous 反复调 cgi-bin/token 导致全实例 token 失效
+- - ShareController.getQrCode 同步加 userId<=0 兜底校验(双保险)
+- 
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - content 富文本内 /uploads/ 相对图片路径替换为完整 URL
+- - 后端 FileStorageService 存储相对路径,前端渲染时需拼接 baseURL
+- 
+- 
+- - ProductSkuEditor: 支持新建时暂存 SKU,商品创建后自动提交
+- - handleSave: 创建后更新 form.id,触发 SKU 编辑器 watch
+- 
+- - DatabaseInitializer 新增幂等迁移:target_mode (VARCHAR(20) DEFAULT 'aggregate') 与 target_value (INT DEFAULT 0)
+- - schema.sql 同步 family_challenge 表结构
+- - FamilyChallenge 实体新增 targetMode/targetValue 字段与 @TableField(exist=false) 的 totalProgress/memberProgress
+- - FamilyChallengeService 扩展 templates 数组为 8 列(添加目标列),重构 checkAndSettle() 按目标模式分支判定:
+-   - aggregate:全体 progress 合计 ≥ target_value 即达标
+-   - all_members:家庭内每个成员 progress ≥ target_value(无记录=0 判失败)
+- - 抽离 normalizeTarget() 实现旧数据向后兼容;fillProgress() 为 /list /history 填充总进度与成员进度
+- 前端:
+- - FamilyChallengeCard 重写:双模式目标展示(aggregate=总进度条 X/Y;all_members=成员进度列表+达标✓),打卡上报入口(updateChallengeProgress({challengeId, childId, delta}) → $emit('updated'))
+- - parent-index 卡片传 :childId="currentChildId" + 监听 @updated="loadFamilyInteraction"
+- - patch-node-compat.cjs:node v24 polyfill(util.isRegExp 等已被移除),构建时通过 NODE_OPTIONS="--require ./patch-node-compat.cjs" 注入
+- 
+- 
+- - 前端 ArticleEdit/ActivityEdit 的 published 不再进入 readonly
+- - 列表页 published 文章按钮由「查看」改为「编辑」
+- - 保存按钮文案与提示语按状态区分(保存修改/保存草稿)
+- 
+- 避免 mounted 阶段编辑器实例已初始化导致配置不生效
+- 
+- - articles.vue: onSearchBlur 补齐闭合花括号、移除多余 }(e327a0ef 引入)
+- 
+- - 上报间隔 30000→10000,每10秒自动记录该用户已读时长
+- - 退出文章时 pauseReadingTimer 记录当时时长(保留原逻辑)
+- 
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - WechatService: access_token 加缓存(TTL 7000s); 实现 msg_sec_check / img_sec_check
+- - MediaController: 上传图片/文本检测 (P0)
+- - AdminArticleController: 文章图片/标题/正文检测 (P1)
+- - HealthReportController: 健康报告图片上传检测 (P1)
+- - ServiceRoleApplicationController: 资质图片上传检测 (P1)
+- - 微信API异常时 fail-open 不阻塞上传; testMode 跳过检测
+- 
+- 屏蔽选择AI助手功能
+- - ArticleEdit/ProductEdit/ActivityEdit: onSuccess 内拼接后端 baseURL 生成完整图片 URL
+- 
+- - 7 report packages by age group (A1/A2/B2/B3/B4/B5/B6, C1 excluded from retail)
+- - 4-tier pricing: single 699 / dual 1280 / triple 1860 / quadruple 2390
+- - Package combination rules per user spec (A2+B4 golden combo, +B3/B5/B6 for 3+ packs)
+- - WeChat native QR payment flow with plan selection modal
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 各调用页面已绑定 @articleClick=goArticleDetail/goDetail,直达详情
+- 组件从 895 行精简至 519 行
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 改为 scroll-view 保持默认 block,内部 .bs-books-inner 用 inline-flex 横向排列
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 
+- - 五维首页(index-home/body/wisdom/mind/wealth)与 action 页统一使用 DimensionProducts
+- - 统一商品跳转 goProductDetail/goMoreProducts,移除登录跳转冗余分支
+- - 修复 DimensionProducts 空态文案依赖 isLoggedIn 的逻辑
+- 
+- - 每屏固定3本,多余横向滑动,指示器按3本一组并随滚动高亮
+- - 骨架屏同步改为3个封面占位
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- wealth: 添加DimensionActivities, 添加loadDimensionActivities, 移除v-if
+- mind: ArticleBookshelf移到DimensionProductList之后, 移除v-if
+- 统一顺序: DimensionActivities → DimensionProductList → ArticleBookshelf → RecommendedSection
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - specs/2026-07-31-compare-table-mobile-redesign.md: 饮水对比表格移动端轮播卡片设计
+- - PROJECT-OVERVIEW.md: 文档索引同步新增两条
+- 
+- - 路径已在 WebConfig JWT 白名单(/api/config/public/**),免登录访问
+- 
+- - mind/wisdom 商品推荐迁移至 DimensionProductList(支持未登录空态)
+- - body 移除商品推荐 v-if 登录守卫,组件内部处理未登录态
+- - DimensionProductList familyId 改为可选,无 familyId 时不请求接口展示引导文案
+- - wealth 页新增推荐阅读区块(未登录/已登录两区块)
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- (domain / dimension_code) 进行维度匹配,导致配置了 dimension_weights
+- 但未设置旧字段的商品/活动在推荐系统中被遗漏。
+- 改为与 ProductService/ActivityService 一致的 JSON_EXTRACT + 旧字段
+- OR 回退模式,确保权重感知查询全面覆盖。
+- 
+- /api/admin/membership/upgrade-records (AdminController) existed.
+- Added /upgrade-records as an alias to the existing /records endpoint
+- in MembershipController, which returns the current user's upgrade
+- records with pagination.
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Revert "feat: 屏蔽在线开通会员功能,改为管理员后台设置"
+- 
+- - upgrade.vue: 替换为'暂不支持在线开通'提示页
+- - ProfileMenu: 导航从index改为benefits
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- book: 草稿同步成书稿人物设定(第三章朋友老李/小艾九岁、第四章朋友老周)+ 第五章全职妈妈身份/小然/张哥年龄修正(四十出头→五十多岁)+ 第十二章'幼儿园'改'学校'(草稿+成书稿同步)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- book: 补权威引用+人物一致性修复——第2/3/6/9/10/11章新增Maslow/WHO/Korelitz/Duhigg/Kluger/Ries等引用、附录新增参考文献总表(41条学术文献)、小茜→老李/老周人物改名、三岁→九岁年龄修正、第七章→第7章格式统一、章节标记全部主题化;策划方案新增'引用与数据策略'章节
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- book: 核实补正——Todorovic氢水研究限定'肥胖成年人'语境(正文+来源块)、第四章补Lepper 1973过度理由效应实验来源(草稿+成书稿同步)
+- book: 全书论点依据核实——魏高峡去名人化4处、无据断言修改(A级硬伤+B级补来源)、'优势溢出效应'改'扬长促短'(草稿+成书稿同步)
+- 屏蔽小程序文章评论及AI问答功能
+- DatabaseInitializer 迁移141: 修正历史 dimension_weights 表 + 主表 JSON 列旧 code
+- ActivityController: 补 java.util.List 导入(遗留编译错误)
+- 
+- - DatabaseInitializer: add migrations 138-140 for tasks.dimension_code,
+-   products.family_scope, activities.family_scope (were dead code in migration102)
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- book: 合入「为什么是算法」主轴论述(第1章)并重新生成成书稿
+- - 收束金句:算法不是让你更快,是让你回家
+- - 第2章「为什么叫算法」节精简呼应,避免重复
+- - 成书稿.txt 同步重新生成(16章结构不变)
+- 
+- book: 书名定位升级为「一词三通」(宇宙因果×传统文化×AI)
+- - 竞品调研新增算法/逻辑方法类(人生算法、底层逻辑)与 AI×家庭类(2026 新兴赛道)
+- - 应对策略与结论同步更新:三块空白交汇处正是本书
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - @close/click内联赋值 → closePoster/closeQuiz/closeResult
+- - quizAnswers[qi]=... → selectQuizAnswer(qi,oi)
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- book: 第三支柱'传承'改'代际传承'(三代链条:承接-活出-传递),育儿内容定位'焦点放回自己'——孩子是镜子验证自己成长,父母是预言验证孩子未来(序章/第1/2/3/6/7章/终章/附录/策划方案同步,成书稿重拼)
+- book: 第1章'教育'石头转'成长'(成人+育儿双视角),第8/9/10/12章加无孩适配注记,终章回顾同步
+- book: 全书定位从'育儿书'转为'个人成长书'——五维是每个人的成长维度,家庭是承载处(序章定位声明/传承支柱/身智两章重构/行四象限+与父母关系/心加非育儿场景/成书稿重拼)
+- wealth/index.vue: 移除全屏登录墙,未登录显示商品推荐+登录引导,登录后显示完整内容
+- 
+- book: 生成成书稿txt(序章→第十三章→终章→附录 全16章拼接)
+- book: 全书一致性修订——补全预告链/数据来源说明,规范引号与格式
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 商品详情: 保留 discover-detail/product-detail(已含 mp-html),删除 discover/product-detail(死代码,641行)
+- 更新 15+ 个文件的引用路径
+- 清理 pages.json 移除 discover-detail 子包中的 activity-detail 注册
+- 
+- 由控制器自行决定返回公开数据还是要求登录。
+- 解决小程序审核中预登录页面被强制要求登录的问题。
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 删除 pages/mind-detail/article-detail.vue(功能不完整,无评论/阅读追踪)
+- 更新 9 个文件的引用路径
+- 移除 pages.json 中的旧注册
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Override via package.json forces 3.1.10 in the webpack-bundle-analyzer tree.
+- 
+- - 3个 article-detail.vue: rich-text → mp-html
+- - 2个 activity-detail.vue: 纯文本 → mp-html 渲染
+- - 2个 product-detail.vue: 纯文本 → mp-html 渲染
+- - family-dashboard.vue: rich-text → mp-html
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - uploadAndParseReport(): 失败/网络错误日志
+- - parseReportPreview(): 失败/网络错误日志
+- - danParsePreview(): 失败/网络错误日志
+- - langgraphRequest(): 不可达时打印URL后回退Dify
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - parent-index.vue: 移除 mounted 中强制跳转登录页的逻辑
+- - agreement.vue: 修改第2.1条「授权登录即视为注册」措辞
+- - 验证商品/活动/文章详情页无需登录可访问(后端公开路径已配置)
+- 
+- Merge: resolve conflicts on recommend system + service-role-apply APIs
+- - Resize SVG to 800x1280 to accommodate QR code section
+- - Replace text CTA button with actual QR code image
+- - Add '扫码了解更多' label above QR code
+- 
+- - Five dimension circles (身/智/富/行/心) with colors
+- - Project description, three pillars, core features
+- - CTA button and contact info
+- - Designed for web/sales/ directory
+- 
+- 2. member-detail/report-detail.vue: 新建(pages.json已注册但文件缺失)
+- 3. member-detail/service-role-apply.vue: 新建(pages.json已注册但文件缺失)
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - ArticleService.getList() / getFeatured()
+- - ProductService.getProductPage()
+- - TaskService dimension filter
+- - ActivityService dimension filter
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 2. package.json: 升级vue-cli-plugin-uni到2.0.2-5010420260703001匹配7月版模板编译器
+- 3. postinstall-fix.js: 新增templateLoader.js补丁,移除未定义的recyclableRender/components导出
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 方式 1(文件上传)虚线蓝框 + 蓝色基调 + 蓝色实心图标方块
+- - 方式 2(拍照上传)橙色边框 + 渐变橙色实心按钮(更醒目,即时操作)
+- - 顶部「方式 1/2」标签让用户明确二选一
+- - 保持 pickFile/takePhoto/selectedFile/photoPath/parsedInfo 逻辑不变
+- - 数据库初始化器同步上一轮的 report_summary 迁移(迁移 106)
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - ContentSharePoster.vue: reusable canvas poster with cover/title/QR code/CTA
+- - product-detail, activity-detail, article-detail: add poster button + component
+- - api.js: add getShareQrCode(page, scene) helper
+- - DimensionWeightPicker: fix proportional redistribution to keep sum=100%
+- 
+- 
+- - action/index.vue: revert auto-select-first-child, only load when saved childId matches
+- - action/index.vue: tab-transition fallback timeout 5000ms -> 800ms
+- - ArticleEdit: add maxFileSize 5MB to upload config
+- - DatabaseInitializer: gate test data behind app.init-test-data flag
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - action/index.vue: first-load fallback to first child when no saved currentChildId
+- - action/index.vue: reduce tab-transition fallback timeout 5s -> 2s
+- - ProductSkuEditor.vue: formatSpecsForInput helper to prevent {} save bug
+- - DatabaseInitializer + schema.sql: sync migration
+- 
+- EnergyWeekCard, FunTaskItem, HealthCheckinCard, HealthDimensionsSection,
+- HealthLikeButton, HealthTips, MediaRecorder, OctopusGraph, PearlDiagram,
+- PointsProgressRing, RepurchaseReminder, SkeletonBlock, TaskItem/TaskReminder,
+- UserQuickEntry, WisdomTips; assessment/body/membership/parent/register-child/
+- wisdom_temp 等老旧页面; teacherGuard router
+- 
+- - index-home/index.vue: 游客视图商品卡片显示价格而非固定'登录查看'
+- 
+- 避免 swiper autoplay 触发每次 re-render 时重复调用方法
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 改为 default: '' 避免警告
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 新增 dailyFortuneSafe / dominantElementSafe computed 属性做 fallback
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- loadDiscoverCircles: 增加 currentChildId 空值保护
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 新增 _parseDate 方法提前归一化为 iOS 兼容格式
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - Add member_fee_family_yearly/monthly/quarterly sys_config keys
+- - Fix getPricingPlans() hardcoded zero prices for FAMILY monthly/quarterly
+- - feat(report): report summary management (backend/frontend/admin)
+- 
+- - exercise-mood-cognition.html: 4 screenshots (BMJ meta, hippocampus, gut diversity, gut RCT)
+- - puerarin.html: 3 screenshots (hangover, diabetes, brain protection)
+- - gut-microbiota-testing.html: 2 screenshots (HMP, dysbiosis->immune disease)
+- Screenshots in web/img/ref-screenshots/ are gitignored (kept locally only)
+- 
+- 更新: LangGraph 前端集成/推广体系/富维度/辈分/文章系统/家庭会员/营养健康 状态
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 家庭成员选择条添加能量值显示
+- - 添加圈子卡片(我的圈子+发现推荐)
+- - 删除章鱼图和导入联系人弹窗
+- - 成员卡片显示能量分数
+- 
+- - 3.4 Logic consistency checklist: avoid "started last week" vs "3-month data" timeline contradiction
+- - 2.2.1 Five-dimension generation/restriction: row-birth-heart, knowledge-restrict-row, wealth-birth-row, row-restrict-body
+- - 2.2.2 Knowledge point requirement: each article must include at least 1 psychology/neuroscience mechanism
+- - 12 Shuangpei Qiangji knowledge base index: A2/B4 reports + public account history articles reference
+- 
+- 
+- 
+- 
+- - createOrder() 新增 PREMIUM 定价分支,年起 ¥13,168/月起 ¥1,314
+- - applyMemberDiscount() 新增 PREMIUM 折扣支持,从 sys_config member_discount_premium 读取
+- 
+- 
+- - 身(土): 🌏 globe with meridian and continent arcs
+- - 智(金): ⚡ lightning bolt shape
+- - 富(水): 💧 water drop with pointed top
+- - 行(木): 🌿 leaf with stem and veins
+- - 心(火): 🔥 flame with inner/outer layers
+- All 81x81px, gray (#999) normal + element color active.
+- 
+- and element-themed colors:
+- - 身(土): circle, orange #FF8C42
+- - 智(金): diamond, indigo #6366F1
+- - 富(水): water drop, amber #F59E0B
+- - 行(木): arrow up, emerald #10B981
+- - 心(火): heart, pink #FF6B9D
+- Normal = gray #999, Active = element color
+- 
+- commit faedcc33 (temporary copies from tab-mind). The icons were
+- corrupted in commit ac6e7040 where they were saved as base64-encoded
+- text instead of binary PNG data.
+- 
+- Merge remote-tracking branch 'origin/cfclub'
+- - SeedsController: minor fix
+- - activity-detail pages: mobile experience upgrade
+- - web articles: SEO & content updates across 25+ pages
+- - CHANGELOG updates
+- 
+- - Add migration 105: ensure products.min_quantity column exists
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- sync: 小红书内容更新 + opencode运维脚本
+- base64-encoded text instead of binary PNG data, causing the
+- wisdom (智) tab icon to not display in WeChat mini-program.
+- - tab-wisdom.png: 10989 bytes base64 text -> 8239 bytes binary PNG
+- - tab-wisdom-active.png: 8351 bytes base64 text -> 6261 bytes binary PNG
+- Note: active icon decoded from truncated base64 (missing ~0.75 bytes
+- of final scanline, imperceptible at 50x50)
+- 
+- - 新增 SeedsController.java: POST /api/admin/seeds/init-test-data,需 admin 权限
+- - 幂等执行: INSERT IGNORE 防止重复插入
+- - 已回滚 DatabaseInitializer.java 中的临时种子数据代码
+- 
+- 等过强表述,改为炎症是多因素中的重要一环。
+- 已修改:
+- - diabetes.html: meta + 尾部 CTA
+- - alzheimer.html: meta + og + hero + 因 section + 核心结论
+- - cardio-cerebro.html: meta + hero + 病 section + 因 section 标题 + 损伤链描述
+- - osteoporosis.html: 因 section intro + 核心证据框 + 主动健康五步
+- - metabolic-syndrome.html: meta + og + hero
+- - cancer.html: 新增免疫三大系统 section(之前未提交)
+- - gut-microbiota-testing.html: 菌株速查表迁移至 probiotics-science(之前未提交)
+- 
+- 已有 DatabaseInitializer 迁移创建但 schema.sql 缺失,初始化时不会自动建表
+- 
+- (item.id || item.circleId),改为 getCircleKey(item) 方法调用。
+- pages/action/index.vue (2处) + pages/discover/circles.vue (2处)
+- 同时更新 AGENTS.md / README.md 加入规范
+- 
+- 会触发'Syntax error in text'解析错误。
+- 修复两处:
+- - A6 节点:'⚙️ PDF解析引擎 (Stage 1)' → 包裹双引号
+- - A9 节点:'📱 创建成长档案 (Stage 2) /create-from-upload' → 包裹双引号
+- 包裹引号后Mermaid将整个字符串视为字面文本,跳过括号解析。
+- 
+- rename: 三高六高 → 从三高到六高 (title, meta, h1, cross-references)
+- - Backend: HealthIndicator add collectionDate field + migration 103
+- - Backend: parsePreview supports image upload (type=image)
+- - Backend: createReport indicator dedup by (category|indicatorName)
+- - Backend: ParsedReportPayload.Indicator add collectionDate
+- 
+- - pages/discover/circles.vue: 新页面,含我的圈子+推荐列表、CircleCard/CircleDetail 组件复用、加入/退出功能
+- - action/index.vue: goDiscoverCircles 改为 navigateTo 跳转到新页面
+- 
+- web: add probiotics/prebiotics science articles + update sales index
+- - New: probiotics-science.html (益生菌科学解读)
+- - Update: prebiotics-guide.html — removed science sections, kept buying
+-   content, added cross-links to new science article
+- - Update: probiotics-guide.html — removed definition section, kept buying
+-   content, renumbered sections, added cross-links to new science article
+- - Update: sales/index.html — nutrition section now 3 articles:
+-   turmeric + prebiotics-science + probiotics-science
+- - Fix: osteoporosis.html — updated citation ref-3 from Physiological
+-   Reviews 2023 to Bone Research 2026 (Wang et al.), corrected image path
+- 
+- - cfc-frontend/pages/action/index.vue: 移除 OctopusGraph 组件, 新增「我的圈子+发现推荐」区块
+- - docs: 设计文档 + 实现计划
+- 
+- never actually executed inside runMigrations(), so the production DB
+- was missing the column. This adds the call at the end of runMigrations()
+- so it runs on next startup.
+- 
+- - sales/*: QR code ?share=xxx referral system on index + 3 sales pages
+- - articles/gut-microbiota-testing.html + metabolic-syndrome.html: new articles
+- - articles/*: various health article updates (alzheimer, cancer, cardio, diabetes, etc.)
+- - img/products/: 4 Enagic product images; img/cert/: certification images
+- 
+- - cfc-frontend: badge.vue 增加家庭勋章排行展示
+- - cfc-frontend: rewards.vue 增加勋章墙导航入口
+- 
+- - 节点形状按身份区分 (圆角矩形/圆形/菱形)
+- - 点自己跳转维护页 (原为添加成员)
+- - 触摸自身显示⚙提示
+- - child-index: 新增'自己出题'快速入口
+- 
+- 后端 Java 实现:
+- - BacteriaFoodMapping: 菌属-食材映射表 KB,启动时加载 22 个核心菌属
+- - BeijingNutritionService: 推荐引擎,支持知识库和数据库两种模式
+- - BeijingNutritionController: 5 个 REST 端点 (save/recommend/recommend-custom/kb-query/kb-list/kb-info)
+- - BeijingNutritionDTO: 请求/响应 DTO
+- 文档与知识库:
+- - 报告指标知识库: 从 14 类扩展至 28 类(GMHI/菌群表型/抗炎/免疫/糖脂代谢等)
+- - 菌属-食材映射表: 22 个核心菌属的促进/抑制食材清单 + 科学引用
+- - 北京报告采集框架: PDF 指纹识别 + 提取流水线架构设计
+- - FMT 前后对比分析文档: 移植前后菌群变化与营养建议
+- 
+- - 添加迁移完成后验证查询,通过information_schema确认列是否存在
+- - 若列缺失会在启动日志中打出error,替代原来静默忽略
+- 
+- fortune_level_text、fortune_description、mood_score、mood_emoji、
+- mood_text、weekly_tip列,对齐FamilyFortune实体。
+- 修复MindFortuneController.getFamilyFortune()调用selectByFamilyAndDate
+- 时报Unknown column 'fortune_level_text'错误。
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - Add unified auth helper (helpers/auth.js) supporting all 8 roles
+- - Add utils.js with API assertion utilities and fixtures.js test data factory
+- - Add db.js globalSetup for automatic database reset before test runs
+- - Update playwright.config.js: globalSetup, increased timeout, retries, screenshots/trace on failure, mobile viewport project
+- - Restructure tests into roles/ directory:
+-   - roles/parent/: family-management, wish-management, assessment-order, energy-dashboard, points (5 files)
+-   - roles/child/: login, daily-checkin, mini-games (3 files)
+-   - roles/teacher/: login, family-binding (2 files)
+-   - roles/admin/: login, article/workflow, vendor/management (3 files)
+- - Add design spec and implementation plan documents
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+-   matches SPEC color mapping: mind=#FF6B9D, wisdom=#6366F1
+- - ArticleService.publishByUser: compute dimensionWeights JSON
+-   (equal distribution, e.g. 3 dims → {"body":34,"mind":33,"wisdom":33})
+-   enables dimension-aware query (COALESCE(JSON_EXTRACT)) for user posts
+- - article-detail.vue: parseDimensions reads real weights from
+-   article.dimensionWeights JSON, falls back to equal distribution
+-   Also fixed mind/wisdom color mapping in dimMap to match SPEC
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - article-detail.vue: call recordArticleRead(id,durationSeconds) on 阅读完成 click
+-   → backend creates completed Task, awards points, calls EnergyService.awardEnergy
+-   → shows earned toast / already-completed / below-threshold feedback
+- - article-center/index.vue: fix res.code === 0 → 200 (backend Result.success = code 200)
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - FamilyUserController, InteractionLogController
+- - RelationshipQuestionnaireController, FamilyMembersController
+- - RelationshipQualityController, AuthController
+- - DanAssessmentExecutionController (含 @GetMapping→@PostMapping 修复)
+- - AdminSettlementController: 修复Result导入路径+@PostMapping+删除重复SettlementStats
+- - pom.xml: 删除重复的PDFBox依赖
+- 
+- - Nav, Section, Grid-2, Card, Stat-Row systems
+- - Evidence-box, Ev-tag, Quote-block, List-styled
+- - Table, Step-flow, CTA, Button, Citation, Auth-badge
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- clean: remove deprecated turmeric_rewritten.html placeholder
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - enagic-turmeric.html: 新增Enagic UKON Sigma产品科普文章
+- - tap-water-pollution.html: 恢复未提交修改
+- - turmeric.html: 恢复未提交修改
+- 
+-   - 销售文章(3篇): sales/tap-water/microplastic
+-   - 慢性病系列(6篇): cancer/cardio-cerebro/diabetes/osteoporosis/alzheimer/uric-acid
+-   - 肠道与免疫(4篇): gut-microbiome-immune + 3篇FAQ
+-   - 饮水安全(2篇): tap-water-pollution/plastic-health
+-   - 营养与抗炎(3篇): turmeric/enagic-turmeric/turmeric_rewritten
+- - 快速跳转导航条 + 各分类颜色编码卡片
+- - AGENTS.md更新目录结构,加入index.html
+- 
+- - cancer_ref_bicarb.png: 新增Cancer Res 2009截图(Robey),标注碳酸氢钠提高肿瘤pH/抑制自发转移/减少转移灶
+- - cancer_ref_molcancer.png: 新增Mol Cancer 2016截图(Faes),标注碳酸氢钠单药抑制54.4%/联合雷帕霉素98.3%
+- - cancer.html: 酸性微环境模块后插入两组证据框,链接临床转化意义声明
+- 
+- - 新增酸性肿瘤微环境模块: Warburg效应→pH6.5-6.8→免疫抑制/侵袭/耐药
+- - 连接还原水: 碱性电解水缓冲瘤内pH的辅助预防逻辑
+- - 姜黄素补充: NF-κB抑制机制+生物利用度限制+增效方案
+- - Step 3新增第⑦项: 酸碱平衡调控(还原水)
+- - 文章叙事链重构: 免疫监视失败→酸性土壤→炎症供能→肠漏源头→抗炎闭环
+- 
+- - 证据框引用更新: Sung 2020→Bray 2024, doi更新, 新增2050预测数据
+- - 免疫三大功能: 从简单列表升级为三栏卡片(免疫防御/自稳/监视), 每栏含机制+异常+癌症关联
+- - 新增三点核心结论(免疫监视失败=癌症)
+- - ref-5引用信息补全: 被引42,510次, 1/5患癌/1/9男1/12女数据
+- 
+- 自来水文章截图替换+标注:4张源论文页面截图(ES&T/JEMA/Ecotox/IntJEnvironHealth)加红色标注框和中文翻译; Enagic pH档位更新为7档精准方案(2.5消毒~11.5去农残); 外出就餐新增消毒水建议; 修正ref-9引用期刊名
+- 截图标注+翻译:7张心脑血管引用截图加红色标注框和中文翻译; 修复Frontiers引用作者名和DOI
+- - cancer.html: 4处证据块添加img.ref-shot引用截图
+- - diabetes.html: 4处证据块添加img.ref-shot引用截图
+- - osteoporosis.html: 3处证据块添加img.ref-shot引用截图
+- 
+-   dimension-based color gradients, magazine spread overlay on tap
+- - Integrated into article-center/index.vue via getFeaturedArticles API
+- - Follows uni.scss design tokens, Vue 2 compatible (no optional chaining,
+-   flexbox layout)
+- - goExplore() navigation stub to /pages/article-center/article-explore
+- 
+- - 768px 以下侧边栏折叠,汉堡按钮控制展开/收起
+- - 侧边栏以 fixed overlay 方式滑入/滑出,配合遮罩层
+- - 路由切换自动关闭移动端侧边栏
+- - window.resize 监听自动适配桌面/移动端
+- Login.vue:
+- - 480px 以下表单卡片全屏展示
+- 全局 CSS:
+- - 移动端 padding 缩小,表格字号调小
+- - PROJECT-OVERVIEW v1.4 -> v1.6 冲突解决(取远程版本)
+- - 废弃设计文档同步移至 backup/
+- 
+- - Phase 3/4 状态修正:文章系统已上线,成长档案已完成
+- - 文章发布审核工作流、维度知识库、菌群报告 -> ✅ 已实施
+- - 家庭关系图修复 -> ✅ 已修复
+- - 公众号内容发布Dify工作流 -> 🔄 已废弃
+- - 确定性PPT设计 -> 移至 backup/
+- - 之前声明为已废弃但未物理移动的10个文件 -> 同步移至 backup/
+- 
+- 优化DAN测评流程
+- - diabetes.html: 4个 ref-shot → evidence-inline引用块
+- - osteoporosis.html: 3个 ref-shot → evidence-inline引用块+CSS
+- - footer.js: 增加子目录路径自适应,logo和链接自动添加../前缀
+- 
+- 新增规范
+- schema.sql: 补充 product_skus 建表语句(含 min_quantity 列)
+- DatabaseInitializer: runMigration101() 定义(添加 min_quantity 列)
+- ProductOrderService.createMultiItem(): SKU 级别最小购买数量校验
+- 
+- - geo-faq-2-attention: 7条引用(血清素/肠脑轴/ADHD菌群/人工色素等)
+- - geo-faq-3-immunity: 5条引用(益生菌/维生素D/儿童感冒次数等)
+- - sales: 添加科普文章交叉链接
+- - 所有nav链接修复为正确的相对路径(../index.html)
+- 
+- 导致.site-footer无样式渲染。补充完整footer CSS适配各文章配色:
+- - 使用 var(--bg-dark, #1a1a3a) 确保 footer 背景自动适配已定义--bg-dark的文章
+- - 使用 var(--accent, #27ae60) 保持 hover/logo-tag 色与文章主题一致
+- - 全文覆盖:.site-footer, .footer-inner, .footer-brand, .footer-links,
+-   .footer-col, .footer-contact, .footer-bottom, .footer-logo-img, .footer-legal
+- 受影响文件:uric-acid, plastic-health, diabetes, cancer, cardio-cerebro,
+- tap-water-pollution, turmeric, osteoporosis
+- geo-faq三个文章已链接主站../css/style.css,无需内嵌footer样式。
+- 
+-   - pages/index-home/index.vue (main package TabBar home page)
+-   - pages/home-pages/ (subpackage for parent-index, child-index, member-home-detail)
+- - Update all navigation URLs to use correct paths
+- - Fix /pages/home-index/index -> /pages/index-home/index across 19 files
+- 
+- - 页脚样式:补充完整的 .site-footer CSS 样式(配色适配文章暗色调)
+- - 参考文献:11篇全部添加 DOI 超链接(CANTOS/Lancet/NEJM/Nature/Cell/Science/PNAS/JAMA)
+- - 证据截图:新增3处 evidence-inline 截图证明(小胶质细胞双面角色/CANTOS抗炎证据/富氢水神经保护)
+- - 修正参考文献作者信息(TREM2: Guerreiro 2013 NEJM, Lecanemab: van Dyck 2023 NEJM, DAM: Keren-Shaul 2017 Cell 等)
+- 
+- corrupting Chinese characters in 230+ files, causing Unterminated string errors.
+- - Restore all files from e8fd4d05~1 (pre-corruption) via git checkout
+- - Re-apply directory rename (pages/index -> pages/home)
+- - Re-apply path replacements using Python with explicit UTF-8 encoding
+- - Fix tab icon references (tab-home -> tab-action) in custom-tab-bar
+- - Fix historical encoding issue in pages/games/1a2b.vue (pre-existing garbled text)
+- - Clean up duplicate pages/home/index/ directory created by git checkout
+- 
+- - alzheimer.html: alzheimer_ref1.png → gut-microbiome-damage.jpg (替换不存在的截图)
+- 
+-   调用 health_butler_graph,支持知识库检索+个性化建议+任务生成
+- - cfc-frontend: 新增 aiSendHealthButlerMessage() (api.js)
+-   输入 childId/familyId,传给 LangGraph /health/butler 端点
+- - cfc-frontend: mode='butler' 完整支持 chat.vue
+-   isButler computed / 导航标题 / 欢迎语+3个快速问题 / 🏥头像 / sendMessage分支
+- - cfc-frontend: 身体页功能列表新增「🏥 健康管家」入口
+-   导航到 /pages/ai/chat?mode=butler&fromPage=pages/body/index
+- 
+- - 新建 health_butler_graph.py (322行): Java KB集成的健康管家图
+-   (load_knowledge → search_knowledge → llm_answer → save_memory)
+-   查询 Java 健康知识库(bacteria/indicator/food)注入 LLM 上下文
+- - 修复 health_coach_graph.py: HEALTH_BUTLER_PROMPT → HEALTH_COACH_PROMPT
+- - 修复 chat.vue: aiSendHealthButlerMessage → aiSendHealthCoachMessage
+- - 修复 AIFloatingAvatar.vue: 从身/智/心页面自动传递 mode=health
+-   确保健康维度页面进入 AI 聊天时使用健康教练模式
+- - 同步 PROJECT-OVERVIEW.md 远程更新(Phase 4/健康7维)
+- 
+- - Update pages.json: TabBar pagePath, main pages array, and subPackages root
+- - Fix custom-tab-bar page paths and icon filenames (tab-home -> tab-action)
+- - Update all Vue file navigation URLs from /pages/index/... to /pages/home/...
+- 
+- - Tasks 1-4, 6-10: ✅ 全部完成 (标记 [x] + evidence)
+- - Task 5: ⚠️ 基础完成(缺专用 health_butler_graph.py)
+- - Tasks 11-13: ⏳ Phase 4 计划级未实施
+- - Scope/Success criteria 同步更新
+- 
+-   to subpackages (pages/index, pages/login, pages/share, pages/profile)
+- - index/index.vue: remove static import of ParentIndex/ChildIndex, redirect
+-   authenticated users via redirectTo instead of rendering as sub-components
+- - AGENTS.md: document subpackage structure (45 subpackages)
+- - api.js: add console.log for /api/auth requests for debugging
+- - family/add-member.vue: minor fix
+- 
+- langgraph调整,.env 文件我没上传
+- - 新增 turmeric.html (姜黄/黄原糖健康科普)
+- 
+- 代码修复
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 修正tap-water-pollution.html图片引用:.png→.jpg,配合已压缩的截图文件
+- 优化tap-water-pollution.html:压缩截图为高质量JPG并修正引用路径;保留Enagic SVG
+- - 修正HTML图片引用:.png/.svg → .jpg(农药残留/DBPs/氯消毒机制/EDCs/抗生素ARGs/肠道菌群)
+- - 保留Enagic还原水对比图为SVG矢量图
+- 
+- web/sales: 新建销售目录,移动sales.html,新增微塑料和自来水污染销售页
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - v1.3 → v1.4, 状态行更新
+- - §3.1: 主动健康六阶 🚧→✅(P0-P2-1完成); 营养缺陷修复 🟡→✅
+- - §3.2: DAN测评结果展示 🟡→✅
+- - §4.1: 公众号内容发布(Dify) ❌取消(LangGraph取代)
+- - §5.1: 维度知识库 🟡待实施→✅已实施
+- - §8: 维度页面缺口 P1+2✅, 营养健康✅
+- - §10: 6个spec/plan状态同步更新
+- - §11: 删除重复行
+- 
+- 新增规范
+- 新增规范
+- language as the energy sandbox (wuxing-sandbox) dots:
+-   行🌿 身🌏 智⚡ 心🔥 富💧
+- 
+-   the energy sandbox (wuxing-sandbox) visual language:
+-   行(wood/leaf) 身(earth/mountain) 智(metal/diamond) 心(fire/flame) 富(water/drop)
+- - Use dimension colors from the sandbox palette for active state,
+-   gray for inactive state
+- - Remove old tab-home icons (replaced by tab-action)
+- - Update pages.json to reference new tab-action filenames
+- 
+-   redirect converting POST to GET
+- - RecommendedFeed.vue: template 'items'→'displayItems' (undefined
+-   computed ref)
+- - parent-index.vue: add .catch() to getFamilyRanking/getChallengeList
+-   to prevent unhandled Promise rejections
+- 
+- 新增规范
+- type list (family/friend/partner/colleague/other), matching backend removal of
+- /relationship-types endpoint and relationship_types table.
+- 
+- v4 alone had remove-scoped.js crash on empty selector (spaces access).
+- - Keep @vue/cli-service ~4.5.0, postcss 7.0.39 pinned
+- - Add postinstall-fix.js to patch remove-scoped.js selector.first guard
+- - Add node-sass as devDependency (needed by uni-app sass-loader)
+- - Restore .postcssrc.js, postcss.config.js, vue.config.js
+- - Document build constraints in AGENTS.md
+- 
+- 导致 webpack-uni-mp-loader/script.js 编译失败。
+- - 正确闭合 loadAlerts 的 .then() 链
+- - 将 dismissAlert 调用抽出为独立的 handleDismissAlert(alertId) 方法
+- 
+- added postcss:^8.4.49 as a direct dependency, causing remove-scoped.js
+- (Cannot read properties of undefined (reading 'spaces')) crash.
+- - @vue/cli-service ^4.5.19 -> ^5.0.9
+- - copy-webpack-plugin ^5.1.2 -> ^14.0.0
+- - Remove .postcssrc.js, postcss.config.js, vue.config.js
+- - Remove postcss from dependencies (v5 brings its own)
+- - Remove postcss/postcss-selector-parser from overrides
+- 
+- - 删除 RelationshipPicker.vue: 已被 GenerationPicker.vue 替代
+- 
+- - @vue/cli-plugin-babel: ~4.5.0 → ^5.0.9
+- - copy-webpack-plugin: ^5.1.2 → ^14.0.0
+- - @babel/core/preset-env: ^7.16.0 → ^7.29.7
+- - Remove override @vue/babel-plugin-resolve-type@1.0.0 (does not exist on npm)
+- Root cause: downgrade to @vue/cli-service v4 in 6a4d0496 triggered
+- remove-scoped.js crash in WeChat DevTools build pipeline.
+- 
+- - 创建 WealthSubScores.vue 组件展示富维度三子维度详情(家长/孩子角色感礁)
+- - 更新 wealth/index.vue: 导入两个新组件 + data添加bodyWealthStatus/Message字段 + API加载逻辑
+- - 修复 DatabaseInitializer.java: runMigration100方法缺少闭合括号导致编译失败
+- TASK-P0-002 前端实施完成,后端EnergyService子维度计算已由先前提交完成
+- 
+- 优化自来水污染科普文章:新增农药残留和氯消毒副产物章节,突出Enagic还原水机方案
+- - 新增Section: 农药残留(46种农药频繁检出,拟除虫菊酯首次在自来水中确认)
+- - 新增Section: 氯消毒副产物DBPs(Liu et al. Nature Sustainability 2022 膀胱癌关联)
+- - 新增Section: Enagic还原水机(ISO 13485认证、五种功能水、科学依据与临床证据)
+- - 新增Sticky TOC导航、数据表格、引用卡片网格、对比表格
+- - 更新参考文献至25条(新增农药/DBPs/Enagic相关引用)
+- - 添加截图占位区域(用户替换为实际截图)
+- 
+- content(D2-D3): 智维度专注力俊辰案例 + 富维度记账破洞 + 知识库索引
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- web: 更新knowledge.html和sitemap.xml适配articles/目录结构
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- web/articles: 移动疾病科普六篇到articles/子目录
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- web/articles: 移动geo-faq三篇及尿酸文章到articles/子目录
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- web/articles/tap-water-pollution.html: 自来水中的隐形威胁
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - B类4项+ C类4项重新分Phase(Phase 2-4)
+- - 新增 comprehensive implementation plan (13 tasks across 3 phases)
+- - 阶段总览更新:Phase 2=商业模式&AI落地, Phase 3=五维增强, Phase 4=平台扩展
+- 
+- 1、用户预约测评后,小程序端可以看到规划师
+- 1、用户预约测评后,小程序端可以看到规划师
+- web/knowledge.html: swap side panel directions per request
+- 1、优化管理端前端的分页异常问题 2、用户预约测评后,管理端分配规划师
+- web/knowledge.html: >> in header, side panel for hidden articles, fix layout
+- - 状态行更新: P0/P1-1/P1-2/P2-1 全部 ✅ 完成
+- - 矩阵新增状态列
+- 
+- - 新增 HealthScoreService 积分计算引擎
+- - 新增 HealthLevelService 等级判定+种子数据自动插入
+- - 新增 HealthTimelineService 时间线事件生成(里程碑/升级/首次)
+- - 新增 HealthScoreController+HealthTimelineController
+- - 数据库迁移 105/106 (health_level+health_timeline_event)
+- - 前端 HealthBadge + HealthTimeline 组件
+- - 前端 store/health-score.js + api.js 端点集成
+- - profile.vue 展示等级称号+进度条+时间线
+- 
+- - 重写 osteoporosis.html(骨质疏松):慢性炎症+肠-骨轴+RANKL/OPG机制
+- - 增强 cancer.html:症压缩证据盒+免疫三大功能+肠-癌轴
+- - 更新 knowledge.html:将 alzheimer.html 接入成长百科(身维度)
+- 文章核心框架:症压缩 → 慢性炎症统一病因 → 抗炎干预(菌群+富氢水)
+- 
+- 启动报错修复
+- - 保存路径:uploads/json-results/{timestamp}_result.json
+- - 每次调用 POST /api/health/report/parse-preview 时自动保存
+- - 使用 Jackson ObjectMapper 格式化输出 JSON
+- - 日志中记录保存的文件路径和关键信息摘要
+- - 不影响主要流程,保存失败仅记录警告
+- 
+- - 数据库: schema.sql + DatabaseInitializer migration 104 (health_alerts表)
+- - 前端: HealthAlertBanner横幅组件 + store/health-alert.js + parent-index集成
+- - 6条预警规则: 睡眠下降/无运动/饮水少/运动过强/7天无打卡/今日未打卡
+- - 去重机制: 同一规则24h内不重复生成
+- - 严重程度排序: high > medium > low,最多展示2条
+- 
+- - 数据库: schema.sql + DatabaseInitializer migration 103
+- - 前端: FeedbackToast, MilestoneCelebration, DailySummary 组件
+- - 预设文案引擎: 12 场景触发 + 里程碑判定
+- - Vuex 反馈状态模块 + parent-index 集成
+- - 微行动完成后自动触发即时反馈
+- 
+- web/knowledge.html: Fix title padding (margin-top), add disease articles, wealth marker right->65%
+- web: Fix 浠艾福 typo(爱→艾), fix knowledge.html title padding, shift markers up 10%, max-3 articles with >> reveal
+- - PROJECT-OVERVIEW.md v1.1→v1.2: 新增 Phase 5 阶段、3.1 身 条目、十 文档索引、十一 主动健康改进章节
+- - AGENTS.md: 新增变更追踪规则 — superpowers/ 下文件增删改必须同步 PROJECT-OVERVIEW.md
+- 
+- web: Fix footer typo 浐色福→浠艾福, remove 成长百科 column; Fix knowledge.html title obscured by fixed header
+- web/diabetes.html: Fix missing shared footer placeholder
+- web: 全站统一 footer 为共享组件 js/footer.js,移除各页面自定义 footer CSS
+- - 人体五部位对应五维: 肠→身, 脑→智, 心→心, 手→富, 脚→行
+- - Desktop: 人体图四周浮动标注卡片,连接圆点指向对应身体部位
+- - Mobile: 顶部5标签切换(身·智·富·行·心),点击显示文章列表
+- - 替换所有'亿图腾(北京)科技有限公司'→'浠艾福主动健康研究院'
+- 
+- - 新增100vh单页布局(overflow:hidden),无滚动
+- - 单人剪影+群组剪影作为装饰性页面背景(低透明度)
+- - Desktop: 5维卡片水平排列,各维度文章链接直接可见
+- - Mobile: 顶部5标签切换(身·智·富·行·心),点击显示对应文章
+- - 所有文章数据及标签切换逻辑由内联JS驱动
+- 
+- - web/css/style.css: 新增知识页面全套响应式样式(k-hero/k-dim-section/k-article-grid)
+- - 全站添加 Microsoft Clarity 用户行为分析脚本(FAQ 3 篇 + sales.html + knowledge.html)
+- - 导航与 footer 链接统一指向 knowledge.html
+- - index.html 知识区新增" 进入成长百科 →\按钮
+- 
+- - 小红书发布/内容方法论-六阶模型.md: 主动健康六阶模型 × 五维映射方法论
+- - 小红书发布/发布日历.md: 30天日均内容矩阵 (身→智→富→行→心 五天循环)
+- - 小红书内容/: 4篇正式稿+指南+速查卡
+- - 小红书发布计划.md / 发布数据复盘清单.md
+- 
+- - 自然暖色调抽象家庭插画:屋顶/成长树/太阳/彩虹弧/家庭剪影
+- - 右侧留白用于文字叠加
+- - .hero-bg 更新为引用真实图片而非 SVG
+- 
+- - 包含:屋顶/成长树/太阳/彩虹弧/家庭五人剪影/心形/草地祥云
+- - 暖色调大地色系(棕#C4956A / 浅绿#8DB48E / 淡黄#F5D89A / 蓝#A8D4E6)
+- - .hero-bg 加 SVG 背景图 + 左侧渐变遮罩确保文字可读性
+- 
+-   Phase 1 completion (5 items), Phase 2 launch (4 items), 6 tech debt items,
+-   4-sprint timeline with dependencies and risk analysis
+- - Updated PROJECT-OVERVIEW.md: 12 completed features corrected from
+-   🚧/🟡 to ✅ based on code verification (profile redesign, action pages,
+-   pre-login experience, emotion check-in, article center, flora report,
+-   membership frontend, family graph, member detail sections, mind dual-tab,
+-   parent homepage, homepage overhaul)
+- 
+- uric-acid.html: rename title to 高尿酸的先天性与后天性
+- index.html: 主动健康概念卡片改为五维语言——被动健康是五维内部消耗(前半生用健康换财富,后半生用财富换健康),主动健康是五维持续增长
+- index.html: 主动健康概念专章改为双栏对比——被动消耗财富 vs 主动创造财富
+- - 右栏:主动健康(🌱)→ 提前规避→创造财富→健康即最大资产增值
+- - 保留五维闭环流程图于底部
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- index.html: 新增主动健康概念专章 + 家庭成长闭环按主动健康思路重写
+- - 家庭成长闭环4步重写:提前识别→风险管控→主动干预→效果评估
+- 
+- index.html: 将积分奖励激励替换为有序支出、规划传承
+- index.html: 全站整合「主动健康」理念
+- - About 描述首位加入:主动健康为核心
+- - 五维能量 section subtitle 增加:主动健康 · 五大能量维度
+- - 五维能量 section desc 首句加入:主动健康理念贯穿五维——不等病来,主动管理
+- - JSON-LD FAQ「浠艾福是什么平台」答案首句加入主动健康理念
+- - JSON-LD FAQ「什么是五维能量体系」重构为以主动健康为核心的定义
+- 
+- 网站去亿图腾化:全面替换为浠艾福主动健康学院,更新备案号为京ICP备14061870号-5
+- - 页脚版权信息、About版块、JSON-LD组织名称 均更新
+- - 移除 keywords 中亿图腾
+- - 4个HTML文件全部更新:index.html, geo-faq-1-allergy.html, geo-faq-2-attention.html, geo-faq-3-immunity.html
+- 
+- index.html: 成长百科新增微塑料与健康、尿酸高的成因与调节两篇文章链接
+- uric-acid.html: 添加8处内联文献证据截图(带高亮注释+中文翻译),移除参考文献列表截图显示
+- - 概述、转运体、肠道菌群、SCFA、益生菌、EAW、富氢水、运动8个关键段落各添加1处带红色虚线高亮框的截图证据
+- - 每处证据盒包含:高亮内容原文 + 中文翻译 + DOI链接
+- - 12个参考文献卡片中移除截图直接显示,仅保留权威性标签+翻译+链接
+- - 更新图4为新生成的痛风发病机理图(diagram_4_en.png)
+- - 新增图1-3英文版机制图(diagram_1/2/3_en.png)
+- - 删除临时文件 .tmp_snapshot_ref3.txt
+- 
+- - 降级 @vue/compiler-sfc 到 2.7.16 确保 HBuilderX 兼容
+- - 添加 postcss-import、postcss-url、autoprefixer 配置
+- - 添加 fix-hbuilderx-scoped.js 和 fix-postcss.sh 自动化修复脚本
+- - 回退 Babel 和 Vue CLI 版本到兼容的 4.x 系列
+- - 优化小程序样式 scoped 问题修复工具
+- - 修复组件编译警告和问题:
+-   * ActionArticleRecommend.vue
+-   * HealthDimensionsSection.vue
+-   * RecommendedFeed.vue
+-   * mind-section.vue
+-   * health 相关页面
+-   * payment.vue (移除 scoped)
+-   * child-index.vue
+-   * index.vue
+- - 优化 Python LangGraph 记忆和检索逻辑
+- 
+- - Downgrade 2 features to ⚠️ (e-commerce shop_ tables missing, promotion frontend missing)
+- - Mark langgraph-requirements-summary.md as ⚠️ file missing
+- - Version bump v1.0 → v1.1
+- 
+- - AI Sidecar: 🟡->🚧 (AiGateway+5% done, sidecar dir ready)
+- - Generation model: 🟡->🚧 (GenerationLevel.java introduced)
+- - Wealth dimension: 🟡->🚧 (EnergyService v2.1 done)
+- - First login: 🟡->🚧 (login.vue modified)
+- - Flora report: 🟡->🚧 (gut-flora-detail.vue modified)
+- - Article center: 🟡->🚧 (4 pages: index/detail/edit/my-posts)
+- - Family membership: 🟡->🚧 (MemberSubscriptionService done)
+- - Section 10 spec/plan index: 8 entries synced accordingly
+- 
+- - AI Sidecar: 🟡→🚧 (AiGateway+5% done, sidecar dir ready)
+- - Generation model: 🟡→🚧 (GenerationLevel.java introduced)
+- - Wealth dimension: 🟡→🚧 (EnergyService v2.1 done)
+- - First login: 🟡→🚧 (login.vue modified)
+- - Flora report: 🟡→🚧 (gut-flora-detail.vue modified)
+- - Article center: 🟡→🚧 (4 pages: index/detail/edit/my-posts)
+- - Family membership: 🟡→🚧 (MemberSubscriptionService done)
+- - Section 10 spec/plan index: 8 entries synced accordingly
+- 
+-   使静态图标 PNG 能被正确追踪
+- - Add tab-wisdom.png / tab-wisdom-active.png (placeholder from tab-mind)
+-   Fix TabBar compile error: 'tab-wisdom.png' not found
+- 
+- web(plastic-health): replace 亿图腾→浠艾福, add Clarity, fix two-col mobile responsive
+- - 移除 ProfileStats(行动/财富数据,归属富页面)
+- - ProfileMenu.vue 新增 showServices prop,我的页面隐藏"服务"板块(会员/订单/售后等归富页面)
+- - 保留:ProfileHeader / ProfileGrowth / ProfileBadges / 个人+设置菜单
+- 
+- - application.yml: 新增 python.* 配置项
+- - RecommendationController: 5% 流量走 Python,异常自动 fallback
+- 
+- - models/: 请求/响应 Pydantic 模型
+- - rag/: ChromaDB + Embedding + 混合检索 (BM25+向量)
+- - tools/: JavaClient HTTP 封装 + product_tools (3 个 @tool)
+- - graphs/recommend_graph.py: RecommendAgent (LLM + Tool Calling)
+- - api/recommend.py: POST /api/v1/recommend 端点
+- - main.py: 注册路由 + startup/shutdown 钩子
+- 
+- - FastAPI app skeleton with /health endpoint
+- - Dockerfile, .env.example, .gitignore
+- - Fix root .gitignore *.py exclusion for cfc-langgraph/
+- 
+-   uni-app 编译器能正确生成 wx:key="id"
+- - placeholder 文章占位卡片的 :key="'ph-'+i" 已改为 :key="i"
+- 
+-   instead of first occurrence on page 1 summary; 566 chars (was 300)
+- - 肠道年龄评估: now captures full gut age (page 12) + flora assessment
+-   (pages 13-14, 菌群平衡/菌群多样性); 1938 chars (was 500)
+- - Removed hard-coded [:500] and [:300] truncation limits
+- - Proper end-marker detection using 菌群构成层级/菌群详细构成
+- 
+- web(plastic-health): optimize screenshot sizes for faster loading
+- web(plastic-health): add ref-22 WWF weekly 5g intake citation
+- 修复前端分页问题
+- web(plastic-health): add screenshot links to all 21 citation cards, fix ref-7/ref-12 metadata
+- - Fix ref-7 journal name: Nutrients -> Antioxidants
+- - Fix ref-12 DOI: 108319 -> 108353
+- - Retake ref-21 without cookie popup
+- - Add translation overlays: ref-13 (Chinese), ref-19 (English)
+- 
+- 修复小程序运行不起来问题
+- 分配规划师
+- 分配规划师
+- 缺少 SQL 绑定,既无 XML 映射文件也无 @Select 注解。
+- 
+-   修复 TypeError: Cannot read properties of undefined (reading 'length')
+-   及由此引发的 WeChat FLOW_DEPTH 渲染层错误
+- - cfc-web/.env.production: VUE_APP_BASE_API= → /admin,
+-   修复 env 缺失导致 baseURL 显示 ? 的问题
+- - JwtInterceptor.java: 两处 401 写入前添加
+-   response.setContentType(application/json; charset=utf-8),
+-   修复后端拒绝返回时前端 axios 无法解析 message 导致提示显示 ?
+- - 配套补: FamilyMemberCard/Strip 组件、action/body/mind/parent-index 页面逻辑完善
+- 
+- web(plastic-health): add authoritative descriptions to all 21 references
+- - ref 2/4/5/7/9/10/11/12/13/14/15/20/21: journal + publisher + SCI tier
+- - ref 3: news media context
+- - ref 19: institutional + professor affiliation
+- 
+- web(plastic-health): enrich references with journal names and add container guide
+-   ref-11: Antioxidants, ref-12: Environment International, ref-13: Nature Medicine
+- - Add ref-20 (ANSES glass cap paint) and ref-21 (Heliyon container comparison)
+- - Replace tip cards container section with safety ranking guide
+- - Re-take NEJM screenshot without cookie popup
+- 
+- 填写预约报告表单
+- web(plastic-health): remove boiling water option from protect section
+- - Renumbered 方案三(电解还原水机)→ 方案二
+- - Keep 方案一 as 更换饮水容器 (tip grid)
+- 
+- web(plastic-health): add antibiotics/pesticides/hormones row and correct boiling limitation
+-   removal across all 4 water solutions
+- - Updated tap water conclusion: acknowledge boiling cannot
+-   remove chemical contaminants (antibiotics, pesticides,
+-   contraceptive drugs)
+- - Updated office tips: recommend activated carbon filter
+-   before boiling as supplement
+- 
+- web(plastic-health): consolidate 4 water solutions into one comparison table
+- a single 5-column table covering 8 dimensions: microplastics,
+- minerals, BPA/plasticizers, secondary contamination, antioxidant
+- benefits, obesity/anxiety risk, cost, and overall rating.
+- - 桶装水/瓶装水 | 自来水(烧开后) | RO反渗透纯水机 | 电解还原水机
+- - Color-coded cells for quick visual comparison
+- - Two conclusion boxes: tap water as budget choice, electrolyzed
+-   reduced water as optimal upgrade
+- 
+- web(plastic-health): add 3 factual logic points - obesity/anxiety from barreled water, tap vs RO comparison, electrolyzed reduced water as optimal
+-    triggering metabolic disorders and gut-brain axis anxiety
+- 2. Tap vs RO comparison table: WHO warns against long-term
+-    demineralized water; boiled tap water retains minerals
+- 3. Electrolyzed reduced water as optimal solution: multi-stage
+-    filtration + antioxidant hydrogen water + retained minerals
+- 4. New references [14]-[19] for all three additions
+- 
+- web(plastic-health): add 4 evidence screenshots with Chinese annotations for office water risk factors
+- - ref-hot-water-antimony.png: 70°C高温锑/BPA释放 对应风险②高温加热
+- - ref-heat-sunlight.png: UV/高温加速降解 对应风险③存放暴晒
+- - ref-ohio-state.png: 瓶装水塑料为自来水2-3倍 对应风险④密封垫磨损
+- Each English-page screenshot includes injected Chinese translation annotations.
+- 
+- 填写预约报告表单
+- - 使用紫粉渐变背景匹配心维度色系
+- - 保留报告列表功能,统一色调
+- 
+- - 10个内容章节:概述→定义→办公室水源→进入路径→5大危害→研究里程碑→对比表→防护方案
+- - 每条结论均标注引用文献链接
+- - 嵌入5张研究来源截图(ScienceDaily/WHO/NEJM/PNAS/科普中国)
+- - 响应式设计,匹配官网设计系统
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - Apply normalization at both init (buildIndexes) and lookup time
+- - Remove duplicate Kangxi radical entries from JSON (now handled by code)
+- - Belt-and-suspenders: data + code both normalize
+- 
+-   to 菌属功能库 (genera 88 -> 92)
+- - Add U+2ED4 Kangxi radical variants of 幽门螺杆菌 and 沙门氏菌
+-   for matching extracted report data
+- - Verified on 556168709-mi.pdf: match rate 98% (176/179)
+-   - Genus: 52/53 (Prevotellamassilia now added)
+-   - Species: 43/45 (CAG unclassified only)
+-   - Disease risks: 10/10 (100%)
+-   - Other indicators: 71/71 (100%)
+- 
+- 直接跳过自动登录,避免后端不可达时触发 WeChat SDK
+- SystemError timeout。
+- 
+- 改为按分原样传参 amount,与全局金额格式化约定保持一致。
+- 
+- - 修复空状态条件引用不存在的 indicatorGroups,改为 indicators.length
+- 
+- to wx:key. Changed to :key="i" which compiles to wx:key="*this",
+- eliminating the WXML runtime warning.
+- 
+- 填写预约报告表单
+- 填写预约报告表单
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - AIChatController [TASK]标记解析集成
+- - FamilyContextService任务上下文注入
+- - chat.vue任务卡片渲染+报告解读模式
+- - 阅读卡片改为今日能量文并重新设计(深色渐变/辉光)
+- - 体检/菌群报告详情页AI解读FAB入口
+- - 富页面模式切换+profile返回入口
+- 
+- - Update showKnowledge() to query v3 KB first (偏高影响/偏低影响/调整建议)
+- - Fall back to old queryKnowledgeBase('disease', ...) when v3 returns nothing
+- - Follows same pattern as gut-flora-detail.vue and gut-flora-species-detail.vue
+- All 4 gut-flora report pages now use KB v3 with fallback.
+- 
+- - .gitignore: add .env.production
+- - git rm --cached .env.production (keep on disk)
+- Environment-specific configs should not be tracked in git.
+- 
+-   (auth.js URLs start with /api/, so baseURL=api caused axios to emit
+-    api/api/... → browser resolves to /admin/api/api/..., backend returns 405)
+- - Login.vue: <img src="/logo.png"> → src="logo.png" (relative,
+-   resolves correctly under /admin/ subpath)
+- - public/logo.png: added (copied from web/logo.png)
+- - .gitignore: add !cfc-web/public/logo.png exception
+- 
+- - Added 3 missing genera: Coprobacter, Paraprevotella, Parasutterella
+- - Verified: 50/55 genera match KB directly, 41/43 species match via genus backoff
+- 
+- - extract_full_report_v5.py: normalize_output() - 字段统一/冗余删除/菌属名称清洗
+- - 字段拆分清单.md: personal data vs knowledge base 边界定义
+- - 设计规格: docs/superpowers/specs/2026-07-19-knowledge-base-v3-data-refactor.md
+- - 验证输出: 547982403.json, 朱评估报告.json 新格式确认
+- 
+- parameter - it's resolved internally via MembershipService.
+- Add @MockBean MembershipService and update call sites.
+- 
+- no interceptor sets familyId as a request attribute → Spring 400 error.
+- @RequestAttribute("userId") + membershipService.getUserFamilyId(userId)
+- Affected controllers:
+- - MindFortuneController (getTodayFortune, refreshFortune, exportFortuneReport)
+- - PackagePaymentController (createOrder)
+- - MarketController (purchasePackage, getMyPlans)
+- - BindController (acceptBind, getBoundGuides, unbind)
+- 
+- - Add recommendedProducts/loadingProducts data states
+- - Implement loadRecommendProducts method with REPORT_DOMAIN_MAP
+- - Add goToProduct and formatPriceWithSymbol utility methods
+- - Insert horizontal scrollable purchase card section below type selector
+- - Add scoped styles for purchase recommendation section
+- 
+- Merge remote-tracking branch 'origin/cfclub' for upstream changes
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 导致生产环境 405 Method Not Allowed 错误。
+- 修复范围:
+- • 用户: updateUser/deleteUser — 方法+URL 修正
+- • 家庭: updateFamily/deleteFamily — 方法+URL 修正
+- • 孩子: updateChild/deleteChild — 方法+URL 修正
+- • 任务模板: updateTaskTemplate/deleteTaskTemplate — 方法+URL 修正
+- • 奖励模板: updateRewardTemplate/deleteRewardTemplate — 方法+URL 修正
+- • 系统配置: deleteSysConfig — 方法修正
+- • 教师任务模板: deleteTeacherTaskTemplate — 方法+URL 修正
+- • 心愿: setWishPrice/rejectWish/approveWishExchange/markWishFulfilled — 方法修正
+- • 心愿: deleteWish — 方法+URL 修正 (/api/wishes/{id}→/cancel)
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- • AssessmentReportController: upload() → store()
+- • DanReportUploadService: upload() → store()
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- • FileStorageService: 增加 delete() 方法用于删除已上传文件
+- • WebConfig: addResourceHandler 使用 upload.base-dir 替代 System.getProperty
+- • application.yml: 添加 upload.base-dir 和 upload.allowed-types 配置
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - Fix regex patterns for abundance, normal range, population level
+- - Add inline fallback for missing disease risks, amino acids, barrier/scfa/nt
+- - Fix overview extraction for gut age, health score details
+- 
+- - DanReportParseService.parseB5Report(): 新增compassImage参数 + 第7步图像分析
+- - 新增常量: B5_QUAD_ANGLES/FACTORS/SUB_DIMS + B5_CENTER坐标
+- - 新增方法: extractB5CompassImage(PDDocument) — PDFBox提取PNG→BufferedImage
+- - 新增方法: measureFillAtAngle() — 沿角度射线逐像素扫描填充半径
+- - 新增方法: extractB5CompassScores() — 动态校准因子 + 19子维度分数映射
+- - parseText(): 新增两参数重载(public) + 三参数版本(private)
+- - 图像提取失败不影响文本数据(log.warn静默降级)
+- 算法: 从r=150扫描跳过中心色块, 25px间隙容忍跨越环线,
+-       每象限角度范围等分→子维度射线±2°偏移→平均fill×校准因子→1-5分
+- 测试: 37 tests run, 0 failures
+- 
+- - HealthKnowledgeBaseService: listAll/save/updateById/removeById
+- - HealthKnowledgeBaseController: /list /add /update /delete
+- - cfc-web/views/admin/health-knowledge.vue: 列表+筛选+新增/编辑/删除/导入
+- - router: 注册 /health-knowledge,Layout 侧边栏 知识中心 下新增菜单
+- 
+- Wave 3: 迁移DAN报告解析 B5(adolescent) Python→Java — 全部完成
+- Wave 1: A1(认知/cognition) + B3(学习/learning) — 6维认知 + 执行功能/学习动机/策略
+- Wave 2: B2(行为/behavior) + B6(职业/career) + C1(校园/campus)
+-   — 自我概念/行为/家庭环境 + Holland兴趣/多元智能/价值观 + 复用A1+A2+B4逻辑
+- Wave 3: B5(青春期/adolescent)
+-   — 情绪调节2维/学业压力5维/人际关系4维/社交5维/睡眠/运动/网络 (文本部分)
+- DanReportParseService 现已覆盖全部8种DAN报告类型解析:
+-   A1(cognition) A2(mind) A2(heart) B2(behavior) B3(learning) B4(wisdom) B5(adolescent) B6(career) C1(campus)
+- 辅助工具方法:
+-   extractTotalScoreAndPercentile, extractScoreWithLabel, extractScoreAfterLabel,
+-   extractRegion, extractNamedScore, getBehaviorEnglishPattern
+- 其他文件:
+-   DanReportUpload: 新增 DIM_COGNITION/LEARNING/BEHAVIOR/CAREER/CAMPUS/ADOLESCENT 常量
+-   DanReportUploadService: dimension 校验扩展到全8种维度
+-   DanReportParseServiceTest: 35个测试用例覆盖所有8种报告类型
+-   ProductOrder.java: 修复重复字段编译错误
+- 编译: mvn compile BUILD SUCCESS
+- 测试: 35 tests run, 0 failures, 0 errors
+- 
+- Wave 2: 迁移DAN报告解析 B2(行为)+B6(职业)+C1(校园) Python→Java
+- - DanReportParseService: 新增 parseB6Report() Holland兴趣6型+多元智能8维+职业价值观
+- - DanReportParseService: 新增 parseC1Report() 复用A1认知+A2大五+B4自驱力逻辑
+- - DanReportParseService: parseText() 新增 behavior/career/campus 路由
+- - DanReportUpload: 新增 DIM_BEHAVIOR/DIM_CAREER/DIM_CAMPUS 常量 + Service校验
+- - DanReportParseServiceTest: 新增12个测试用例,总计28个全部通过
+- - fix: 添加ActivityProvision实体修复ProductOrderController预置编译错误
+- 
+- ProductService was missing this delegation method. Pre-existing bug
+- uncovered when running mvn compile for v1.1 verification.
+- 
+- to resolve Spring Boot 2.7+ circular reference rejection.
+- The cycle was:
+-   HealthReportService → DimensionScoreService → DimensionScoreServiceImpl → HealthReportService
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 重写 admin-butler-review 用 13800138000 账号 + admin-auth/login-by-password 取 token
+- - 新增 health-knowledge-base / nutritionist-apply 覆盖 HealthKnowledgeBaseController (3 endpoints) 与 NutritionistController (2 endpoints)
+- - 附带 mass-create-users 脚本 + create-role-users.sql + 上一次批量建号结果 create-result.json 用于手动复现
+- 
+-    - pages/parent/plans/index.vue, detail.vue
+-    - pages/guide/plans/index.vue, detail.vue
+-    - pages/guide/training-plans/index.vue, detail.vue
+- 2. pages.json 中移除对应的路由注册
+- 3. 新增 components/RecommendedFeed.vue:
+-    - 将商品和活动混合为交替排列的信息流 (商品/活动/商品/活动...)
+-    - 统一展示:封面图 + 类型标签 + 标题 + 价格 + 状态
+-    - 点击统一跳转到对应详情页
+- 4. parent-index.vue:
+-    - 替换 DimensionActivities + DimensionProducts 为 RecommendedFeed
+-    - 新增 onFeedItemClick 和 goMoreDiscover 方法
+- 5. child-index.vue:
+-    - 替换 DimensionActivities + DimensionProducts 为 RecommendedFeed
+-    - 新增 onFeedItemClick 和 goMoreDiscover 方法
+- 6. member-detail.vue:
+-    - 替换 DimensionActivities + DimensionProducts 为 RecommendedFeed
+-    - 新增 onFeedItemClick 和 goMoreDiscover 方法
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - [场景7] Knowledge base popup query and display
+- - [场景8] Quick nav card navigation to subpages
+- - [场景9] Edit mode toggle and save
+- Covers the new v1.1 report detail features.
+- 
+- 修复程序报错
+- 2. stopSimulation 用 clearTimeout 替代 cancelAnimationFrame
+- 3. simulationTick 改用 setTimeout(33ms) 轮询
+- 4. render() 添加 Canvas 节点未就绪时的重试逻辑(最多5次)
+- 5. renderLegacy() 完整迁移 Canvas 2D API(ctx.strokeStyle/ctx.fillStyle/
+-    ctx.lineWidth/ctx.font/ctx.textAlign/ctx.textBaseline 直接赋值)
+- 6. 新增 hexToRgba 辅助函数
+- 
+-    (微信小程序不支持 ctx.setFont() 等链式调用方法)
+- 2. product-detail.vue: onBuy() 从直接创建订单改为跳转到 checkout 结算页
+- 3. checkout.vue: onSubmit() 添加 addressSnapshot、couponId、discountAmount 参数
+- 
+- - 修复富页面运行时 TypeError: getWealthDetail is not a function
+- 
+- - DanAssessmentController 的 /report/parse-preview 和 /report/confirm 委托给 DanReportUploadService(Phase 4-5)
+- - dan_assessment_results.source_report_id 关联 dan_report_uploads.id
+- - dan_assessment_results.analysisStatus 新增字段(待规划师确认分析)
+- - 迁移95: 历史 dan_assessment_results 数据 ETL 回填到 dan_report_uploads
+- - 迁移93-94: dan_report_uploads 建表 + 扩展字段 source_report_id/analysisStatus
+- - schema.sql 同步新建表定义
+- - 合并远程并行迁移(dan_assessment_executions 等表)
+- 
+- 修复程序报错
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - FamilyTianpanCard: 新增 themeStyle/isChild/handleCompassClick
+- - family-dashboard: 添加隐藏 canvas 用于 PDF 渲染
+- - Profile: 移除富沛能量 UI(Header/Menu/Stats)
+- 
+- 修复程序报错
+- - 后端:Swagger @Tag/@Operation注解、DTO校验消息、entity字段注释、service javadoc
+- - 数据库schema.sql:表注释、列注释
+- - 测试文件:测试数据fixture名称
+- - 会员档位选择(membership/upgrade.vue)→'档位选择'避免与任务模板混淆
+- - 测评类型'bundle'标签:'套餐'→'组合'(与任务模板区分)
+- - 未改动:API URL路径、Java类名、数据库表/列名、CSS类名
+- - 验证:mvn clean compile通过 + npm run build通过
+- 
+- - user-edit.vue: autoParent 模式下默认 parent,嵌入 AddressPicker 四级地址组件
+- - UpdateUserDTO + UserController + UserService: 扩展 address 字段支持
+- - schema.sql: users 表同步 address 列
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - PHYLUM_TABLE_TITLES + _parse_phylum_tables() for phylum-level extraction
+- - DISEASE_BACTERIA_TITLES + _parse_disease_bacteria() for obesity/constipation/depression etc.
+- - main() now takes PDF path as arg, outputs same-name .json file
+- - Fallthrough terminator extended, CSV output covers all new table types
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 小程序: 新增 pages/nutritionist/apply 营养师入驻页面
+- - 小程序: 新增 pages/butler/apply 管家入驻页面
+- - pages.json: 注册 nutritionist/butler 两个子包
+- - api.js: 新增 nutritionistApply/nutritionistStatus/butlerApply 函数
+- 
+- 
+- 
+- 
+-    - 原路径从 components/ 目录向上两级会超出项目根目录
+-    - 正确路径应为 ../utils/api.js (从 components/ 到项目根目录再到 utils/)
+- 2. FamilyTianpanCard.vue: 修复 methods 对象后缺少逗号
+-    - 在 export default 对象中,methods 属性后需要逗号分隔
+-    - 缺少逗号导致 Vue 编译器报 'Unexpected token' 错误
+- 3. body/index.vue: 确保 DimensionProductList 组件正确注册
+- Co-authored-by: openhands <openhands@all-hands.dev>
+- 
+- 
+- 
+- AdminController添加营养师审核3端点(applications/approve/reject),
+- ReviewCenterController增加nutritionistPending统计,
+- DatabaseInitializer迁移91,schema.sql同步
+- 前端: NutritionistAudit.vue组件, ReviewCenter.vue添加营养师Tab,
+- admin.js添加营养师审核API函数
+- 
+- 
+- 正确处理 res.data.records 映射;优化样式布局
+- 
+- - ProductSkuService.create() 在 skuCode 为 null/空时自动生成:
+-   'SKU-{productId}-{timestamp}'
+- 
+- - Service.getChangeRequests: 仅在 systemId != null 时加入 where 条件
+- - 全 Controller 20 处 ((Number) ...).longValue() → Long.valueOf(... .toString()) 防 String/Integer 类型解析异常
+- 
+- - router/index.js: 删除 /package-audit /guide-audit /vendor-review /butler-review /withdraw-audit 5 个路由
+- - 删除对应的 Vue 页面文件:
+-   * views/PackageAudit.vue
+-   * views/GuideAudit.vue
+-   * views/admin/VendorReview.vue
+-   * views/admin/ButlerReview.vue
+-   * views/admin/WithdrawAudit.vue
+-   (功能都集中在 ReviewCenter.vue 的 10 个 tab 里, 各 tab 组件在 admin/review/ 目录下)
+- - ReviewCenter.vue: 新增 created() 读取 ?tab= 参数支持直达特定 tab
+- - Dashboard.vue: 待审核卡片链接从 /guide-audit -> /review-center?tab=guide
+-   从 /package-audit -> /review-center?tab=package
+- 验证: mvn compile 通过, 全项目无老审核路由残留
+- 
+- - 新增所属维度筛选(身/心/智/行/富)
+- - 新增审核状态筛选(待审核/已通过/已拒绝)
+- - 优化搜索框占位符文字
+- 样式优化:
+- - 重构 header 布局为 flexbox,支持响应式换行
+- - 统一搜索框和按钮样式
+- - 增加 header-search 类控制搜索框宽度
+- - 优化操作按钮间距和对齐
+- 其他改进:
+- - 默认分页大小从 10 改为 20
+- - 查询按钮显式触发搜索
+- 
+- - 4 Java 文件: entity/EducationSystem, mapper/EducationSystemMapper, service/EducationSystemService, controller/admin/EducationSystemController
+- - Vue 页面: admin/EducationSystems.vue
+- - admin.js: 5 个 education-systems API 封装
+- 顺手清理相关遗留:
+- - DatabaseInitializer:
+-   * 删除 modifyColumnToText('education_systems', 'description') 迁移 (表没了)
+-   * 删除 runMigration92() (整个迁移不入群, 改为 university+education_system 列在 Guide 未被消费)
+- - entity/Guide.java: 删除 university + eduSystem 字段
+-   * 顺带删除 schema.sql 中 guides 表的 university + education_system 列定义
+- - schema.sql: 删除 CREATE TABLE/INSERT FOR education_systems
+- - Layout.vue: 删除教育体系菜单项 + submenu 项
+- - router/index.js: 删除 education-systems 路由
+- 验证: mvn compile 通过, 全项目无 EducationSystem 残留引用
+- 
+- - PackageTemplates 的 GuidePackageTemplateService 也被 GuidePackageController.getTemplates 复用, 保留 Java 侧
+- - 本提交仅移除 3 个 admin-only 维护菜单:
+-   * cfc-web/src/views/admin/ServiceTypes.vue
+-   * cfc-web/src/views/admin/ServiceContents.vue
+-   * cfc-web/src/views/admin/PackageTemplates.vue
+-   * cfc-web/src/api/adminService.js (无其他调用方)
+-   * Layout.vue 配置中心子菜单条目
+-   * router/index.js 路由项
+- 
+- 错误地判定为密码正确。
+- 修复:
+- - 改用 POST /api/family/user/switch-back-verify 单一原子接口
+- - 后端对错误密码直接返回 Result.error (code != 200)
+- - 正确清除 uni storage 中的 isSwitchedChild / currentChildId
+- - 添加 $store.commit 可选检查,避免 store 未定义崩溃
+- - 添加 setTimeout 在 toast 显示后再 reLaunch,提升体验
+- 参考: cfc-backend/.../FamilyUserController.java:135
+- 
+- - goToAchievements() → /pages/rewards/badge (徽章墙)
+- - goToNetwork() → /pages/promotion/team (推广团队)
+- - goToInsurance() → /pages/wealth-sub/insurance-list (保单管理)
+- - goToCreator() → /pages/promotion/index (创客中心)
+- - goToBadges() → /pages/rewards/badge (成就系统)
+- - goToGrowthReport() → /pages/growth/index (成长报告)
+- - goToCheckin() 修正路径 → /pages/wealth-sub/checkin
+- - 新增 childSubDimClick() 处理孩子版 6 个子维度跳转
+- 后端所有目标页面/Controller 端点已存在:
+- - InsurancePolicyController (CRUD 5 endpoints)
+- - FinanceCheckinController (4 endpoints)
+- - BadgeController (10+ endpoints)
+- - EnergyController.wealth-detail
+- 参考计划: /app/cfc/.omo/plans/wealth-features.md
+- 
+- 与后端 FamilyUserController 路径匹配
+- 
+- - SupplySystemService 添加 getByAdminId() 方法
+- - SupplySystemController 添加 /my-system 端点
+- - AdminProductController.list() 支持 distributionSystemId 过滤
+- - 新增 SupplierProductController 提供供应商商品 CRUD
+- 前端:
+- - 新增 SupplierProductManage.vue 页面
+- - 新增 supplier product API 函数
+- - 添加路由和侧边栏菜单
+- - ProductEdit.vue 增强供应商管理员支持(自动锁定体系选择)
+- 
+- Revert unnecessary large files, keep only radar chart fix
+- Changes:
+- 1. Add _safeScore utility in RadarChart.vue - normalize null/NaN scores to 0
+- 2. Update _startAnimation, _drawScoreArea, _drawVertices, _drawScoreText to use _safeScore processing
+- 3. Add retry initialization for Canvas render in RadarChart.vue - retry up to 5 times within 60ms intervals
+- 4. Modify body/index.vue template - replace inline :dimensions/:scores with computed radarDimensions/radarScores (respecting AGENTS.md non-method-call constraint)
+- 5. Handle null scores in computed radarScores - reject null/NaN to 0, maintaining functional correctness
+- Verification:
+- - LSP diagnostics check completed
+- - Resolver scripts completion
+- Co-authored-by: openhands <openhands@all-hands.dev>
+- 
+- - 基于主导五行智能生成个性化行为建议
+- - 优化布局:区分颜色、对齐与留白
+- - 响应式设计:适应不同屏幕尺寸
+- - 文案结构化:不同五行对应不同宜忌行为模式
+- 
+- - 提供周趋势图、月度日历、历史周报三种视图模式
+- - 实现 Canvas 五行罗盘和运势趋势线图绘制
+- - 集成菜单切换功能
+- - 支持 PDF 周报导出功能占位
+- - 优化 UI 交互:响应式布局、动画过渡、色彩搭配
+- 
+- - 增强 FortuneService 实现基于干支五行的吉位算法
+- - 更新 MindFortuneController 返回完整数据格式
+- - 添加专业五行生克关系判断逻辑
+- - 提供更丰富的运势描述和心情表达
+- - 计算复杂:基于家庭五行+日期干支确定最吉方位
+- 
+- - 添加 getFamilyFortune API 函数到 utils/api.js
+- - 优先使用后端返回的数据,兼容模式使用前端算法
+- - 调整 FamilyTianpanCard 组件的数据绑定逻辑
+- 
+- - 37 张表: 从 DatabaseInitializer.runMigration* 提取 CREATE TABLE 语句
+- - 42 张表: 从 entity @TableField/pojo 字段反向生成 CREATE TABLE
+- - 验证: 无重复表名, mvn clean compile 通过
+- 
+- - cfc-frontend/utils/api.js: 新增6个家庭收益API函数
+- - cfc-frontend/pages/promotion/index.vue: 重设计(家庭数据卡片+成员贡献榜+管理员面板+孩子只读+支付预留)
+- P4: 管理后台家庭收益管理
+- - cfc-backend: 新增 AdminEarningsController (3个管理端点)
+- - cfc-web/src/api/admin.js: 新增家庭收益管理API
+- - cfc-web/src/router/index.js: 新增两个路由
+- - cfc-web/src/views/admin/FamilyEarnings.vue: 家庭收益列表+详情弹窗
+- - cfc-web/src/views/admin/FamilyEarningsWithdraw.vue: 家庭收益流水查看
+- 
+- - Update SupplySystem entity with models field
+- - Sync schema.sql
+- - Fix duplicate familyId field in CommissionRecord.java
+- - Create Agnes AI supplier with agnes-image-2.0-flash + agnes-2.5-flash
+- 
+- - 在 pages/mind/index.vue 嵌入家庭天盘模块
+- - 使用火元素配色 (#FF6B9D) 和 Claymorphism 卡片风格
+- - 添加占位数据逻辑,准备对接后端接口
+- - 微信小程序兼容:无可选链、无 CSS Grid、flexbox 布局
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - AdminGuideController: 3处@Autowired替换为@Resource,移除Autowired import
+- - VendorService: 3个方法补全Result<T>泛型参数
+- - VendorController: 同步补全Result<T>泛型参数
+- 
+- - DatabaseInitializer: 36个空catch块添加log.warn日志
+- - TeacherService: getTeacherInfo抛异常, getAuthorizedChildren返回空列表
+- - 14个controller: 42处@GetMapping/@PutMapping/@DeleteMapping→@PostMapping
+- - ButlerController: 2个stub方法标记@Deprecated+抛UnsupportedOperationException
+- 
+- 注册ButlerController bean起别名,解决多个ButlerController项目启动报错问题
+- - ButlerService: 管家核心业务逻辑
+- - ButlerProfile: 管家档案实体
+- - SubscriptionBenefitLogService: 订阅权益日志
+- - DatabaseInitializer: butler_assignments 表迁移
+- - MemberSubscriptionService: 订阅关联修改
+- 
+- merge: resolve conflicts in cfc-web build files
+- - 新增 supply_hierarchy_change_request 表:记录更换上级申请
+- - SupplyHierarchyService: setHierarchy, addRelation, removeRelation, getParent, getChildren, applyChange, reviewChange
+- - SupplyHierarchyController: 11个API端点 (tree, set, remove, children, parent-chain, change-requests, etc.)
+- - ProductOrderService: 支付成功时自动绑定buyer到其referrer的下级
+- - DatabaseInitializer: 迁移86创建新表
+- - schema.sql: 同步建表语句
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- merge: integrate remote changes + supply hierarchy management
+- - cfc-web: supply-hierarchy management (new), supply-system/Detail update
+- - cfc-frontend: App.vue, invite/join.vue updates
+- - cfc-web: admin.js API, router updates
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 实施计划: 分 P1~P4 四个阶段,每阶段可独立上线
+- - P1: 二维码改造(wxacode + env_version 修复 + scene 解析)
+- - P2: 家庭公共账户(3 张新表 + CommissionService 改造)
+- - P3: 前端重构(推广中心重设计 + 支付集成)
+- - P4: 管理后台(家庭收益管理 + 提现审核)
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- JSON string rather than a number. Added type-safe parsing that
+- handles both Number and String id values across the supplier
+- management endpoints.
+- Co-authored-by: Sisyphus <sisyphus@omo.codes>
+- 
+-   implementation plan for dimension-products, repurchase-reminders,
+-   scheduled task, and frontend fixes
+- - 2026-07-13-dan-assessment-phase2-5.md: pending Phase 2-5 plan
+-   referencing assessment-market-plan.md — quota system, dual-channel
+-   reports, plan generation engine, and review→confirm→execute loop
+- Co-authored-by: Sisyphus <sisyphus@omo.codes>
+- 
+- @PostMapping convention. DimensionProductList.goProduct() fires
+- clickRepurchaseReminder() before navigation for repurchase-type
+- products.
+- Co-authored-by: Sisyphus <sisyphus@omo.codes>
+- 
+- RecommendationService.generateDailyRepurchaseReminders() to scan
+- paid/received orders and generate repurchase reminders based on
+- repurchase_reminder_config rules (category/reminderDays/maxReminders).
+- Co-authored-by: Sisyphus <sisyphus@omo.codes>
+- 
+- - getDimensionProducts() — query product_dimension_mapping by
+-   dimensionCode, join products, filter status=上架/stock>0
+- - getRepurchaseReminders() — query user's unpurchased reminders
+- - markRepurchaseClicked() — update clicked=1 on reminder record
+- - generateDailyRepurchaseReminders() — scan paid/received orders,
+-   apply repurchase_reminder_config rules, insert reminders
+- Injects ProductDimensionMappingMapper, RepurchaseReminderRecordMapper,
+- RepurchaseReminderConfigMapper, ProductOrderMapper.
+- Co-authored-by: Sisyphus <sisyphus@omo.codes>
+- 
+- RecommendationController adds 3 @PostMapping endpoints:
+- - /dimension-products — query products by dimension code, sorted by matchScore
+- - /repurchase-reminders — list user's pending repurchase reminders
+- - /repurchase-reminder/{id}/click — mark reminder as clicked
+- Co-authored-by: Sisyphus <sisyphus@omo.codes>
+- 
+- - cfc-web: 多个管理页面样式和功能优化(ArticleCategory, BaziConfigs, CouponManagement, KnowledgeTag, PackageTemplates, RelationshipTypes, VirtualTeamList, ZodiacConfigs, data-source-config, dimension-config, dimension/index)
+- - 版本号自动更新
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - WuxingConfig.vue: 能量来源比例配置+每日限制概览
+- - 路由注册 /admin/energy-config
+- 
+- - 数据驱动多边形填充(familyWuxing.aggregatePercentages)
+- - 百分比标签 + 数据节点圆点
+- - 中心显示家庭名+最强/最弱元素
+- 
+- - ProductOrderService: SKU价格计算
+- - Form.vue: 标签更新
+- 
+- 
+- - 心理维度子项卡片(仅儿童用户显示)
+- - 11个新data字段 + 13个CSS状态变体
+- - loadWealthDetail读取API新字段
+- 
+- - 新增映射器: AiConversationSummaryMapper, AiUserFactMapper
+- - 新增AiContextService: 7意图路由
+- - AIService: enrichInputsWithMemory, getContext, requestSummaryAsync
+- - AIChatController: getContext()端点 + sendMessage注入记忆
+- - DatabaseInitializer: runMigration81内建表
+- - schema.sql: 同步两张新表定义
+- - WebConfig: /api/ai/context加入JWT白名单
+- - chat.vue: 简化传参(移除reportId/surveyId)
+- 
+- - admin.js: Ppoint API 重命名 (getProductPpointList/saveProductPpoint/deleteProductPpoint/byProduct)
+- - supply-system/Form.vue: searchUsers 改用 API 函数
+- 
+- - products.sku_spec_names: 规格维度名 JSON
+- - products.delivery_methods: 配送方式支持
+- - cart.sku_id: 选中 SKU ID
+- - cart.spec_option_ids: 规格选项 ID 列表 JSON
+- 
+- - CircleService: 添加 @Lazy 注解打破 CircleService ↔ CircleMatchService 循环依赖
+- - cfc-web: 新增 ProductPpointManage 积分管理页面,完善供应商体系表单
+- - cfc-frontend: product-detail 页面更新
+- 
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 身: 健康打卡入口(HealthCheckinCard) + body/index.vue
+- - 智: 阅读时长展示(wisdom/index.vue reading stats)
+- - 心: 天盘相性入门版(已有完整天盘/兼容性模块)
+- - EnergyService: 心子维度(情绪稳定/理解包容/传承传递) + 五行克生算法v2.0
+- - MemberEnergyDTO: 心子维度字段
+- - ProductController: spec/map 规格映射接口
+- Phase2 珍珠图/圈子系统:
+- - 后端: SocialCircle/SocialCircleMember实体+Mapper
+- - 后端: CircleService CRUD + CircleMatchService匹配引擎
+- - 后端: CircleController API + DatabaseInitializer迁移85 + schema.sql
+- - 前端: PearlDiagram.vue 珍珠图横向滚动
+- - 前端: CircleCard.vue 圈子卡片组件
+- - 前端: CircleDetail.vue 圈子详情弹窗
+- - 前端: action/index.vue 集成PearlDiagram + CircleDetail
+- - 前端: api.js 圈子API函数
+- 
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - FamilyContextService: 新增3个Dify inputs (dimensionScores/recentCognitiveResult/purchasedProductTags) + 3私有辅助方法
+- - AIChatController: RecommendationQuery传入userId和familyId用于已购过滤
+- Phase 4 (P1):
+- - AssessmentService已有异步hook: DanAssessmentResult parent_upload 触发认知弱维度商品推荐
+- Phase 5 (P2):
+- - RepurchaseReminderService: @Scheduled 每日09:00扫描30-60天订单创建复购提醒 + getPendingReminders/onReminderClicked/onReminderPurchased
+- - RepurchaseReminderController: GET list + POST click/purchased 3个端点
+- - RepurchaseReminder.vue: 前端待处理复购提醒组件
+- 
+- - wisdom/index.vue: 阅读时长条件从 !== undefined 改为 > 0
+- 
+- - cart: 支持 SKU 选择 (sku_id, spec_option_ids), 字段扩展  (skuId, specDesc, supplierName)
+- - DatabaseInitializer: 迁移84 — cart 表 sku_id, spec_option_ids 列
+- - OrderItemVO: 新增 skuId, specOptionIds
+- - ProductDTO: 新增 effectivePpoint, ppointSource, profitRate
+- - CartService: addToCart 接收 skuId, 回填 supplierName 从 vendorName
+- ### P点管理
+- - PpointService: adminList() 管理端分页列表
+- - AdminProductPpointController: 新增管理端 P点配置控制器
+- ### 商品推荐系统
+- - ProductRecommendationService: 维度匹配引擎 (dimensionScore 排序 + 90天过滤 + 购买历史排除)
+- - ProductRecommendationController: POST /api/recommend/dimension-products
+- - 5维页面 (wisdom/body/mind/action/wealth): DimensionProductList 替换 DimensionProducts
+- ### 健康打卡
+- - HealthCheckinCard.vue: 新增健康打卡卡片组件
+- - body/index.vue: 集成 HealthCheckinCard
+- ### 智慧维度
+- - wisdom/index.vue: 本月阅读卡片 + 阅读统计 API 接入
+- ### 文档
+- - 五维能量设计: 更新 v2.1 富维度子维度算法 + 身克富杠杆文档
+- - 五维五行哲学: 补充富子维度表 + 身克富三态公式
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 迁移80: 创建 product_dimension_mapping 表 + 索引
+- - 迁移81: products 表添加 recommendation_tags/purchase_count_threshold/repurchase_interval_days
+- - 迁移82: 创建 repurchase_reminder_record 表
+- - 迁移83: 创建 repurchase_reminder_config 表
+- - 新增 ProductDimensionMapping/RepurchaseReminderConfig/RepurchaseReminderRecord 实体+Mapper
+- - schema.sql 同步新表DDL
+- - 小程序: DimensionProductList 组件 + api.js 推荐/复购接口
+- - 修复 RecommendationQuery DTO
+- 
+- - 新增 Supplier/ProductSpecGroup/ProductSpecOption/ProductSupplier/OrderItemSku 实体+Mapper+Service+Controller
+- - 新增 ProductRecommendationLog 实体+Mapper(推荐记录打点)
+- - EnergyController: /wealth-detail 富维度详情接口
+- - EnergyService: 身克富杠杆逻辑 + calcParentWealth 传参修复
+- - AssessmentService + HealthAnalysisService: 推荐系统相关逻辑
+- - schema.sql: 同步新表DDL
+- - 小程序: 商品详情页规格选择器; 购物车/结算页展示SKU与供应商; 富维度页重构; 个人主页新增
+- - 管理端: EcomSupplierManage.vue 供应商CRUD页面 + admin.js API + 路由
+- - 前端 api.js: 新增供应商/规格/推荐相关接口
+- 
+- - 新增 2026-07-12-wuxing-ke-full-design.md(五克完整设计)
+- - 新增 2026-07-12-wuxing-homepage-and-conversion-algorithm.md(首页+转化算法)
+- - 新增 2026-07-12-dimension-pages-gap-fix.md(分阶段实施计划)
+- - 更新 2026-06-08-five-dimension-wuxing-philosophy.md(克哲学对齐新理解)
+- 
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - ISSUE-008: 中止退款后订单状态未恢复 — cancelPendingRefund增加ProductOrder状态回滚
+- - ISSUE-009: 订单管理搜索条件增强 — 后端支持keyword+日期范围 + 前端增加日期选择器和搜索按钮
+- - ISSUE-010: Dashboard缺失退款审核计数 — StatsController增加pendingRefundCount + Dashboard新增卡片
+- - ISSUE-011: 退款余额不足提示优化 — approveRefund返回明确提示 + 前端使用后端message
+- 
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 移除 wisdom/mind/body 三个页面中的 import、components 注册、模板使用
+- - 清理 body/index.vue 中的残留注释
+- 
+- - action 统一化:补 @manage="goFamilyMembers" + goFamilyMembers method
+- - action 推荐阅读 -> 独立 ActionArticleRecommend 组件,行绿色调卡片造型
+- - 移除未用导入 getContactList/getHealthAlerts/getMilestones
+- 
+- - daily-fortune.vue: 请求载荷添加 familyId
+- - related-items.vue: 请求载荷从 {} 改为 { familyId, daysAhead: 7 }
+- - relation-detail.vue: 传参从 { familyId, memberId } 改为 { member1Id, member2Id }
+- - TianpanController: 兼容性接口从参数读取 memberType (不再硬编码 child)
+- 
+- - ProductOrder实体: refundStatus注释补充 4=退款到帐中
+- - PendingRefund实体: status注释补充 cancelled(已中止)
+- - AdminCommissionController + PendingRefundService: getAllPendingRefunds 支持 orderType 过滤
+- - OrderManage.vue: 新增 refund_pending 状态(退款到帐中)文案/样式/筛选选项,隐藏退款审核按钮
+- - PendingRefund.vue: loadList 传 orderType 到后端
+- - router/index.js: 注册 pending-refund 路由
+- - Layout.vue: 商城营销菜单加'待退款管理'入口
+- 
+- 避免 selfId 不匹配时 same member 同时出现在 selfMember 和 otherMembers 中
+- 
+- - 新增 TianpanDailyFortuneMapper/TianpanMemberAnnualEnergyMapper
+- - buildDailyFortune: cache-aside 模式,优先读 DB 无则计算写入
+- - buildAnnualEnergy: cache-aside 模式,按 member+year 缓存年度能量
+- - schema.sql 同步两表 DDL
+- 
+- - PendingRefundService新增overloaded createPendingRefund、cancelPendingRefund、移除markFailed最大重试限制
+- - ProductOrderService在approveRefund中拦截NOT_ENOUGH余额不足异常,自动加入待退款队列
+- - RefundScheduledTasks新增processProductRefund按orderType路由提现/商品退款
+- - AdminCommissionController新增POST /refunds/cancel管理员中止接口
+- - schema.sql和DatabaseInitializer迁移78同步order_type/order_no列
+- - cfc-web新增PendingRefund.vue管理页面和admin.js API函数
+- 
+- - TianpanController: REST API端点(/api/tianpan/*)
+- - DTOs: TianpanMemberVO/TianpanDashboardVO/DailyFortuneVO/MemberAnnualEnergyVO/RelatedItemsVO/RelationshipVO
+- - TaskService: 新增getPendingTasksByFamily
+- - AssessmentOrderService: 新增getPendingOrdersByFamily
+- - ZodiacAnnualEnergyService: 新增getWesternSign公开方法
+- - WebConfig: 添加cf-club.iwintrue.com CORS
+- - 前端: 天盘6页面 + store模块 + routes/API配置
+- 
+- - WithdrawalService.audit() 审核通过时余额不足自动创建待退款记录
+- - RefundScheduledTasks 每5分钟执行,FIFO处理待退款队列,指数退避重试
+- - 新增 Admin API: /api/admin/commission/refunds/pending (列表+状态过滤+分页)
+- - 新增 Admin API: /api/admin/commission/refunds/summary (待退款总金额统计)
+- - 修复 TianpanDashboardVO 缺失 import
+- 
+- P0: G7(FamilyAccessInterceptor), G1(五维能量分数持久化), G18(测评对比)
+- P1: G8(视角切换+密码校验), G9(邀请码过期/次数/吊销), G2(results_ready联动)
+-      新增: G10(规划师绑定家庭审批), G13(地址SFMS导入骨架), G14(Dify会话本地镜像)
+- P2: G23(schema_versions迁移表), G25(schema.sql新表补齐),
+-      G3(测评报告结构化 structured_analysis), G26(test-mode启动断言)
+- P3: G4(死字段标记deprecated), G27(sfms只读强制)
+- 新增文件: TeacherFamilyBindingController/Service/Mapper/Entity,
+-           ChatConversation, ChatMessage, ChatMirrorService,
+-           SchemaVersion, PendingRefund服务(提现退款处理)
+- 预留未完成(工作量过大): G15(饮食推荐规则层), G21(PDF多供应商), G22(前端mock)
+- 
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 遗漏了 dimensionCode 参数,导致推荐文章未按维度过滤。
+- 智/行维度页已有正确过滤,对齐处理。
+- 
+- - G7: FamilyAccessInterceptor familyId 入参校验
+- - G1: 五维能量分数持久化 (five_dimension_scores)
+- - G18: 首次vs最新测评对比端点
+- - G8: 视角切换统一 + 密码校验
+- - G9: 邀请码过期/次数/吊销
+- - G2: 测评订单 results_ready 联动
+- - G13: 地址数据库导入骨架
+- 
+- - schema.sql: package_orders建表语句同步添加user_coupon_id列
+- 
+- - 创建缺失的 PpointService (被 CommissionService 引用)
+- - 修复 FamilyAccessInterceptor 两处编译错误
+-   - 添加缺失 @Component import
+-   - HandlerMapping.PATH_VARIABLES_ATTR → 字符串字面量
+- - MemberSubscriptionService 实现 P-point 消费返利
+-   - subscribe/renew 时 L1 推荐人获消费返利 (L1=20%, L2=40%)
+- - DatabaseInitializer 添加迁移69: promotion_tier_config 表 + R0-R4 种子数据
+- New files:
+- - PpointService.java
+- - FamilyAccessInterceptor.java (家庭数据访问安全拦截器)
+- - RequestBodyCachingFilter.java (body 缓存供拦截器使用)
+- - AdminSubscriptionController.java
+- - FiveDimensionScoreService.java + entity/mapper (五维能量持久化)
+- 
+-   将 "颜色:红色;尺码:M" 文本格式转为 {"颜色":"红色","尺码":"M"} JSON
+- - 前端 ProductSkuEditor handleSave 发送前同样做前端规范化
+- - 根因: product_skus.specs 列为 MySQL JSON NOT NULL, 前端输入普通文本被拒绝
+- 
+- - 前端小程序(cfc-frontend)会员页用户可见文本
+- - PPT 生成器脚本及输出(5 个生成器 + 确定性PPT)
+- - Java 后端 Swagger 描述、错误消息、日志、注释
+- - SQL schema COMMENT 和段注释
+- - Web 管理端路由和 API 注释
+- - 所有设计文档/需求文档/Spec 文档
+- - 测试文件描述和官网文稿
+- 保留不变:数据库表名/列名、Java 类名/方法名/变量名等技术标识符
+- 
+- - Update imports in guide/plans/detail.vue and guide/plans/index.vue
+- - Remove AssessmentOrderController and related tests (moved to DanAssessmentController)
+- - Resolve merge conflicts in cfc-web
+- 
+- 
+- debug: 添加原生 button 对比测试点击事件
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Prices visible before/after login. Login only required for booking, placing orders, adding to cart.
+- 
+- - AssessmentProduct实体/Mapper/Service/Controller
+- - 管理端测评商品管理页面 + 规划师端测评商品页
+- - 测评额度配额管理与扣减服务
+- - 商品SKU/促销层级/推荐树实体与迁移
+- Phase 2 - 购买与执行解耦:
+- - 预约-支付-执行分离流程
+- - AssessmentQuotaService额度扣减逻辑
+- - 预约确认/取消/支付回调
+- - 前端预约页+额度页+上传页
+- Phase 3 - 报告双通道+结构化指导:
+- - AssessmentReportController(上传/确认/指导意见)
+- - GrowthGuidanceService结构化指导意见
+- - ReportParseService PDF解析
+- - 家长上传报告+规划师录入结果双通道
+- Phase 4 - 方案生成引擎:
+- - AssessmentPlanRule规则引擎(维度×分数区间匹配)
+- - AssessmentPlanGenerator自动方案生成
+- - AdminPlanRuleController规则CRUD
+- - 迁移63-66: assessment_plan_rule建表 + TaskPlanInstance扩展字段
+- - 管理端方案规则配置页 + 方案管理看板
+- Phase 5 - 方案审核与执行:
+- - PlanReviewController(规划师方案列表/审核/激活)
+- - PlanActivationService激活生成待办任务
+- - 规划师小程序方案审核页+详情页
+- - 修复既存asyncDeepParse编译错误
+- 新增: 会员订阅/积分体系/商城商品管理等基础设施
+- 
+- 
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 新增 Vue.use(Link) 注册 Link 组件
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+-   防御性判空: 增加 !trim().isEmpty() 检查, 避免空字串  传入 Long.valueOf()
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 新增服务器运行状态: 运行时长、CPU 使用率、JVM 内存占用, 数据来自后端 /api/system/health 接口
+- 已在 mounted 中调用 loadServerHealth() 自动加载
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - report-confirm.vue: add tongue indicators card, route confirm to confirmTongue
+- - report-list.vue: add tongue badge display
+- - body/index.vue: redirect tongue entry to report-upload?reportType=tongue
+- - tongue-index.vue: deprecate — redirect to new report flow
+- - api.js: parseReportPreview accepts optional type param
+- 
+- - 新增 ButlerSessionMapper (MyBatis-Plus)
+- - 新增 ButlerSessionService (CRUD/归档/上下文管理)
+- - 新增 ButlerController (/api/ai/butler/sessions/* 6端点)
+- - DatabaseInitializer 迁移42: 创建 butler_sessions 表
+- - schema.sql 同步更新
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 拆分为两个并行实施计划:
+-   Plan 1: 订阅+推广核心(P0+P1, 12-15天)
+-   Plan 2: AI+管家+推荐引擎(P0b+P2+P3, 15-20天)
+- - Plan 2 通过 Stub/Provider 模式与 Plan 1 解耦,可完全并行开发
+- 
+- - Rewrite Dashboard.vue to admin-only (875 lines) with expanded stats
+- - Add getDashboardOverview() API for /api/stats/overview
+- - Add ECharts trend chart (user/family growth) and membership pie chart
+- - Replace system info with enriched health panel (status, version, refresh)
+- - Expand quick actions from 4 to 8 (4x2 gradient icon grid)
+- - Register /teacher-dashboard route, update router guard for teacher redirect
+- - Make sidebar '首页' menu path dynamic based on role
+- - Update AGENTS.md with new dashboard architecture
+- 
+-   audit_reason, summary, advice, overall_assessment, config_value fields
+-   from VARCHAR(255/500/200) to TEXT across ~40 tables
+- - Added idempotent modifyColumnToText() migrations in DatabaseInitializer
+-   (~55 ALTER TABLE MODIFY COLUMN calls) for production database sync
+- - Primary fix: activities.description was the original crash site but
+-   many other columns had the same truncation risk
+- 
+- so the card displays for families with only 1 member. the canvas
+- drawing already guards against drawing lines when < 2 members.
+- 
+- admin order management can find refunding orders (was filtering by
+- order.status='refunding' but after-sales was stored in separate table).
+- ProductOrderService.approveRefund/rejectRefund now syncs back to
+- AfterSalesRequest.status so mini-program after-sales list stays in sync.
+- ProductOrderDTO.from() now carries refund/logistics fields that were
+- previously omitted, so admin refund dialog shows refund reason.
+- 
+- - ActivityControllerTest.java: add missing 'role' parameter to create/update/publish/end calls
+- Ultraworked with Sisyphus (https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - HealthReportAudit.vue: new draft audit page with detail dialog (indicators/gut flora/disease risk tabs)
+- - Router + sidebar: register /health-report-audit route and menu entry
+- Ultraworked with Sisyphus (https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - HealthReportController: add POST /api/health/report/admin-list endpoint
+- - HealthReportService: add listAllReportsForAdmin() with childName resolution
+- - UpdateUserDTO: fix stale git conflict markers
+- Ultraworked with Sisyphus (https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- sync: merge E2E test stash from cfclub branch (AGENTS.md, package-lock, test report)
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 添加 → 导航到 /pages/family/add-member
+- - 邀请 → 打开邀请弹窗
+- - family-header 在无 familyName 时显示 '我的家庭' 占位
+- - 筛选后无结果时仍显示 '暂无家长/暂无孩子' 提示
+- 
+- 
+- - Unify formatTime to t.replace('T',' ').substring(0,19) pattern
+- - Replace new Date().toLocaleString() with consistent T-replace in
+-   OrderManage/WithdrawAudit/EmotionAlertManage/ProductManage
+- 
+- - Uses table-scroll-wrap CSS classes (overflow:auto + max-height)
+- - Inline overflow:auto;max-height style on pages without class wrapper
+- 
+- - Import admin-tokens.css globally in main.js
+- - Refactor ~33 admin pages to use standard classes:
+-   - admin-page-header / admin-page-title / admin-page-actions for card headers
+-   - table-scroll-wrap(-sm/-lg) for table containers
+-   - pagination-wrap for pagination
+-   - filter-bar for search/filter bars
+-   - Remove inline width/height/float styles
+- - Update ActivityEdit, ProductEdit with proper header layout
+- - Fix ActivityReview, Assessment (syntax error fix)
+- - Remove duplicate scoped CSS for filter-bar, header patterns
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - Fix prop name from :config to :defaultConfig (wangEditor Vue2 API)
+- - Add toolbarConfig for Toolbar component initialization
+- - Add missing @wangeditor/editor CSS import to ArticleEdit and ActivityEdit
+- - Add editor CSS styles (rich-editor border, toolbar wrap, text-container min-height)
+- 
+- - All 58 Vue pages with fixed="right" columns now have horizontal scroll container
+- - Pattern: div wrapper with overflow:auto;max-height:calc(100vh - 300px)
+- 
+- - Layout.vue 全局滚动修复(overflow-y:auto 覆盖所有 admin-page 编辑页)
+- - 搜索框"全部"选项改为语义标签(11 页面:「全部状态」「全部分类」等)
+- - 状态变更操作增加  确认 + 自动 loadList() 刷新
+- - 活动列表 flex 布局 + 滚动 CSS 修复
+- 
+- - Shows gray dashed avg line behind user's indigo filled polygon
+- - 6 dims: perception/focus/memory/logic/spatial/processing speed
+- 
+- - New _drawAvgScoreArea() method renders average as background layer
+- - Body page passes mock avg scores alongside user dimension scores
+- - Avg scores: [72,68,75,70,73,69,71] for 7 dimensions
+- - Without user data, only avg line shows; with data, both lines visible
+- 
+- - Add console logs for tracking dimension data loading flow
+- - Helps diagnose radar chart not rendering when no child selected or API fails
+- 
+- - Bump package.json version 1.0.11 → 1.0.17
+- - Update .last_build_commit to latest build
+- - web/index.html: update Clarity tracking ID, remove duplicate inline script
+- 
+- - Add null guards in loadTeacherData() for all response properties after Promise.all catch
+- - Handle missing taskCompletionRate gracefully with parseFloat fallback
+- - Replace simplified Markdown parser with block-level parser supporting code blocks, lists, headings, bold/italic/code/links
+- - Fix closing brace formatting that caused build failure
+- 
+- when API returns malformed responses (e.g. non-array family/team lists,
+- missing order records).
+- 
+- flex-wrap-based responsive layout for td-quick-actions and td-today-stats.
+- 
+-   admin pages (Activities, ArticleManage, OrderManage, PointsLog, ProductManage,
+-   VendorReview, WithdrawAudit) and teacher pages (FamilyList, TeacherAssessment)
+- - Add overflow-y:auto to Layout sidebar and admin-page container
+- - Bump version to 1.0.11
+- 
+- null. The method previously passed null to task.setCreatorId(), causing a
+- DataIntegrityViolationException on INSERT. Added null guard before task creation.
+- 
+- happiness model, membership/distribution, module status assessment,
+- P0/P1/P2 roadmap, tech debt, data model overview, architecture, risks.
+- 
+- - 管理员创建三类服务商(测评/解读/规划)
+- - 家长购买测评 → AI 解读 → 人工处理 → 成长规划
+- - 验证需求完整性(80%)和合理性(92%)
+- - 识别 3 个 P0 问题:服务商类型扩展、人工解读功能、成长规划功能
+- - 提供实施建议和代码示例
+- 
+- - cfc-frontend: pages.json/ai.chat/mind.articles/user-edit/wealth 页面优化
+- - cfc-web: 新增 MembershipCenter.vue(295行)/PointsLog.vue(202行),全面更新各管理模块
+- - 67 files changed, 1946 insertions(+), 434 deletions(-)
+- 
+- - ProductOrderController/Service: support mixed payment (points + cash)
+- - PointsService: integrate points deduction for orders
+- - shop pages: refactor detail, index, order-list, order-detail
+- - DatabaseInitializer: resolve merge conflict (keep both migrations 38-40)
+- 
+- Closes ISSUE-007
+- 
+- - 添加supplier_admin角色到UserService.isValidRole()
+- - 添加supplier_admin到AdminAuthController登录角色检测
+- - 添加supplier_admin到数据库users.role ENUM
+- - 创建SupplyManageController供应商管理控制器(CRUD+角色管理+层级调整)
+- 前端:
+- - 添加supplier_admin到permissions.js权限映射
+- - 添加供应商管理菜单到Layout.vue
+- - 添加供应商管理路由到router/index.js
+- - 创建supply-manage/List.vue, Form.vue, Detail.vue
+- - 添加supply-manage API函数到admin.js
+- 
+- 
+- Merge remote changes and resolve conflicts
+- 删除 'RTK.md'
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+-   - 只保留 subPackages 中正确注册的 pages/shop/index/index.vue
+- FRONTEND-02: 缩短过渡页显示时间 5s→2s
+-   - action/wisdom/mind/body/index + profile + index 页面
+- FRONTEND-03: 智页推荐阅读'更多'导航修复
+-   - wisdom/index.vue goMoreArticles() 修正为目标路由
+- FRONTEND-04: 行页面推荐阅读缺失 (relatedDimensions JSON 解析)
+-   - 新增 parseRelatedDimensions() 方法处理 JSON 数组字符串/逗号分隔/数组
+-   - 修复 action/wisdom/mind 三页面 loadFeaturedArticles
+- FRONTEND-05: 行页面移除孩子管理快捷操作组件
+-   - 删除 UserQuickEntry 组件及其 import 和注册
+- 
+- - Replace allowedOriginPatterns("*") with explicit origins (CORS spec: "*" + allowCredentials invalid)
+- - Allowed: https://cfc.etotem.com.cn, http://cfc.etotem.com.cn, localhost/127.0.0.1 dev origins
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - Use API module (getDashboardStats/getRevenueStats/getMembershipStats/getTrendStats)
+- - Element UI icons replacing emojis
+- - Section-level v-loading states
+- - ECharts lifecycle (dispose on destroy, resize handler)
+- - Recent tasks table from dashboard API
+- - Hover effects and responsive layout
+- 
+- - ~50 admin/9 teacher 页面统一添加 admin-page 样式类
+- - 所有列表/管理页添加 <=el-input> 关键字搜索
+- - 有分页的: keyword 传 API 参数
+- - 无分页的: computed filteredData 客户端过滤
+- - teacher 页面同时补齐 admin-page 类与面包屑样式
+- 
+- - DatabaseInitializer migration 34: ensureColumn for all missing columns
+-   - family_member_* (5): id, name, birthday, gender, age
+-   - EMI psych (4): emotion, resilience, stress_coping, self_awareness
+-   - Big Five (6): openness, conscientiousness, extraversion, agreeableness, neuroticism, big_five_overall
+-   - child snapshot (20): name, birthday, gender, age, school, grade, grade_class, height, weight,
+-     family_status, parent_degree, nation, province, city, district, address, single_child,
+-     school_score, urgent_name, urgent_phone
+-   - media (4): pics, videos, audio, audio_url
+-   - extension (2): process_desc, result_desc
+- 
+-   (修复Field doesn't have a default value错误)
+- - schema.sql同步: capability_role列+default_role列并存(兼容保留)
+- 
+-   supply_settlement_detail 4张表 + product_orders追加supply_system_id/
+-   supplier_id/supply_commission 3列+索引
+- - schema.sql: product_orders补列 + 追加4张新表定义
+- - supply_system_schema.sql: supplier_user_id→supplier_id(匹配实体) + 补充supply_commission
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+-   EnergyService.calculateBodyScore Unknown column 'subject_id' 错误)
+- - 迁移32: 创建supply_system/supply_system_member/supply_settlement/
+-   supply_settlement_detail 4张表 + product_orders追加supply_system_id/
+-   supplier_id/supply_commission 3列+索引 (修复OrderTimeoutCancelTask
+-   Unknown column 'supply_system_id' 错误)
+- 
+- - ProductDTO.java: add deliveryMethod, rejectReason fields + from() mapping
+- - DatabaseInitializer: migration 32 - ensureColumn for delivery_method, category_id, distribution_system_id
+- - schema.sql: add 3 columns to products table DDL
+- 
+- - report-confirm.vue: add colored confidence badge + progress bar
+- - report-confirm.vue: add ranked candidate member list with similarity scores
+- - report-confirm.vue: add auto-create member form with pre-filled extracted data
+- 
+- 替代: import E from '@wangeditor/editor' + new E(domRef)
+- 移除: initEditor()方法、beforeDestroy editor.destroy()、editor: null data
+- 新增: editorConfig (MENU_CONF.uploadImage) 传入Editor组件
+- 
+- - Add Jupiter 12yr and Saturn 29.5yr cycle phase calculation
+- - Blend 60% Western + 40% Chinese zodiac with Tai Sui relation modifiers
+- - Update controller to accept birthMonth/birthDay, return full fusion result
+- 
+- - 6步标准流程:错误定位→查实体→检查schema.sql→加迁移→同步schema.sql→编译验证
+- - ensureColumn() 辅助方法优先使用
+- - 幂等性要求:所有迁移必须可重复执行
+- - 同步原则:schema.sql 与 DatabaseInitializer 保持最终一致
+- - 4种场景代码模板:ADD COLUMN / CREATE TABLE / ADD INDEX / MODIFY COLUMN
+- 
+- activity.js: 新增 getAdminList/updateStatus/batchUpdateStatus API
+- ArticleManage.vue: 新增状态筛选/审批操作列/排序拖拽/发布状态切换
+- ArticleEdit.vue: 优化表单校验/状态联动/发布时间记录
+- Activities.vue: 重构列表页 - 新增状态标签/审批弹窗/批量操作
+- ActivityEdit.vue: 优化表单 - 新增状态流转控制/发布时间
+- 
+- AdminArticleController: 新增文章管理分页/审核/排序端点
+- Activity: 新增 status/approvalStatus/remark/publishedAt 字段
+- ActivityAdminService: 新增分页查询 + 状态流转(待审核→发布/驳回/下架)
+- AdminActivityController: 新增活动管理完整CRUD + 状态审核端点
+- schema.sql: 新增 ACTIVITY_WAITING_APPROVAL 状态到状态约束
+- 
+- 1. 拖动某维度时其他维度同向变化
+- 2. 各维度独立0-100, 总和未保持100%
+- 修复: onWeightChange(changedCode) 将 100-newValue 按比例分配到
+- 其他维度, 确保总和恒为100%。移除 getMaxForDim / getRemaining。
+- 
+- - scripts/generate-changelog.js: 从 git log 分类生成变更日志
+- - vue.config.js: 注入 VUE_APP_VERSION / VUE_APP_BUILD_TIME
+- - Dashboard.vue: 版本显示动态化 + 变更日志弹窗
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - Fix playwright.config.js baseURL and viewport for desktop admin
+- - Add dev:h5/build:h5 scripts to cfc-frontend package.json
+- - Fix config.js truncated API URLs
+- - Add ensureLoggedIn() helper with auto-login flow for admin tests
+- 
+- - 删除 Layout.vue 侧边栏'工作台'菜单项
+- - 删除 TeacherDashboard.vue(内容已完整集成在 Dashboard.vue)
+- - fix: StatsController.java teacher_status 查询字段修复
+- 
+- - 若存在 default_role 但无 capability_role,CHANGE COLUMN 重命名并保留数据
+- - 若两者均不存在,ADD COLUMN capability_role 默认值 parent
+- - 若 capability_role 已存在,跳过
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+-   完全覆盖 JAR 内置值;config/ 目录存在时自动加载外部配置
+- - config/application.yml: 新增外部配置模板(数据库/JWT/微信/Dify)
+- - application.yml: 数据库凭据改为 CHANGE_ME_* 占位符,避免内置生产密码
+- 
+- - ArticleAdminControllerTest.java: getAdminList mock 补齐参数,update 改用 Map 参数+Result<String>
+- - AdminArticleControllerTest.java: getAdminList mock 补齐参数,update 改用 Map 参数+Result<String>
+- - application.yml: datasource 切到本地 MariaDB (root/cfc123)
+- 
+- - PaymentOrder.java: 删除重复的 period 字段
+- - MembershipLevelDTO.java: 删除重复 priceQuarterly,补回缺失的 priceYearly
+- - MigrationController.java: 添加缺失的 java.util.Date import
+- - MembershipController.java: createOrder 调用补第6个参数
+- 
+-   add VUE_APP_SKIP_CAPTCHA=true for admin build, use git pull --rebase instead of
+-   fast-forward merge to handle diverging branches
+- - update activity API and router for admin
+- - cleanup Activities.vue and ArticleManage.vue
+- 
+- but the component file was not included. Create it with dimension grid
+- display, score bars, and navigation to detail pages.
+- 
+- - Article 实体新增 publishTime, viewCount, likeCount, shareCount 字段
+- - AdminArticleController 重构: 文章 CRUD + 状态机(草稿→待审→已发布/下线)
+- - ArticleService 新增: findByStatusPage, approve/publishArticle, updateViewCount
+- - CommissionController 新增 getTodayCommission
+- - MembershipController 新增按成长值排序接口
+- - MigrationController 新增 getTables, truncateTable 工具方法
+- - DatabaseInitializer 新增 schema_version 表, 版本化迁移, 9个复合索引
+- 小程序前端:
+- - articles.vue 新列表页(160行+), article-detail.vue 文章详情(255行+)
+- - shop/index 店铺首页(+24行), shop/detail 商品详情(+108行), shop/cart 购物车(+13行)
+- - 新增 shop/after-sales/ 售后申请页面, shop/after-sales-detail/ 售后详情页面
+- - promotion/index 推广页面(+167行), discover 页面调整(-10行改动)
+- - 修复 mind-index, body-index, wisdom-index 各页面 member-index 视角切换
+- 管理端:
+- - ArticleManage.vue 文章管理(69行+): 列表/搜索/状态筛选/上下架操作
+- - ArticleEdit.vue 文章编辑(48行+): 富文本编辑, 分类标签选择
+- - KnowledgeTag.vue Knowledge标签管理(134行+): 标签 CRUD
+- - Layout.vue 导航栏调整(-11行)
+- - router/index.js 新增 article/knowledge 路由
+- cfc-web: Element UI tree-shaking 优化配置
+- 
+- - 背景替换为暖棕渐变 (#1A0F00 → #4A3020)
+- - 五行沙盘 SVG → CSS 公转五维能量轮盘
+- - 中心家金色徽章 + 脉冲动画
+- - 五维色系节点: 身橙/智紫/富金/行绿/心粉
+- - role-tags 颜色更新: 家庭客户(紫)/服务商(粉)/平台运营(绿)
+- - 右侧表单区保持不变
+- cfc-frontend body/index.vue:
+- - RadarChart → HealthDimensionsSection 组件替换
+- 
+- - FamilyRelationGraph: add 暂无其他家庭成员 for 1-member case
+- - action/index.vue: remove outer v-if on FamilyRelationGraph so its
+-   own empty state renders when no members
+- 
+- - Show 暂无商品 / 登录后查看更多商品 when empty
+- - Matches DimensionActivities empty state pattern
+- 
+-   Spring @Resource name collision with ActivityService.activityMapper
+- - Rename GuideActivityController.activityService → guideActivityService for consistency
+- - Fix MessageBox prototype registration in cfc-web
+- - Add echarts dependency to cfc-web
+- 
+- - 均在 pages/health/ 分包下注册
+- - funcList 6个按钮全部绑定正确页面路径
+- - 修复舌诊路径缺失前缀问题
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- called immediately after in onShow, before activeChildId was set.
+- Result: activeChildId was still null → loadCognitiveReport returned
+- early → cognitiveReport stayed null → radar chart v-if never rendered.
+- after activeChildId is confirmed set (from storage or default to first child).
+- 
+- 
+- cleanup: remove inline AI entry card from parent-index (replaced by floating avatar)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - Add product_skus table creation to DatabaseInitializer (was manual-only)
+- 
+- - 新增 GuideActivity 实体 + guide_activities 表
+- - 新增 GuideActivityMapper / GuideActivityService
+- - 新增 GuideActivityController (7个端点: list/detail/create/update/publish/cancel/delete)
+- 前端:
+- - api.js 新增 7 个活动管理 API (getActivityList/detail/create/update/publish/cancel/delete)
+- - pages/guide/activities/index.vue — 活动列表 (筛选/新建/发布/取消/删除)
+- - pages/guide/activities/detail.vue — 活动详情页 (create模式+edit模式, 日期选择器, 分类选择)
+- - pages.json 注册 2 个新页面
+- 关键设计: 使用页面跳转 (navigateTo), 无 modal 弹窗, 符合 training-plans 模式
+- 
+- cfc-web: article read-only mode for published articles
+- - Edit: draft + never-published only
+- - View: published or ever-published (readonly)
+- - Copy: all states
+- ArticleEdit.vue:
+- - ?readonly=1 → read-only detail mode
+- - Published/ever-published → auto readonly
+- - handleCopyAsNew() for in-place copy
+- 
+- - Fix body, mind, wisdom goMoreActivities to use ?type=activity
+- - Fix wisdom goMoreProducts to use ?type=product
+- 
+- - Previously various targets: discover/index, discover/index?type=activity&dimension=*, or empty stubs
+- - Applies to: parent-index, child-index, body/*, mind/*, wisdom/*, action/* pages
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- merge
+- - 用于心愿兑换时的积分原子性检查和扣除
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- ArticleAdminControllerTest: create()参数改为Map<String,Object>
+- FamilyMembersControllerTest: setMemberId改为setId
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- FamilyMemberManagementFlowTest: setRelationshipType/setNickname/setEnabled(Integer)/setRecordTitle
+- GrowthRecordSyncFlowTest: @Builder注解/parseReport/recordTitle/移除不存在的controller方法
+- ProductPurchaseFlowTest: setTotalAmount改为Integer/create返回Result包装
+- PlannerBindInviteFlowTest: setServicePrice(Integer)/unbindGuide变量名/setUserId移除/createGuideFamily签名
+- AssessmentOrderFlowTest: 移除不存在的getLatestResult方法
+- DailyCheckinStreakFlowTest: 移除checkAndGrantReward测试/updateCheckin改为Map参数/deleteCheckin(Long,Long)/setCheckinDate(Date)
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - AssessmentAppointmentService: 重构预约服务,删除冗余代码
+- - CreateWishDTO: 新增imageUrl/linkUrl/estimatedPrice字段支持商品型心愿
+- - PaymentService: 新增支付方法扩展
+- - PaymentServiceInterface: 接口同步更新
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - GrowthRecordService: 新增getRecordsByChild(Long childId)方法
+- - GrowthRecordServiceInterface: 接口同步更新
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - DailyCheckinService.deleteCheckin(): (Long) → (Long, Long)
+- - DailyCheckinController: update(Map)/delete(Map)适配新的service签名
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - EnergyService: 新增grantEnergy()(Long,Long,Long,String)和deductForWish(Long,Long,Long)方法
+- - 添加WishMapper依赖用于心愿兑换能量扣除
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - NEW-02: ProductSkuController.listByProduct() 添加productId空值校验防止NPE
+- - NEW-03: ActivityController.publish() 包装try-catch,返回Result.error()而非500
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- config: SfmsDataSourceConfig multi-datasource settings
+- 
+-   - 新增活动报名/能量规则/商品SKU/订单生命周期/会员体系等新功能
+-   - 新增6个完整E2E跨角色业务流程场景
+-   - 从80个API用例扩展至120个需求驱动用户故事
+- - issue-tracking/README.md: 补充ISSUE-004/005/006根因分析
+-   - 确认全部为测试数据缺失+测试脚本问题,非代码缺陷
+-   - 核心根因: children表为空,31个测试家庭无孩子记录
+- 
+- - FinanceCheckinController create: 补充 checkinType 必填校验
+- - EnergyController overview: @RequestBody 改为 required=false + null 校验
+- 
+- 已清理: unpackage/dist所有缓存,强制重新编译
+- 
+- - T1: 会员试用机制 (TrialMembership + ScheduledTask)
+- - T2: 推广数据看板 (CommissionService + StatsController)
+- - T3: 组合套餐/订阅制 (MembershipLevel + PaymentOrder + 折扣体系)
+- - T4: 管理端数据大屏 (Dashboard + ECharts)
+- - T5: 内容裂变 (ShareEvent + ShareRead + 积分奖励)
+- - T6: 推广素材中心 (PromotionMaterial CRUD + 素材库页面)
+- - T7: 积分商城 (PointsExchange + 兑换记录 + mall页面)
+- - T8: 社交关系链 (ContactMatchRequest + 1对1匹配)
+- - T9: 用户分层运营 (UserRfmTag + UserTriggerRule + RFM计算)
+- 数据库迁移: DatabaseInitializer 新增 T5-T9 所有表
+- 前端: 新增 promotion/material.vue, points/mall.vue, membership/upgrade.vue, admin/Dashboard.vue
+- 
+- AdminController → ProductOrderService → PaymentService 循环
+- 
+- - func-list 拆分为 funcListRow1(前4个) 和 funcListRow2(后4个)
+- - 每行4个按钮均分宽度,图标文字更易读
+- 
+- - admin.js: add getEmotionAlertList and resolveEmotionAlert API endpoints
+- - router/index.js: add /emotion-alert route
+- - Layout.vue: add sidebar menu item for emotion alert management
+- 
+- - Auto-create FollowUp with 7-day due date and high priority on alert resolution
+- - Query familyId from Child table for follow_up association
+- 
+- - MentalHealthScreenService.submitScreen: push crisis alert for severe screening results or suicide ideation
+- 
+- - EmotionAlertController: fix NPE in condition checks, add admin role auth check, add /api/mind/admin/alert/list and /api/mind/admin/alert/resolve endpoints
+- - WechatService: add sendTemplateMessage() for alert push via WeChat template messages
+- - application.yml: add alert-template-id config
+- Implementation checklist complete:
+-   ✓ DatabaseInitializer.java: version gate + DDL
+-   ✓ EmotionAlertController.java: NPE fix + auth + admin endpoints
+-   ✓ WechatService.java: sendTemplateMessage()
+-   ✓ application.yml: alert-template-id
+- 
+- - 后端: 每日健康打卡、饮食/运动/睡眠/饮水记录实体
+- - cfc-web: DimensionWeightPicker 五维权重组件, 集成到活动/文章编辑
+- - cfc-web: 成长任务管理重构, 活动报名审核, 能量规则管理
+- - cfc-frontend: 身体页面 — 运动/睡眠/饮水/饮食记录, 成长曲线, 健康趋势
+- 
+- - TrialMembership: 入门会员体验实体与Mapper
+- - 前端页面调整(splash引导页改版)
+- 
+- - 调整支付回调路由至商城订单处理
+- - 新增订单发货(ship)/确认收货(confirmReceive)/取消(cancel)
+- - 新增配送方式(快递/自提)支持
+- - 新增ProductSku实体/CRUD/SKU选择器
+- - 新增UserAddress实体/CRUD
+- - 新增OrderItem实体/CRUD
+- - 新增退款申请/审批/拒绝流程
+- - 新增超时取消自动任务
+- - 新增库存乐观锁防超卖
+- - 前端:detail SKU选择器 / checkout skuId传参 / order-list退款操作
+- - 前端:goShop/goDetail导航修复(address已使用CFC API)
+- - SQL: 添加product_skus/user_addresses/order_items扩展表
+- 包含关联更新: Activity/Energy模块扩展, 会员试用TrialMembership实体
+- 
+- - 新增 cognitive-recommendations.yml(3-tier × 6维离线任务/游戏/文章推荐)
+- - 新增 CognitiveTrainingConfigService + CognitiveRecommendationDTO
+- - POST /api/cognitive/recommendations — 获取行动清单
+- - POST /api/cognitive/recommendations/create-task — 一键添加任务
+- - cognitive-report.vue 新增「家庭行动建议」区块
+- Phase B1 — 常模参考线
+- - 新增 CognitiveNorm 实体 + cognitive_norms 表 + 种子数据(6维×4年龄带)
+- - 新增 CognitiveNormMapper / CognitiveNormService
+- - POST /api/cognitive/norms — 返回百分位等级(较弱/偏弱/中等/良好/优秀)
+- - 条形图显示同龄中位参考线 + 等级标签
+- Phase B2 — 历史趋势
+- - 新增 CognitiveTrendItemDTO
+- - POST /api/cognitive/trend — 历史六维分数序列
+- - cognitive-report.vue 新增「历史趋势」区块(前后对比表)
+- Phase C — 训练方案系统(规划师端)
+- - 新增 TrainingPlan / TrainingPlanItem / TrainingPlanTask 实体 + schema
+- - 新增 TrainingPlanMapper / TrainingPlanService
+-   — CRUD / generateFromRecommendations / deployPlan / getExecutionBoard
+- - 新增 TrainingPlanController(guide端9个端点)
+- - 前端: guide/training-plans/index.vue(列表/生成/下发/删除)
+- - 前端: guide/training-plans/detail.vue(编辑/看板模式)
+- - api.js 新增训练方案相关API(10个方法)
+- 
+- parallel via CompletableFuture (ThreadPoolExecutor). Frontend: Dashboard.vue
+- loads all data in one request instead of Promise.all(7).
+- 
+- 
+- 
+- - Add schema_version table for idempotent migrations (version >= 1 skips)
+- - Subsequent app starts: ~8s faster (no ALTER TABLE spam)
+- 
+-   N queries (one per category) — eliminates N×categories DB roundtrips
+- - calcParentBody: batch-fetch health reports for all children via
+-   HealthReportMapper.selectOne with IN(userIds) instead of loop
+- 
+- - Removed duplicate jdbc-url/credentials from hikari block (was overriding spring.datasource)
+- - Fixed TrainingPlanService: RecommendationItem -> DimensionRecommendation
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 
+- - 主包从 54 页减少至 21 页,符合微信 2MB 限制
+- - 更新 pages.json 配置匹配新的目录结构
+- - 更新 splash 页面使用项目 logo
+- - 修复 report-survey.vue 语法错误
+- 
+- - 新增 TongueRecord/IndicatorDefinition/IndicatorValue 实体 + Mapper
+- - 新增 IndicatorService + TongueDiagnosisService(两阶段舌诊流程)
+- - 扩展 AIService:sendTongueDiagnosis + mockTongueResult(开发模式)
+- - HealthReportController 增加 type=tongue 分支(parse/confirm/discard)
+- - 新增 IndicatorAdminController(指标管理 CRUD)
+- - 前端:tongue-index.vue 全流程页 + body/index.vue 雷达图 + func-grid 改舌诊
+- - 前端 API:4个新接口(parseTonguePreview/confirmTongue/discardTongue/getIndicatorDefinitions)
+- - cfc-web:indicators/index.vue 指标管理页 + 路由注册
+- 
+- - DistributionService: add getUserTeams, getTeamTree, getUserPosition,
+-   getTeamMembers, updateMemberTeam methods
+- - AdminVirtualTeamController: 9 endpoints for virtual team CRUD + member mgmt
+- - cfc-web admin: VirtualTeamList.vue + VirtualTeamDetail.vue pages
+- - Router + sidebar: virtual team menu items under system config
+- 
+- pages.json: 重构小程序页面路由结构
+- Admin/Product/VendorController: @RequestHeader(X-User-Id)统一为@RequestAttribute(userId)
+- schema.sql: articles表增加article_type和word_count字段
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 
+- - 重排页面区块顺序:RadarChart → 关系图谱 → 快捷入口 → 功能入口
+- - 移除WisdomTips组件引用及五个废弃区块(cognition-summary, highlight-card, tips-list, quick-actions, bottom-spacer)
+- - 创建DimensionArticles共享组件,遵循DimensionTasks/DimensionActivities/DimensionProducts模式
+- - 智页面推荐阅读区域改用DimensionArticles组件,去除模板重复
+- 
+- - permissions: nutritionist增加diet:*权限, 组级权限匹配(无冒号prefix)
+- - router: rewards perm改family:rewards, 新增wishes路由, 审核菜单perm细分(audit:package/guide/vendor)
+- 
+- - RelationshipQualityController: 注入UserMapper,getHealthAlerts/getMilestones
+-   从JWT token推导familyId,不再强求请求体传familyId
+- 
+- - 后端: DatabaseInitializer新增interaction_logs/relationship问卷表
+- - 后端: FamilyMember实体新增关系质量相关字段
+- - 前端: interaction-log.vue + relationship-questionnaire.vue页面
+- - 前端: family-members.vue关系编辑增强
+- - 前端: wisdom_temp/下5个临时页面
+- - 前端: pages.json注册新页面路由
+- 
+- - api.js: 移除danshopRequest/goodsCategory,所有danshop*函数改用request()
+- - coupons.vue: 添加statusClassMap computed替代方法调用
+- - upgrade.vue: 修复template单根元素+重新缩进
+- 
+- - 快捷操作区添加'返回首页'按钮及 goHome() 方法
+- - 添加 jest/playwright 测试配置
+- 
+- - 修复 membership/upgrade.vue 模板多根节点错误(wrapper 包裹)
+- 
+- - 表格新增列: 封面图/活动类型/地点/费用(元)/人数
+- - 复用 /api/admin/articles/upload/image 上传接口
+- - 价格前端用元展示,后端存分
+- - 后端 ActivityService 无需修改(已支持所有字段)
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - Removed standalone #pillars section
+- - Removed nav link for #pillars (now accessible via 浠艾福)
+- 
+- - Renamed: 幸福三支柱 → 幸福支柱
+- - Renamed: 四大核心能力·数据到行动的闭环 → 核心能力
+- - Renamed: 五行相生相克 · 五维动态平衡 → 能量维度 (subtitle: 五大能量维度 · 动态平衡)
+- - Updated nav with new names and order
+- 
+- but the IntersectionObserver in main.js did not include .pillar-card in
+- its querySelectorAll list. The cards were never observed and never got
+- the .visible class, making them permanently invisible.
+- 
+- Three pillar cards with mapping to five dimensions:
+- - 衣食无忧 → 身 + 富 (保命保财, 家庭物理底盘)
+- - 受人尊敬 → 智 + 行 (内外兼修, 社会价值彰显)
+- - 子女传承 → 心 + 智 (爱与智慧, 传承有质量)
+- CSS: responsive pillar card layout with hover effects, dimension badge colors matching the five-dimension scheme, mobile breakpoints at 768px and 480px.
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 衣食无忧 → 身(根基)+ 富(源泉)
+- - 受人尊敬 → 智(内核)+ 行(外显)
+- - 子女传承 → 心(纽带)+ 智(质量)
+- 新增映射逻辑解读行,清晰说明每个目标如何落地到五维行动体系。
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 身强体健(身 · 主动健康):健康是一切幸福的根基
+- - 关系和谐(行 · 人际和谐):家庭幸福源于人际和谐
+- 原有三支柱(衣食无忧/子女传承/受人尊敬)保持不变。
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - dimension-config.vue: health norm config table with el-dialog edit
+- - data-source-config.vue: health data source CRUD table
+- - 3 unit test files (DimensionScoreService, ProductOrderService, DifySyncService)
+- - router: add /health-norm-config and /health-data-source routes
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- growth_plans/growth_records/task_templates等表,以及后端DTO/Entity/Service/Controller、
+- 前端页面和文档中的对应引用。
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - EMI: emotion_score, resilience_score, stress_coping_score, self_awareness_score
+- - Big Five: openness, conscientiousness, extraversion, agreeableness, neuroticism, big_five_overall_score
+- Also cleanup: remove leftover merge conflict markers from DatabaseInitializer and delete legacy UserAddressController (superseded by new module).
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 移除index.vue内联splash覆盖层(由独立splash.vue页面替代)
+- - 新增tab-transition.vue组件:五维品牌过渡(行/身/智/心/富)
+- - 5个tabbar页集成tab-transition:onShow时显示1.1秒过渡
+- - 修复health-dimensions.vue的getSpokeStyle方法调用兼容性
+- 
+- - 会员体系: MembershipService, PackagePaymentService, 会员升级/续费接口
+- - 推广裂变: ReferralLeaderboard(排行榜), InviteMilestone(里程碑), Coupon(优惠券)
+- - 成长任务: GrowthTask + GrowthTaskLog 实体/Service/Controller
+- - 分佣扩展: CommissionService 新增分佣逻辑
+- - 定时任务: LeaderboardWeeklyResetTask 每周排行榜重置
+- - 数据库: schema.sql 新增相关表结构
+- Frontend(小程序):
+- - 会员/推广: upgrade.vue, promotion/index.vue, invite.vue, leaderboard.vue
+- - 优惠券/成长任务: coupons.vue, daily-tasks.vue, onboarding.vue
+- - 导航/API: ProfileMenu 新增入口, api.js 新增接口
+- Admin(管理端):
+- - 优惠券管理 CouponManagement.vue
+- - 成长任务管理 GrowthTaskManagement.vue
+- - 推广管理 PromotionManagement.vue
+- - Layout/路由: 新增管理菜单项
+- 测试:
+- - e2e: test-promotion-flow.sh 推广流程测试脚本
+- 
+-  && echo DONE
+- - Product list: ProductController/Service, DimensionProducts component
+- - AI recommendations: RecommendationService (tag-based LIKE), DifySyncService (TODO)
+- - Energy on purchase: NOT implemented - ProductOrder.pay() doesn't call awardEnergy()
+- - Proposed improvements documented in Section 8.2
+- 
+- - Frontend: promotion pages (team list, invite), SharePoster component, API helpers
+- - pages.json: add /promotion/share route
+- 
+-   to design doc spec (growth/sleep/vision/immunity/nutrition/gut/exercise)
+- - Includes: DB migration (3 tables), entity remodel, percentile engine,
+-   data source tier priority, gut flora report mapping
+- - Design spec: 7-dim model definition, mapping matrix, architecture notes
+- 
+- - 后端: family_members 主表 + relationship_types 配置表+种子数据
+- - 后端: 手机号关联已注册用户, capability_role→权限映射
+- - 前端: add-member.vue 统一添加入口, family-members.vue 改版
+- - 前端: store新增switchToMember/switchBackFromMember
+- - 前端: index.vue 修复 _doInit 方法位置, health-report.vue 修复:class方法调用
+- - 管理端: RelationshipTypes.vue CRUD完整功能
+- - 编译通过, AGENTS.md 更新验证策略
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 新增 RelationshipPicker.vue 可复用组件(自动加载关系类型列表,v-model 双向绑定)
+- - add-member.vue 改用 RelationshipPicker 替代内联 picker
+- - family-members.vue 增加编辑成员关系类型功能(弹窗+保存)
+- 
+- - docs/运营推广设计/IMPLEMENTATION_PLAN.md: 完整实施计划(19个待办事项,含验收标准、QA场景、引用路径)
+- 功能范围:
+- P0(补全占位): 分享邀请卡、推广团队页、微信转发
+- P1(激活+变现): 新手任务、每日任务、优惠券系统
+- P2(裂变放大): 邀请里程碑、推广排行榜
+- 含管理端3个页面
+- 分支: cfclub
+- 
+- - 自己出题自己答四步交互流程
+- - 训练中心 2 游戏入口(舒尔特+猜数字)
+- - 认知报告 7→6 维修正(DAN六维标准)
+- - FamilyRelationGraph wisdom 支持
+- - Phase 2 待办清单
+- 
+- - DB: health_dimension_score, health_data_source_record, health_norm_reference tables
+- - Entities: HealthDimensionScore, HealthDataSourceRecord, HealthNormReference
+- - Mappers: HealthDimensionScoreMapper, HealthDataSourceRecordMapper, HealthNormReferenceMapper
+- - Services: HealthDimensionScoreService, HealthDataSourceRecordService, DimensionScoreService
+- - Controller: HealthDimensionController with /overview, /upload, /questionnaire, /history endpoints
+- - Frontend: pages/body/health-dimensions.vue with CSS radar chart
+- - Gut report integration:肠道健康评分 saved as body dimension score
+- - API: getDimensionOverview, uploadDimensionScore
+- Compile fixes (pre-existing bugs blocking build):
+- - DimensionScoreVO: add 5-arg constructor for DEFAULT_DIMENSIONS
+- - HealthReportController: add BigDecimal import, Integer->BigDecimal conversion
+- - DatabaseInitializer: fix batchUpdate(Object[][]) -> Arrays.asList(Object[][])
+- - Result.ok() -> Result.success() in EmotionCheckinController, MindController, TraditionalMirrorController
+- - AIService: add moodScore, emotionType, stressLevel fields to EmotionCheckin entity
+- Other additions from previous session:
+- - EmotionCheckin flow (controller, service, mapper, DTOs)
+- - BaziReadingTemplate and NumSoulConfig entities with seed data
+- - HealthReportPermission entity and mapper
+- Backend compiles: mvn clean compile BUILD SUCCESS
+- Frontend: pages.json + api.js + health-dimensions.vue + food-list.vue
+- 
+- - Web端: Activities.vue重写,使用api/activity.js封装,完整CRUD+分页+状态筛选
+- - Web端: ActivityReview.vue重写,实现真实审核通过/驳回(draft→publish/reject)
+- - Web端: 新增api/activity.js(6个API函数)
+- - 小程序: 新增vendor/product-edit商品编辑页(创建+编辑双模式)
+- - 修复: 移除Vue文件中直接axios调用和可选链?.
+- 
+- - 22个问题精简为11个,聚焦家长最关心的核心问题
+- - 健康档案类问题从纯菌群检测改回健康数据中心定位
+- - 删除过技术化的16S rRNA、过度细碎的多个家庭/长辈问题
+- 销售文案:
+- - 对标滴滴企业版痛点-方案-数据三段式结构
+- - 面向家长群体,5个痛点覆盖散装育儿/健康管理/成长记录/夫妻沟通/服务商选择
+- - 书宁老师 13701366188
+- 
+- - 新增菌群检测适用年龄/周期/技术科普、精准健康方案、
+-   规划师服务、五维评估流程、多孩管理、长辈使用、
+-   付费模式、AI教育对比、五行应用、数据安全等问答
+- - 前端可见#faq区同步扩展至20条,内容与结构化数据一致
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - Add ShoppingList, ShoppingListItem entities
+- - Add FollowUp entity
+- - Add UserFoodPreference entity
+- - Add corresponding Mapper interfaces
+- - Update DatabaseInitializer and Food entity
+- 
+- - 营养师健康报告/指标管理页面
+- - 新增营养映射管理页面(NutritionMappings)
+- - 路由配置更新支持营养功能
+- - Layout布局适配
+- 
+- - 新增健康报告详情页(body/health-report.vue)
+- - 家长首页(parent-index)大改版,增加营养板块
+- - 扩展API接口支持营养功能
+- - pages.json路由配置更新
+- 
+- - 扩展健康报告分析服务(肠道菌群/营养评分)
+- - 饮食推荐服务完善(季节食材过滤/候选人筛选)
+- - 数据库初始化增加营养相关表
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- parent-index.vue / child-index.vue 集成引导浮层+storage 触发
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 发现页:emoji 4 卡片替换为五维价值矩阵(身🌏心🔥智⚡行🌿富💧)
+- 角色切换:transition fade out-in 0.3s 淡入淡出
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 新
+- - feat(faq): Add FAQ section with 8 Q&As + wired FAQPage schema
+- - feat(stats): Add social proof stats bar (120K+/40K+/1K+)
+- - feat(testimonials): Add testimonial section with 3 user review cards
+- - feat(cta): Add 扫码体验 CTA button in hero linking to #contact
+- - feat(content): Deepened DAN and 菌群检测 product card descriptions
+- 
+- web: 强化家庭会员概念 - 产品概览增加会员制副标题,角色卡标注会员主体
+- web: 文案覆盖成人用户,评估维度明确为身智心行
+- web: 核心功能重构为识别诊断→个性化方案→跟踪执行→成果检验闭环
+- web: 核心功能改为功能闭环(含导航和页脚)
+- web: 幸福三支柱改为平台角色并锚点到#roles,五维幸福维度改为幸福维度
+- web: 顶部核核心产品标签改为产品概览,下区分两个核心产品
+- web: 移除三支柱卡片,内容合并进产品区引言
+- web: AI区标题改为六大AI引擎,专业知识库+大模型
+- web: 统计数据改为3/4/5/6并添加锚点链接
+- web: 核心产品替换健康好水为精准营养方案
+- web: 小程序码放大至180px便于扫码
+- web: 客户角色卡替换SVG占位符为真实小程序码
+- web: 添加浠艾福小程序码(cf.jpg)到联系我们区域
+- 上传文件至 'web'
+- web: 五维卡片SVG插图 - 船体上宽下窄/¥抽象为帆/鱼放大
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 2. uploadReport: gut_flora段补充symptoms设置+ParsedIndicator新增symptoms字段
+- 3. 新增UserNutritionProfile模块(Mapper/Service/Controller),MealRecommendService改用数据库偏好
+- 4. 小程序新增recipe-detail.vue和preference.vue+pages.json注册+api.js接口
+- 5. filterCandidates增加卡路里上限过滤(>2400kcal排除)
+- 
+- - 行维度重新定义为人际和谐(关系建设)
+- - 新增幸福三支柱章节(衣食无忧/子女传承/受人尊敬)
+- - 新增五行相生相克关系说明
+- - 新增企业官网介绍与目录结构
+- - 新增 nginx 部署配置说明
+- - 更新公司及产品介绍对齐官网文案
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Plan covers: 5 tasks — skeleton, Canvas lines, interaction, unit tests, integration verification.
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - View layer (flexbox) for nodes — conditional layout per member count
+- - Canvas layer (type=2d) for self-to-other relation lines
+- - Energy value mapped to avatar size (not ring progress bar)
+- - Native View @tap replaces manual Canvas hit detection
+- - Removes: polarLayout, drawMember, drawMemberLegacy, drawMemberShape, drawEnergyRing, initCanvas, onCanvasTap
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - FamilyInvitation entity + mapper(邀请令牌)
+- - FamilyInvitationService(生成/校验/接受/合并/转让)
+- - 5个API端点:/generate, /validate, /accept, /check-family, /transfer-admin
+- - WechatService.generateWxacode() 小程序码生成(降级ZXing QR)
+- - DatabaseInitializer 添加 family_invitations 表迁移
+- 新增小程序端:
+- - pages/invite/join.vue(扫码落地页:登录+身份选择+合并)
+- - App.vue handleScene() 处理 wxacode 场景值
+- - api.js 新增 5 个 API 方法
+- - pages.json 注册邀请页路由
+- 数据流:扫码 → scene=invite={token} → App.vue解析 → 跳转join页
+- → 登录 → 选身份 → 调/accept → 加入成功
+- 
+-   ProfileHeader (user card + energy + role switch)
+-   ProfileStats (action data + wealth data + referral code)
+-   ProfileBadges (badge grid with API/local fallback)
+-   ProfileGrowth (growth report card)
+-   ProfileMenu (menu list + password modal + logout)
+-   ProfileMenu emits invite-generate to parent to preserve shareData
+- - rewards.vue: remove duplicate loadRewards() method (second
+-   overrode the first, first correctly reads currentRole from storage)
+- 
+- - Create pages/meal/recommend.vue (AI recipe recommendation)
+- - Create pages/meal/log.vue (meal logging + nutrition summary)
+- - Register meal subpackage in pages.json
+- - Create web admin src/api/diet.js (13 API functions)
+- - Create admin Foods.vue, Recipes.vue, SeasonalFoods.vue pages
+- - Add admin diet routes to router/index.js
+- - Add '饮食管理' menu section to Layout.vue sidebar
+- 
+- - Add 4 mappers: FoodMapper, RecipeMapper, SeasonalFoodMapper, MealLogMapper
+- - Add 5 services: FoodService, RecipeService, SeasonalFoodService, MealLogService, MealRecommendService
+- - Add 2 DTOs: RecommendationContext, MealRecommendResult
+- - Add MealRecommendController (/api/meal/*) for recipe recommendations, food replacement, meal logging
+- - Add 3 admin controllers: AdminFoodController, AdminRecipeController, AdminSeasonalController
+- - Add DDL for 4 new tables in DatabaseInitializer
+- - Fix: add matchChildIdByName to HealthReportService (needed for remote PDF parsing feature)
+- 
+- - HealthReportController: POST /api/health/report/upload (multipart upload)
+- - HealthReportService: 事务写入报告/指标/菌群/疾病风险四表
+- - DatabaseInitializer: ALTER TABLE 迁移新增字段
+- - report-upload.vue: 新增PDF文件选择+上传组件
+- - health-report.vue: 新增SVG环形评分仪表盘可视化
+- - App.vue: onShow 同步 storage → Vuex token
+- - login.vue: 移除 setTimeout,登录后 Promise 链内直接跳转
+- 
+- - Article: add submittedBy, reviewedBy, reviewedAt, reviewComment, sourceType, sourceUrl fields
+- - ArticleService: submit, review, getPendingList, getUserSubmissions methods
+- - ArticleController: /submit, /my-submissions, /fetch-link, /upload/document endpoints
+- - AdminArticleController: /review, /pending-list endpoints
+- - PdfParseService + DTOs: parse gut flora PDF reports (ParsedReportResult, ParsedGutFlora, etc.)
+- - HealthReport/HealthGutFlora entities: report upload and storage
+- - HealthReportController: report upload + parsing endpoints
+- - Activity: add fields and endpoints
+- - DatabaseInitializer: schema updates
+- Frontend (mini-program):
+- - pages.json: register new pages
+- - body/index.vue + member-body-detail.vue: health report UI
+- - action/index.vue + member-action-detail.vue: activity UI
+- - mind: article-detail, index, member-mind-detail updates
+- - child-index.vue: updates
+- - api.js: new API endpoints
+- 
+- specs: add growth record rebuild design
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - ActivityControllerTest - 活动管理员 API
+- - ArticleAdminControllerTest - 文章管理员 API
+- - GuideRolePermissionTest - 规划师权限边界
+- - HealthReportControllerTest - 营养调理师 API
+- 修复编译错误 (24 个):
+- - BigDecimal->Integer 分制: GuidePackageServiceTest, GuideModuleIntegrationTest,
+-   GuideFamilyServiceTest, ServiceContentServiceTest, GuideOrderControllerTest,
+-   GuidePackageTemplateServiceTest
+- - .toList()->.collect(Collectors.toList()) (Java 1.8): ActivityControllerTest
+- - void mock doNothing: HealthReportControllerTest
+- 文档: test-inventory.md(32文件/324用例), test-report.md(485全量)
+- 
+- plan: dimension knowledge base implementation plan (17 tasks, 4 phases)
+- specs: add dimension + knowledge base design
+- 4 frontend components, 2 admin pages.
+- Co-authored-by: Sisyphus <sisyphus@ohmyopencode.dev>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - AdminAuthController: allow nutritionist/activity_admin/article_admin roles
+- - Auto-detect role on login for new role types
+- Frontend (cfc-web):
+- - Router: role-based route access control (admin bypasses all)
+- - Layout.vue: role-specific sidebar menus
+- - Add Activities.vue route for activity_admin
+- - Add .omo/ to gitignore
+- 
+- - docs: family-relation-graph plan and spec
+- - docs: mind-page dual-tab plan
+- - docs: profile-page redesign plan and spec
+- - docs: precise nurture recommendation spec
+- - test: article CRUD controller/service tests
+- - test: update test-cases and test-inventory
+- - fix: InternalApiController, DanshopMigrationService, ArticleEdit
+- - chore: cfc-web router/request/vue.config adjustments
+- 
+- 后端原未返回该字段,growthReport.monthActiveDays 始终为 0。
+- 改为统计当月有积分变动的天数。
+- Co-authored-by: Sisyphus <sisyphus@ohmyopencode.dev>
+- 
+- 
+- - 功能菜单4组分组(个人/财富/服务/设置)
+- - 邀请合并为ActionSheet选择类型
+- - 勋章墙3×3网格,优先调后端Badge API
+- - 成长报告真实数据(复用 /api/stats/child/overview)
+- - mind/index.vue: 心理Tab新增心愿单入口
+- 
+- 
+- - onCancel uses danshopOrderCancel (was productOrderCancel CFC)
+- - onConfirmReceive uses orderNo param (was orderId)
+- - onBuyAgain navigates to shop/detail (was discover/product-detail)
+- Co-authored-by: Sisyphus <sisyphus@ohmyopencode.dev>
+- 
+- 
+-   instead of calling CFC productOrderPay which had wrong order system
+- - order-list: onCancel() → danshopOrderCancel (DanShop) not productOrderCancel (CFC)
+- - order-list: onConfirm() → danshopOrderConfirm (DanShop) not productOrderConfirm (CFC)
+- - checkout: fix address selection eventChannel — both events{} and success{}
+-   callbacks now set selectedAddress (was empty stub, blocking order creation)
+- Co-authored-by: Sisyphus <sisyphus@ohmyopencode.dev>
+- 
+- - Add cfc-frontend unit tests:
+-   - API tests (115): all modules (auth, streets, user, family, tasks, points, wishes, guide, payment, mini-games, growth, energy, badges, articles, contact, vendor, product, commission, stats, AI chat, health report, danshop, etc.)
+-   - Store tests (14): all mutations + actions
+-   - Config tests (7): all environments + helpers
+-   - Format utils tests (11): formatPrice/rate/score
+- - Fix danshop route changes (/danshop/ -> /api/shop/)
+- - Fix config DANSHOP_BASE_URL (8888 -> 9081)
+- - Fix productList method (GET -> POST)
+- - Add 8 new API tests (health report, report survey)
+- - Update test-report.md (211 frontend tests passing)
+-   cfc-frontend: 153 passed
+-   cfc-web: 44 passed
+-   e2e: 14 passed
+-   Total: 211 passed (100%)
+- 
+- 
+- - Tab栏:心·心理 / 智·认知 双Tab切换
+- - 心理Tab:EMI心理四维、大五人格、每日心理、推荐阅读(心理相关)
+- - 认知Tab:DAN综合认知评分、六维雷达图、认知训练、阅读统计、推荐阅读(认知相关)
+- - Tab切换时活动/商品跟随切换维度(mind/wisdom)
+- - 推荐阅读根据文章 relatedDimensions 按Tab筛选
+- 
+- - DanshopPaymentRecord: 支付代理记录实体+Mapper
+- - DanshopMigrationService: 批量迁移用户/商品到DanShop
+- - DanshopMigrationController: 迁移触发端点
+- - application.yml: 新增wechat.danshop-notify-url配置
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - A1: FamilyEnergyBar 成员导航 — 页面已存在且已注册,无需修改
+- - A6: 修复 parent-index.vue 模板孤立 @moreProducts 标签
+- - A4: child-index.vue onDomainClick 追加 childId 参数
+- - A5: 补充运动类/艺术类/家务类成就徽章解锁逻辑
+- - A2: 移除 DimensionActivities 组件自加载 API(父组件已传 prop)
+- - A3: 移除 DimensionProducts 组件自加载 API(父组件已传 prop)
+- - A7: wuxing-sandbox preview 模式缓存随机值(Storage 持久化)
+- - A8: FamilyMemberCard roleLabel 增加前端兜底显示
+- - A9: 收紧 parent-index 降级路径成员过滤条件,移除 !c.role
+- - A10: FamilyMemberStrip scroll-view 增加固定高度 160rpx
+- 
+-   防止唯一键冲突
+- - 修复 GuideApplicationServiceTest(2用例):添加 @MockBean
+-   GuideApplicationRecordMapper,避免 addRecord() 真实写入 DB
+- - 修复 AuthControllerTest(1用例):移除不必要的 doNothing() 调用
+- - 新增 5 个测试文件(AuthControllerTest 39用例, WishControllerTest 27用例,
+-   TaskControllerTest 19用例, FamilyControllerTest 10用例,
+-   StatsControllerTest 6用例)
+- - 更新 test-inventory.md 和 test-report.md 测试文档
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 主目录仅保留当前有效文档
+- - 新增 docs/CHANGELOG.md 变更记录
+- - 行远页新增「重要关系维护」功能设计 (spec + plan)
+- - 新增 Contact 实体/API 设计
+- - 心智页能量柱改为堆叠图(心+智叠加)
+- - 私密活动可见性扩展为 visibility/visibleScope/visibleTo 三字段模型
+- 
+- - DanAssessmentResult: EMI 4 字段 (emotion_management/empathy/social_adaptability/self_motivation)
+- - User: +birthHour 出生时辰
+- - family_member_attributes: 新结构 (member_id/member_type/birth_datetime/eight_characters/wuxing_elements/mind_base_score/wisdom_base_score/behavior_modifier)
+- - schema.sql + DatabaseInitializer 全面更新
+- Phase 1: 心智计算
+- - FamilyMemberAttributeService: autoCalculate(生肖/八字四柱/五行星盘/生命灵数) + calcInnateScore
+- - FamilyAttributeController: /api/family/attributes/{update,get,calculate}
+- - EnergyService: calcChildMind=EMI 70%+先天30%+行为修正; calcChildWisdom=COG 70%+先天30%+行为修正
+- - FinanceCheckinService: +awardEnergy 接入
+- Phase 2-3: 前端
+- - user-edit.vue: +出生时辰选择器
+- - cognitive-report.vue: 认知测评报告页
+- - health_reports: child_id→user_id
+- 已实现降级策略: DAN→先天→任务完成率
+- 
+- - docs: 新增 v1.2-心智增强-版本计划.md(阶段划分/交付物/验收标准)
+- - docs: 新增 v1.2-心智增强-阶段总结.md(5路代码审计 + 需求确认 + 19项实施任务)
+- - feat: 会员与分销体系(Membership CRUD/升级/佣金/提现/邀请)
+- - feat: 财富维度页面(记账打卡/保单管理/财富首页/保险添加)
+- - feat: 教育后台管理 + 健康报告实体/服务/控制器
+- - feat: 规划师端测评管理/团队管理 + 认知评分服务
+- - feat: 前端 TabBar 5标签重构 + 身体/行动/发现/商城/教师页面
+- - refactor: 前端组件化(PageBanner/RadarChart/TaskItem/BadgeGrid/EnergyWeekCard)
+- - refactor: 后端服务拆分(EnergyService/HealthReport/Commission/FinanceCheckin)
+- - chore: 配置更新(application.yml/pom.xml/schema.sql/schema_assessment.sql)
+- 
+- - AGENTS.md: add energy/commission/article/badge module entries
+- - .env.development: remove (should not be tracked)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - Plans: module development plan, wuxing layout update, wuxing sandbox refactor, article publishing, energy system
+- - Specs: wuxing sandbox refactor design, body dimension energy, remaining dimensions energy
+- - Analysis: domain comparison (亲子 vs 个人健康/关系维护/康养/认知提升)
+- - product-plan/ directory
+- - Updated: pre-login discovery plan/spec, 需求分析文档, 小程序页面重设计划
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- New API modules: article.js, energy.js
+- Updated: admin.js (new endpoints), router/index.js (new routes), Layout.vue (nav items)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - body/: 身体健康维度页面 (body dimension)
+- - energy/: 能量中心 (energy center hub + history)
+- - mind/: 心理健康维度页面 (mental health dimension)
+- - promotion/: 推广中心 (referral/promotion hub + invites + commissions + team)
+- - games/records.vue + stats.vue: 游戏记录/统计
+- - rewards/badge.vue: 徽章展示页
+- - stats/index.vue: 统计概览
+- Updated pages: index (parent/child), discover, profile, login, shop, membership, tasks (child/review), wishes, games/list, config.js
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - Rewrite custom-tab-bar/index.vue for new TabBar pages [body, mind, profile]
+- - Updated uni.scss with new page variables and energy/promotion theme colors
+- - PlayfulButton/PlayfulCard: gamified UI primitives with wǔxíng animations
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - Move non-TabBar pages to subPackages (teacher, guide, parent, child, tasks, wishes, rewards, games, assessment, growth, shop, vendor, stats, promotion, energy, membership)
+- - TabBar changed: [index/discover/shop/profile] -> [index/body/mind/profile]
+- - manifest.json: lazyCodeLoading, name/description update
+- - package-lock.json: rename zxyj -> cfc
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 
+- 
+- 
+- 
+- 
+- 
+- 
+- 
+- 
+- 
+- 
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - Java 包: com.zxyj → com.etotem.cfc (主程序 + 测试)
+- - pom.xml groupId/artifactId/name, application.yml 数据库/JWT 配置
+- - AGENTS.md, DESIGN.md, README.md 引用更新
+- - 前端/Web package.json name 更新
+- - 分支: feature/modules-A-E-complete → cfclub
+- 
+- - 实施计划:12个任务,从DB迁移到前端集成完整流程
+- - 健康指数算法待定,先返回0占位
+- 
+- @RequestHeader 读取导致的 401 错误。改用 request.setAttribute +
+- @RequestAttribute 模式,JwtInterceptor 同时设置两处确保兼容性。
+- 
+- T12-T14: Web admin product/order/config management
+- - OrderManage.vue: admin order list with status filter, detail dialog
+- - SysConfig.vue: admin config CRUD with inline edit dialog
+- - admin.js: product/order/config API functions aligned with backend paths
+- - router/index.js: ProductManage/OrderManage/SysConfig routes + adminRoutes list update
+- - Layout.vue: sidebar menu items for product-manage, order-manage, sys-config
+- 
+- T7-T11: Frontend product system pages
+- - discover/index: real product grid replacing hard-coded cards, filter chips
+- - NEW product-detail: cover, name, price, buy flow, create order + pay
+- - NEW order-list: status tabs, order cards, pay/cancel/confirm actions
+- - NEW order-detail: order detail with bottom action bar
+- - NEW vendor/products: vendor product list with shelve/edit actions
+- - NEW vendor/orders: vendor order list with confirm action
+- - vendor/center: fixed navigation methods
+- - pages.json: registered all 5 new pages
+- 
+- - 新增 familyRole 字段支持家长身份 (爸爸/妈妈/姥姥等)
+- - 新增 Family.creatorId 标识家庭管理员
+- - 实现家庭成员管理及踢出功能
+- 模块 B: 家长邀请规划师
+- - 优化 InviteCardService.acceptGuide 自动绑定规划师到家庭
+- - 前端增加邀请规划师入口
+- 模块 C: DAN 测评购买改造
+- - AssessmentOrderController.createOrder 支持 guideId 可选
+- - 自动从 Family.teacherId 分配规划师
+- - 前端支持'由系统安排'选项
+- 模块 D: 规划师邀请家长
+- - 新增 /api/guide/parent-invite/generate 生成邀请码
+- - 新增 /api/guide/parent-invite/accept 接受邀请
+- - 自动创建成长档案并绑定规划师
+- - 前端支持邀请码生成和接受流程
+- 模块 E: 成长档案 + 测评购买一体化
+- - 新增 /api/growth/record/create-with-order 合并接口
+- - 前端增加'同时购买 DAN 测评'选项
+- - 支持创建后直接跳转支付
+- 技术改进:
+- - 统一使用 @PostMapping 规范
+- - 优化 InviteCard 生成逻辑支持 parent_invite 类型
+- - 前端支持邀请码自动识别和处理
+- 
+- - superpowers: 新增规划文档(家长端重设计/邀请码流程)
+- - 新增logo和specs文档
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - TaskStatsService: 任务统计服务
+- - GuideApplicationRecord: 规划师申请记录实体和Mapper
+- - stats包: 统计相关控制器
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - index.html: 标题和meta更新
+- - package.json: 添加element-ui依赖
+- - 移除 pnpm-lock.yaml (改用npm)
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - TeacherMessages: 规划师消息管理功能完善
+- - TeacherDashboard/TeacherFamilies: 仪表盘和家庭管理优化
+- - TeacherAssessment/TeacherTeam: 测评和团队管理增强
+- - Dashboard/GuideAudit/Users: 管理员看板和审核功能优化
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 登录页(login): 优化验证码和登录流程
+- - 心愿/任务/兑换: 交互细节优化
+- - 成长档案/规划师注册: 页面完善
+- - 新增 child-detail 孩子详情页
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 测评订单和预约: 新增字段和业务逻辑优化
+- - 成长档案: 服务逻辑完善
+- - 认证和家庭绑定: 流程优化
+- - DatabaseInitializer: 数据库初始化脚本同步
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - GuideManagementController: 完善邀请码生成和规划师申请流程
+- - TeacherMessageController: 老师消息回复接口优化
+- - GuideFamilyService/GuideApplicationService: 家庭绑定和申请服务增强
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - AdminAuthController: 锁标识从纯IP改为phone+ip组合
+- - UserService.resetPassword: 改用encryptPassword统一盐值(xzyj_salt_)
+- - 修复管理员重置密码后用户无法登录的问题
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 需求分析文档V2.0:对比需求文档与代码实现,标注完成状态
+- - 新增测试清单文档
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - router/index.js:新增teacher路由组+权限守卫
+- - Login.vue:登录页优化
+- - 修正API路径(teacher-message→guide/messages, guide/my/packages→guide/packages/my)
+- - 修正assessment API方法GET→POST
+- - 新增guidePackage/guideTask/teacherMessage API模块
+- - 新增TeacherAssessment/TeacherOrders视图
+- - 添加jest/babel配置和测试框架
+- - 更新依赖(pnpm-lock)
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - GuideOrderControllerTest:订单列表和统计测试
+- - GuideTeamControllerTest:团队管理测试
+- - GuideApplicationServiceTest:申请审核测试
+- - GuideFamilyServiceTest:家庭绑定测试
+- - GuideHierarchyServiceTest:层级关系测试
+- - GuidePackageServiceTest:套餐管理测试
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 新增SwitchRoleDTO角色切换DTO
+- - UserService重构:完整实现directRegister/isPhoneRegistered,新增switchRole/registerWithInviteCode/resetPassword
+- - UserServiceInterface添加缺失方法声明
+- - 新增GrowthPlanMapper支持成长规划表数据迁移
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 修复AuthController手机号/身份证格式校验
+- - 新增GuidePackageController /my端点解决路由404
+- - GuideOrderController查询逻辑优化
+- - GuideTeamController团队功能增强
+- - GuideController路由重定向处理
+- - DataMigrationController + MigrationController新增迁移端点
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - DataMigrationService实现9步数据迁移
+- - 更新DatabaseInitializer添加数据库表和字段迁移
+- - ZxyjApplication排除DataSourceAutoConfiguration
+- - application.yml添加sfms数据源配置
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+-   - guide_packages表: 移除IF NOT EXISTS, 新增teacher_id/template_id改为NULL
+-   - assessment_appointments表: 移除IF NOT EXISTS
+- - GuideModuleIntegrationTest: 修正套餐创建使用TaskTemplatePackage(非GuidePackageTemplate)
+-   - 使用CreatePackageDTO + taskTemplatePackageService.createPackage()
+-   - 添加cycleDays必填字段
+-   - 新增重复创建验证替代原价格校验
+- - TeacherLoginTest: 补全users表NOT NULL字段(openid, familyId)
+-   - 修正role为ENUM有效值(teacher), 使用roles字段测试多角色
+- 
+- - 所有Service实现类添加implements XxxServiceInterface
+- - MediaRecordService和StorageService(旧接口) extends对应新接口
+- - 修正接口方法签名与实现类一致:
+-   - TaskReminderServiceInterface: 基于Task实体(无TaskReminder实体)
+-   - PaymentServiceInterface: 基于PackageOrder实体(无Payment实体)
+-   - BindInviteServiceInterface: 基于GuideFamily(无BindInvite实体)
+-   - LoginAttemptServiceInterface: 内存实现(无LoginAttempt实体)
+-   - DataMigrationServiceInterface: 仅runMigration方法
+-   - PointsServiceInterface: 基于PointsLog实体
+-   - MembershipServiceInterface: 基于FamilyMembership实体
+-   - PackagePurchaseServiceInterface: 基于PackageOrder实体
+-   - PackagePaymentServiceInterface: 基于PackageOrder实体
+-   - AssessmentServiceInterface: 补充完整方法签名
+- - 新增TaskPlanServiceInterface(原缺失)
+- - mvn clean compile BUILD SUCCESS
+- 
+- - 添加成长规划师、DAN评估、小游戏任务等核心功能
+- - 更新API接口列表
+- - 添加测试和开发规范说明
+- 
+- - 新增成长规划师登录测试(TeacherLoginTest)
+- - 修复AssessmentResultMapper类型错误(DanAssessmentResultMapper)
+- - 修复Admin实体nickname字段缺失
+- - 修复AssessmentAppointment status类型(String)
+- - 修复GuideFamilyTaskControllerTest测试
+- 
+- - 添加套餐模板管理API
+- - 添加成长规划师套餐API (CRUD + 状态管理)
+- - 添加团队管理API (我的团队、邀请码)
+- - 添加订单与佣金API
+- - 添加家庭管理API
+- - 添加消息功能API
+- - 实现所有API改用POST方法
+- - 添加测试用例覆盖所有CRUD操作
+- - 更新数据库初始化脚本
+- - 添加前端管理页面 (服务类型、服务内容、套餐模板)
+- - 添加成长规划师工作台页面
+- 修改:
+- - 后端安全增强 (防暴力破解、HTTP安全头)
+- - 前端路由守卫Token验证
+- - Web管理端功能完善
+- 
+- - 实现指导师邀请码系统(GuideInviteCode)
+- - 支持指导师套餐定价(GuidePackage)
+- - 实现测评报告权限控制(上级可查看下级报告)
+- - 添加套餐购买和支付功能
+- - 创建指导师注册、邀请码分享、测评申请等前端页面
+- - 添加数据库表结构(schema_guide.sql)
+- - 修复 Java 8 兼容性问题(toList、List.of)
+- - 编译验证通过
+- 
+- - TaskService增加completeMinigameTask方法处理小游戏任务完成
+- - TaskController增加minigame-options和complete-minigame接口
+- - 前端:创建任务页面支持选择小游戏类
+- - 任务列表显示小游戏任务标识
+- - 小游戏页面支持从任务跳转并调用任务完成接口
+- 
+- 更新测试用例:添加小游戏任务类型测试(MINITASK-001~004),更新需求同步文件
+- 设计文档:在线小游戏作为任务类型的处理方案(方案B-2:category+minigameCode)
+- 修复需求同步状态,添加小游戏相关需求项
+- - 新增Wish实体/Mapper/Service/Controller完整后端API
+- - 新增小程序孩子端心愿页面(列表/创建/详情)
+- - 新增小程序家长端心愿管理页
+- - 新增Web管理端心愿管理页
+- - 删除错误的migration_wishes.sql迁移脚本
+- - 新增schema-wishes.sql建表脚本
+- 设计明确:
+- - rewards: 心愿库(家长预设奖励模板)
+- - wishes: 个人心愿(每个人的实际心愿)
+- 其他修复:
+- - 修复pages.json路由配置
+- - 修复API调用和页面跳转
+- 
+- 更新需求文档:小游戏作为任务类型的一种形式,新增小游戏类任务分类和API说明
+- 完善测试用例:新增指导师功能、小游戏模块、任务模板管理等API和Web测试用例
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 小程序端:API接口测试,构造请求数据验证响应,不进行UI点击
+- - Web管理后台:浏览器自动化测试,管理员/指导师登录,测试过程截图
+- 测试账号更新:
+- - 管理员: 13800138000/admin123
+- - 指导师: 13800138003/teacher123
+- - 家长和孩子不登录Web后台
+- 环境配置:
+- - 后端API地址: http://192.168.16.18:8080
+- - Web管理端地址: http://192.168.16.18:8081
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- sync: 更新测试说明与同步元数据
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 添加年龄空值检查
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - POST接口参数从@RequestParam改为@RequestBody适配JSON请求体
+- - Web管理端API调用从GET改为POST
+- - 小程序utils/api.js默认方法改为POST
+- 变更文件:
+- - 后端Controller: MarketController, TaskTemplatePackageController, PackagePaymentController, StreetController, MediaController, MiniGameController, StreakController, MembershipController, BindController, BindInviteController, UserController, GuideController, GuideFamilyTaskController, TeacherController, TeacherMessageController, AdminController, RewardController, RewardWishlistController, PointsController, TaskController, TaskReminderController
+- - Web API: guideTask.js, teacherMessage.js
+- - 小程序API: utils/api.js
+- - DTO: CompleteTaskDTO
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - DatabaseInitializer: 添加admin_task_templates表新字段迁移(complete_types/duration/review_type/task_type/frequency/max_frequency)
+- 
+- - 整理TASK-001~016需求清单和状态
+- - 定义Task实体字段和数据模型
+- - 汇总API接口和前端页面
+- - 标注待完善功能
+- 
+- - P1需求42%完成(19项),包括任务提醒统计
+- - 更新指导师、小游戏、打卡功能修复状态
+- - 记录数据库迁移和定时任务
+- - 添加下一步开发建议
+- 
+- - TASK-014: 任务历史记录(带状态/时间筛选)
+- - TASK-015: 任务统计分析(概览/分类/日期/家庭统计)
+- 新增API:
+- - GET /api/tasks/reminder/{childId} - 需要提醒的任务
+- - GET /api/tasks/upcoming/{childId} - 即将到期任务
+- - GET /api/tasks/overdue/{childId} - 已超时任务
+- - GET /api/tasks/history/filter/{childId} - 带筛选的历史
+- - GET /api/tasks/statistics/{childId} - 统计概览
+- - GET /api/tasks/statistics/category/{childId} - 分类统计
+- - GET /api/tasks/statistics/date/{childId} - 日期统计
+- - GET /api/tasks/statistics/family/{familyId} - 家庭统计
+- 
+- - OperationLogController改用POST方法(安全要求)
+- - Web端API调用适配POST方法
+- - 改进Layout菜单和角色显示逻辑
+- - 路由守卫改进指导师权限检查
+- 
+- - OperationLogController改用POST方法(安全要求)
+- - Web端API调用适配POST方法
+- - 改进Layout菜单和角色显示逻辑
+- - 路由守卫改进指导师权限检查
+- 
+- - 实现每日/每周重复任务设置(TASK-004)
+- - 创建RepeatTaskGenerator定时任务,每天凌晨5点生成重复任务实例
+- - Task实体添加templateId和isTemplate字段追踪模板关系
+- - 前端create-task.vue添加日期时间选择器和重复类型选择
+- - 添加数据库迁移20-21
+- 
+- - REWARD-002A: 家庭奖励库,多家长可调整积分
+- - REWARD-002B: 多孩子心愿单隔离
+- - POINT-002: 超额积分规则,支持自定义bonusRule
+- - POINT-009: 积分有效期,支持按任务设置过期天数
+- - 添加数据库迁移16-19
+- - 添加积分过期定时任务PointsExpireTask
+- - 新增操作日志功能
+- 
+- sync: 同步测试资产到 V1.2 需求
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 1. 任务分类 TASK-005: P1 → P0
+- 2. POINT-002: 提前完成奖励 → 超额完成奖励(家长制定规则)
+- 3. POINT-009: 积分每月清零 → 积分不清零,可设置有效期
+- 4. REWARD-001A: 家长填写所需积分后心愿进奖励库 (P0)
+- 5. REWARD-002A: 家庭奖励库 (P0)
+- 6. REWARD-002B: 多孩子心愿单隔离 (P0)
+- 7. DAN测评模块重构:
+-    - 测评数据来自接口(非拍照上传)
+-    - 作为测评记录,不作为孩子基本信息
+-    - 与任务、心愿平行(P1)
+-    - 删除手动录入、图片上传等需求
+- 
+- sync: 同步需求变更,新增 MODE-010 测试用例
+- - 新增 MODE-010 指导师注册与审核测试用例 (P2)
+- - 创建 .test-sync.json 记录需求同步状态
+- - 需求变更:新增 9 个需求项,修改 1 个需求优先级
+- 新增需求测试用例:
+- - TASK-012A ~ TASK-012F (已包含)
+- - MODE-008, MODE-009 (已包含)
+- - MODE-010 (本次新增)
+- 修改需求:
+- - MODE-006: P2 → P0,描述更新
+- 需求覆盖度:100% (P0/P1/P2 全覆盖)
+- 
+- - 优化UserController用户信息更新逻辑
+- - 优化login.vue登录流程和手机号检查
+- - 优化parent-index.vue导航逻辑
+- - 更新需求分析文档状态
+- 
+- - 实现连续打卡里程碑奖励及自动重置定时任务
+- - 重构控制器按功能模块分组(admin/auth/family/guide/task/reward)
+- - 修复指导师信息入库、家庭检索逻辑等问题
+- - 添加API权限校验和测试文件
+- - 创建.gitignore排除构建产物
+- 
+- - 更新后端AGENTS.md,添加街道地址功能和代码地图
+- - 更新前端AGENTS.md,完善uni-app配置和地址匹配功能
+- - 新建Web管理端AGENTS.md,Vue.js + Element UI文档
+- - 新建Superpowers AGENTS.md,AI开发工具工作流规范
+- - 新建Tests AGENTS.md,分层测试策略和状态评估
+- 
+- - getFamilyWishlist: POST /family 改为 GET /family
+- - 避免与create的POST /冲突
+- - 修正HTTP方法语义(查询用GET)
+- 
+- - 添加idx_teacher_id索引
+- - 修复Unknown column 'teacher_id'错误
+- 
+- - getMyPackages: POST / 改为 GET /my
+- - 避免与createPackage的POST /冲突
+- - 修正HTTP方法语义(查询用GET)
+- 
+- - GuideFamilyTaskController保留 /api/guide/families
+- - 避免Ambiguous mapping错误
+- 
+- - BindInviteController保留 /api/guide/bind/invite
+- - 避免Ambiguous mapping错误
+- 
+- - 将指导师相关字段迁移移到DatabaseInitializer
+-   * teacher_no - 指导师证书号
+-   * teacher_photo - 指导师照片
+-   * certificate_image - 证书照片
+-   * teacher_status - 审核状态
+- - 修复GuideController缺少UUID导入
+- 
+- - 更新auth.js优化认证逻辑
+- - 更新router添加更多路由
+- - 更新Layout优化菜单结构
+- - 更新Rewards和Tasks页面功能
+- - 更新index.html标题
+- - 更新package.json依赖
+- 
+- - 新增PlayfulButton和PlayfulCard组件 - 趣味化UI
+- - 新增指导师相关页面(套餐管理、绑定邀请等)
+- - 新增家长市场页面(套餐市场、任务计划)
+- - 新增任务创建和审核页面
+- - 新增教师端页面
+- - 新增会员中心页面
+- - 新增孩子管理页面
+- - 优化登录页面和首页UI
+- - 更新pages.json路由配置
+- - 更新全局样式uni.scss
+- 
+- - 新增BindController - 家庭绑定指导师
+- - 新增BindInviteController - 绑定邀请
+- - 新增GuideController - 指导师管理
+- - 新增GuideFamilyTaskController - 指导师家庭任务管理
+- - 新增MarketController - 套餐市场
+- - 新增PackagePaymentController - 套餐支付
+- - 新增TaskTemplatePackageController - 任务模板套餐
+- - 新增PackageOrder实体和Mapper
+- - 新增BindInviteService和PackagePaymentService
+- - 更新schema.sql和配置文件
+- 
+-   * 省市区街道四级选择
+-   * 支持v-model双向绑定
+-   * 自动加载地址路径
+- - 新增家庭地址编辑页面address-edit.vue
+-   * 集成地址选择组件
+-   * 保存家庭地址到后端
+- - 新增区域匹配页面street-match.vue
+-   * 显示街道级/区县级/城市级匹配结果
+-   * 统计各级别家庭和指导师数量
+- - 更新api.js添加街道相关API
+-   * getProvinces - 获取省份
+-   * getStreetChildren - 获取子级地址
+-   * matchByStreet - 区域匹配
+-   * getStreetStats - 区域统计
+- 
+- - Family和Teacher实体添加streetId及地址冗余字段
+- - 实现StreetService支持区域回退匹配逻辑
+-   * 优先匹配相同街道
+-   * 回退到区县级匹配
+-   * 最终回退到城市级匹配
+- - 实现StreetController API端点
+-   * GET /api/streets/provinces - 获取所有省份
+-   * GET /api/streets/children/{parentId} - 获取子级地址
+-   * GET /api/streets/{id}/match - 区域匹配
+-   * GET /api/streets/stats - 按区域统计
+- - 数据库迁移添加streets表示例数据(广东省)
+- - 修复TaskReviewDTO缺少approved和comment字段
+- 用途:
+- - 家庭和指导师按街道进行匹配
+- - 按区域统计家庭数和指导师数
+- - 支持地址四级联动选择
+- 
+- - 在DatabaseInitializer中添加runMigrations()方法
+- - 使用try-catch处理列/索引已存在的情况
+- - 支持幂等性迁移(可重复执行)
+- - 添加tasks表executor_type/executor_id字段
+- - 添加users表roles/total_points等新字段
+- - 添加children表birthday/gender字段
+- - 支持teacher角色
+- 
+- - 修复TaskPlanService和TaskTemplatePackageService中var类型推断(Jave 8不支持)
+- - 修复TaskTemplatePackageService.getPublicPackages()方法
+- - 将QueryWrapper.list()改为packageMapper.selectList(wrapper)
+- 
+- - 完善Users, Children, Tasks, Rewards, Points页面功能
+- - 集成后台API接口,实现CRUD操作
+- - 优化Layout.vue菜单结构和路由配置
+- - 更新Login.vue登录逻辑
+- 
+- - 删除不存在的/pages/index/index路由
+- - 修复login.vue中isNewUser判断逻辑
+- - 更新api.js添加新的API端点
+- - 更新pages.json和App.vue配置
+- 
+- - 新增Mapper接口: MediaRecordMapper, TeacherMapper, TaskTemplateMapper等
+- - 新增Service层: MediaRecordService, TeacherService, MembershipService等
+- - 支持多媒体上传、教师管理、会员套餐、任务模板等功能模块
+- 
+-   * JwtInterceptor将userId存入request attribute
+-   * Controller从@RequestHeader改为@RequestAttribute获取userId
+- - 修复TaskService中PointsLog字段错误
+-   * log.setUserId改为log.setChildId
+- - 新增待审核任务查询端点 GET /api/tasks/pending-review
+- - 新增MediaController、TeacherController等控制器
+- - 完善AdminController的Web管理端API
+- - 修复AdminController路由 /admin -> /api/admin
+- 
+- - 登录接口支持选择角色(parent/child)并收集生日性别
+- - 新增长按孩子卡片切换到孩子身份功能
+- - 家长端可添加孩子、切换模式
+- - 孩子端可切换回家长模式
+- - 添加数据库自动同步服务
+- 
+- - Add AGENTS.md for zxyj-backend with Spring Boot conventions
+- - Add AGENTS.md for zxyj-frontend with uni-app conventions
+- - Fix AdminLoginDTO missing password field for admin login
+- 
+- 重写schema.sql修复GBK乱码,所有中文注释使用正确UTF-8编码
+- 修复schema.sql中注释与SQL语句同行导致的语法错误
+- 将Java源文件编码从GBK转换为UTF-8,修复编译错误
+- 将项目从xzyj重命名为zxyj,更新所有包名和配置,修复selectSum编译错误
+- 删除原生小程序目录miniprogram,项目使用uni-app开发
+- 将项目名称从xzyj改为zxyj,更新所有包名和配置
+
+### 新功能
+- 健康报告三合一 - 统一报告列表/审核/代传为单页带Tab
+- 成长页新增推荐文章+推荐商品板块
+- 成长板块推荐文章/商品 + AI自动分类
+- 我的页面改为电商风格 - 订单五宫格/购物车/收货地址, 移除功能网格
+- 通关解锁管理端 - 关卡配置 CRUD/排序/启停/家庭进度管理
+- 前端组件+页面改造 - WuxingSandbox切换开关/gate-lock/gate-guide-bar/关卡中心页/parent-index+child-index门禁
+- 报告详情页统一重构为完整页面,修复上传后跳转 routeDone 报错
+- 食材戒备匹配功能
+- 新增成就页面 achievement/index.vue
+- 实现服务角色申请、报告详情、成就页面,修复占位按钮
+- 新增应季食材管理后台页面
+- 新增子维度自检题库(行6维/心自驱力自我概念/智成长型思维/富家族传承)及计分
+- 心13维分组雷达图+行6维关系域雷达图+智成长型思维加入认知雷达
+- 五维体系新增心13维/行6维/智成长型思维/富家族传承子维度字段与计算逻辑
+- 菌群功能分析——功能维度聚合+P/B比值+饮食模式+风险提示
+- 我的页面重设计为以我为中心
+- 我的页面新增个人成就统计API
+- 全量列表页支持点击列头排序
+- 全量列表支持多列排序
+- 通关解锁后端全链路 - 2表迁移+UnlockGateService(8判定)+/api/unlock/status+sandbox个人/全家门禁+5处触发钩子+管理端接口
+- 上传报告前增加责任声明勾选
+- 食材列表支持多列排序
+- 添加营养产品管理后台页面(列表+详情+菜单)
+- nutrition_product 添加 local_product_id 字段关联本平台商品
+- 新增营养产品爬虫主脚本(强制包含被gitignore的.py)
+- 新增营养产品爬虫脚本(京东/Amazon)
+- 新增营养产品推荐Controller
+- 新增营养产品推荐Service及DTO
+- 新增6个营养产品Mapper
+- 新增6个营养产品实体类
+- schema.sql同步营养产品6张表
+- 数据库迁移214-219创建营养产品6张表
+- 食材库种子数据 224 条
+- 富维度月度引导语 + 健康/成长页五维闭环体系
+- 补全健康页和成长页登录前内容
+- 行维度落地页挂载 - 五维弹窗 action 跳转到专属页面
+- 添加菌群知识库836篇文章+embedding+LangGraph集成
+- 五维详页+健康+成长页登录前品牌内容
+- 菌群知识库6疾病相关菌新增问题相关性/证据强度
+- 新增请求日志中间件 + /api/v1/logs 查询接口
+- 首页新手任务进度条置顶 + 无家庭成员空状态引导
+- 自检结果页新增一键加入今日微行动
+- 新手任务新增 COMPLETE_SELF_CHECK(提交五维自检即完成)
+- 微行动×五维联动 — micro_actions 增加维度字段与短板维度推荐
+- 个人信息所在地改为省市区三级联动并与订单联系人共享地区数据
+- 疾病风险内联编辑 + fromMap diseaseRisks 映射 + 全量编译验证
+- 报告入口切换到统一详情页
+- 统一报告详情页 report-detail(blocks 渲染)
+- 通用报告块渲染器 report-blocks-renderer
+- getReportDetail/DAN detail 返回 blocks
+- 三个落库挂点写入 report_blocks(confirmDraft/confirmUpload/编辑)
+- ReportBlockAssembler DAN 组装(score/list/text)
+- ReportBlockAssembler gut_flora 组装 + fromMap 键名转换
+- ReportBlock 实体/Mapper/Service(blocks upsert + 读取)
+- report_blocks 表迁移(通用报告展示块)
+- 报告确认后跳转方案页 + 全家报告选择+AI对话+任务生成
+- 报告确认后跳转方案页 + 全家报告选择+AI对话+任务生成
+- 五维页登录前改月度引导语 + 富页面移除底部菜单
+- 成长页面重构为干预中心 + 定期调研系统全栈实现
+- 上传后自动跳转确认页按 draftId 解析,移除本页预览/成员选择逻辑
+- 新增 JOIN 赠券种子数据 + 我的优惠券接口
+- 健康数据中心全栈实现
+- 会员页精简 - 合并续费/升级卡片、移除tab价格、个人中心按钮与徽章等高
+- 会员中心支持编辑会员等级(前端弹窗+后端update接口)
+- 健康/成长Tab功能入口重组 + 成长档案改名成长记录
+- 会员中心权益对比文案与个人中心会员卡升级入口
+- 会员升级页移除功能列表、权益对比列联动高亮、状态卡片紧凑化
+- member_upgrade_records 增加 approve_* 审核列迁移
+- 首页新增品牌定位语区块
+- 报告上传流程拆分 — 新增 /report/upload(仅上传)+ /report/parse(按草稿解析)端点,修复 uploadBaseDir BLOCKING-2 残留
+- 添加DimensionIntroCard组件 + 四个维度页插入介绍卡片
+- 登录前页面改版 - 五维品牌定位语+LoginGuideCard升级+我的页跳过入口+富维度商城预览
+- 富维度页面重构为财富之泉主题
+- 小程序 index.vue 增加 LIFETIME 检测与会员态修复(终身会员隐藏续费入口、显示永久有效)
+- 子维度改为水滴水满样式
+- 新增财富能量环组件
+- 小程序 upgrade.vue 增加 LIFETIME 权益对比列(灰色不可购买)与状态卡片终身会员展示
+- 首页动态改为单行跑马灯滚动, 快捷按钮放大
+- Web MembershipCenter.vue 增加终身会员统计卡片与标签样式
+- AdminController 增加终身会员概览统计、候选人查询与审核授予接口
+- 新增LifetimeStatsMapper消费/销售滚动365天聚合查询
+- getPricingPlans 改读membership_levels并过滤LIFETIME(下线sys_config价格)
+- 平台公告功能 - 动态页显示平台消息+管理员公告管理
+- 插入LIFETIME终身会员等级行(migration 204)
+- membership_levels 添加原价列并幂等同步价格(migration 203)
+- 会员等级实体/DTO增加原价字段, 升级记录增加审批字段
+- 商品详情底部按钮布局调整 - 海报靠左、加购物车/立即购买靠右
+- 手机号快捷登录 - 使用微信 getPhoneNumber 授权获取手机号
+- 商品推荐支持空维度返回全量推荐
+- 推荐商品/推荐阅读改四列网格; fix(backend): 家庭成员列表按userId去重
+- 去掉'我的'页面 Tab 切换过渡页
+- 管理端CF值余额与流水查询页面
+- 新增管理端CF值余额与流水查询接口
+- 购买商品发放CF值并激活推荐人分润
+- 活动签到发放CF值
+- 新增CF值表结构迁移与存量佣金迁移
+- 新增PlatformPointsService管理CF值余额与流水
+- 新增CF值余额与流水实体及Mapper
+- pages.json 注册会员 pay/result 页面
+- 新增支付结果页 result.vue(成功态+赠券/失败态+续付)
+- 新增订单确认页 pay.vue(明细/优惠券/拆单提示/虚拟支付逐期)
+- /api/membership/plans 返回原价字段(originalYearly/Monthly/Quarterly)
+- 会员原价配置(sys_config 新增4键: family/premium 年费月费原价)
+- 商城首页搜索栏加购物车入口(带角标) 财富页移除购物车服务项
+- 商城订单快捷+推广中心快捷+购物车/订单角标
+- 任务首页重设计 - 三Tab布局 + 家庭成员任务分配 + 接受/拒绝 + 关系分数调整
+- 任务首页重设计 - 支持分配任务给家庭成员,接受/拒绝机制及关系分数调整
+- 我的页面服务区添加商城和购物车入口
+- 将过渡页从首页移入独立页面 pages/splash
+- TabBar 重构 - 4Tabs(首页/健康/成长/我的) + 中间五维启动器 + 自定义TabBar
+- 成员详情页接入以成员为中心的关系条
+- pairwise接口API + 成员条centerMemberId视角模式
+- 成员条空状态引导 + 长按菜单升级关系现状Action Sheet
+- 家庭成员卡片增加关系现状三色点
+- 关系pairwise接口(以成员为中心) + VO补齐沟通评分+isSelf
+- 问卷提交时同步pairwise关系评分到family_relationships
+- family_relationships表增加关系质量评分三列
+- 健康饮食菜单添加 LangGraph 管理入口
+- 报告解析管理端页面 - 类型管理/指纹自学习/解析器导入/未知聚类
+- 报告解析 agent 接入指纹识别与自动标注
+- 报告指纹解析系统 - 类型注册/指纹识别/未知聚类/解析器导入
+- 小程序同意/拒绝+参与成员多选+pending展示
+- 管理端挑战评分配置页+AdminChallengeScoreConfigController
+- respond端点+创建去门控+list返回myStatus
+- create改pending+respondChallenge+打卡结算口径收紧
+- ChallengeScoreService方向性评分结算引擎
+- EnergyService新增awardEnergyByCode按维度code发放
+- 新增participant/方向分数/评分配置实体与Mapper
+- 参与机制迁移-新增participant/方向分数/评分配置表
+- 恢复商品会员价 - 管理端设置 + 小程序详情页展示
+- 规划师端代上传健康报告页面
+- 规划师营养师代上传健康报告
+- 添加饮食模块 AI 接口
+- 添加饮食模块 AI 接口
+- 添加饮食模块 AI 接口(食材识别+菜单生成)
+- 线上服务商品管理闭环 - 服务者/时段配置UI + nutritionist服务商类型
+- 饮食模块完整前端页面(7个页面)
+- 饮食模块前端页面(首页+调研表)
+- 饮食模块后端 API 完整实现
+- 扩展 BeijingNutritionService(食材推荐方法)
+- 法律合规补全 - 隐私政策/用户协议/同意记录/注销/数据授权/日志脱敏
+- 家庭挑战管理页仅家长可访问
+- 家庭挑战孩子端打卡入口 + cancelled 状态显示修复
+- 家庭挑战到期惰性结算 + 角色校验(家长管理/孩子打卡)
+- 家庭挑战结算发放能量点奖励并标记成员完成
+- 商品详情页按会员身份显示会员价/原价,支付价按身份计算
+- 合并生成含目录的完整成书稿(写法3完整版,16章5089行)
+- 第3-7章按写法3重写(身/智/富/行/心五维)
+- 供应商管理(CRUD + 侧边栏 + 入库单选择供应商)
+- 订单管理页适配配送履约
+- 商品配送与履约前端适配
+- 优惠券表单加商品选择器ProductPicker,替代手输商品ID
+- 创建会员权益独立配置表 + 隐藏非会员会员价 + 优惠券会员提示
+- 商品配送与履约扩展(自取/线上服务)
+- 库存管理 - 入库单商品搜索/日期/金额 + 手动出库 + 订单快递费
+- 库存管理 - 入库单日期/金额/经办人 + 手动出库 + 订单快递费
+- 家庭邀请流程改为申请审批制
+- 库存管理 - 路由+侧边栏
+- 库存管理 - ProductManage.vue增加库存按钮+弹窗
+- 库存管理 - InventoryInboundCreate.vue
+- 库存管理 - InventoryManage.vue(4标签页)
+- 库存管理 - 管理端API调用
+- 库存管理 - 订单集成(支付/取消/退款库存流水 + bundle穿透)
+- 库存管理 - AdminInventoryController
+- 库存管理 - InventoryService
+- 补全饮水打卡 + 综合健康打卡页面 + 管理后台打卡管理
+- 库存管理 - Mapper接口
+- 库存管理 - 实体类(5个新实体 + Product/ProductSku扩展)
+- parsePreview 先调 LangGraph 解析,失败回退 Java
+- 创建 POST /api/v1/report/parse 接口
+- 家庭加入改为申请审批流程 + familyId 后端派生(移除前端 familyId 存储依赖与冗余传参)
+- 创建 ReportParseAgent(算法解析 + LLM 兜底)
+- 提取 PDF 解析核心模块到 LangGraph parsers
+- 家庭加入审批流程与统一知识库DB化(合并rebase后本地改动)
+- 优惠券积分兑换入口+商品详情兑换区块+发券提示+会员权益展示
+- 优惠券配置表单扩展+发券记录页+移除商品会员价输入
+- 管理端发券记录查询grant-log接口
+- 商品统一价停用memberPrice(活动侧保留)
+- 积分兑换优惠券exchangeCoupon+优惠券兑换/查询4端点
+- 新增家庭成员时按POPULATION规则发放人口券(成员有账号发自己,无账号发家庭创建者)
+- PERIODIC会员券每日5:00定时补发任务+listActiveMemberUserIds
+- 会员开通/续费/赠送时发放JOIN会员券(试用除外)
+- CouponService支持三类型核销+幂等发券grant方法与查询(8单测)
+- Coupon实体扩展会员券字段+新增CouponGrantLog实体与Mapper
+- 迁移164 coupon表扩展会员券字段+新建coupon_grant_log发券流水表
+- 虚拟支付失败错误上报后端日志,便于定位支付未完成根因
+- 家庭挑战自定义管理
+- report-confirm 补上 auto-create-inline 面板内嵌表单基础样式
+- report-confirm 面板样式 + 清理 auto-create-card 死样式
+- report-confirm 被检测人选择整合进基本信息卡片(内联面板+移除独立卡片)
+- 商品详情页新增SKU规格选择器
+- AiGateway.generateQuestionnaire LangGraph 接入 + fallback mock + python.base-url 指向 ai.etotem.com.cn
+- 注册引导-无家庭引导组件接入核心页
+- 注册引导-活动报名接入就地补充回写
+- 注册引导-个人中心个人信息完善卡片
+- 注册引导-user-edit新用户流程最小化
+- 注册引导-回写工具profile-backfill
+- 注册引导-个人信息使用关联表profile-field-usage
+- 注册引导-前端api新增backfillProfile
+- 注册引导-新增统一backfill回写接口
+- 注册引导-注册路径不再自动创建家庭
+- 注册引导-登录响应新增needsFamily标记
+- 关系问卷评分算法替换 mock — 维度加权/反向/降级/缺题处理 + 5 个单测
+- FamilyMemberService 补 isCallerInSameFamily/isCallerInFamily 跨家庭校验方法
+- 会员退款ORD分支 + iOS退款问询按官方协议接入
+- 指标标题显示共N项/M项异常,异常数红色
+- 指标输入框颜色标注异常 + ?帮助按钮弹窗显示指标说明
+- 书架封面有图时底部叠加文章标题
+- 新增家庭详情/地址更新/区域统计 API 封装
+- 新增按街道ID统计家庭/成长规划师数量接口
+- 商品赠送会员功能 - 成长档案关联商品配置(GrowthArchiveProduct) + 后端 Controller/Service/Mapper/Entity + 前端 ProductEdit 商品编辑页
+- 商品赠送会员-管理端配置区块
+- 会员中心页与会员价引导交互
+- 活动/商城会员价展示、分转元显示与未登录会员状态处理
+- 活动详情支持游客浏览与会员价 - detail(id,userId) 解析会员价
+- 活动模块升级——付费报名订单/审核发布流/总结资料
+- 健康报告确认页指标按类别分组折叠, 支持全部展开/折叠与需处理计数
+- 五维家庭自检问卷(P0-1) + 五行相生寻源建议引擎(P0-2)
+- 接入现网/沙箱双 AppKey 并补充消息推送 Token 校验
+- 活动详情报名/签到/分享海报需登录,注册弹窗改为自定义遮罩去内置按钮
+- 管理端虚拟支付道具映射CRUD页面
+- 小程序活动创建表单添加会员价输入
+- 活动管理添加会员价字段(创建编辑表单+列表展示)
+- 活动详情页分享改为生成海报(复用ContentSharePoster组件)
+- 前端接入小程序虚拟支付
+- 商城入口统一指向商品商城/移除积分商城+推荐商品文案统一+商城标题'浠艾福商城'
+- 虚拟支付超时兜底任务 pending订单query_order确认+超时关单,防success回调丢失
+- 支持集体总合与全员个人双目标模式
+- 订阅订单改虚拟支付
+- 放开已上架文章和活动的编辑权限,便于初期维护
+- 会员订单改虚拟支付 createOrder返回VirtualPayParams,发货推送复用processPaymentCallback,修正等级硬编码FAMILY
+- 测评订单改虚拟支付 payOrder返回VirtualPayParams保持pending,服务端计价,发货推送markPaid+预约确认+佣金
+- 文章详情阅读时长每次进入从0开始计时,10秒上报一次
+- VirtualPayController 接收虚拟支付消息推送 /api/internal/virtual-pay/notify(公开) + ios-refund-query,返回微信ErrCode协议
+- VirtualPayService paySig签名/参数生成/发货退款推送处理+sessionKey持久化 JDK原生HMAC-SHA256零新依赖,双签名(paySig+signature),前缀路由,迁移144
+- add counterfeit-warning product page, gut-kit image, HRW article image, update sales index
+- 虚拟支付道具映射 实体/Mapper/Service/管理端CRUD接口
+- 新增wechat.appkey与virtual-pay-env配置 小程序虚拟支付paySig签名密钥与环境(0现网/1沙箱)
+- 迁移143 创建virtual_goods_config道具映射表 测评/会员/订阅虚拟支付道具映射,UNIQUE(goods_type,biz_key),幂等
+- 权益对比区分家庭/高级会员(高级享每周管家服务)+ 家庭会员仅年付、高级会员月/年付费档位
+- 微信内容安全检测(msg_sec_check + img_sec_check)
+- add DAN professional assessment product page with 4-tier packages
+- 活动中心增强——管理员活动管理+已报名状态标记+报名截止时间+未报名签到扣'行'维度能量
+- add payment to water ionizer and turmeric product pages
+- add gut-testing product links to articles
+- sticky bottom payment bar like e-commerce
+- 推荐阅读点击封面直接进入文章详情页
+- save contact info to package_orders, keep SVG flow only
+- ArticleBookshelf 改为竖版封面风格,一行3本横向滑动
+- gut-testing 检测流程改用SVG流程图,8大检测维度补充商品解析长图
+- add recipient address field to order form
+- 新增公共配置读取接口 PublicConfigController
+- 五维页面推荐组件统一——推荐阅读改用ArticleBookshelf、商品推荐改用DimensionProductList
+- gut-testing 产品页补充商品图片(谷禾肠道菌群检测专业版)
+- add memory-gut, water-unseen articles and gut-testing product page
+- 商品详情加分享海报按钮+scene邀请码解析
+- 文章详情去掉分享按钮,海报传维度/简介/邀请语
+- ContentSharePoster 参数化五维配色+简介/邀请语/价格行+居中弹窗
+- SharePoster 家庭邀请卡加 familyName 文案与邀请语,字号缩小2px
+- 屏蔽在线开通会员功能,改为管理员后台设置
+- 重新设计家庭成员页面 - 暖橙卡片风格 + 底部操作栏 + 直接邀请海报
+- 文章评论审核前端——RadarChart/article-detail/order-list/article.js/CommentReview
+- 文章评论审核功能——AdminArticleController/ArticleCommentController/ArticleCommentService
+- 活动详情页新增报名表单 Modal(家庭成员选择 + 手动输入 + 合计)
+- activity_registrations 表添加 registrant_name/registrant_phone 列, child_id 改为可空
+- 活动报名支持批量提交 registrants 列表
+- JwtInterceptor 无token改为设匿名用户(userId=-1)放行,不返回401
+- complete coaching integration - rename characters (小付/小艾/小茜), action card rewrites, dialogue layer updates
+- mp-html 富文本组件替换微信原生 rich-text
+- 重新设计底部tab智图标为交叉斧剑
+- 重新设计底部tab身图标为弯曲胳膊
+- api请求失败时console打印完整URL以方便排查
+- 替换底部tab富图标为水滴设计并修正引用
+- 替换底部tab心图标为爱心设计
+- 替换底部tab智图标为大脑设计
+- 替换底部tab身图标为臂肌设计
+- 替换底部tab行图标为嫩芽设计
+- add withdrawal rules display on withdraw page per review guideline
+- add AI disclaimer at bottom of health coach chat page
+- integrate RecommendedSection into all 6 dimension pages
+- add qr code image to project card
+- add project introduction card SVG for sales directory
+- add service role application review page and admin endpoints
+- add service role apply entry in ProfileMenu
+- add service role apply page with multi-select, upload, address
+- add API functions and page registration for service role apply
+- add ServiceRoleApplicationController with apply/upload/admin endpoints
+- add ServiceRoleApplicationService with submit/approve/reject
+- add ServiceRoleApplication entity, mapper, DTO + User fields
+- add service_role_applications table and User status fields
+- 文章详情页完整功能 — 自动完成阅读+评论系统+AI答题
+- add gut microbiota-obesity article with 3 reference screenshots + track HRW sleep screenshots
+- 过渡页最少800ms最多3s — 集中计时到tab-transition组件
+- 完整记账功能 — 收支管理+分类统计+月度概览
+- 上传健康报告页面两种上传方式差异化重构
+- 财商打卡页面完整功能实现
+- 家庭成员管理邀请功能增加分享邀请卡
+- add hydrogen-water-sleep article with 5 PubMed reference screenshots
+- insert scientific figures into pancreatitis and leaky-gut articles
+- 家庭成员关系卡片增强 — 关系标签+联系+辈分+长按菜单
+- 管理后台能量行为配置页面
+- 能量行为配置系统 — 可配置每种行为的能量发放规则
+- content share poster with wxacode for product/activity/article pages
+- 任务添加五维维度参数支持
+- 切换地址系统从 consignee 到 user_address
+- add pancreatitis and leaky-gut articles, update screenshot plan
+- insert 14 academic reference screenshots into 4 articles
+- update stroke risk factors section and screenshot plan
+- remove read-complete button, add auto reading time tracking
+- add report-reading-time API for cumulative reading tracking
+- add article_id and updated_at to article_reading_records
+- 推荐活动卡片高度减半,布局更紧凑
+- 添加浠艾福会员卡介绍PPT
+- 科普文章嵌入参考文献截图(14篇健康科普嵌入配图)
+- 行页面重构 - 能量沙盘+成员选择条+圈子卡片
+- index.vue 兼容 PREMIUM 等级 - 对比表四列 + 等级列表按钮
+- upgrade.vue 支持 FAMILY + PREMIUM 等级切换
+- plans.vue 动态加载会员等级 + FAQ 更新
+- /api/membership/plans 使用 sys_config 价格 + 推荐标记
+- MembershipService 支持 PREMIUM 等级
+- 文章/商品/活动详情页增加分享功能 + 邀请码自动绑定
+- Add invitation QR code modal to parent index page
+- redesign tab icons to match 五行沙盘 emoji themes
+- 推荐阅读改为书册风格 ArticleBookshelf 组件
+- redesign all 5 tab icons with consistent style (五维×五行)
+- 扩展测试数据至五维全覆盖(15条记录)- 活动/文章/商品各3条,覆盖身智行心富五维 - SeedsController.java导入修复
+- admin product min_quantity filter, activity detail mobile adaptation, web articles & changelog updates
+- 添加独立测试数据初始化脚本和接口
+- refactor upload to 2 methods (file/photo), add collectionDate, indicator dedup, image support
+- 创建独立圈子发现页 /pages/discover/circles
+- 行首页 OctopusGraph → 圈子区块替换
+- 添加 carol.png 和 hxy.png 头像资源
+- add Enagic product intro with images, QR referral tracking, gut/meta articles, and update existing health articles
+- 勋章管理后台页面 + 家庭排名 + 勋章墙导航
+- 家庭关系图视觉重编码 (信任/沟通/亲密度) + 身份形状 + 自导航维护页
+- 北京菌群报告采集与精准营养推荐
+- add 3 buying guides - water purifier, prebiotics, probiotics
+- add ERW/HRW gut microbiome section with 3 new references (Tamaoki 2021, Xie 2022, systematic review 2025)
+- ProductEdit 添加最小购买数量(minQuantity)输入框
+- minQuantity DTO 字段映射 + 多商品下单产品级校验
+- 2x2 grid layout + annotation overlays for 4 clinical-evidence screenshots
+- 切换孩子前检查家庭成员中是否有child角色
+- 微信登录自动获取手机号
+- 新增index.html目录首页+AGENTS.md更新
+- CA Cancer Statistics 2022截图标注替换(Sung 2020→Bray 2024); 免疫系统三大功效全重写为三栏卡片+癌症数据关联
+- 心脑血管文章多项增强——牙痛心梗症状/比目鱼肌锻炼/个体化干预/菌群检测评估与追踪+7张来源截图
+- 新增心脑血管文章误诊板块(沉默心梗/女性误诊/卒中漏诊/青年卒中),插入CANTOS和肠漏引用截图
+- add ArticleBookshelf book-style recommendation component
+- 手机自适应扩展 — Dashboard 2列 + 表格滚动 + 表单堆叠
+- 管理后台手机自适应 — 响应式侧边栏折叠 + 布局优化
+- 完善7维健康模型 - Tier2 VOICE/PHOTO支持, canvas雷达图, 数据源表迁移
+- 商品规格最小购买数限制(minQuantity字段 + 订单校验)
+- 完成 Task 5 AI健康管家MVP
+- Task 5 AI健康管家补全 — health_butler_graph + 前端路由修复
+- subpackage split - move non-TabBar pages out of main package to reduce size
+- Dify-compatible adapter layer + AI health butler MVP
+- use emoji tab icons matching wuxing sandbox style
+- redesign tab bar icons in wuxing sandbox style
+- 推广佣金体系后端实体 + 删除废弃 RelationshipPicker 组件
+- TASK-P0-001 辈分重构 — 订阅式 generation + is_spouse,删除关系类型表与字段
+- 富维度子维度组件 + 身克富杠杆展示 + 修复DatabaseInitializer编译错误
+- P2-1 身份重塑系统 - 健康等级+积分引擎+时间线
+- 完成5篇深度疾病科普文章并接入成长百科
+- 在 HealthReportController 添加自动保存解析结果到 JSON 文件
+- P1-2 健康行为智能预警实现
+- P1-1 即时多巴胺反馈实现
+- 成长百科改为人体五维标注布局 + 文本替换
+- 重写成长百科为100vh单页布局(剪影背景+五维卡片+手机标签)
+- 新增成长百科主页面 + Clarity 全站覆盖
+- Hero 背景改用 AI 生成插画 (agnes-image-2.1-flash)
+- 首页 Hero 添加家庭幸福健康抽象插画背景
+- 预约页面传递 assessorId 参数
+- 重构 AppointmentController 接入 DanAssessmentExecutionService 双角色模型
+- AppointmentService 支持 assessorId, DanAssessmentExecutionService 关联 appointmentId
+- assessment_appointments 添加 assessor_id, dan_assessment_executions 添加 appointment_id
+- AiGateway + 5% grayscale routing to LangGraph
+- config, models, RAG, Java client, RecommendAgent
+- scaffold Python sidecar project
+- 本地修改同步提交 - 小程序前端组件更新
+- 微塑料科普页面 — 看不见的入侵者
+- 行首页移除成长里程碑 - 移除OctopusGraph/milestones功能
+- 心页面添加心理报告卡片 - 完整EMID四维条形图展示
+- AI任务生成+今日能量文卡片+体检AI入口
+- integrate KB v3 into gut-flora-risks-detail.vue
+- knowledge base v3 - data/template separation foundation
+- add purchase recommendation section to dan-assessment/report-upload page
+- add purchase recommendation section to report-upload page
+- implement taxonomy level support, pathogen tabs, report interpretation, DB migration 98
+- add personalized indicator interpretations (P0) and overall assessment descriptions
+- add report indicator knowledge base with standard ranges and descriptions
+- add taxonomy level extraction (class/order/family/genus/species) from unified section
+- 活动商品统一管理后续三项任务完成
+- B5指南针仪表盘图像提取 — 19个子维度分数
+- expand health survey with disease/family history, add physical exam detail page
+- 健康知识库管理后台 CRUD
+- FamilyRelationGraph 新增齿轮跳转成员管理、悬停/点击+号进入添加成员页、高度自适应
+- add api methods, knowledge-popup component, register 4 pages in pages.json
+- add KnowledgeBaseDataImporter + ref JSONs + import endpoint
+- add POST /api/health/report/edit + updateReportFromPayload
+- add health_knowledge_base (entity+mapper+service+controller+migration98)
+- 将DAN报告上传重构到独立 dan_report_uploads 表
+- add DAN report to JSON extraction script (extract_dan_to_json.py)
+- 富维度页面添加TabTransition动画 + 用户卡片重构
+- 心维度页面集成家庭天盘模块 + 心理报告上传功能
+- 新增天盘周报PDF导出,移除富沛能量模块
+- 首次登录跳过角色选择直接进入信息补充页(默认parent)+ 地址四级选择器
+- 营养师/管家小程序入驻申请流程
+- 文章/套餐审核添加详情弹窗、驳回原因显示、批量通过/驳回
+- 添加营养师/管家申请API
+- 添加营养师审核功能
+- 添加 api_endpoint/api_key 字段; fix(sku): specs 字段类型改为 Object 支持JSON数组
+- 推广/佣金配置控制器 + rebate_commission_config表; fix(promotion): 改用sysConfigService.getValue; feat(schema): 同步rebate_commission_config表
+- 活动工作流缺失端点 + 电商供应商管理CRUD; feat(schema): 同步ecom_supplier表
+- 同步健康打卡5表定义(exercise/sleep/water/meal/meditation)
+- 健康打卡 exercise/sleep/water 三个控制器; fix(web): growth-task路径修正
+- 增强搜索条件和优化样式
+- 统一审核中心 - ReviewCenter.vue + 10子组件 + 后端summary接口
+- 替换所有"即将上线"为真实跳转,补齐子维度点击导航
+- 添加 family_member_logs 表(家庭成员变更日志)
+- 家庭关系管理系统补齐 (relationship type extension + contact-to-member upgrade + family_member_logs + relation graph shapes)
+- 新增供应商商品管理功能
+- 为天盘卡片添加今日宜忌提示
+- 实现天盘详情页展示周/月趋势
+- 实现五行吉位算法
+- 对接后端接口为家庭天盘提供动态数据
+- 商城营销菜单新增家庭收益和收益提现审核入口
+- 家庭推广体系重构 P3+P4
+- add models field and agnes-2.5-flash model
+- 添加家庭天盘功能到心页面
+- 创建身/心/智/行四个维度专属内容组件
+- member-detail 维度专属内容动态组件插槽
+- add FamilyEarnings entity/mapper/service/controller + fix ButlerController bean name conflict
+- add cfc-web butler admin UI + ButlerCommissionService + scheduled settlement
+- add AdminButlerController + ButlerServiceRecord/CommissionSettlement entities
+- 按中版本分文件存储 changelog,CHANGELOG.md 作为索引页显示最新版本
+- skip version bump if only chore/engineering commits
+- butler 管家服务 - 申请/档案/分配 + DB迁移
+- add butler entities + migration + schema
+- 供应商上下级关系体系 (supply hierarchy)
+- 商城页新增会员升级营销触点 — 首页/购物车/结算页/支付页升级提醒
+- 发现页新增会员升级营销触点 — 商品详情页立省横幅+发现页推荐卡片
+- add dan_reports - assessment reports and processing scripts
+- 肠道菌群报告详情页 + 上传日期评分优化 + 身页面重构 + 首页角色分流
+- 新增家庭关系联系人组件 FamilyRelationshipSection
+- RepurchaseReminderScheduledTask runs daily at 2 AM
+- dimension-product query + repurchase-reminder service logic
+- add dimension-products + repurchase-reminders endpoints with DTO fields
+- 6个管理端表单页增加保存成功确认对话框(继续添加/关闭)
+- AI conversation memory - migration 82 for ai_conversation_summary + ai_user_facts tables
+- CartService.buildCartItemDTO builds specDesc from ProductSku.specs JSON when skuId is present
+- 五行能量配置管理
+- 增强五行雷达图可视化
+- 管理端功能优化
+- 五行相生相克前端展示
+- AI对话记忆层 - 会话摘要+关键事实+意图感知上下文注入
+- productSpecMap API + Ppoint API 重构 + 供应商管理员搜索修复
+- products/cart 表新增 SKU 规格字段
+- admin/user/search 供应商选管理员接口 + 修复 CircleService 循环依赖
+- 添加OctopusGraph关系健康组件
+- 维度页面缺口修补(Phase1) + 圈子系统(Phase2)
+- 商品推荐 Phase 3-5 — FamilyContextService Dify输入 + AIChatController userId + 复购提醒
+- 电商 + 推荐系统 + 阅读统计 综合升级
+- wire FamilyMember birth fields + User hobbies/dietPreferences + profile history through service/controller/migration
+- UserProfileHistory entity + mapper + schema.sql for tracking profile changes
+- add hobbies + dietPreferences to User entity + UpdateUserDTO
+- add birthHour/birthWeight/birthPlace/isCesarean to FamilyMember entity + DTO
+- add article placeholder cards on action home page
+- 商品推荐维度映射 + 复购提醒 + 供应商/规格迁移补全
+- 电商体系升级 — 供应商/规格/推荐日志 + 五维能量富维度详情 + 产品推荐
+- DAN报告上传 - 集成到mind/wisdom维度页面
+- DAN报告上传 - 前端API + report-upload页面
+- DAN报告上传 - Controller端点 + 维度分数更新
+- DAN报告上传 - 创建DanReportParseService (A2/B4解析)
+- DAN报告上传 - 实体字段 + 数据库迁移80
+- clean dimension tabs + styled action articles
+- TianpanService 引入缓存逻辑 - DB持久化每日运势和年度能量
+- 产品订单退款系统 - 余额不足待退款队列、管理员中止、提现/商品双路退款
+- 家庭天盘完整功能 - 核心服务+控制器+DTO+前端页面
+- 退款队列系统 - 待退款自动重试
+- 确定性差距修复 - P0全部 + P1部分 + P2/P3核心完成
+- 变更日志弹窗宽高加大至900px/700px
+- enhance PpointService with save/delete/query methods and English javadoc
+- add PromotionTierEvalService and daily scheduled task for tier check
+- promotion tier system, teacher message unread badge, FamilyEnergyBar collapse
+- integrate promotion tier scaling into commission settlement + DB migration
+- add PromotionTierConfig entity/mapper for configurable promotion tiers
+- 确定性差距修复 - P0全部 + P1部分完成
+- 一生一世家庭会员订阅系统 - 编译修复与完善
+- DAN测评市场转化全链路实现(Phase 1-5)
+- tongue diagnosis as health report type
+- AI管家会话管理 - ButlerSession实体/服务/控制器 + 迁移42
+- 统一四个Tab页面的家庭关系卡片组件 + 齿轮图进入成员维护
+- emotion checkin add video capture + enhanced AI simulation
+- 五维幸福矩阵『身』由『主动健康』更名为『根基永固』
+- split admin/teacher dashboards, enrich admin with 8 stat cards, ECharts charts, system health panel, 8 quick actions
+- purchase field config UI + consignee mini-program pages (P2-P3)
+- enhance health reports page and add draft audit UI
+- consignee + purchase field module (migration, entity, mapper, service, controller)
+- add admin activity creation and management features
+- family members empty state — always show as entry point
+- redesign article-center with search/nav/dimension-param; enhance mind/articles with search and unified detail
+- unify article entry points to article-center
+- redesign family-members page with gear entry, detail modal, edit permissions
+- add /api/family/member/editable endpoint
+- add FamilyRelationshipService, refactor FamilyMemberService for bidirectional relations
+- add family_relationships table with entity/mapper/migration
+- radar chart dual-line support (avg + user cognitive scores)
+- radar chart dual-line support (avg + user scores)
+- v1.0.11 - table overflow scroll fix + Layout sidebar scroll fix
+- 综合更新 - 后端服务修复、前端页面优化、管理端功能扩展
+- add pointsUsed/moneyAmount to ProductOrderDTO + checkout points UI + noMoneyPayment handling
+- product order hybrid payment + shop page refactor + DatabaseInitializer merge conflict resolution
+- 添加供应商管理员(supplier_admin)角色及供应商管理功能
+- admin/teacher 页面全局搜索 + 统一 admin-page 样式
+- 心首页关键信息卡片 — 家庭+个人双栏概览
+- health report Phase 2 - match confidence, candidate selection, auto-create member
+- supplier distribution system - entities, services, controllers, and admin UI
+- fuse Western astrology with Chinese zodiac for annual energy calculation
+- 文章活动工作流状态管理前端页面
+- 文章活动工作流状态管理API
+- 饮食/文章管理完善 + 供需分发系统文档
+- ActivityEdit 表单校验 + 创建成功弹窗
+- update food-list.vue with full nutrition fields and recommendation index display
+- 自动版本号递增 + CHANGELOG.md 生成
+- add /api/health/foods/by-family endpoint and health report trigger for food index
+- add FoodRecommendController with index/history/by-family endpoints
+- add FoodRecommendService sourcing index from report scores
+- update Foods.vue table columns and dialog fields with full nutrition input
+- add FoodRecommendIndex and FoodRecommendIdxLog entities with mappers
+- add food_recommend_idx and food_recommend_idx_log tables, fix kcalPer100g JSON mapping
+- 订单详情页 + 订单/商品管理完善
+- 商品管理前端 — 列表/分类/编辑/SKU组件 + DimensionWeightPicker修复
+- 新增商品管理 + 订单管理 API
+- 新增Cart/SystemConfig模块 + 家庭角色DTO/组件 + 设计文档 - 新增购物车实体/CartItemDTO/CartMapper/CartService - 新增系统配置实体/SystemConfigMapper/SystemConfigService - 新增家庭角色相关DTO(Create/Info/Update) + NutritionProfileService - 新增 FamilyRelationshipSection 前端组件 - 新增四维度首页及家庭成员角色系统重构方案文档
+- teacher dashboard + activity admin API enhancements
+- start.sh 支持本地外部配置,数据库凭据通过 -D 参数注入
+- after-sales system — apply/list/detail pages + mock logistics + profile/order entries
+- activity-detail 补充 formatDate 工具方法 + paid/checkin 状态增强
+- activity/activity-detail 报名同步增强 - formatDate / 付费不退费 / paying 状态
+- 活动详情页报名+签到全流程 + 付费确认 + 日期格式化 - 新增 formatDate() 方法统一日期显示格式 - 新增付费活动报名确认弹窗和退费说明 - 新增报名状态检查(pending/approved)、取消报名功能 - 新增签到状态管理和 checkinTime 渲染 - discover-detail 和 discover 双路径 activity-detail.vue 同步增强
+- 文章审核系统 + 商城完善 + 管理端升级
+- 新增 shop/index 店铺首页 + 修复 article-edit.vue :style 规范 - 新增 cfc-frontend/pages/shop/index/ 店铺分包含入口页面 - article-edit.vue: 将 :style 复杂内联表达式改为 dimStyle() 方法
+- add HealthDimensionsSection component for inline health dimensions display on body page
+- 创建身维度5个详情页面并绑定快捷入口
+- 替换EMI四维条形图为大五人格雷达图,右上角添加测试按钮
+- 活动模块后端+前端接入 - 初始化活动表/Product表字段扩展, DimensionActivities组件接入活动列表, 各维度页面导入getActivityList
+- add audit workflow to web admin panel
+- 简化 AIFloatingAvatar 组件 + 添加到各页面 + 更新 AGENTS.md - 移除 AIFloatingAvatar 脉冲动画,简化组件 - 在 body/index、index、mind、wisdom、profile、activity 页面添加悬浮头像 - AGENTS.md 新增 :class 绑定规则(小程序不支持方法调用)
+- add my-posts page with status badges
+- add article edit page with publish and draft
+- add article detail page with AI quiz
+- add article list page with tab navigation
+- register subpackage in pages.json + add API methods
+- add publish, my-posts, and audit endpoints
+- enhance activity list - view ended/published activities, disable edit for non-draft, click participant count to review registrations inline
+- add AI questions endpoint + submit answers with scoring
+- 规划师端活动管理 — 活动创建/编辑/发布
+- add article-center implementation plan
+- 补充AI对话和profile页面变更
+- add Article entity audit fields + ArticleQuizRecord
+- add article-center implementation plan
+- create activity home page with 3-tab structure
+- 添加活动中心页面子包注册
+- 新增心愿兑换积分检查和扣除方法
+- 成长记录新增getRecordsByChild接口
+- 新增grantEnergy和deductForWish接口
+- 重写DimensionWeightPicker为slider+数字输入,动态max限制总和≤100%
+- add 热门活动 and 推荐阅读 sections to index and body pages
+- redesign SharePoster with brand header, warm orange gradient, content card, and dimension dots
+- DataMigration controller and service adjustments
+- schema v6 with shop order columns migration
+- 修复打卡/能量接口 400/500 错误
+- 推广系统九大功能升级 (T1-T9)
+- add EmotionAlert admin management page with list and resolve actions
+- add getAdminAlerts method to EmotionAlertService for admin page pagination
+- auto-create follow_up on alert resolve in EmotionAlertService
+- auto-create follow_up record when crisis alert is resolved
+- push WeChat template notifications for high-severity alerts
+- add WechatAlertTemplateService for crisis alert push via WeChat template messages
+- 健康记录模块 — 日常打卡/成长记录/维度权重管理
+- 活动报名服务 + TrialMembership入门会员
+- 商城重构 — 订单生命周期/SKU/地址/退款/超时取消
+- 认知评估增强 — 行动清单/常模参考线/历史趋势/训练方案系统
+- FamilyRelationGraph升级compatibilityMap属性+mind首页入口路由更新
+- 新增family-dashboard家庭天盘页面+duo-compatibility双人合盘详情页
+- TraditionalMirrorController新增family-dashboard+compatibility两个端点
+- CompatibilityService算法引擎+9个DTO定义+FamilyMemberAttributeService fromJson/toJson公开
+- 兼容性数据表(entity+mapper)+schema seed(zodiac_pairing/blood_type_pairing/life_number_relationship)
+- 激活会员中心页面导航入口
+- redesign membership page with loading/error states
+- add Canvas-based trend charts and index page updates
+- upgrade emotion-checkin pages with 2D affect grid and Plutchik wheel
+- add PHQ-9/GAD-7 screening page and route
+- add PsychCrisisBanner component for crisis alerts
+- implement emotion alert service with risk detection
+- add emotion alert entity and VO
+- implement mental health screening service with PHQ-9/GAD-7 scoring
+- add mental health screening entities and DTOs
+- implement emotion checkin service with trend/report + alert wiring
+- add emotion entity fields and trend/scatter point DTOs
+- add fine-grained emotion fields to DTOs and VO
+- enhance virtual team management with invite controller and scheduled tasks
+- 浠宝/福宝IP形象系统 - 用户可选择AI助手形象,所有AI对话携带形象标识
+- 舌诊功能 + 身首页改造 + 全域指标管理
+- virtual team management + unified invite system
+- 关系健康概览 + controller familyId推导
+- 关系质量评估+互动记录+智慧维度临时页面
+- skip captcha verification in test mode (VUE_APP_SKIP_CAPTCHA=true)
+- two-phase health report upload with preview confirm page
+- 补全 Activities.vue 缺失字段 - 封面图上传/活动类型/地点/人数/价格/可见范围/签到积分
+- add AI emotion recognition to emotion-checkin page
+- add report draft module and food recommendation
+- skip captcha verification in test mode
+- move three pillars inside the product overview section
+- restructure sections - swap pillars before capabilities, rename
+- add happiness three pillars section with dimension mapping
+- add health-norm-config and health-data-source menu entries
+- admin controller, norm/data-source config views, tests
+- dimension questionnaire, detail page, and entry navigation
+- 数学闯关前端页面
+- 数学闯关后端服务
+- 新增肠脑轴情绪打卡功能
+- add EMI and Big Five personality fields to dan_assessment_results
+- 开屏splash页+tabbar切换过渡动画
+- 会员体系 + 推广裂变 + 优惠券 + 成长任务模块
+- add newbie task reward system with 6 task types
+- add health-dimensions navigation entry
+- wave 1 - trend, product-energy, dify, body energy integration
+- referral team features - team list, invite, share poster
+- wisdom dimension page redesign - 14-block full layout, cognitive report, self-quiz, training hub
+- 统一家庭成员管理 - 后端双表+前端统一入口+管理端CRUD
+- add ecommerce DDL blocks to DatabaseInitializer
+- add ecommerce DB schema tables, config, and design spec
+- migrate checkout/payment/logistics pages to CFC API
+- migrate address.vue and address-edit.vue to CFC API
+- migrate cart.vue to use CFC cart API
+- enhance ProductOrderService/Controller and add LogisticsController
+- refactor PaymentService with WeChat Pay V3 integration
+- enhance ProductService and ProductController
+- add AfterSales module (entity+mapper+service+controllers)
+- add UserAddress module (entity+mapper+service+controller+region)
+- add Cart backend module (entity+mapper+service+controller)
+- add Discount module (entity+mapper+service+controller)
+- add Distribution system module (entities+mappers+service+controller)
+- add ProductCategory module (entity+mapper+service+controllers)
+- add ProductOrder entity fields and OrderItemVO DTO
+- add Product entity fields (categoryId, distributionSystemId)
+- enhance web admin growth records with source type filter and new columns
+- refactor growth record frontend pages with source types, upload, and supplement
+- add growth record API functions and page registrations
+- add growth record upload, supplement, dedup-check endpoints
+- add report parsing service and growth record service with dedup
+- add growth record DB schema, entity fields, and PDFBox dependency
+- TabBar改文字+RelationshipPicker组件+编辑关系功能
+- health-dimensions-phase1 implementation + compile fixes
+- 活动管理功能完善——后端Service层+Web端CRUD+审核+小程序商品编辑
+- 产品区改为数据采集→数据分析→方案确认→执行跟踪闭环描述
+- 多源数据整合分析→健康档案,作为平台核心能力展示
+- DAN成长档案→成长档案,菌群检测→健康档案 统一产品命名
+- 新增运营推广文档与配置文件
+- 新增GEO专题页面并优化产品定位
+- 网站样式与交互优化
+- 数据库配置切换为本地连接
+- FAQ结构化数据扩展至20条,同步前端FAQ展示
+- add food recommendation API endpoint, FoodService.listByReportId, and frontend food display in health report
+- save food suitability data on health report creation; add reportId/score to Food entity
+- add food suitability parsing to PdfParseService
+- 登录页品牌升级 - 企业官网设计语言
+- add nutrition-related entities and mappers
+- 营养师管理页面与登录页优化
+- TabBar重构与健康报告页面
+- 营养评估与饮食推荐功能
+- 五维沙盘粒子流动画
+- 首次登录引导浮层组件
+- 开屏页与发现页五维价值传达
+- 登录页背景色改为品牌暖橙
+- add frontend components, docs assets and .gitignore for Python
+- Landing page optimization - Schema.org, FAQ, stats, testimonials, CTA, content
+- 更新企业官网品牌色系与Logo为天空蓝主题
+- add cfc-frontend/static assets (logo + tab icons)
+- 添加网站品牌 Logo 资源
+- 添加亿图腾企业官网页面
+- remove danshop subsystem
+- 家庭邀请二维码功能(小程序码+令牌+落地页)
+- implement diet recommendation system (frontend)
+- implement diet recommendation system (backend)
+- health report PDF upload + login redirect fix
+- article publish-review system + gut flora report parsing
+- add gut flora summary fields to health report schema and refactor mind page
+- register dimension store module in Vuex
+- add routes for dimension-config and knowledge-base
+- add dimension config and knowledge base admin pages
+- add dimension selector, tag selector, knowledge table and dialog components
+- add dimension and knowledge base API and Vuex store
+- add dimension config and knowledge base admin controllers
+- add knowledge base service with Dify sync support
+- add dimension config and knowledge tag services
+- add mybatis mappers for dimension and knowledge base
+- add dimension config and knowledge base entities
+- add nutritionist/teacher/admin views
+- add role-to-permission mapping utility
+- add multi-role JWT support (nutritionist/activity_admin/article_admin)
+- add nutrition chat UI to frontend
+- wire nutrition API into controllers + config
+- add health analysis & recommendation services
+- add nutrition recommendation DTOs
+- add multi-role support (nutritionist, activity_admin, article_admin)
+- 富沛(我的)页面改造 + 心愿单入口
+- 心智页添加心/智双Tab结构
+- CFC-DanShop集成 - 支付代理+批量迁移
+- add FamilyRelationGraph canvas component to body/mind/action pages
+- update web admin pages with slider captcha and format utils
+- update frontend pages, components and splash screen
+- update backend entities, services, DTOs and configs
+- add precision nutrition & health report survey flow
+- add showToFamily toggle in profile/child-edit, clean up mind page
+- add FamilyMemberCard/FamilyMemberStrip components, wire into pages
+- add contact management feature (ContactCard, ContactImport, contact-detail)
+- add showToFamily field to Child/User, update HealthReport
+- add getVisibleMembers and updateVisibility to UserService
+- configure Dify API key for AI chat
+- add showToFamily to ChildInfoDTO/UpdateChildDTO, create FamilyMemberVO
+- add show_to_family column migration to children and users tables
+- 心智模型重构 — DAN 70% + 先天 30% + 行为修正
+- 健康能量 v1.2 心智增强设计 + 会员分销/财富模块功能完善
+- migrate TabBar to 5-tab (首页/身体/心智/行动/我的), move shop→action path
+- add web admin pages for article management, energy sandbox, withdraw audit, profit rate
+- add energy/body/mind/promotion/stats pages, update existing pages for energy system
+- add frontend components, custom-tab-bar and global styles
+- restructure WeChat miniprogram with subPackages to fix error 80051 (source size 3172KB > 2MB)
+- update backend config, schema, entities and services for new modules
+- add backend services and controllers for energy/commission/article/badge/game/invite modules
+- add backend entities, mappers and DTOs for energy/commission/article/badge/game modules
+- 商城+服务商页面更新
+- 心愿模块+任务管理模块更新
+- 组件升级(claymorphism适配+PlayfulCard重构)
+- 重构心愿页
+- 重构家长端首页
+- 重构孩子端首页(claymorphism设计系统)
+- 统一品牌色系、基础样式与页面配置
+- Product/ProductOrder/SysConfig/Admin 后端 Controller
+- api.js 追加商品/订单/系统配置 API
+- SysConfig 实体/Mapper/Service 实现
+- ProductOrder 实体/Mapper/Service 实现
+- Product 实体/Mapper/DTO/Service 实现
+- 创建发现页作为登录前首页,未登录重定向
+- 提取五行沙盘为独立组件,替换首页内联实现
+- 商品/订单/系统配置 3 张表 DDL + 种子数据
+- Web管理端添加服务商审核页面(审核列表+通过/拒绝操作)
+- 个人中心添加会员中心/服务商中心入口及状态检测
+- 添加五行能量沙盘(溪艾福)组件和溪福俱乐部占位页面(发现/商城/入驻/中心)
+- 更新小程序TabBar(发现/商城)并注册溪福俱乐部页面路由和API
+- 实现服务商入驻/审核/查询API(入驻申请+审核列表+审核操作)
+- 用户实体添加服务商/家庭管理员字段并新增DB迁移
+- 实现模块 A-E 完整功能
+- 新增成长规划Controller、任务统计服务和申请记录实体
+- 小程序前端功能增强和重构
+- 规划师模块新增首页统计和家庭信息接口
+- 实现任务批量操作功能(TASK-016)
+- 添加任务时长字段(TASK-011)
+- 修复DataMigrationService性别映射、幂等性和日志
+- 重构Web管理端布局路由和API集成
+- 完善数据迁移服务和用户认证流程
+- 添加sfms多数据源配置和数据迁移服务
+- 补充测试用例并修复编译错误
+- 添加Service接口规范(TaskService,RewardService,UserService)
+- 实现成长规划师模块完整功能
+- 实现指导师功能完整迁移
+- 实现小游戏作为任务类型功能
+- 添加数据库字段运行时自动同步处理器(SchemaSyncHandler)
+- 实现心愿功能(wishes)替代rewards/reward_wishlists
+- 实现任务提醒和统计功能
+- 实现用户操作日志功能
+- 实现用户操作日志功能
+- 完善任务重复设置功能
+- 实现V1.2 P0需求
+- 更新需求文档需求细则
+- 更新需求文档(V1.2)
+- 添加自动化测试套件,实现100%需求覆盖
+- 实现小游戏积分系统、连续打卡功能及问题修复
+- 创建分层AGENTS.md文档系统
+- 完善Web管理端API和路由
+- 完善前端页面和组件
+- 新增指导师套餐和绑定功能控制器
+- 实现前端地址选择和区域匹配功能
+- 添加街道地址功能支持家庭和指导师区域匹配
+- 完善Web管理端页面和API集成
+- 新增实体类、Mapper和Service支持多媒体和会员功能
+- 添加用户角色选择、生日性别字段及家长孩子身份切换功能
+- add AGENTS.md files and fix AdminLoginDTO password field
+
+### 重构
+- 成长页面调整 — 戒备/饮食推荐从健康移至成长
+- 去掉API自动传memberId——child角色从JWT获取currentMemberId,parent不自动选孩子
+- LangGraphAdmin 重构为标签页布局 + 真实请求历史面板
+- 方案制定页改为分步表单UI,隐藏AI对话界面
+- 清理重复的 loadAllData 调用
+- 标记旧佣金结算链路为@Deprecated
+- 提现流程改为基于CF值余额
+- upgrade页移除支付/优惠券逻辑,改下一步跳转pay,修复会员状态判断bug,支持划线原价
+- 重设计我的页面 - 用户卡片+数据概览+五维能量+待办提醒+分组菜单
+- 重设计'我的'页面为信息集散中心 - 用户卡片+数据概览+五维能量+待办提醒+功能菜单
+- 重设计家庭挑战主页 - 移除重复的快速创建区,模板移至弹窗内,简化布局
+- 首页重新设计 — 对齐新TabBar页面模式
+- 移除维度页中的活动/文章/商品区块,仅保留能量相关内容
+- 移除family-guard弹窗,无家庭时自动创建;移除创建/加入家庭按钮
+- restructure tabbar from 5-dim to 4-tab + center 5-dim launcher
+- 家庭关系卡重设计为FAB浮标+扇形展开,移除创建/加入家庭按钮(已自动创建)
+- 清理已废弃的 relationship_types 表(迁移169)——移除活路径 ALTER 代码、DROP TABLE 从死代码移到活路径
+- rename childId to memberId across full stack (childId was always family_member.id)
+- 健康报告上传页 report-upload.vue 重构
+- 移除死页面 plans.vue,权益对比保留在 upgrade 页
+- gut-testing 删除 gut-kit-6/8 图片块,更新 8 大检测维度解析长图为压缩版
+- 统一五维首页商品推荐组件为 DimensionProducts
+- 移除 gut-testing 截图占位块和 gut-kit-3 微信解读CTA块
+- 移除 gut-testing 产品页 gut-kit-2 寄回流程图和 gut-detail-banner 长图
+- 统一活动详情和商品详情页
+- 统一文章详情页为 article-center/article-detail
+- 主动健康vs被动健康区域改为纵向布局,红绿改暖黄+青绿配色
+- redirect old apply pages to unified service role apply page
+- 富页面去掉我的邀请码区域
+- 商品列表查询参数统一为 dimensionCode
+- 按场景+角色重构测试用例,扩展至8角色27流程
+- move strain table from gut-microbiota to probiotics-science, add cross-links and new target audience cards
+- 重构10个控制器移除HttpServletRequest手动userId获取改用@RequestAttribute注入
+- 更新添加孩子入口导航至家庭成员页面
+- 废弃独立添加孩子页面,重定向至家庭成员
+- 年龄优先判定孩子角色
+- 替换并新增证据截图(CA Cancer/Bicarb/Mol Cancer)
+- 精简症状识别表(+酸性微环境+抗炎闭环)
+- 用科普文章链接替换免费领取白皮书文案
+- 我的页面改为仅个人信息+配置,移除富相关组件
+- 行页面移除成长里程碑(OctopusGraph组件+action页面清空)
+- users.role ENUM → VARCHAR(20); add migration 99
+- make indicator ranges computable with min/max + status levels
+- redesign card UI with cover gradient and badge layout
+- 删除成长计划页面并合并推荐商品与活动为统一信息流
+- 扁平化营养师/管家入驻申请页面结构 + 统一import路径为@别名
+- 全局UI文案套餐→任务模板重命名
+- 审核中心提升为一级菜单, 删除老的5个子审核页面
+- rename FamilyRelationshipSection -> OctopusGraph; fix: health chart shows zeros when no data
+- 重构FamilyRelationGraph为全Canvas force-directed关系图
+- 删除 UserQuickEntry 组件及全站引用
+- remove FamilyRelationshipSection (重要关系组件) from body/mind/wisdom pages, keep unified FamilyRelationGraph
+- remove relationship components from body/mind/wisdom pages
+- merge health actions into quick-action bar, remove separate report/nutrition sections
+- 全代码库替换术语 分销→销售 分润→返利 裂变→推荐 分佣→佣金
+- remove login gate from activity/product/article detail pages
+- remove reading timer from article detail
+- unify admin page styles with global CSS design tokens
+- merge wechatLogin and wechatPhoneLogin, capture phone from WeChat
+- rebuild admin dashboard
+- TabTransition 动态化 - 数据就绪后才自动消失
+- 合并工作台至首页,删除独立路由和菜单
+- 登录页左侧品牌区重新设计 — 五维能量轮盘
+- replace inline 推荐阅读 with DimensionArticles组件 on action/mind pages
+- 测评预约服务重构 + CreateWishDTO新增商品字段 + 支付服务扩展
+- 子包重组 - 详情页移至 *-detail 目录降低主包大小
+- 重构智页面布局并提取推荐阅读为共享组件
+- 重构菜单分组+权限体系
+- remove 智·认知 tab and add 传统文化 sections
+- 移除DAN等级相关字段
+- 数据库迁移DDL+seed, HealthReportController集成refreshFromGutReport, 前端7维字段修复
+- rewrite FamilyRelationGraph with View+Canvas hybrid layout
+- extract API base URL to config.js with multi-env support (.env.development/staging/production)
+- zxyj → cfc 全局重命名
+- Web管理端Layout重构和规划师模块完善
+- 实体模型更新及后端服务增强
+- 为所有44个Service类添加Interface规范
+- 优化控制器导入和用户相关功能
+
+### 文档
+- 我的页面电商风格改造设计
+- 通关解锁计划状态更新为后端完成+前端核心完成
+- 新增实施计划 - 13任务分解,含迁移/Service/Controller/前端组件/管理端全链路
+- 小程序空功能实现计划(P0-P3分类,共23项)
+- 设计升级 v2.1 - 三关递进+沙盘个人/全家切换+增值关卡+六步法关卡总表
+- 通关解锁功能设计 - 自检门禁解锁能量沙盘+增值关卡+软引导
+- 知识库菌-疾病关联表格新增问题相关性/证据强度列
+- 新增新用户引导与留存设计方案
+- 通用报告块渲染引擎实施计划
+- 通用报告块渲染引擎设计文档
+- 新增规划与设计文档 - 内部沟通/合伙人PPT/家庭挑战参与
+- 成长页面重构为干预中心设计文档(今日进度+持续追踪+里程碑+定期调研)
+- 补充富维度登录前/后设计 + 五维统一视觉规范
+- 更新 PROJECT-OVERVIEW.md v2.7 — 增加 LIFETIME 终身会员全栈完成记录
+- 登录前页面改版设计 + 维度介绍卡片规范
+- 富维度页面 redesign 设计文档 (财富之泉方案)
+- 健康数据中心实现计划(12任务,3批次)
+- 健康数据中心实现计划(12任务,3批次)
+- 健康数据中心设计文档(看见·主动健康闭环)
+- 平台终身会员(LIFETIME)设计文档(方案A: 等级扩展+实时聚合+管理员审核)
+- 推荐组件移除维度实现计划
+- 补充推荐组件移除维度设计细节
+- 推荐组件移除维度参数设计
+- 会员支付/升级实现计划(upgrade→pay→result 三段式 + 原价配置)
+- 会员支付/升级页面设计(方案B:upgrade→pay→result 三段式 + 原价配置)
+- 更新 PROJECT-OVERVIEW v2.6 - TabBar 重构完成状态
+- 更新 TabBar 重构计划为 completed 状态 + 完成情况清单
+- add TabBar redesign spec + restructure plan (4 native tabs + 5-dim launcher + wuxing dashboards + theory layer)
+- 家庭成员关系条增强实现计划(FamilyMemberStrip)
+- 家庭成员关系条关系展示增强设计文档
+- 家庭挑战参与机制实现计划
+- 更新 PROJECT-OVERVIEW.md
+- 更新参考资料/dan_reports 提取脚本(extract_all_types +468行重构,merge 与 type_detector 小修)
+- add tabbar restructure implementation plan
+- 修复 momus 二轮评审问题(路由命令/打卡状态校验/奖励幂等条件更新)
+- 家庭挑战修复计划按 momus 评审修正(完整方法体/登录角色门控/全员奖励发放/精确paths)
+- 家庭挑战断点修复实现计划 + PROJECT-OVERVIEW 索引更新
+- 家庭挑战 spec 自审修正 - 澄清家长修改进度表述
+- 家庭挑战使用流程梳理 v1.0 - 现状基线 + 断点清单
+- 新增滔达福项目总体介绍PPT成品(V1/V2)
+- AI创新项目大赛新增行业应用场景,五维能量标签更新为身智富行心
+- 新增AI创新项目大赛项目介绍文档(浠艾福定稿:AI健康教练/五维相生溯源算法/双培强基成果)
+- 库存管理设计文档(入库单+流水+盘点+预警+套餐拆库存)
+- 合并7个知识库为统一知识库JSON(v2.0 254.9KB,12模块,数据保真修正)
+- AGENTS.md 追加 LangGraph 启动命令 + PROJECT-OVERVIEW 关系域标记已实施
+- 报告解析迁移实现计划
+- 报告解析迁移设计 — Java→LangGraph(Python算法+LLM兜底)
+- 会员体系重构实现计划(修正apply折扣语义+8个单测)
+- 会员体系重构设计-统一定价+优惠券发放/积分兑换
+- mark report-confirm member-selector plan steps complete
+- PROJECT-OVERVIEW 标记 report-confirm 选择面板计划已完成
+- report-confirm 被检测人选择面板整合实现计划
+- spec self-review - 统一 selectAndClose 选择逻辑 + 回填字段明确化
+- report-confirm 被检测人选择面板整合设计
+- 添加商品SKU选择器设计文档和实现计划
+- 注册引导实施计划完成
+- 新用户注册引导+个人信息按需补充/回写实施计划
+- 关系问卷与互动记录功能补全实施计划
+- 规格自检修正(POST /api/user/info、交叉引用)
+- 新用户注册引导+个人信息按需补充/回写设计稿
+- 关系问卷与互动记录功能补全设计稿
+- 商品赠送会员实施计划
+- 商品赠送会员功能设计(方案B 独立规则表)
+- 同步设计文档 §5.1/5.2/§8 与 PROJECT-OVERVIEW 状态
+- 假算法题材网络小说章节库 51 章
+- 虚拟支付实施计划 + PROJECT-OVERVIEW 索引更新
+- 章节草稿及规范文档同步更新引用表述
+- 成书稿移除「浠艾福家庭健康报告」品牌化引用,改中性表述
+- /运营: 小红书内容 D14/D15/D16、第三篇-月入2万的家庭、发布指南、README 同步更新
+- 《家的算法》全书插图占位33处+插图规划清单+知识产权查证档案(24730/章鱼图/珍珠图)
+- 《家的算法》全书审阅修复+藏宝图改名+第3-7章补本章要点(人物一致性/章节引用/数据矛盾/行动卡格式统一)
+- 家庭成员页面重设计实施计划 + 饮水对比移动端轮播式重设计
+- 《家的算法》第3章补充水主题延伸阅读书单(李复兴系列3本)
+- 《家的算法》科学看见主线补强(财务/关系体检工具+菌群检测桥段+3个新家庭案例)
+- 分享功能改造实施计划(海报组件参数化+5项分享入口)
+- add D11-D14 drafts, post8/9 content, D8/D9 tracking data and process files
+- 分享功能改造设计(海报组件参数化+5项分享入口)
+- 家庭成员页面重新设计 - 设计文档
+- 文章评论审核系统方案与实现计划
+- mark service role apply design as implemented
+- superpowers PROJECT-OVERVIEW and service-role-apply design + plan
+- 文章详情页功能补充设计 — 自动完成阅读+评论系统+AI答题
+- 家庭成员关系卡片修复方案
+- 家庭成员关系卡片差距分析 — FamilyMemberStrip vs 需求设计
+- 能量行为配置与系统功能关联机制设计
+- 能量配置管理系统设计 — 行为配置+消费配置+转换规则
+- 五维能量来源分析 — 19个来源+消耗+日上限
+- update PROJECT-OVERVIEW to v2.1 - Phase 4 ✅ 已完成
+- 维度筛选设计分析 — 活动/商品/文章/任务四实体对比
+- 更新成员选择分析 — 按childId/memberId/无参数分类列出全部141个功能接口
+- 家庭成员选择能力分析 — 梳理childId/memberId接口
+- 补充活动流程图 — 详情页分享/报名按钮 + 评价流程
+- 新增 checkout 地址管理改造设计文档和实施计划
+- 新增财富能量兑换优惠券流程图
+- 新增佣金结算流程图 — 两级推荐佣金+提现+结算全链路
+- 新增支付流程流程图 — 覆盖订单创建/支付/退款/提现全链路
+- 全部31个流程图重绘 — 数据上连线+中文标注+分层+完整性分析
+- update PROJECT-OVERVIEW to v2.0 (2026-07-28)
+- add report management design spec
+- 数据移到连线标注 + 中文命名
+- 重构成长档案流程图 — 按阶段/分层/数据传递重绘
+- rewrite publishing guide with 5-dimension and knowledge point framework
+- PROJECT-OVERVIEW v1.9 - E2E Phase 1 docs + resolve merge conflicts
+- 创建AGENTS.md销售文章目录+交叉链接审计
+- PROJECT-OVERVIEW v1.8 - 健康维度重构全完成(Tier2 VOICE/PHOTO + canvas雷达图),商品规格最小购买数限制已实施
+- PROJECT-OVERVIEW - 添加管理后台手机自适应设计文档和实施计划索引
+- docs:
+- PROJECT-OVERVIEW v1.4 - Phase 5全栈完成 + 文档审计同步
+- PROJECT-OVERVIEW - 健康维度重构状态更新为后端框架已实现
+- PROJECT-OVERVIEW v1.7 - 同步富维度/文章发布/权限系统完成状态
+- PROJECT-OVERVIEW v1.6 - Phase 4 status sync (健康7维/成长档案/供应商体系后端已实现,供应商订单修复完成)
+- comprehensive plan Task 5 [-5→] ✅完成
+- PROJECT-OVERVIEW v1.5 - sync P2-2/P3 active health backend status (all implemented)
+- comprehensive plan 状态审计 - Tasks 1-10 完成情况更新
+- PROJECT-OVERVIEW v1.4 - 全量状态审计
+- update TASK-P0-001 status to 已实施
+- PROJECT-OVERVIEW v1.3 - 辈分重构全栈完成 + 状态同步
+- update PROJECT-OVERVIEW.md v1.3 - 辈分重构全栈完成状态同步
+- PROJECT-OVERVIEW v1.2 状态审计校正(辈分重构→后端完成、推广体系→前端基础就绪、电商扩展→暂停、新增DAN双角色模型记录)
+- update PROJECT-OVERVIEW.md v1.2 with Phase 2-4 recategorization and comprehensive implementation plan
+- update PROJECT-OVERVIEW.md - P2-1 marked complete
+- 主动健康六阶模型改进设计文档
+- add implementation audit, tickler, phase1-remaining, and P0 tickets
+- 新增小红书自动化发布工作流 + 30天内容矩阵
+- unified execution plan v1.0 + PROJECT-OVERVIEW v1.2 status corrections
+- mark LangGraph Phase 3 as implemented in PROJECT-OVERVIEW
+- sync phase1-4 plan checkpoints; add langgraph start.sh; ignore .venv
+- PROJECT-OVERVIEW.md v1.1 audit calibration
+- sync PROJECT-OVERVIEW.md Phase 1 statuses with git-history verification (encoding fix)
+- sync PROJECT-OVERVIEW.md Phase 1 statuses with git-history verification
+- LangGraph Phase 2-4 implementation plans
+- LangGraph migration design doc + Phase 1 implementation plan
+- add AxonHub model routing and multi-model workflow to upgrade plans
+- SB3 upgrade implementation plan with task breakdown
+- Spring Boot 3升级 + Dify替代实施计划
+- add Dify migration feasibility analysis
+- add implementation plan for mini-program and Java backend modifications
+- add analysis of personalized descriptive content to extract from reports
+- add gap analysis between extraction results and miniprogram/backend
+- 更新菌群报告设计 — 仅展示个性化数据+知识库弹框+异常颜色箭头
+- update v5 export script, add knowledge base directory
+- 菌群报告页面重构设计规范(查看+编辑混合模式)
+- 添加DAN测评服务闭环流程设计文档
+- add extracted JSON reports for 5 test PDFs
+- refactor to single-PDF-in structured JSON mode + add phylum/disease bacteria tables
+- cleanup old scripts and temporary CSV artifacts
+- add bacteria composition tables extraction (core genus/probiotics/harmful/pathogens) for triplet format
+- fix JSON triplet whitelist filtering + name/age/gender regex + vitamin B1/B12 overlap bug
+- fix 朱 food table extraction (compressed detection + ref lookup) + regenerate CSV
+- fix neurotransmitter dedup + regenerate all CSV with corrected data
+- fix inline extraction for vitamins/barrier/pathogens + add disease risk known names and amino acid merge
+- add PDF extraction scripts (v4 + v5 with JSON mode)
+- update ISSUE-TRACKING v17 — admin route fix + all tests passed
+- update ISSUE-TRACKING v16 with remote sync analysis and pending test plan
+- 成员详情维度分段 设计文档+实施计划
+- add CSV data and raw text from PDF extraction
+- remove deprecated extract_food_csv.py
+- 家庭推广体系重构 — 设计文档与实施计划
+- supplier-system gap-fix plan + DAN Phase 2-5 framework
+- 添加参考资料 PDF
+- ISSUE-012~015 family member fixes tracking
+- 五维功能-能量映射文档 + 缺失功能补全实施计划
+- 商品推荐功能实施计划
+- 添加富维度体系重设计划(子维度拆分+身克富杠杆+小程序富页)
+- 添加 superpowers 设计文档与确定性修复计划
+- 添加融资计划书演示文稿(PreA/PreA+轮)
+- 融资计划书PPT内容方案更新至 v1.0
+- add DAN assessment market transformation plan — full 5-phase design
+- 一生一世家庭会员设计方案 v1.1 + 双并行实施计划
+- update E2E test results documentation
+- add article system redesign design document
+- add 阶段性需求规格说明书 V1.0
+- add family member relationship conversion spec and plan
+- rewrite root AGENTS.md - compact, high-signal, removes stale refs
+- 添加数据库迁移工作流规范
+- add login-left-panel and article-center design docs
+- add activity home page design and implementation plan
+- DimensionWeightPicker 重设计规格文档
+- 重写测试矩阵为用户故事方式(v2.0/120用例) + ISSUE-004/005/006根因分析文档
+- 完整E2E测试报告2026-07-01 + ISSUE-003修复验证 + ISSUE-004/005/006录入 + 测试用例矩阵更新
+- v2.2 IP形象融入五维能量色系
+- 更新问题追踪表 ISSUE-001/003 已解决
+- v2.1 浠宝→玄凤鹦鹉, 福宝→蓝白英短
+- 浠宝(鹦鹉)/福宝(猫) IP吉祥物形象设计书 v2
+- 同步e2e测试结果文件
+- 更新测试追踪报告 + ISSUE-003根因确认 (2026-06-30)
+- 添加测试追踪系统 + 多角色E2E测试报告 (2026-06-29)
+- 更新E2E测试报告 - 第三次验证
+- 更新管理后台发布E2E测试报告 - 第三次验证
+- 更新管理后台发布E2E测试报告 (2026-06-28) 同步测试
+- 添加智页面重构和组件提取实施计划
+- 更新管理后台发布E2E测试报告 (2026-06-28)
+- 重构幸福三支柱为三支柱→五维映射框架
+- 身强体健更名为身强
+- 升级幸福三支柱为五支柱,补充身和行
+- add incremental implementation plan for 7D health dimension system
+- 添加关系质量功能(第二层)实现计划
+- update health dimensions design spec - add product-dimension integration section
+- 更新百科词条-去技术章节改第三人称加参考资料
+- 新增亿图腾百科词条(运营文案)
+- add 7-dim health model refactor plan + design spec
+- 更新README和AGENTS,同步TabBar/端口/关系管理模块
+- add health-dimensions-phase1 design plan and resolve merge conflicts
+- add mini-program promotion design and implementation plan
+- add 智维度页面重设计方案 - wisdom dimension page redesign
+- 心版块第一阶段实现计划——核心体验闭环补齐+六大补充方向
+- P1 implementation plan
+- P1 nutritionist feature design spec
+- update AGENTS.md for cfclub branch (146 commits ahead)
+- 更新企业官网文案与 README
+- P0营养师核心功能实现计划(15 Tasks,5 Waves,档案视图+缺乏分析+可视化解读)
+- P0营养师核心功能设计方案(档案统一视图+缺乏分析+可视化解读)
+- 根据企业官网内容更新项目 README
+- add health nutrition gaps fix implementation plan (5 tasks)
+- add FamilyRelationGraph redesign spec and implementation plan
+- add 参考资料 directory with PDFs
+- add gut flora report schema fix implementation plan for dev engineer
+- add admin backend controller to meal recommendation implementation plan (Task 9)
+- add web permission system design docs
+- add precision nutrition implementation plan
+- add cfc-web refactor plan + test docs and fixes
+- add cfc-web E2E test fix plan
+- add DanShop order-fix plan
+- update project knowledge base (AGENTS.md) - cfclub branch info, critical config, TabBar 5-page structure, system patterns and anti-patterns
+- trim homepage plan — 9 tasks done by remote c1ade35, keep only Task 1
+- 添加文章与活动发布系统设计文档
+- add homepage risk fix plan — 10 issues across parent-index/child-index
+- add systems-analyst role definition for OpenCode
+- add family member cards design specs and plan
+- 文档归档整理 + 行远页新增重要关系维护设计
+- 新增财富健康设计文档和实现计划(记账打卡+保单管理+能量联动)
+- add plans, specs, analysis docs for energy system, article system, wuxing sandbox, subPackages
+- add article publishing system implementation plan
+- 文章设计文档增加浏览权限控制(public/login/private)
+- 新增文章内容发布系统设计文档
+- 更正五星布局,从最左侧顺时针木火土金水,顶为心
+- 新增五维五行哲学体系设计规范,更新能量设计文档对照
+- 更新公司及产品介绍文案(五维全景幸福矩阵)
+- 新增公司及产品介绍(身心情行富五大领域)
+- 品牌名统一为浠艾福(Care Family),重写README定位为家庭健康成长平台
+- 项目名称变更 知心益家→浠艾福,重写README
+- 小程序页面重设计划
+- add five-dimension energy system design spec and implementation plan
+- 添加登录前浏览体验实现计划(7个任务)
+- 添加登录前浏览体验设计规格(pre-login discovery)
+- 现状差异分析报告 + Phase 1 商品系统实现计划
+- 添加Phase 0实现计划文档
+- 添加溪福俱乐部(CFC)设计文档和Phase 0实现计划
+- 更新需求分析文档和设计文档
+- 更新项目文档和需求分析文档
+- 更新README项目结构和技术栈
+- update design docs and directory references
+- move system design docs under docs
+- move system test docs under docs
+- move requirements docs under docs
+- 梳理任务管理需求文档
+- 更新需求完成报告,反映V1.2当前实现状态
+
+### 样式
+- 添加商城订单快捷和推广中心快捷样式
+- 重绘「身」TabBar 底签哑铃图标, 更新浠艾福项目总体介绍 pptx; gitignore 排除 .codegraph
+- 家庭挑战卡片缩水为纯展示组件
+- 心理报告上传卡片参照身页面卡片风格重新设计
+- 淡化中心太极阴阳鱼,去除黑白底色改为半透明
+- activity-detail 补充付费不退费 CSS 样式
+
+### 测试
+- 参与机制单元测试(respond/评分矩阵)
+- 身份参数加固回归测试 + 修复过期断言
+- 新增 parseDate 单元测试(iOS 兼容回归保障)
+- 端到端测试 — report_parse API + ReportParseAgent + LLM非dict防护
+- 补充近期需求变更的端到端覆盖
+- switchToMember 测试 body 类型改为 Map<String, Object>
+- fix 35+ flow-l1 test param issues (118→153 passed)
+- Phase1 - infrastructure + core roles restructuring
+- admin/health/nutrition 覆盖新增控制器
+- add v1.1 scenarios for knowledge-popup, quick-nav, edit mode
+- add unified-audit-center, guide-family-list, and vendor-product-manage E2E tests
+- fix admin routes in E2E tests to use http://cfc.iwintrue.com/admin/login
+- add admin-butler-review and family-earnings-flow E2E tests + update dan-report-flow for DAN cognitive/EMI dimensions
+- update ISSUE-TRACKING v15 — remote sync analysis + E2E results + pending test additions
+- fix E2E route paths per pages.json + update ISSUE-TRACKING with v14 findings
+- add E2E tests for DAN report, flora microbiome, and AI plan-task flows + fix playwright.config.js baseURL
+- fix e2e test runner - mini-games Playwright syntax, admin-panel URL, baseURL
+- improve E2E test robustness and simplify DAN assessment flow
+- 新增 DAN 测评服务商体系完整流程测试 + 需求验证报告
+- v13 最终版 - SupplySystemServiceTest(18/18), 修复 getAdminList 参数签名, 更新测试文档
+- v13 test records + issue tracking (ISSUE-010~012)
+- unit tests for SupplySystem/FoodRecommend/ArticleWorkflow + v11 API test updates + E2E workflow scenarios
+- s: fix playwright config, add E2E status report, system Chrome used
+- s: v10 results - 15 PASS / 0 FAIL, ISSUE-002 fixed, issue tracking added
+- 新增健康营养师流程测试 + E2E场景矩阵文档
+- s: update v9 results - backend accessible, 12 pass / 3 fail
+- s: add v9_test.js for cfclub updates
+- v8 final results 11 PASS 2 FAIL 1 SKIP
+- add v3 API test scripts for NEW fix verification
+- round 5 API test reports + NEW-01/02/03 issue tracking + test scripts
+- E2E测试配置和运行指南
+- 成长记录/能量系统/商品购买/签到奖励流程测试
+- 家庭成员管理/心愿兑换/规划师绑定流程测试
+- Playwright E2E 端到端流程测试套件 (8个核心业务流程)
+- 测评订单全流程集成测试
+- add dimension controller and energy sync tests
+- add service layer tests for ActivityAdminService, FoodService, NutritionDeficiencyService (36 tests)
+- add teacher/admin role tests for WishController, child/admin denial for guideBindFamily; add test report
+- add 7 role-boundary tests for GuideFamilyTaskController, extract TestRoles constants
+- fix 6 test files entity/DTO field mismatch
+- add 70 backend tests for 4 role types + fix 24 compilation errors
+- add cfc-frontend test suite (153 tests) + update test report
+- results:
+- 修补测试用例,全量204测试通过
+- s run: 204, Failures: 0, Errors: 0, Skipped: 0
+- 新增成长档案与测评模块测试报告
+- 新增成长规划师模块测试用例
+- 重构系统测试用例,分离API测试和Web浏览器测试
+
+### 性能优化
+- 维度首页过渡页强制关闭上限 3s 缩短至 1.5s
+- pre-compute display values in computed to avoid template method calls
+- add async thread pool (core=8/max=16/queue=100) + start.sh with G1GC
+- combine dashboard 7-API calls into single POST /api/stats/dashboard
+- replace full Element UI import with selective imports
+- add 9 composite indexes via idempotent migration
+- add migration version table, skip migrations after first run
+- batch queries in EnergyService to eliminate N+1 patterns
+- configure HikariCP pool size 50, remove duplicate datasource config
+
+
 ## v1.0.1009 (2026-08-12)
 
 ### 新功能

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

@@ -1,6 +1,6 @@
 # 更新日志
 
-> 当前版本: v1.0.1009
+> 当前版本: v1.0.1010
 
 ## 历史版本
 
@@ -8,6 +8,6696 @@
 
 ---
 
+## v1.0.1010 (2026-08-12)
+
+### Bug 修复
+- 移除报告审核 Tab 及相关路由
+- 迁移227 product_skus.id 升级为 BIGINT
+- RegionController 移除硬编码数据,改用 StreetService 读取 DB 全量省市区数据
+- 迁移226 products 添加 growth_category 列
+- 迁移225 articles 添加 growth_category 列
+- 成长页推荐只调用一次API,前端按growth_category分组显示
+- 推荐接口移除 growth_category 过滤,直接取精选内容
+- GrowthRecommendationService 修复 getCategory 调用错误
+- 报告详情行距优化、富维度商品封面图URL修复、智维度功能区间距调整
+- 修复成就页分包注册路径,健康/成长页移除家庭成员选择条
+- LangGraph 容器挂载宿主机上传目录替代命名卷
+- getFamilyEnergySandbox 兼容新返回格式,避免16个旧页面崩溃
+- 图片路径替换为京东云OSS URL
+- 自驱力/自我概念/成长型思维解析改为嵌套Map+中文key的structuredAnalysis真实结构
+- 修正 UserController 变量重复声明
+- UserController 编译错误 - 修复 getPointsBalance 方法和 log 引用
+- 修复测试编译错误和 FoodService 列名映射错误
+- 修复 EnergyControllerTest 编译错误
+- SortUtil 修复 LambdaQueryWrapper 类型不兼容问题
+- 雷达图销毁后停止初始化重试 + 成长页定期调研改名成长回看并防御空项点击
+- 我的页面isLoggedIn改为data+onShow赋值,修复登录后仍显示登录前视图
+- NutritionProductService 字段名冲突导致 Bean 注入失败
+- 补全 FileRecord 实体和 Mapper(JdCloudStorageService 依赖)
+- 雷达图标签边界约束 + 底部留白防tabbar遮挡 + 五维卡片标题单行 + 移除闭环图
+- diet/record/daily, survey/status, survey/history memberId 为空时优雅降级
+- 移除公告分类(27篇文章+68个chunk)
+- HealthReportControllerTest 适配 listReports 方法签名变更
+- LangGraphAdmin.vue 修复 ES6 spread 语法兼容 webpack4
+- 报告列表接口不强制 memberId——未传时回退到家庭报告列表
+- 修复测试编译错误——适配 controller 方法签名变更(增加 @RequestAttribute 参数)
+- HealthDimensionControllerTest 适配 history 方法签名变更
+- LangGraph管理页全屏布局 + 健康检查修复
+- LangGraph健康检查修复Java后端状态显示
+- LangGraph管理页全屏布局 + Java后端健康检查修复
+- 修复重置用户密码接口请求体参数丢失 - data 改为 data: { password }
+- 天盘页面 routeDone 路由错误修复 - 导航工具加锁防重复跳转、修复 canvas 混合 API 用法
+- TeacherLoginTest 适配 roles 改为 List<String>
+- 健康/成长页不传memberId + 后端自动解析当前用户memberId JwtInterceptor对所有角色设置currentMemberId/familyMemberId
+- 无 memberId 时跳过健康/成长页数据请求,避免后端 400 空字符串解析错误
+- User.roles 改为 List<String> 修复修改角色反序列化错误
+- 健康/成长页 memberId 为空修复 - getReportList 传 selectedMemberId、onShow 顺序调整、FamilyMemberStrip 绑定 @select 事件
+- 权限不足时跳403而非/,避免无限循环导致栈溢出
+- 修复 4Tab 编译错误 - 补回 wealth/index.vue 缺失的 service-item v-for 和 serviceList 数据; 修复 report-detail.vue 和 report-blocks-renderer.vue 的 :key 表达式改为方法调用
+- JwtConfig 兼容短密钥,避免 WeakKeyException
+- LangGraph管理页改造 + 新增health/coach/generate端点
+- 修复预存编译错误(DanshopSyncService引用 + 缺失File/FileOutputStream import)
+- 移除维度页未使用的LoginGuideCard import
+- 修正指标异常计数与展示不一致
+- 修复 parse 读取文件路径重复拼接 uploadBaseDir
+- 健康报告上传改用 upload-only 接口
+- 删除DanshopSync stub + 实现EnergyService占位方法 + PdfReport用PDFBox渲染 + AiGateway新增generateHealthPlan
+- 迁移208 health_gut_flora.detection_rate 列扩容
+- 后台管理列表页统一显示用户名而非用户ID
+- 移除 @Slf4j 注解,改用显式 Logger 避免编译错误
+- CouponService 改用显式 Logger 替代 @Slf4j,修复编译错误
+- 健康报告页修复 - memberId兜底、移除自定义导航、指标状态标签、文案优化
+- 清理残留成长档案文案 (DimensionIntroCard + profile-main)
+- health tab getReportList 空 memberId → 从 store/storage 取当前用户ID
+- AdminController 补 @Slf4j + 修复 AdminNoticeController LambdaQueryWrapper 写法
+- AdminNoticeController LambdaQueryWrapper eq方法参数类型错误
+- 富维度 banner 配色改为琥珀金
+- 推荐服务商品状态改 on_shelf 修复 dimension-products 空数组; feat(frontend): 推荐阅读三列书封比例/推荐商品自加载/会员级别样式
+- getOrderCounts 接口路径错误导致 404
+- growth-main 移除活动维度参数
+- home-detail 移除任务维度参数
+- member-detail 移除任务维度参数
+- index-home 移除维度参数
+- wisdom 成员详情页移除维度参数
+- wisdom-detail 成员详情页移除维度参数
+- mind-detail 成员详情页移除维度参数
+- body-detail 成员详情页移除维度参数
+- action 成员详情页移除维度参数
+- mind 成员详情页移除维度参数
+- body 成员详情页移除维度参数
+- DimensionTasks 移除维度参数自加载
+- DimensionActivities 移除维度参数自加载
+- DimensionArticles 移除维度参数自加载
+- DimensionProducts 移除维度参数自加载
+- 推荐商品接口支持空 dimensionCode 返回全量
+- 添加家庭成员数量校验 - 任务分配需≥2人/挑战需≥2参与者/互动双方不能同一人
+- createOrder 透传 couponId(会员优惠券此前未生效)
+- modifyColumnToText 跳过不存在的表,消除启动日志WARN
+- unify section headers + quick bar + task shortcuts; fix(tab-bar): center button position; fix(backend): ClassCastException in purchase field save
+- 修复DBI启动日志WARN(RENAME语法+不存在表/列的迁移)
+- 管理员登录兼容 BCrypt 密码验证 + 新管理员密码用 BCrypt
+- 家庭成员邀请改为小程序原生分享
+- 完善信息页面移除 hasFamily 门控 — 老用户编辑时始终显示表单
+- 修复我的页面主包引用分包组件导致内容不显示
+- adjust position of heart icon and update tab icons
+- growth tab 空态不刷新 — hasFamily 加入 children/records 判断
+- TabBar 分包冲突 + 自定义TabBar不显示修复
+- 缩小推荐商品卡片尺寸
+- 能量沙盘调整顺序 - 心在最上,顺时针身智富行
+- 修复邀请流程 - 传递familyRole、改用小程序分享
+- 创建家庭时自动将创建人加入为家庭成员(修复空心家庭问题)
+- 修复 UserService 中 createJoinRequest 调用
+- 修复 createJoinRequest 调用参数
+- 修复邀请流程 - 保存familyRole、修复轮询逻辑
+- 修复 RequestBodyCachingFilter 编译问题
+- FamilyMemberStrip centerMemberId watcher 加 immediate + 清理重复 .action-header 样式
+- pairwise VO 补齐 isSpouse 与 lastInteractionAt(修复成员详情页 action-sheet 关系标签和上次填写时间显示)
+- 修正 parseDate import 语法(named export)
+- 移除多余的 String 构造函数调用
+- 修复 Java 8 兼容性问题 - readAllBytes 改用 readStream
+- 将 Java 11 HttpClient 改为 RestTemplate 兼容 Java 8
+- LangGraph 管理页面使用原生 fetch 避免 axios 拦截器问题
+- 迁移192 verification_codes.type 添加默认值
+- LangGraph 管理页面使用独立 axios 实例避免 CORS 和响应格式问题
+- 处理生产日志错误(foods.report_id/score + 知识库JSON + DBI迁移112)
+- 修复测试编译与 getTemplates 断言;补充肠道菌群解析参考脚本
+- 修复 diet/index.vue 运行时错误
+- 饮食首页改造——原生导航栏+空数据弹窗+未配置共餐降级
+- 家庭成员扇形展开 - fan-wrap 改 fixed 修复成员错位+不可点击; 半径 280→220rpx
+- 修复 FamilyChallengeService.getTemplates 数组越界 Index 7 out of bounds
+- 修正身页面饮食入口路径
+- 迁移180/181 health_reports.health_report_drafts 缺列修复
+- 首页家庭挑战区块增加管理入口跳转 challenge-manage
+- 修复 FamilyControllerTest 编译错误 - 废弃接口测试改为无参断言 410
+- FamilyMemberStrip fan-wrap 改 v-if 不再遮挡五维页点击; diet :key 表达式改方法调用
+- 修复家庭FAB按钮点击失效 + 位置上移
+- 恢复添加家庭成员页保存按钮
+- 统一 SKU specs 存库为数组格式,修复规格名丢失
+- 已登录用户富页面误显'请先登录'的会话过期修复
+- 修复 HealthReport 预存编译错误 - HttpServletRequest import / reportMapper 变量名 / remark 字段缺失
+- 修复 ContentSharePoster 分享海报 String 属性收到 null 告警
+- 修复商品详情页会员身份加载与详情图片显示
+- 修正 profile-page.vue 中 Profile* 组件的 import 路径
+- 修正 profile-page.vue 移动后的相对路径 import
+- 后端身份参数改从JWT推导,不再信任客户端传入
+- 移除前端身份参数传递——前端只传memberId,不传userId/familyId/childId
+- 将 tabbar 入口页移至 pages/tabs/ 消除与分包 root 的路径冲突
+- 修复 meal.py 语法错误
+- 修复 tabbar 路径与分包 root 冲突导致的 HBuilderX 编译失败
+- 修复路由前缀重复问题
+- 修复行/身页面 hasFamily 误判导致 FamilyEmptyState 覆盖内容区
+- pages.json 修复 diet 分包错位导致的 JSON 语法错误(HBuilderX 编译失败→白板)
+- 修复pages.json饮食分包位置错误 + 饮食模块config引用改为config.js
+- 修复 FamilyEmptyState 误显示 - 28处 hasFamily 守卫改为数据优先判断
+- 修复编译错误(类型不匹配)
+- 多控制器支持 familyId 为空 + WeChat token 过期重试 + 服务/产品改进
+- 打卡请求失败时补充错误提示
+- 家庭挑战打卡每日限次 + memberId 归属校验
+- 商品海报分享未携带封面图(coverImage 未转完整 URL)
+- 移除无家庭时的创建或加入家庭弹窗(5001 仅拒绝请求)
+- 分享海报封面图按原比例绘制(contain 居中),不再拉伸变形
+- 报名弹窗点击家庭成员/添加报名人即关闭(.self 修饰符在 mp-weixin 被丢弃,改用 @click.stop)
+- 活动报名弹窗重复导致点击家庭成员关闭弹窗
+- checkout.vue methods 间缺逗号语法错误
+- 库存流水列表显示商品名称
+- 商品详情页移除会员价展示
+- 报告确认页 :key 表达式改为方法调用(微信小程序兼容)
+- 修复orderService.ship参数不匹配+添加进价字段(purchase_price)到products/product_skus/inventory_inbound_items(迁移177)+同步schema.sql
+- 服务商/家长端页面日期解析改用 parseDate(iOS 兼容)
+- 商城页面日期解析改用 parseDate(iOS 兼容)
+- 奖励/个人中心页面日期解析改用 parseDate(iOS 兼容)
+- 推广/会员页面日期解析改用 parseDate(iOS 兼容)
+- 家庭/成长/身体页面日期解析改用 parseDate(iOS 兼容)
+- 活动/任务/孩子页面日期解析改用 parseDate(iOS 兼容)
+- 测评/心智页面日期解析改用 parseDate(iOS 兼容)
+- 健康/饮食维度页日期解析改用 parseDate(iOS 兼容)
+- 组件日期解析改用 parseDate(iOS/HarmonyOS 兼容)
+- 打卡/活动详情/推广/结算页 fixed 元素移出 scroll-view(iOS 兼容)
+- 迁移174 product_skus添加min_stock_alert列+同步schema.sql(SKU库存预警)
+- 迁移173 创建库存管理4张表(inventory_transactions/counting_records/inbound_orders/inbound_items)+ 同步schema.sql
+- 安全加固——SQL日志/密钥外部化/BCrypt限流/后台防重
+- 迁移172 products添加min_stock_alert列+同步schema.sql(库存管理功能遗漏)
+- Controller gutFlora 入库补全 taxonomy+pathogen 8 列表 (对齐 Service); 确认页新增 taxonomy 分类组成 + 病原菌 + 益生菌种区块(采到啥显示啥)
+- gender枚举校验+MindFortuneController空值防御 - UserService.updateUserInfo: gender 仅接受 male/female,修复 Data truncated 错误 - FortuneServiceImpl: generatePlaceholderFortune/getFamilyFortune 添加 familyId 空值校验 - MindFortuneController: 三个端点添加 familyId 空值检查,返回友好提示
+- make LangGraph URL configurable via @Value + app.yml (IMPORTANT-3) + overview key normalization (BLOCKING-1) + Docker deployment TODO comment
+- normalize Chinese→English overview keys in ReportParseAgent (BLOCKING-1)
+- add audit logging for family_id/user_id + trailing newline
+- register report_parse router in main.py (missing include_router)
+- 心维度页面 loadHealthAlerts/loadMilestones 移除残留 familyId 存储读取(后端已 JWT 派生)
+- add raise_for_status to expose real LLM HTTP errors
+- 心维度页面 milestones/health-alerts 传入实际 familyId 替代 {} 对象
+- MindFortuneController 添加 userId 为空检查(过期JWT被设为匿名用户时抛出'用户不存在')
+- detect_format 兜底分支改为返回 inline(修复同义反复)
+- compose 显式覆盖 JAVA_CONTEXT_URL 指向宿主机 9082,修复容器内 chat load_context 回调 Java 失败
+- DatabaseInitializer.initializeDatabase() xzyj→zxyj 数据库名拼写错误
+- 问卷推理超时防护 — gunicorn timeout 60→300s + ChatOpenAI timeout=180/max_retries=1
+- 问卷生成服务接入旧入口 — src 路由重构为 router + LLM env 兼容 + healthcheck 修复
+- GraphState 补 _prompt 字段 + 测试 mock 目标修正为模块内引用
+- schema.sql 移除重复的 guide_commissions CREATE TABLE 空壳行(导致 initializeTables 正则匹配合并成畸形 SQL)
+- 迁移166 payment_orders添加group_no/period_no列(会员拆单支付)
+- 修复图片上传 URL 语法错误,清理认知测评/成长报告重复接口定义,修正注释乱码
+- 修复健康报告上传 URL 语法错误,首页宫格替换为记录互动/家庭天盘/成员管理,清理重复的 getChildOverview 定义
+- 迁移165 virtual_goods_config添加goods_price列(会员道具价格,用于拆单判断)
+- controller parameter signatures, test compilation fixes
+- 迁移163 为family_challenge添加creator_id列(原迁移158在runMigration100死代码中从未执行)
+- 修复WXSS中文类名编译错误 + 恢复getPublicConfig函数
+- resolve duplicate exports in api.js and syntax errors in report-upload.vue
+- 补全打卡系统缺失的 schema.sql 建表 + 迁移 + 小程序前端打卡功能
+- 购物车结算页传递SKU信息到下单
+- 防重复提交整改——补齐唯一约束/统一订单号/修复竞态/批量前端守卫
+- 上报健康报告页加载即崩溃 - 移除未实现的 getPublicConfig 调用
+- _roundRect arcTo missing parameter in ContentSharePoster
+- 去掉指标项上的状态文字标签,只保留颜色
+- discardReportDraft传参修复 - 对象改为直接传draftId
+- FamilyMemberStrip 编辑资料补全 nickname/gender/phone/birthday query 参数
+- 迁移155-157 创建 interaction_logs/questionnaire_snapshots/questionnaire_responses 三张缺失表
+- report-upload member selector + api.js dead code removal + comment mojibake restoration
+- extractInlineNamesFromRegion substring 越界保护
+- 补充PDF解析缺失指标 - 菌群层级表/致病菌/其它重要菌属/病原菌属
+- 商品SKU规格specs字段保存失败
+- 维度首页推荐阅读补传 dimensionCode,与知识中心一致
+- 商城首页/搜索页商品价格显示放大100倍(漏除100)
+- activity 详情/列表封面拼接 API_BASE_URL
+- call applyDisplayState for guests so displayStatus/registrationStatus are always populated
+- 邀请接口相关修复
+- 微信安全检测改用stable_token接口避免'not latest'冲突
+- 商品详情页修复 — 封面轮播、字段映射修正、按钮等大
+- CORS放行111.228.6.214; 实现/article/updated-since增量查询接口
+- 家庭地址编辑与区域匹配页面消除 $http 引用并接入真实接口
+- 地址选择器改用标准 API 封装 - 修复省市选择控件无法使用
+- 行Tab页推荐阅读修复 - coverImage补传 + actionArticles过滤修正(indexArticles而非articles)
+- 心/智/行首页推荐阅读补传 coverImage 修复封面图不显示
+- 推荐商品组件移除五维权重徽章展示
+- 新建商品维度权重默认值未初始化导致保存失败
+- 首次登录创建家庭后跳转到带底部TabBar的行首页
+- self-check 页面 :style 空对象 {} 改用字符串避免 WXML 编译错误
+- 移除 DatabaseInitializer 残留冲突标记行 - 修复生产构建失败
+- 修复 Playwright addInitScript 单参数传参 bug + 远程 E2E 测试套件
+- PaymentService 微信支付V3解密用原始API密钥而非SHA-256哈希
+- 商品详情原生分享补上 setShareInfo - 分享路径带商品ID和邀请码
+- resolve merge conflict in tap-water-pollution.html (accept upstream version)
+- 圈子页无 childId 时跳过请求, 后端 memberId 空串防御 - 修复 discover 500 与 my-circles 400
+- ActivityControllerTest 适配活动模块升级后的接口签名
+- 上传存储路径统一 upload.base-dir - 修复 transferTo 相对路径落盘失败与 /uploads URL 404
+- VirtualGoodsConfig.save() 重命名 saveConfig() 避免 saveOrUpdate 递归 StackOverflow
+- 会员接口匿名访问返回 FREE 空数据 + getMemberLevel 查询 LIMIT 1
+- 修复成员条移除后不刷新 + 可见成员列表字段缺失
+- 迁移151 growth_records 补齐学校/年级7列 - 修复 Unknown column 'school'
+- List.of 替换为 Arrays.asList 兼容 Java 8
+- 完善 PDF 解析服务 - 支持 inline 格式、Kangxi 部首归一化、指标去重、白名单过滤
+- 迁移148 payment_orders.user_coupon_id 兜底添加
+- globalData.currentChildId 替换为 uni.getStorageSync('currentChildId'),修复孩子视角切换数据失效
+- getApp().globalData.baseUrl/apiBase 替换为 config.API_BASE_URL,修复 uploadFile invalid url 与图片加载
+- 消除开发者工具告警 - getSystemInfoSync 弃用替换为 getWindowInfo, 修复 article-center articles prop 非数组类型错误
+- 修复 ArticleBookshelf relatedDimensions 数组拆分崩溃与 switchTab 非 TabBar 路由系统错误
+- FamilyRelationGraph 力导向模拟增加动能收敛检测, 布局稳定后自动停止避免永续占用主线程
+- add missing goodsCategory API to fix empty product list on shop index page
+- offerId 改为支付应用ID并按官方 camelCase JSON 串重建 signData 签名
+- 统一商城首页路径并修复 switchTab 非 TabBar 跳转
+- 维度权重保存移除 CAST(? AS JSON) — MariaDB 不兼容
+- interaction/add 修复 familyId 为空报错——后端按 userId 自动解析
+- 生成海报二维码必须登录 — 拦截 anonymous 流量反复触发 access_token 'not latest'
+- 开通会员页改用 getMembershipPlans 获取实际配置价格
+- 未登录时跳过邀请码请求与维度商品展示守卫
+- GlobalExceptionHandler, ErrorLoggingFilter, migration102 call, article_admin_status, ContentRecommendService
+- wangEditor v5 上传图片改用customInsert+限制5M+错误提示
+- 图片上传multipart大小限制+微信安全检测超过1M跳过
+- 文章详情页封面图和正文图片拼接 API_BASE_URL,修复未登录时相对路径图片加载失败
+- 新建商品时显示SKU维护入口
+- wangEditor 初始化配置提前到 created 生命周期
+- 更新VirtualPayServiceTest发货推送断言为handleVirtualPaySuccess路由
+- 修复外部提交引入的语法错误,恢复小程序构建
+- 虚拟支付Task4评审修复 sessionKey防序列化泄露/发货推送幂等/缺参ack/签名断言
+- AI/promotion/vendor/parent pages use API_BASE_URL for uploaded images
+- upload/meal/points pages use API_BASE_URL for uploaded images
+- index/product/detail pages use API_BASE_URL for uploaded images
+- activity/guide pages use API_BASE_URL for uploaded cover images
+- order pages use API_BASE_URL for uploaded order cover images
+- shop core pages use API_BASE_URL for uploaded product images
+- product/discover pages use API_BASE_URL for uploaded cover images
+- article pages use API_BASE_URL for uploaded cover images
+- base config/components use API_BASE_URL for uploaded image URLs
+- WechatService 用 StreamUtils.copyToByteArray 替代 readAllBytes,兼容 Java 8 编译
+- 富文本编辑器图片上传路径和网络图片弹窗被遮挡
+- ErrorLoggingFilter 捕获链式异常并记录500日志; DimensionWeightController 参数校验; GlobalExceptionHandler 兜底异常处理
+- 五维首页为你推荐商品区改为使用公开接口数据, 未选孩子也能显示
+- simplify payment QR instruction text
+- set gut testing price to ¥1,314
+- update payment QR instructions for WeChat browser users
+- DatabaseInitializer 清理 — 修正 modifyColumnToText 表名、移除已删表的残留迁移
+- skip OAuth2 JSAPI flow, use Native QR code directly for WeChat browser
+- show contact info in QR payment popup
+- sync ProductOrder for admin order management
+- ArticleBookshelf 书籍横向排列 — scroll-view 内包 inline-flex 容器
+- show product info in payment popup, auto-close on success
+- missing braces in JS, add backend QR code endpoint, use backend QR code instead of external API
+- add CORS origin for www.cf-club.com, fix QR code display, add diagnostic filter
+- 文章列表点击直接进入详情页,未登录也可阅读公开文章
+- 统一移除RecommendedSection的v-if条件
+- 统一五维首页推荐组件 — 顺序为活动→商品→阅读→推荐
+- getOAuth2Url 用 String 重载的 URLEncoder.encode,兼容 Java 8 编译
+- add payment endpoints to JWT exclude list
+- fix fallbackNativePay syntax error, center order form modal
+- 重绘底部tab身图标,更简洁的弯曲胳膊造型
+- ContentRecommendService 商品/活动推荐改用 dimension_weights JSON 列查询
+- add /upgrade-records route alias to MembershipController
+- promotion模板缺少</template>闭合标签
+- promotion模板多根元素 + 内联赋值
+- RecommendedSection无数据时显示空状态而非隐藏整个组件
+- 重新绘制底部tab身图标,更清晰的弯曲胳膊造型
+- DimensionProductList使用attached生命周期在uni-app中不触发
+- recommend-mixin传参字段名与后端DTO不匹配
+- family-members弹窗关闭内联表达式
+- 健康报告上传失败时 console 输出错误详情
+- 后台活动权重维度code与标准五维体系不一致导致新活动小程序端不显示
+- add missing List import in ActivityController and DB migrations for dimension_code/family_scope columns
+- circle接口空字符串解析Long报NumberFormatException
+- 富页登录按钮因重复CSS规则min-height:80vh位置偏高
+- article-detail auto-merge遗留重复方法
+- article-detail内联表达式导致data-event-opts编译错误
+- 未登录可浏览商品/活动/文章详情 + 富页面预登录内容
+- 统一活动详情页,删除 discover-detail 重复文件
+- 补充ActivityDTO缺失字段 requireRegistration/requireCheckinReview/memberPrice/feedbackDimensions
+- resolve 6 backend compilation errors
+- article-detail模板结构错误 — template作容器/多余闭合标签/tag无匹配end
+- override ejs to 3.1.10 to fix critical CVE in webpack-bundle-analyzer
+- ContentRecommendService NPE when type is null
+- replace Map.of() with HashMap for Java 8 compatibility
+- recommend-mixin.js 导入路径多一层目录
+- ContentRecommendService select() incompatibility, ProductRecommendationService bean injection conflict
+- 登录合规整改 - 跳过登录入口、静默授权、协议措辞
+- remove WeChat branding from login page per review guideline
+- promotion try无catch语法错误 + 创建缺失的member-detail分包页面
+- parameterize JSON_EXTRACT dimension_weights queries to prevent SQL injection
+- OCR finding - DimensionActivities CSS flex overflow
+- resolve OCR findings - AIService workflowId URL + EnergyService parent role filter
+- 财商打卡页内联表达式导致data-event-opts编译错误 + 修复模板编译器recyclableRender未定义
+- add sendWorkflow and getTodayTasks(Long) overload, pull remote changes
+- 推荐商品和活动价格显示到分
+- allow tracking screenshots in web/articles/ via .gitignore
+- 智首页六维认知雷达图无数据时也显示人群平均值
+- 身首页七维雷达图无数据时也显示人群平均值
+- 关系图连线映射交换 — 信任度→颜色(低红高绿),沟通度→线形
+- 关系图连线视觉映射调整 — 粗细/颜色/虚线 + 无数据默认黑色
+- payment.wxss 多余逗号导致编译错误
+- EnergyService 修复 JSONObject.getInt -> getIntValue 和 executeAward 缺少 totalAmount 参数
+- ActivityEdit/ArticleEdit full scroll, action tab no auto-select, timeout 800ms
+- edit page scrolling, action tab blank screen, SKU specs save
+- 推荐活动和推荐商品显示实际价格而非'登录查看价格'
+- ProductEdit card layout, sales page add leaky-gut/pancreatitis articles
+- remove required:true from dimensionCode prop in DimensionActivities/Products
+- el-main添加overflow-y:auto使内容区可滚动,解决长表单被截断问题
+- replace template literal fallback with computed props for WXML compat
+- add null defaults for dailyFortune and dominantElement props
+- add currentChildId guard and fix getMyCircles params
+- add iOS date parsing fallback for Java format
+- 商品编辑页el-card__body增加overflow-y:auto使表单可滚动,保存按钮可见
+- member pricing display, wisdom/body page layout, :key expr in FamilyTianpanCard, remove FamilyRelationGraph
+- add membership_levels seed data and period-specific pricing keys
+- add mind/alert/active and mind/traditional/mirror to public paths
+- verify-password 400 error — replace broad /api/auth/ public path with explicit list
+- empty purchasedIds causing NOT IN () SQL syntax error
+- 8 test failures — entity fixes + test param alignment
+- Product entity column mapping + test param fixes
+- add migrations 126-132 with ensureColumn for column alignment
+- add 9 missing tables (migrations 117-125) + fix JwtInterceptor familyId + fix test emotion childId
+- 商城升级提示文案通用化 - '开通家庭会员'改为'开通付费会员'
+- move migrations 105/106 into runMigrations() — they were in dead code migration102()
+- resolve P0-1/2/2b/3/5/6 test bugs + P0-4 DB migration for growth_records
+- migration 106 add growth_records missing columns (family_member_id/school info)
+- restore tab-wisdom icons from earliest valid version (faedcc33)
+- year_month reserved word quoting + products.min_quantity migration
+- 修复 stats-report-flow.md Mermaid 虚线连接语法错误(-:- → -.-)
+- 修复 promotion_tier 表列名映射——teamSize1st→team_size_1st
+- decode tab-wisdom PNG icons from base64 to binary
+- 梳理慢性病文章因果措辞——炎症不再作为唯一病因
+- schema.sql 补充 4 个 butler 表定义
+- key 表达式改为方法调用,修复小程序非 H5 平台编译警告
+- 修复growth-record-flow.md Mermaid语法错误
+- remove broken image refs in gut-microbiota-testing.html
+- replace {param} with :param in mermaid node text to fix syntax error in v11.12.1
+- replace bare <br> with <br/> in mermaid flow diagrams to fix syntax error in v11.12.1
+- goDiscoverCircles 跳转到 discover 首页(原路径 /pages/discover/circles 不存在)
+- add products.min_quantity migration to runMigrations()
+- remove invalid shape:box from all mermaid classDef
+- update article count from 2→1 after turmeric article removal
+- 报告日期/综合评分仅文件上传后显示,ping文件Ping重置日期评分
+- 改进ensureColumn错误处理+添加迁移104/103验证日志
+- correct activity flow diagram with proper business rules
+- 补充缺失的default-avatar.png,统一路径
+- tianpan_daily_fortune表添加8个缺失字段修复Unknown column错误
+- prioritize K8 (8-plate, 37900元), fix 20-year cost analysis, update certifications placeholder
+- DimensionProductList activeChildId为空时跳过渲染
+- 推荐阅读数据补充dimensionWeights和likes字段
+- P2/P3 article fixes
+- 快捷入口对齐action页原版样式和funcList
+- 行TabBar章鱼图+联系人导入,顺序对齐原计划
+- unify 活性氢→分子氢 terminology across sales pages and infographic
+- unify terminology - 活性氢→分子氢, 磷脂配比→天然基底油, refine descriptions
+- remove dead link to deleted turmeric_rewritten.html
+- 行TabBar登录态数据加载对齐action页(孩子/能量/任务/活动/商品/文章)
+- products表添加min_quantity列(迁移103)+ schema.sql同步
+- restore article reading timer + recordRead积分发放 + fix response code
+- recapture UKPDS 16 and DPP study reference screenshots
+- update microplastic and tap-water sales pages
+- update article content
+- update WHO PDF link to IRIS archive, restore ref-18 CAS card
+- 去掉行TabBar页的redirectTo,登录态内容内联渲染,保持底签可见
+- 文章编辑页内容过长时无法滚动到底部
+- 闭合rating.vue模板中缺失的view标签,修复编译报错
+- add 300+ missing CSS rules to diabetes.html
+- correct gut-microbiome-damage.jpg path in cancer.html and diabetes.html feat: add missing reference screenshots (turmeric marketplace, nature figures)
+- 修复 createMultiItem 中 minQuantity 产品级校验注入位置错误
+- move Hallmarks screenshot to content area, fix container nesting
+- 修复cardio-cerebro.html中ref-screenshot图片路径(/img→../img)
+- 替换cancer_ref3截图源,补全三篇文章ref-shot img标签
+- 恢复行首页redirectTo;修复CircleRanking WXML编译错误;新增plans占位页
+- 行首页登录后保持TabBar;家庭挑战任务移至身页面
+- 用evidence-inline替换cancer/diabetes/osteoporosis断链截图
+- 添加真实DOI参考文献到3篇geo-faq文章,修复导航链接路径
+- 为8篇独立文章补充footer CSS样式
+- resolve subpackage path conflict in pages.json
+- 修复肠脑轴图/页脚/参考文献/证据截图
+- fix encoding corruption from directory rename and restore UTF-8
+- Fix:
+- 修正图片引用路径并替换缺失的参考截图
+- rename pages/index to pages/home and update all references
+- 修正 cancer/cardio-cerebro 路径引用
+- 修正子目录路径引用,添加 turmeric 文章
+- remove stale RelationshipTypes route referencing deleted component
+- add throws Exception to test methods calling preHandle
+- add missing MockHttpServletRequest import
+- resolve compilation errors - Java 8 var removal + type casts
+- fix 405 POST→GET redirect, RecommendedFeed items ref, and unhandled rejections
+- PROJECT-OVERVIEW §2.3 家庭成员体系状态 🚧→✅(4/4 全部完成)
+- remove dead getRelationshipTypes API after P0-001 backend removal
+- extend postinstall-fix.js to also patch HBuilderX bundled remove-scoped.js
+- revert to @vue/cli-service v4 + patch remove-scoped.js via postinstall
+- Fix:
+- fix syntax error in parent-index.vue - loadAlerts + handleDismissAlert
+- restore @vue/cli-service v5, remove PostCSS config files
+- Fix:
+- restore @vue/cli-service to v5 to fix WeChat DevTools compile error
+- use ES module default-export for generationLevel constants
+- @keyframes 从 scoped 移到非 scoped 样式块,修复 vue-cli-plugin-uni 编译错误
+- point develop env to cfc.etotem.com.cn; extract deep selector to non-scoped style for HBuilderX compat
+- replace >>> deep selector with ::v-deep for postcss compat
+- fix hash operator precedence, use floorMod for negative-safe index
+- use setFontSize in renderLegacy for WeChat compat, add _destroyed lifecycle guard
+- 联系电话 010-86461234 → 010-58733188
+- ensure .vue resolution in webpack
+- 修复 uni-app 小程序编译兼容性问题及运行优化
+- align MemorySaver import path and pin dependency upper bounds
+- restore file encoding to UTF-8 (was corrupted by PowerShell ANSI default)
+- 添加 tab-wisdom 图标文件,修复 gitignore 顺序
+- add tab-wisdom icons (temporary - copied from tab-mind)
+- add wx:key to v-for loops in RecommendedFeed and parent-index to suppress WXML warnings
+- pages.json tabBar icons corrected - wisdom uses tab-wisdom, wealth uses tab-wealth
+- FamilyMemberCard roleBadgeColor use this.member instead of bare member
+- 运势接口Mybatis错误 - 添加@Select注解修复Invalid bound statement + 表结构对齐
+- add fallback when navigateBack has no pages in stack
+- parent-index wx:for 添加 wx:key 消除 WXML 运行时警告
+- extract_full_report_v5.py - report interpretation content no longer truncated
+- FamilyFortuneMapper.selectByFamilyAndDate 添加 @Select SQL 注解
+- 智首页渲染层FLOW_DEPTH错误 + web baseURL/401提示修复 + 页面and组件完善
+- 每日运势接口(/api/mind/fortune) 400 错误修复 - 移除无效 request body
+- isLoggedIn computed → data property to fix login state reactivity
+- FamilyRelationGraph 组件兼容性修复 - 修正小程序requestAnimationFrame错误
+- normalize Kangxi radicals in Java service
+- add CAG candidate genera for full coverage
+- move floating migrations into runMigrations(), fix brace balance
+- add 4 missing genera + fix Kangxi radical chars
+- 开发环境跳过 auto-login 避免启动时 10s 超时错误
+- 修复支付页订单金额显示为0元
+- 修复体检报告详情页小程序编译失败
+- add wx:key to v-for placeholder loop in DimensionArticles
+- SKU编辑器适配Map类型specs + enabled Boolean转1/0
+- 新增findByProductIdAll供管理端SKU列表(无enabled过滤)
+- ProductSkuDTO specs类型从List<Map>改为Map<String,String>
+- resolve login API 405 and logo 404 on /admin/ deployment
+- clean bacteria names (remove Chinese prefix) + add 3 missing genera
+- product-detail 移除 memberPrice 价格回退
+- update test to match new BindController signatures
+- resolve @RequestAttribute familyId 400 error by resolving via MembershipService
+- replace @RequestAttribute("familyId") with
+- 商品图片上传两项关键修复
+- 商品图片上传两项关键修复
+- probiotic species-level extraction (22 items), inline format timeout
+- inline format bacteria table timeout - skip truly compressed format, 朱评估报告 now completes
+- bacteria table inline parsing, pathogen tables, antibiotic dedup, harmful/other bacteria expansion
+- FamilyRelationGraph 齿轮/+号/高度自适应被误回退,重新实现
+- comprehensive extraction fixes - Kangxi radicals, inline fallback, amino acid boundary, taxonomy levels
+- 移除活动菜单项 + MembershipCenter 改用本地axios
+- 管理端API请求方法修复 — PUT/DELETE统一改用POST
+- 文件存储调用方适配 — upload→store、移除原始文件IO逻辑
+- 文件存储重构 — 可配置上传目录、MIME类型校验、delete方法
+- comprehensive bacteria table & indicator extraction fixes
+- 非管理员登录避免死循环 — teacher 直接进 /teacher-dashboard
+- AdminArticleController.create 修复ArrayList强转String — visibility/visibleTo/articleType字段可能为JSON数组
+- 修复循环依赖 + ProductOrder重复字段 + QrCodeService静态调用
+- navigateBack instead of deleted plans page
+- add ProductService.getById() to resolve pre-existing compile error
+- break circular dependency between HealthReportService and DimensionScoreServiceImpl
+- remove duplicate closing brace in CSS
+- 解决 git stash 合并冲突残留标记(body/index, gut-index, report-list)
+- user delete soft-delete + ActivityProvision entity + DAN execution service
+- class 绑定改用预计算/内联表达式,避免方法调用
+- 修复管理端多处模板标签闭合并将本地开发接口指向 127.0.0.1:9082 代理
+- 完善Canvas渲染逻辑
+- 修复小程序编译错误和完善商品下单流程
+- 添加 getWealthDetail 到 api.js(富维度详情 API)
+- 迁移40 ALTER ENUM前先UPDATE非法role值,避免Data truncated错误
+- FamilyTianpanCard 修复多余闭合括号导致编译失败 + Canvas动画改用setTimeout兼容小程序
+- SKU specs Map正确序列化为JSON + 审核中心滚动容器统一
+- 修复拖动时按比例分配算法,首维度多分配问题
+- ArticleManage分页onPageChange未接收页码参数; 增加每页条数选择器
+- 活动列表滚动容器统一用overflow:auto消除分页导致的宽度抖动
+- 修复身页面编译错误 - 商品组件导入路径和天盘卡片语法
+- 活动管理列表横向滚动 + 查询条件间距调大
+- PackageAudit getPackageList/reviewPackage函数缺失修复; 修复后端reject用params传递reason
+- ActivityReview overflow-x:auto 修复横向滚动
+- showDialog处理object规格+update移除productId避免400
+- approveGuide 中 username 字段为 null 时使用 teacher_{userId} 兜底; fix(web): ArticleAudit 接口名/参数修正 + GuideAudit 分页
+- 创建规划师admin时phone为null导致username为空
+- ProductSkuDTO 适配 specs 字段 String→Object 变更
+- sku.getSpecs() 返回非String类型时类型转换保护
+- normalizeSpecsToJson 参数类型改为 Object 适配 specs 字段变更
+- 审核中心10个页面添加横向滚动+filter-bar美化
+- 修复规划师审核列表数据显示问题
+- ProductSku create() sku_code NOT NULL 缺失自动生成默认值
+- SupplyHierarchy change-requests systemId 改为可选 + ((Number)→Long.valueOf) 解析修复
+- 修正管理端4个API路径+2个分页兼容
+- ProductAudit 兼容 records 分页格式
+- 修正7个小程序API路径错误(article/supplier/messages/upload/families)
+- 移除无对应路由的文章审核侧边栏项
+- 退出切换改用 switchBackVerify 原子接口,修正密码校验逻辑
+- 迁移guides表添加university和education_system列(修复GuideService查询报错)
+- 创建 GuideFamilyListController - /api/guide/family/list 端点
+- 修复 createFamily API 路径错误
+- body page radar chart display issue
+- entire chain: dimension data -> score validation -> canvas render -> visual display
+- SupplySettlementService/Controller ((Number)→.toString()) 修复ClassCastException
+- ProductService 添加 getById 方法,SupplierProductController 编译错误
+- SupplySystemController @RequestParam→@RequestBody 修复400错误
+- schema.sql 同步补充 79 张缺失表的 CREATE TABLE 定义
+- add dimension_weights column to products table (migration 89)
+- DatabaseInitializer 显式声明 Logger 替代 @Slf4j 注解,避免 Lombok 处理异常
+- add dimension_weights column to activities table (migration 88)
+- CommissionRecord 添加 family_id 字段 + CommissionService createCommissionRecord 集成 familyId
+- CommissionService 编译错误 - 补充 familyId 字段和 L2 调用参数
+- move familyId declaration before use
+- resolve Spring MVC ambiguous mapping conflicts from PostMapping unification
+- 代码规范修复 — @Autowired→@Resource + Result<T>泛型补全
+- 后端稳定性 — catch块日志/空值处理/PostMapping统一/管家stub
+- 金融安全修复 — payment绕过/验证码stub/积分兑换/教师端点/类型转换
+- 迁移87: articles表添加content_type/difficulty_level/dimension_ids/dimension_weights字段
+- 迁移86: product_orders表添加purchase_info字段(OrderTimeoutCancelTask)
+- 调整 pages/profile/index 在 tabBar 中的位置并移除 customTabBar 配置
+- 同步 pages/wealth/index 路径与远程一致
+- 修复 Recipes.vue el-dialog 开始标签丢失
+- missing SubscriptionBenefitLog import + column comparison in ButlerService
+- remove extra closing braces at end of DatabaseInitializer
+- 修复 pages.json tabBar 富页面注册缺失 + 维度权重前端修改
+- resolve merge conflicts in package.json, CHANGELOG.md, .last_build_commit
+- add missing closing brace for export default in Detail.vue — fixes build error
+- resolve merge conflicts in cfc-web build files
+- 二维码分享功能统一收敛 — 新增通用 QR 后端接口 + 修复三处前端 QR 生成
+- PpointService null date handling + adminList keyword filter; ProductPpointManage effectiveDate→startDate field name fix
+- resolve ambiguous mapping /api/recommend/dimension-products - remove duplicate from RecommendationController
+- SupplyManageController detail/update/delete robust id parsing
+- api.js repurchase-reminders GET→POST + click tracking
+- 添加 dify.callback-secret 配置 + 管理端多页面优化
+- break circular dependency CircleService↔CircleMatchService with @Lazy
+- 修复DatabaseInitializer编译错误
+- ProductController spec map JSON.parseArray type inference for Java 8
+- CartService 回填 skuId + wisdom 阅读统计条件优化
+- restore family member menu + auto-derive generationLevel + add birth/preference form fields
+- 退款流程5项修复 (ISSUE-007~011)
+- 拆分 v-if 条件提高可读性
+- ArticleManage table 添加 max-height 防止溢出
+- 修复前后端数据流5个关键bug
+- 待退款队列可见性 + 退款到帐中状态 + 防重复审核
+- body index simplify childId checks use || '' fallback
+- FamilyRelationGraph 修复单成员家庭显示重复的问题
+- 补充迁移79(pending_refund.order_type/order_no) + 修复TianpanDailyFortune import
+- add missing FamilyRelationGraph to mind page
+- 删除body页face多余的</view>修复模板多根元素错误
+- 修复E2E-TEST-SCENARIOS.md section12编码乱码
+- 鏇存柊 playwright 閰嶇疆 + 鏂板娴嬭瘯鏂囦欢 (consignee/health-report/teacher-dashboard/publish-dimension-articles)
+- add updateTier(Long, String, String) overload to match call in PromotionTierEvalService
+- 七维健康图无个人数据时返回默认值 65
+- 身/心维度页推荐文章添加dimensionCode过滤
+- 修复退款失败 - package_orders表缺少user_coupon_id列
+- add missing PpointService for CommissionService compilation
+- specs字段规范化为合法JSON避免MySQL JSON列报错
+- resolve getPlanDetail duplicate declaration and clean up assessment controllers
+- getTrendStats send {} to avoid axios stringify undefined
+- 用原生 button @click 替换 el-button 绕过组件事件问题
+- knowledge layout — wrap body, add status filter dropdown
+- el-link 点击事件改用 .native 修饰符
+- 注册 Element UI Link 组件使变更日志可点击
+- AdminArticleController 空字串转Long抛NumberFormatException
+- 系统状态卡片增加变更日志入口与服务器运行监控
+- convert content-bearing VARCHAR columns to TEXT to prevent Data too long errors
+- show family relation graph card even with single member
+- connect after-sales request and product order refund flows
+- restore DatabaseInitializer encoding and fix ActivityController tests
+- 修复 numsoul_config 种子数据语法错误(缺失引号和逗号)
+- improve health report scoring and add admin report list
+- add role-based permission checks to activity endpoints
+- 补齐个人信息保存缺失的 idCard/mascot 映射
+- repair playwright baseURL, add test scripts and lockfile
+- resolve merge conflict in DatabaseInitializer, add mascot to UpdateUserDTO
+- normalize time format to YYYY-MM-DD HH:mm:ss across admin pages
+- complete scroll wrapper for all 59 pages with fixed=right columns
+- revert error-throwing, keep auto-create for unidentified users
+- prevent auto-create user when openid not found and no phoneCode
+- wechatLogin use real code2Session API instead of mock openid
+- validate openid before WeChat prepay - reject phone-prefixed/mock openid (resolves PARAM_ERROR 无效的openid)
+- add missing wangEditor Toolbar component to enable rich text editing
+- add overflow:auto scroll wrapper to all 58 pages with fixed=right columns
+- admin UI improvements - action dropdown, scroll, labels, confirm dialogs
+- guard loadHealthDimensions on activeChildId + debug logs
+- add table overflow scroll to admin pages
+- CSS grid violations, teacher API null guards, progress fallback, improved changelog parser
+- add null/undefined guards in TeacherDashboard loadStats
+- replace grid with flexbox in Dashboard quick actions + today stats
+- guard null userId in ArticleService.recordRead to prevent creator_id NOT NULL error
+- redesign ContactImport - support WeChat contacts import & fix picker modal issue
+- ISSUE-007 SupplySystemService.create() validate adminId
+- fix FamilyMemberService.addMember DTO compatibility for generationLevel/peerType
+- map generationLevel/peerType to relationshipTypeKey for RelationshipType lookup, set generation/isSpouse on FamilyMember entity.
+- resolve ProductEdit.vue rebase conflict + cleanup supply entities
+- migration 36-37 — family_members generation/is_spouse columns
+- admin edit pages and CHANGELOG updates
+- add GenerationLevel enum and family member entity updates
+- PaymentService testMode mock + WeChat JSAPI payer.openid
+- resolve 5 UI bugs across CFC mini-program
+- CORS - add PrivateNetwork header + explicit allowedOrigins
+- points_log表添加family_member_id列(迁移35,修复家庭能量计算报错)
+- align supply distribution system with spec — member management, period-based settlement, 3-page frontend
+- FamilyRelationGraph 完善 + login/family-dashboard 页面更新
+- add dan_assessment_results missing columns - familyMember/EMI/Big Five/snapshot fields
+- relationship_types.capability_role 添加默认值
+- 迁移33 供应商分销体系(4新表+product_orders 3列)
+- health_reports补subject_id列 + 迁移32供商体系表(4张新表+product_orders 3列)
+- HealthEnergyConfig.vue 全角括号导致前端构建失败
+- add deliveryMethod/rejectReason/categoryId/distributionSystemId mappings - ProductEdit field alignment
+- 多页面综合修复 + 后端关系质量/能量同步 + 前端组件完善 - 后端: DatabaseInitializer/RelationshipQualityController/DimensionEnergySyncService - 前端组件: ContactImport/DimensionActivities 完善 - 页面: action/body/mind/wisdom/discover/health 各维度更新 - splash.vue 删除 - 新增 HealthEnergyConfig.vue 管理端页面 - router/Layout 同步更新
+- resolve rebase conflicts + update tests/docs
+- resolve .last_build_commit conflict
+- ProductEdit wangeditor 生产构建错误 — 改用 @wangeditor/editor-for-vue Vue组件替换programmatic API
+- product order stock check by product type (physical only)
+- resolve merge conflicts and sync build artifacts
+- create cart table migration and sync to schema.sql
+- add relationship score column migrations for family_members table
+- add require_registration, require_checkin_review, energy_penalty_unregistered migrations for activities table
+- add role_override column migration for family_members table
+- add default_role column migration for relationship_types table
+- add remaining child-specific column migrations for family_members table
+- activities表添加审核相关字段迁移(迁移25)
+- package.json 版本更新
+- add id_card column migration for family_members table
+- resolve ArticleService.java merge conflict (autoGenerateTags + submitForReview/withdraw/reDraft)
+- 活动创建后弹窗提供继续添加/返回列表/直接发布选项 + 表单必填校验
+- TabTransition 默认 true 确保首次渲染即出现,消除页面框架闪现
+- 首次进入首页时 TabTransition 不应展示(由 splash overlay 覆盖)
+- DimensionWeightPicker 拖动时按比例重新分配维持100%
+- 环境配置更新
+- action/index.vue 集成 WuxingSandbox 能量沙盘
+- index.vue 闪屏逻辑优化 + api.js 中文注释编码修复
+- DatabaseInitializer 添加 family_member_id 和 role_override 列迁移
+- E2E tests for deployed admin at cfc.iwintrue.com/admin
+- relationship_types 迁移 default_role → capability_role
+- 后端+前端全面修复 - ArticleService/EnergyService/DimensionArticles/FamilyRelationshipSection及多页面完善 - ArticleService: getAdminList 返回值修复 - EnergyService: getEnergyOverview 能量概览补全 - DimensionArticles: 修复文章组件 - FamilyRelationshipSection: 完善关系管理组件 - 多页面: action/mind/wisdom-detail/promotion 等页面更新
+- FamilyMemberVO/Service + family-members.vue 完善
+- 后端全面修复 - 实体字段、Controller参数、Service方法补齐 + DTO新增 \n- 修复字段类型不匹配(Long/Integer/String)\n- 补齐缺失的 import/方法/参数\n- 修改 @PostMapping 路由统一\n- 新增 Cart/CartItemDTO/SystemConfig 相关实体和Service\n- 重命名 ChildNutritionProfileService -> FamilyMemberNutritionProfileService\n- 修复测试用例
+- createUser — unique openid + try-catch exception handling
+- 测试编译错误修复 - ArticleService.getAdminList 参数补齐 + update 方法参数类型修正
+- 修复编译错误(重复字段 + 缺失import + 参数不匹配)
+- update deployment script and admin router/activity api
+- add auto-migration for articles audit fields in DatabaseInitializer
+- create missing HealthDimensionsSection component
+- DimensionArticles & FamilyRelationGraph show empty state
+- uncomment ALTER TABLE for article audit fields in schema.sql
+- DimensionProducts always shows section with empty state
+- resolve Bean name collision between GuideActivityService and ActivityService
+- wisdom index radar chart - loadCognitiveReport race condition
+- call loadCognitiveReport() inside loadChildren's .then callback,
+- resolve API naming conflict for activity guide endpoints and WXML :class compatibility
+- connect article-center entry from discover page + profile menu
+- 修复退出登录遮罩冲突, 添加beforeunload防护
+- correct article publish path in v8 final test
+- add article publish path endpoint + product_skus table auto-init
+- 修复退出登录确认框不显示、文章编辑页刷新弹出浏览器提示
+- fix body goMoreProducts URL - was wrongly set to type=activity instead of type=product by rebase auto-merge
+- always show more button in DimensionActivities, fix goMoreActivities URLs with type param
+- 修复Controller单元测试编译错误
+- 修复集成测试编译错误(适配生产API签名变更)
+- DailyCheckinService.updateCheckin改为Map参数,deleteCheckin增加userId参数
+- 修复NEW-01/02/03运行时API错误
+- login redirectTo + goMoreActivities/Products URLs with type filters
+- fix all tab pages - empty navigation methods, wrong paths, bad query params for goMoreActivities/goMoreProducts
+- remove DimensionProducts section from body page, fix goMoreProducts navigation
+- goShop navigates to correct product pages instead of broken action/index
+- relationship_types enabled 修复 + 清理 body/index.vue 冗余产品链接 - DatabaseInitializer: 启动时修复 enabled=NULL 的种子数据 - schema.sql: relationship_types INSERT 补上 enabled 列 - body/index.vue: 删除菌群检测产品链接区块, showTabTransition=true, 移除废弃方法 - RelationshipPicker.vue: 组件增强 - DimensionActivities.vue: 组件增强
+- small adjustment in ArticleManage.vue
+- repair broken tag in mall.vue, CSS rename and normLevel fix in cognitive-report, small adjustments to add-member and ProfileMenu
+- testMode flag skips private key loading
+- Login.vue success路径补上this.守卫
+- 修复后台登录成功后的崩溃bug (防止重复提交 + catch块防御)
+- 移除所有UTF-8 BOM - api.js + 3个shop页面
+- PaymentService添加@Lazy解决循环依赖
+- 心页快捷入口从一行改为两行布局
+- GrowthTaskManagement import path and function names
+- add resolvedAt to EmotionAlertVO in toVO() mapping in both services
+- add resolvedAt field to EmotionAlertVO
+- make crisis hotline clickable in PsychCrisisBanner via uni.makePhoneCall
+- add emotion_checkin missing columns (moodScore, stressLevel, arousalLevel, sleepHours, sleepQuality, energyLevel)
+- resolve schema migration gate, controller NPE, auth check, WeChat template message support
+- 修复编译错误 - ActivityRegistrationService toList(), ProductOrder/TrialMembership缺失字段, DanshopSyncService BOM
+- ISSUE-001 ProductService.shelve() 状态检查 & ISSUE-003 AdminController.createUser() 缺省值
+- 修复管理端侧边栏菜单滚动问题
+- 修复report-survey微信小程序finally不兼容问题
+- 修复文章发布500错误,补充detail接口及relatedDimensions类型转换
+- List.of()→Collections.emptyList() (JDK8兼容)
+- 解决ambiguous mapping冲突(List.of改Collections+删除productList/productReview重复端点)
+- 调整tabBar顺序为行心身智富(五行相生)
+- 移除 date-picker value-format 避免 400
+- Danshop迁移到cfc-backend + coupons/upgrade模板修复
+- 修复energyMapForGraph缺wisdomScore + 添加返回首页快捷按钮
+- resolve merge conflict + upgrade.vue template root element
+- add .pillar-card to scroll-reveal observer selector
+- restore and fix pre-existing test files for Java 8 compatibility
+- improve FIRST_TASK onboarding trigger to use task child ID
+- HealthDimensionScore/HealthDataSourceRecord 新表字段匹配
+- use PDDocument.load() instead of deprecated Loader class
+- 修复小程序登录后首页状态不更新 + TabBar图标缺失
+- FAQ精简为11个核心问题,修正文不对题;新增销售文案页 sales.html
+- 全站理念统一——精准健康方案→精准健康,SEM/FAQ/百科/策略同步
+- 精准健康方案→精准健康
+- 修正产品理念——健康档案/成长档案为容器,菌群/DAN测评为实际内容
+- remove danLevel field call causing compilation error and add PdfParseServiceTest (10 tests)
+- add missing memberType and danLevel fields to FamilyMemberVO
+- 修复 Profile 子组件 import 路径
+- Core function 识别诊断→科学识别 desc -3chars, 跟踪执行+5chars, 成果检验+5chars; enhance 菌群检测+精准健康; stats in about section
+- Move stats into about section; enhance 成长规划/菌群检测/精准健康 descriptions
+- Revamp about section into 企业使命/愿景/价值观; remove 40,000+ stats
+- Center QR code image
+- QR code 200px desktop, 160px mobile - correct media query placement
+- QR code to 200px; tighten role descriptions
+- Reduce QR code size to 100px (from 180px)
+- hero按钮统一蓝底黑字,消除点击困惑
+- 营养健康模块5项缺陷修复
+- 统一平台运营图标尺寸与对齐方式
+- refactor profile.vue into 6 components + remove duplicate loadRewards
+- resolve git conflict markers in router/index.js and fix Layout.vue computed syntax
+- add monthActiveDays to /api/stats/child/overview
+- unify all order ops to DanShop API
+- convert totalAmount fen→yuan before passing to payment page
+- unify DanShop order operations — cancel/confirm/pay now route to DanShop API not CFC
+- 修复首页10个实现问题(主页风险修复计划)
+- pre-login entry flow - fix page order, remove stale resetTabBar, fix goShop nav, add auto-login refresh
+- 根据登录状态显示/隐藏TabBar(未登录跳转发现页)
+- ProductOrderController 使用 @RequestAttribute 读取用户ID
+- ProductService.decreaseStock 改用原子 UPDATE 防止超卖
+- 数据库 schema 加 UNIQUE 约束 + 时间戳默认值 + 平台商品 vendor_id 置空
+- 修复登录限制和密码重置逻辑
+- 修复Task.java缩进和duration字段一致性
+- 批量操作添加用户认证和所有权检查
+- 修复SfmsDataSourceConfig配置前缀不匹配,去掉hikari层级
+- 批量修复API路由冲突和权限控制
+- 修复数据库迁移SQL语法错误和测试用例
+- 修复预存的编译错误(DTO类型不匹配,status值)
+- 修复预存的编译错误并添加Service接口规范
+- 注册teacher目录页面到pages.json
+- 修复tasks.vue和添加SchemaSyncHandler
+- 优化RewardService和pages.json路由配置
+- 修复跨Controller路由冲突(RewardWishlistController+TaskReminderController)
+- 批量修复GET→POST迁移导致的路由冲突(TeacherController+UserController)
+- 修复ParentController路由冲突(getParentWishlist路径改为wishlist/list)
+- 修复TaskTemplatePackageController路由冲突(getPackageItems路径改为item-list)
+- 统一处理参数校验异常返回
+- 补充createChild必填字段校验
+- 修正测试基类元素解析契约
+- 修复UserService.createChild空指针异常
+- 统一前后端API为POST请求(安全迁移)
+- 修复AdminController类型转换异常和数据库迁移缺失
+- tasks表child_id字段改为可空,支持parent任务
+- rewards表child_id字段允许NULL,修复模板奖励插入失败问题
+- 修复profile.vue模板格式
+- 切换孩子模式时检查孩子数量并引导添加
+- 优化手机号输入体验,11位自动触发检查
+- 修复孩子端导航返回逻辑及移除TabBar游戏入口
+- 修复RewardWishlistController API映射冲突
+- 添加admin_task_templates表teacher_id字段迁移
+- 修复TaskTemplatePackageController API映射冲突
+- 修复GuideController与GuideFamilyTaskController API路径冲突
+- 修复GuideController与BindInviteController API路径冲突
+- 修复schema.sql中ALTER TABLE重复执行错误
+- 修复数据库迁移重复执行错误
+- 修复Java 8编译兼容性问题
+- 修复小程序登录流程和用户编辑页跳转
+- 修复Controller层userId获取方式及多个API端点
+
+### 其他
+- - 生产库 id/product_id 为 INT,实体为 Long,插入超出 INT 范围的 id 报错
+- - 生产 DB 已直连 ALTER(即时生效)
+- 
+- - Product 实体已含字段,生产库缺列,商品列表分页查询报错
+- - 生产 DB 已直连 ALTER(即时生效)
+- - schema.sql 同步补列
+- 
+- - Article 实体已含字段,生产库缺列,getFeatured 精选查询报错
+- - 生产 DB 已直连 ALTER(即时生效)
+- - schema.sql 同步补列 + 解决 unlock_gates/microbiome_article 冲突
+- 
+- - 后端: AI自动分类接口 /api/growth/articles/products/ai-classify
+- - 前端: growth-main 新增推荐文章和推荐商品卡片
+- - 前端: api.js 新增 getGrowthRecommendations()
+- 
+- - 后端: GrowthRecommendationService 推荐查询 + AI分类
+- - 后端: GrowthController /api/growth/recommendations + /ai-classify
+- - 前端: growth-main 新增推荐文章+推荐商品板块
+- 
+- - gut-flora-caution-detail → pages/growth/caution-detail
+- - gut-flora-foods-detail → pages/growth/foods-detail
+- - growth-main 新增戒备/饮食推荐行动卡片(戒备有数据时显示)
+- - 更新 gut-flora-detail.vue 跳转链接
+- 
+- - profile-main: 新增购物车(角标99+封顶)与收货地址入口
+- - profile-main: 移除功能入口网格, 设置改为菜单项放退出登录上方
+- - profile-main: loadOrderCounts 修正字段映射(pending/paid/shipped/refunding)
+- - profile-main: 补充 loadCartCount 方法定义
+- - order-list: onLoad 支持 status 参数, 我的订单五宫格点击直达对应状态列表
+- Ultraworked with [Sisyphus](https://github.com/oh-my-open-code/oh-my-open-code)
+- Co-authored-by: Sisyphus <sisyphus@ohmyopencode.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- /data/cfc-uploads/ 文件,导致解析时报「文件不存在」。
+- 修复:将 langgraph-data:/data 拆分为两层挂载:
+- - /data/cfc-uploads → bind mount 宿主机路径(共享上传文件)
+- - langgraph-data:/data/chroma_db → 独立命名卷(chroma 向量数据持久化)
+- 
+- - report-confirm.vue 去除 onLoad 重复的 draftId/memberId 赋值,draftId 模式自动跳转详情页
+- - report-upload.vue 上传草稿后跳转详情页
+- - 新增健康报告编辑日志(HealthReportEditLog + Mapper + 建表迁移)
+- - 报告服务/区块组装/排序工具相关后端增强
+- 
+- - 前端: 新建 gut-flora-caution-detail.vue 页面,倒序展示 indexScore < 0 的食材
+- - 前端: gut-flora-detail.vue 新增'食材戒备'入口卡片(有戒备食材时显示)
+- - 前端: api.js 新增 getFoodCautionList()
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - BeijingNutritionService.analyzeGutFlora: 按功能分类聚合菌属
+-   (丁酸盐生产者/黏液屏障/蛋白质发酵者/SCFA/产气菌/益生菌等)
+- - 计算 Prevotella/Bacteroides 比值推断饮食模式
+- - 组合风险模型(IBD/代谢/肠易激/神经-肠轴)
+- - 益生菌补充指导
+- - POST /api/nutrition/beijing/analysis
+- 前端:
+- - gut-flora-detail.vue 新增分析卡片(功能维度评估/PB比值/饮食模式/风险/益生菌)
+- - api.js 添加 getGutFloraAnalysis
+- 
+- Ultrawwork with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 后端: SortInterceptor + SortUtil 全量支持
+- - 支持单击设主排序、Shift+Click追加、双击切换方向,最多3列组合
+- 
+- - 新增 SortUtil.applySort(wrapper) 自动注入 ORDER BY
+- - 批量 patch 110+ 个 controller/service 文件
+- 
+- 解决方案,平台承诺未经授权不向第三方提供报告内容。未勾选时点击上传
+- 卡片会弹出确认弹窗,用户同意后自动勾选并继续选文件流程。
+- Closes: 报告上传用户隐私声明需求
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 后端: AdminFoodController 解析前端 sort 数组传入 Service
+- - 前端: 列头点击排序(单击设主排序,Shift+Click追加,Ctrl+Click切换方向)
+- - 前端: 排序徽章显示当前排序链,最多支持3列组合排序
+- - 前端: 排序列高亮 + 方向图标
+- 
+- - DietRecordService: getDailySummary/getWeeklyTrend 增加 userId 参数 + resolveMemberId 反查当前用户自己的 family_members 记录
+- - SurveyController: 移除 status/history/submit 的缺少成员ID 报错
+- - SurveyServiceImpl: resolveMemberId 兜底,submit 时仍无法确定则抛业务异常返回 400
+- 
+- - 11个分类: 蔬菜58、水果42、水产品35、肉类27、干果15、豆类14、主食14、蛋类7、乳制品6、汤3、快餐3
+- - 字段: name, category, energy_kj, protein, fat, carbs, fiber, starch, cholesterol
+- - SQL: docs/superpowers/specs/food_seed_data.sql (可直接执行)
+- - 数据库已有 UNIQUE INDEX idx_name(name) 防重复
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 新增月度引导语(12个月差异化文案)
+- - 💧金色主题样式
+- 健康页(health-main)登录前:
+- - 新增五维闭环体系可视化(身/心/智/行/富环形图)
+- - 相生关系: 身→智→富→行→心→身
+- - 相克关系: 身克富·智克行·富克心·行克身·心克智
+- - 五维介绍卡片(点击跳转对应维度页)
+- 成长页(growth-main)登录前:
+- - 同构五维闭环体系(绿色主题区分)
+- - 替换原理念卡位置,内容更丰富
+- - 保留原登录后逻辑不变
+- 
+- - 品牌定位语'科学管理全家健康数据'
+- - 痛点卡: 指标正常≠健康 + 孩子反复生病文案
+- - 4宫格功能预览(报告/认知测评/心理测评/智能方案)
+- - 15题五维健康自检入口
+- - LoginGuideCard 升级版
+- 成长页(growth-main)登录前:
+- - 品牌定位语'看见改变正在发生'
+- - 理念卡: 记录不是目的,看见改变才是
+- - 脱敏案例展示(小明3个月前后对比)
+- - 4宫格功能预览(打卡/调研/里程碑/家庭挑战)
+- - LoginGuideCard 升级版
+- - 原登录后逻辑不变
+- 
+- - pages.json 注册 pages/action-detail/index 页面
+- - custom-tab-bar dimMap.action 从首页改为 /pages/action-detail/index
+- 
+- - monitoring.py: Java后端检查由GET /api/改为POST /api/admin-auth/login-by-password
+- - monitoring.py: LLM检查由ainvoke改为abatch(max_tokens=1)加速
+- - .env.production: JAVA_BASE_URL改为172.17.0.1(Docker桥接网关)
+- 
+-   (Java后端所有接口均为POST,GET返回404)
+- - .env.production: JAVA_BASE_URL由远程IP改为172.17.0.1(Docker桥接网关)
+-   (Java后端运行在同服务器宿主机,Docker容器通过桥接网络访问)
+- 
+- - parent-index.vue: 去掉自动选中children[0],默认显示自己,用户从FamilyMemberStrip选择后设置selectedChild
+- - 后端: HealthSleep/Water/Exercise/DailyCheckin/HealthDimension 五个Controller添加@RequestAttribute('currentMemberId')回退
+- - 前端: sleep/water/exercise/daily-checkin/diet 五个健康页,child角色不从storage取currentChildId
+- 
+- - 理念依据:《家的算法》书稿(测量先行→最小输入→循环→反馈→系统升级)
+- - 主线硬门禁:家庭级判据,任一成员完成五维自检解锁全家沙盘
+- - 增值关卡:下单菌群检测/DAN测评(无前置依赖,可先于主线完成)
+- - 软引导:微行动/打卡里程碑/复测趋势,推荐不锁死
+- - 管理端完整配置页:开关/顺序/奖励/条件,数据驱动
+- - 同步更新 PROJECT-OVERVIEW.md 功能表与文档索引
+- 
+- - 表格高度自适应,无固定 max-height
+- - Java后端健康检查由 /health 改为 /api/(返回401=正常需认证)
+- - 组件详情展示 detail 字段而非 code
+- 
+- - 健康页登录前新增痛点卡、功能预览、五维自测入口
+- - 成长页新增登录前内容(理念卡+示例展示+功能预览+LoginGuideCard)
+- - 所有内容来自《家的算法》书稿(book/目录)
+- - 登录后内容保持不变
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - LoginResultDTO.roles: String → List<String>
+- - UpdateUserDTO.roles: String → List<String>
+- - UserService: 移除 parseRoles/joinRoles,直接使用 List
+- - EnergyService: 简化 parent 角色检查
+- - SupplyManageController: 直接使用 List.contains()
+- - DataMigrationService: 使用 Arrays.asList()
+- - ServiceRoleApplicationServiceImpl: 保留 JSON 序列化(独立表字段)
+- 
+- 形成 '/dashboard → / → /dashboard → …' 无限循环。
+- 改为 next('/403') 直接跳 403 页面,终止循环。
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 低于 JWT HMAC-SHA 要求的 256 位。新增自动扩展逻辑:
+- - SHA-256 哈希扩展(密钥>=256位时直接使用原密钥)
+- - 字节填充回退
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 移除功能测试面板(quickTests)
+- - API端点列表高度 500→700px
+- - 日志面板高度 250→600px
+- - 状态判定改为只看LLM/ChromaDB,Java后端因内外网隔离不作为降级依据
+- - 刷新间隔从30s改为60s
+- 后端:
+- - adapter.py 新增 POST /api/v1/health/coach/generate 端点
+- - 接收 {familyId, memberIds, dimensions, goal},调用 health_coach_graph
+- - 修复 Java 后端 HealthPlanServiceImpl 调用端点 404 问题
+- 部署:
+- - 新增 deploy.sh 脚本(rsync同步 + docker-compose重启 + 健康检查)
+- 
+- - 前端 profile.vue: loadUserInfo 按14个字段计算个人信息完整度 profileProgress, 修复一直显示0/14的问题
+- - 后端: users/consignees 表新增 province/city/district/street 字段(迁移211 + schema.sql同步)
+- - UserService.updateUserInfo: 保存地区后自动创建/更新同名同手机号联系人, 共享地区数据
+- - ConsigneeService.save: 联系人姓名手机号与当前用户一致时, 反向同步地区回用户
+- 
+- - 步骤指示器 + 卡片式报告选择
+- - 需求输入区改为标准表单,非对话样式
+- - LangGraph 调用逻辑不变(aiSendMessage),仅前端 UI 改造
+- - 方案结果以普通卡片展示,任务列表支持执行人修改
+- 
+- - 后端 HealthReportService 新增 getFamilyReports(familyId) 方法
+- - report-confirm.vue 确认后跳转 health-plan-summary
+- - 重写 health-plan-summary.vue:
+-   - 选择全家已有报告(含其他家人)
+-   - AI 对话式输入需求,返回方案内容
+-   - 自动解析任务列表,支持修改执行人
+-   - 确认后批量创建任务单
+- 
+- - 后端 HealthReportService 新增 getFamilyReports(familyId) 方法
+- - report-confirm.vue 确认后跳转 health-plan-summary
+- - 重写 health-plan-summary.vue:
+-   - 选择全家已有报告(含其他家人)
+-   - AI 对话式输入需求,返回方案内容
+-   - 自动解析任务列表,支持修改执行人
+-   - 确认后批量创建任务单
+- 
+- (未知文本一律算异常),而 _cssClass/statusText 用白名单映射(未知显示正常),
+- 导致分组标题'X 项异常'把样式正常的指标计入异常数。
+- 改为与 _cssClass 一致的白名单判定(仅 high/low/abnormal/偏高/偏低/异常/
+- 缺乏/不足/注意/高风险 计异常),并补齐 _cssClass/statusText 的'异常'中文键。
+- 
+- parse/parse-preview 读取时又拼一次 uploadBaseDir,形成
+- /data/cfc-uploads/data/cfc-uploads/uploads/... 的重复路径导致文件找不到。
+- 新增 resolveUploadFilePath 兼容绝对/相对两种历史格式,两处读取统一走该方法。
+- 
+- 前端 uploadReportOnly 仍调旧路由命中一体化 uploadReport(返回详情无 draftId),
+- 导致上传成功但 res.data.draftId 为空、不跳转确认页且 toast 显示 message=success。
+- 修正 URL 为 /api/health/report/upload-only。
+- 
+- - 新增SurveyTemplate/SurveyRecord实体 + Mapper + SurveyService
+- - 新增SurveyController(小程序端status/active/submit/history)
+- - 新增AdminSurveyController(管理端save/list/delete/ai-generate)
+- - AI生成调研题目调用LangGraph,失败回退本地fallback
+- - 前端小程序:新增survey-questionnaire/survey-history页面
+- - 重构growth-main为干预中心(今日干预进度卡+持续追踪Tab+里程碑+定期调研)
+- - 前端api.js新增调研API,pages.json注册新页面
+- - Web管理端:新增SurveyTemplates.vue(CRUD+AI生成)+ survey.js API
+- - 修复getSurveyStatus命名冲突(旧report-survey重命名为getReportSurveyStatus)
+- - 同步更新schema.sql + PROJECT-OVERVIEW.md
+- 
+- - VARCHAR(50)→VARCHAR(255),源数据(菌种检出率描述)可能超过50字符
+- - 生产 DB 已直连 ALTER(即时生效)
+- - schema.sql 新增 health_gut_flora 表 DDL
+- 
+- - CouponGrantLog/DanExecution/CfValueManage/MembershipCenter/PendingRefund/ButlerAudit/ServiceRoleApplications/supply-system/Detail/HealthReportAudit: 新增resolveUserNames方法,通过searchUsers API将userId解析为用户名显示
+- 
+- - 在线测评(dimension-questionnaire.vue)扩展:cognitive/mental/relationship三套题库(各8题)+dim参数路由
+- - 方案汇总页(health-plan-summary.vue)新建:生成表单+结果展示+历史列表
+- - 后端:health_plans表+HealthPlan实体/Mapper/Service/Controller(4端点)
+- - 数据库迁移207:health_plans表
+- - 前端API:generateHealthPlan/saveHealthPlan/getHealthPlanList/getHealthPlanDetail
+- - pages.json注册health-plan-summary页面
+- - PROJECT-OVERVIEW更新
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 成长Tab: 移除重复体征记录入口,保留每日打卡等8项执行层入口
+- - 全局改名: 成长档案 → 成长记录 (15个文件: 页面文本/导航标题/注释)
+- - 导航修复: mind-detail和wealth的TabBar页跳转改用nav.goPage; child-index/child-detail goToGrowth改用switchTab
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - ArticleBookshelf 组件: 书册横滑改四列网格, 显示4篇文章
+- - index-home: 推荐阅读移到推荐商品下方, 推荐商品请求数量 2->4
+- - FamilyMemberStrip: 无 props 用法时自我加载可见家庭成员
+- - UserService: 家庭成员列表按 userId 去重(创建者双表记录)
+- 
+- - 8 个不存在的表(user_operation_log/daily_health_checkin等)不再产生噪声
+- 
+-   → 改用 tableExists() 前置检查 + RENAME TABLE(无 IF EXISTS)
+- - 修复 1 处 CHANGE COLUMN min_quantity(列已不存在时报错)
+-   → 改用 columnExists() 前置检查,不存在则跳过
+- - 新增 tableExists() + columnExists() 辅助方法
+- - 不影响业务,仅消除启动日志噪声
+- 
+- - 移除 dead code: 无意义的 empty-tip 视图
+- - 移除无用 import: generateFamilyInviteQrCode
+- - onInvite 使用 uni.share type=5(小程序原生卡片分享),不再依赖 QR 图片
+- - 分享卡片带标题+家庭名,被邀请人直接打开 invite/join 页面
+- 
+- 🛒 购物车 (pages/shop/cart/cart) 快捷入口。
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 当 store familyId 为空时显示 FamilyEmptyState(暂无数据)。
+- 编辑个人资料不应依赖是否有家庭,改为老用户 (isNewUserFlow=false) 始终显示表单。
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 移除 FamilyEnergyBar(沙盘已含能量信息)
+- - 移除 DimensionTasks/圈子模块,移入功能入口
+- - 新增 3列功能入口网格(对齐健康/成长页 grid-3col)
+- - 移除未登录态五维全景幸福矩阵
+- - 重构结构:Banner → FamilyMemberStrip → 沙盘 → 网格 → 挑战 → 推荐
+- - 清理冗余 JS 数据/方法/API调用和 CSS 样式
+- 
+- 导致 ProfileHeader/Badges/Growth/Menu 加载失败,页面仅显示内联个人信息卡片。
+- 将 4 个 Profile 组件复制到全局 components/ 目录,并更新两处 import 路径。
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+-   pages/health/index → pages/health-main/index
+-   pages/growth/index → pages/growth-main/index
+-   pages/profile/profile → pages/profile-main/profile
+- - 更新 nav.js, custom-tab-bar, pages.json 等 10 处引用
+- - main.js 添加 custom-tab-bar 显式注册(强制构建编译)
+- - pages.json 4个Tab页添加 usingComponents 引用 custom-tab-bar
+- - 修复 checkout.vue ES6 简写方法语法错误
+- 
+- - 五维 index 页移入分包: mind→mind-detail, body→body-detail, wisdom→wisdom-detail, wealth分包
+- - 新建 custom-tab-bar: 4Tab + 中间⭐按钮 + 五维半屏浮层, 规划师5Tab不变
+- - 新建 pages/health/index.vue 健康Tab页(报告/测评/打卡概览)
+- - 增强 pages/growth/index.vue 为方案执行中心(待办/功能入口)
+- - 新建 utils/nav.js 统一导航工具
+- - 替换 switchTab 引用为 nav.goPage/navigateTo
+- - 活动推荐移至成长页, 健康页新增科普文章推荐
+- - profile 显示完整菜单(showServices=true)
+- 
+- - 旧版 INSERT 未携带 type 字段,DB 列 NOT NULL 无默认值导致插入失败
+- - 使用 MODIFY COLUMN 添加 DEFAULT 'login'(向后兼容,无需改代码)
+- - 直连生产 DB ALTER 已执行(下次服务重启 DBI 迁移幂等跳过)
+- 
+-   - 迁移191: foods 添加 report_id/score 列
+-   - 直连生产 DB ALTER 已执行
+- - 修复 菌属-食材映射 JSON 解析失败:
+-   - DB 顶层为 JSON Array 但代码期望 Map,加载时包装为 {_list: [...]}
+-   - 消费端兼容两种形态
+- - 修复 迁移112 日志等级:
+-   - Duplicate column 已存在是幂等预期,log.error → log.warn
+-   - 避免误报
+- 
+- - report_parse API 对接报告类型注册表
+- - 新增 test_auto_tag 自动标注测试
+- 
+-   report_unknown_cluster/report_unknown_upload/report_parser_import 五表
+- - 新增 ReportParserController + ReportParserAdminController
+- - 新增 5 entity + 5 mapper + 3 service(ReportFingerprintService/
+-   ReportImportService/ReportParserDispatchService)
+- - schema.sql 同步 5 张新表定义
+- 
+- - addIngredient/removeIngredient/addFood 方法缺少 var self = this
+- 
+- 2. 前端:无菌群报告/无推荐食材时弹窗引导上传报告
+- 3. 后端:generateIngredientList 未配置共餐时降级为查询
+-    家庭全部成员,而非返回空列表
+- 
+- 导致 ArrayIndexOutOfBoundsException: Index 7 out of bounds for length 7
+- 
+- 改为指向正确的饮食模块首页 /pages/diet/index
+- 
+- - 修复 Unknown column 'is_living_together'(family_members, 迁移174已生效但DBI嵌套错误未触发)
+- - 修复嵌套 try/catch 结构(迁移178/180 误嵌在迁移179 catch 内)
+- - 迁移号校正:178→180, 180→181(diet 模块占用了原 178-181 编号)
+- - health_reports 新增 proxy_uploader_id / proxy_upload_note / ai_analysis
+- - health_report_drafts 新增 remark
+- 生产 DB 已直连 ALTER(无需等下次重启)
+- 
+- 
+- 
+- - product-detail.vue: 详情页按会员身份展示 - 非会员显示普通价+加入会员享会员价链接,会员显示会员价+原价划线;去掉底部栏价格
+- - 修复远端合并引入的编译错误: HealthReportController缺import、HealthReportService的reportMapper笔误、HealthReportDraft实体补remark字段
+- 
+- revert(frontend): 撤销 tabbar 4Tab 重构, 恢复 5维TabBar(行心身智富)
+- revert(frontend): 撤销分包重命名 -pkg, 恢复为 health/growth/profile
+- revert(frontend): 撤销 tabbar 入口页移至 pages/tabs/ 的改动
+- 改为 v-if="!fanOpen"(默认常驻),且背景由透明边框改为实心半透明
+- rgba(249,115,22,0.25)。该层绝对定位 72rpx 与 .fab-avatar 完全重合、
+- DOM 顺序在后且未设 pointer-events: none,常驻覆盖在 FAB 按钮上层,
+- 拦截所有点击,导致家庭成员扇形无法展开。
+- - .fab-pulse 增加 pointer-events: none,点击穿透到按钮本体
+- - FAB 位置从 bottom: 33.33% 上移至 bottom: 45%(黄金分割位下移后过于靠下)
+- Reviewed-by: Sisyphus
+- 
+- (<button class="btn-primary" @click="submit">)替换为监护人同意弹窗的
+- 注释代码时误删了按钮且未加回,导致表单无法提交。script 中 submit()/
+- doSubmit() 方法与 CSS .btn-primary 均为死代码残留。
+- 已在手机号字段后恢复保存按钮,监护人弹窗确认流程(14岁以下儿童)不受影响。
+- Reviewed-by: Sisyphus
+- 
+- 对象 Map、后端 DTO 只认对象),导致规格名记录不进去:
+- - ProductSkuEditor.normalizeSpecsToJson 改为输出数组格式,空值默认 '[]'
+- - ProductSkuDTO.from 兼容数组格式(数组→Map),旧数组数据可正常回显
+- - formatSpecsForInput/parseSpecs 数组分支正确解析 {name,value},不再显示 [object Object]
+- - CartService 兼容对象格式(旧数据兜底),修复购物车规格描述丢失
+- - ProductSkuService 空 specs 默认 '[]'
+- 同步修复预存编译错误:HealthReportController 缺 HttpServletRequest import、
+- HealthReportService reportMapper 应为 healthReportMapper、HealthReportDraft
+- 补 remark 字段(含 schema.sql + DatabaseInitializer 迁移180)。
+- Reviewed-by: Sisyphus
+- 
+- - AuthController.verify: 增加 user 存在性检查,用户被删/禁用时返回 401
+- - api.js: 新增 verifyToken() 导出函数
+- - App.vue: onLaunch 时调用 verifyStoredToken() 启动校验 token(develop 跳过)
+- - api.test.js: 新增 3 条 verifyToken 测试(成功/过期/用户不存在)
+- 后端 mvn clean compile BUILD SUCCESS
+- 前端 npm test auth API 16/16 通过
+- 
+- ContentSharePoster 的 String props(title/coverImage/summary/priceText 等)。
+- Vue 2 中 props 的 default 只在未传时生效,显式绑定 null 会触发微信类型检查
+- 告警 [Component] property received type-uncompatible value: expected <String>
+- but get null value。已在所有绑定处加 || '' 兜底。
+- Reviewed-by: Sisyphus
+- 
+-   TypeError: this.loadMembership is not a function
+- - 商品介绍/详情 mp-html 传入 domain(config.API_BASE_URL),
+-   修复富文本中相对路径图片被解析到本地 DevTools 服务器的问题
+- Reviewed-by: Sisyphus
+- 
+- 修正后路径: ../profile-pkg/components/Profile*.vue
+- 
+- 移至 pages/tabs/
+- 
+- - 修复 X-User-Id header 断言(改为断言不再发送)
+- - 新增 identity parameter hardening 4 个回归测试:
+-   request 不发 X-User-Id 头、测评 wrapper 无参且 body 为空、today-tasks 仅含 memberId
+- 
+-   改为 @RequestAttribute("userId") 获取当前用户,移除 body.userId 读取
+- - record/current 标记为已废弃(无前端调用方,familyId 参数不再被信任)
+- - FamilyController:guide-bind 的 @RequestHeader("X-User-Id") 改为 @RequestAttribute("userId");
+-   两个已废弃端点移除 X-User-Id 参数
+- - AdminController:/api/admin/families/** 及 /families/count 增加 admin 角色校验
+- - HealthReportController:parse-preview 的 familyId 由 @RequestParam 改为 @RequestAttribute
+- 
+- - 移除 pages/promotion/material.vue 本地 _request 的 X-User-Id 头
+- - 测评 wrapper(getMy/ChildAssessmentResults)改为无参发送 {}
+- - 测评页面(results/apply/purchase)停传 userId
+- - 删除 mind/index.vue 两个指向不存在端点的死调用(/api/mind/report/*)
+- - 移除 report-upload/meal-config/bind-invite 的 familyId/family_id 传参
+- - parent-index.vue getPendingWishes() 去实参(wrapper 已忽略)
+- 
+- 后,路径前缀与同名分包 root(pages/health、pages/growth、pages/profile)冲突,
+- 导致 HBuilderX 编译失败→全白板。
+- 修复方案:将 tabbar 入口页从分包目录移到 pages/tabs/ 目录,
+- 路径前缀与所有 48 个分包 root 完全无重叠,消除冲突。
+- 变更:
+- - pages/health-pkg/index.vue -> pages/tabs/health-index.vue
+- - pages/growth-pkg/index.vue -> pages/tabs/growth-index.vue
+- - pages/profile-pkg/profile.vue -> pages/tabs/profile-page.vue
+- - pages.json: 主包 tabbar 页路径 + 分包 root 保持 -pkg 后缀
+- - 10 个文件中的路径引用同步更新
+- 
+- - pages/growth → pages/growth-pkg
+- - pages/health → pages/health-pkg
+- - pages/profile → pages/profile-pkg
+- 同步更新 pages.json 分包 root、tabBar 路径及 30 个文件中的 66 处引用
+- 
+-   改为乐观加载模式(接口未返回前返回 true),避免暂无数据闪烁
+- - index-home/index.vue: loadChildren/loadFamilyMembers 增加 checked 标记设置
+- - DimensionProducts.vue: hasFamily 增加 isLoggedIn 判断,信任父组件可见性控制
+- 
+-   导致 pages.json 语法错误,HBuilderX 编译失败、小程序全部白板
+- - 将 diet 块移回 subPackages 数组内(正确缩进)
+- - cfc-frontend/AGENTS.md: 写入打包规范(HBuilderX 打包 → unpackage/,禁止 npm build 自行打包)
+- 
+-   store getter 仅兜底(store.familyId 恒空导致空态吞掉正常内容)
+- - App.vue 冷启动从接口恢复 familyId,store setFamilyId 持久化供恢复
+- - login.vue 登录/自动登录同步 familyId 到 store
+- - 修复 9 处批量修改导致的 computed 对象未闭合语法错误
+- 
+- design: 家庭FAB悬浮按钮重新设计 - 家庭图标 + 渐变光环 + 黄金分割定位
+- - 图标: 默认态显示家庭图标👨‍👩‍👧‍👦, 展开时渐变过渡为当前成员头像
+- - 效果: 暖橙渐变背景 + 双层光晕阴影 + 展开光环 + 呼吸脉冲动画
+- - 交互: 展开时弹性缩放(1.05), 头像淡入旋转过渡
+- 
+- - custom-tab-bar: 4 functional tabs + center star button + half-screen overlay
+- - utils/nav.js: unified navigation utility for auto switchTab/navigateTo
+- - health/index.vue: new health tab as closed-loop hub (测评/报告/打卡/饮食/运动)
+- - Replace all switchTab→dimension pages with nav.js (nativeTabs pattern removed)
+- - Move growth/index and profile/profile from subpackages to main package
+- - Teacher independent tabbar preserved (v-if='currentRole !== "teacher"')
+- 
+- - 5 dimension pages moved from tabbar to subpackages
+- - custom-tab-bar redesign with half-screen overlay
+- - Unified nav utility for switchTab/navigateTo routing
+- 
+- fix: 家庭FAB悬浮左缘中部 + 无家庭用户查询接口自动创建兜底
+- - 新增 UserService.ensureUserFamily 公开兜底入口
+- - UserController/FamilyUserController.getFamilyMembers 与 getVisibleMembers 在 familyId 为空时自动创建家庭
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - JwtInterceptor: 查询 familyId 失败时显式设为 null 而非空置
+- - WechatService: 新增 invalidateAccessToken() + 过期重试机制(42001/40001)
+- - UserService: 大幅重构和改进
+- - MembershipService: 新增逻辑
+- - FamilyJoinRequestService: 改进
+- - ProductController: 产品相关改进
+- - cfc-web: 构建版本同步
+- 
+- - 用户协议重写:13章覆盖付费/退款/服务商/免责/争议解决
+- - 新增服务商入驻协议
+- - 后端:user_consent_records 表 + ConsentController(4接口)
+- - 后端:user_data_permissions 表 + DataPermissionController(2接口)
+- - 后端:账号注销匿名化 + 数据导出接口
+- - 后端:DataMaskUtil 日志脱敏工具
+- - 后端:DataCleanupTask 每日2点清理定时任务
+- - 前端:添加<14岁儿童时监护人同意弹窗
+- - 前端:API 层新增 consent/data-permission 调用
+- - 迁移168/169 + schema.sql 同步
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 后端: requestJoinByCode 兼容 token/inviteCode/familyId 三种输入
+- - 后端: FamilyJoinRequestService.createJoinRequest 支持 UUID token 识别
+- - 前端: invite/join.vue 展示邀请人头像, 改为提交申请+轮询审批流程
+- - 前端: FamilyMemberStrip.vue 加 isAdmin prop、红点徽章、审批弹窗(通过/拒绝)
+- - 前端: api.js 补充 pending-requests/approve-request/reject-request/my-request API
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 导致后端解析 Long.valueOf('{}') 时抛出 NumberFormatException。
+- 改为从 currentFamilyId/userInfo.familyId 获取实际值,与同文件
+- loadCompatibilityData 等方法的现有模式保持一致。
+- 
+- - 从 extract_full_report_v5.py 提取核心逻辑(overview/疾病风险/营养/氨基酸/维生素)
+- - requirements.txt: 补充 PyPDF2 依赖
+- 
+- - 统一知识库 knowledge_base_section 表 + UnifiedKnowledgeBaseService(迁移165,DB为查询源,classpath种子兜底)
+- - HealthKnowledgeBaseController 新增 /unified/* 系列端点
+- - 控制器增加家庭ID解析与成员归属校验辅助方法
+- - JwtInterceptor/Result/api.js 同步增强
+- 
+- 超过 gunicorn 60s 超时导致 worker 被杀(WORKER TIMEOUT + SIGABRT)。
+- - gunicorn --timeout 60→300:给推理留足时间
+- - ChatOpenAI timeout=180/max_retries=1:单次推理上限 180s,失败仅重试 1 次
+- 
+- - app/main.py: 合并 questionnaire_router,旧路由/中间件/知识库同步不变
+- - src/llm/client.py: LLM_* 环境变量优先(与 .env.production 一致),兼容 OPENAI_*
+- - Dockerfile: 新增 COPY src/ src/(生产镜像此前无问卷代码)
+- - docker-compose.yml: langgraph-svc healthcheck 改用 python urllib 探 /health(镜像无 curl + 原路径 404)
+- 
+- - 支持通过模板快速创建自定义挑战
+- - 支持编辑/删除挑战
+- - 移除非兜底的自动创建模板逻辑
+- - 后端新增 creator_id 字段区分系统/用户创建
+- - 后端新增 templates/create/update/delete 接口
+- - 前端新增 challenge-manage 管理页
+- - 行首页挑战区添加管理入口
+- 
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 会员价联动展示(非会员可点击升级)
+- - 未选规格时按钮禁用提示
+- - 加购/购买时传递 skuId 和 specDesc
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 改为调用已有的 getProductsByDomain('body', 1, 4),行为等同于原 getPublicConfig 返回空时的回退路径(domain='body' 加载身体维度推荐商品)。功能语义不退化。
+- 同时移除变成 unused 的 productList import。
+- 文件: cfc-frontend/pages/health/report-upload.vue (+3/-13)
+- 验证: npm run build:mp-weixin DONE; 编译产物 getPublicConfig=0, getProductsByDomain=1
+- 
+- - Caused bottom-left rounded rect rendering failure on all canvas shapes
+- 
+- - MembershipService: 新增 refundByOrderNo(orderNo) 退单+降级管理员
+- - VirtualPayService: handleRefundNotify ORD 分支调用 membershipService.refundByOrderNo
+- Task B: iOS退款问询按官方协议接入
+- - VirtualPayController: notify() 新增 xpay_subscribe_ios_refund_query_notify 事件分发
+- - VirtualPayService: 新增 handleIosRefundQuery 按 pay_order_id 路由+判定退款
+- - VirtualPayController: iosRefundBaseResponse 字段修正为官方 IosRefundQueryResponse 协议
+- - 测试: 新增5个用例覆盖ORD退款路由+iOS问询(同意/拒绝/不存在/已退款)
+- 
+- - api.js: remove unused parseReportPreview function (33 lines)
+- - api.js: restore 86 garbled Chinese comments (UTF-8 bytes decoded as GBK then re-encoded)
+- 
+- MyBatis-Plus无TypeHandler导致updateById无法正确写入JSON列。
+- 修复: specs改为String类型,service层校验空值默认设为{}
+- 
+- dimensionCode 参数,导致后端返回所有精选文章而非按维度过滤。
+- - body/index.vue: 补传 dimensionCode: 'body'
+- - wealth/index.vue: 补传 dimensionCode: 'wealth',移除客户端
+-   relatedDimensions hack(后端已正确过滤无需前端二次筛选)
+- 
+- 导致封面加载失败。统一走 getImageUrl() 拼接 config.API_BASE_URL。
+- 
+- unauthenticated users, leaving displayStatus/displayLabel/
+- registrationStatus as null. This caused the activity detail page to
+- hide the cover, registration button, and check-in button for all
+- visitors. Now applyDisplayState() runs for everyone; guests get
+- default values ('open'/'not_registered') derived purely from activity
+- time windows.
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 添加 getImageUrl() 自动补全 API_BASE_URL 前缀
+- - 修正字段映射:商品介绍 → intro,商品详情 → description
+- - 价格/会员价上下排列,会员价字体缩小
+- - 加购物车和立即购买按钮统一字体大小
+- - 供应商编辑页新增「商品简介」intro 字段
+- 
+- 删除废弃的 pages/action 分包并修复引用
+- - parent-index.vue: /pages/action/contact-detail → /pages/action-detail/contact-detail
+- - action-section.vue: activity-detail 跳转修正为 /pages/activity/activity-detail/activity-detail
+- - action-section.vue: task-detail 标记 TODO(该页面不存在,为死代码)
+- - pages.json: 移除 pages/action 分包注册
+- 
+- - ArticleController: POST /api/articles/updated-since 支持since+status过滤
+- - ArticleService: getUpdatedSince() 按updatedAt+status查询已发布文章
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 
+- /pages/home-pages/parent-index(非 TabBar 页),导致底部 TabBar 不显示。
+- 改为 uni.switchTab() 跳到 /pages/index-home/index(行 Tab)。
+- 同样修复 submitGuideApplication 中相同的 redirectTo 错误跳转。
+- 
+- (7498行), 导致 mvn compile 报 illegal start of expression。
+- 仅删除该残留标记行, 迁移152/153 内容保持不变。
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 首页能量沙盘下方新增会员入口卡(非会员开通 / 会员≤30天续费)
+- - 活动详情页非会员显示会员价引流链接
+- - 活动列表会员价点击跳转开通
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- (list(Map,Long) / create(Activity,Long) / update(Activity,Long,String) / end(Map,Long,String))
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 且其 snake_case 列名与实体不匹配, 导致全列查询报 Unknown column 'school'。
+- schema.sql 同步为 camelCase 与实体一致。
+- 
+- Unknown column 'user_coupon_id' in 'field list':entity PaymentOrder
+- 已声明 userCouponId 但部分库建表时缺失该列。
+- 使用 ensureColumn 幂等添加。本地 MariaDB 与新 MySQL 8 远端已
+- 有此列,迁移对它们为 no-op。schema.sql 已含 user_coupon_id,
+- 无需同步。
+- 
+- - 详情行合并为单行, 卡片内边距/字号/进度条全面收紧约20%
+- - parent-index.vue: 移除无用的 childId 传参与 @updated 监听
+- 
+- - custom-tab-bar/index.vue: 富 tab 指向 wealth/index, tab 顺序对齐原生 tabBar, nativeTabPages 只含原生 tab 页
+- - login.vue / action / wisdom / index-home: 清理 stale nativeTabs 列表, 避免对非 tabBar 页面调用 switchTab 触发 routeDone 路由错误
+- - user-edit.vue: 规划师入驻提交后 redirectTo 分包页而非 switchTab
+- - utils/format.js + DimensionActivities.vue: 新增 iOS 安全 parseDate 统一日期解析
+- 
+- 家庭挑战 (d6bb7d48):
+- - 挑战列表带 familyId 参数(修复之前漏传导致返回空)
+- - 验证 targetMode/targetValue 双目标模式字段
+- - 验证 totalProgress/memberProgress 进度字段
+- - 新增 /api/health/challenge/history 历史
+- - 新增 /api/health/challenge/progress 进度上报(childId 已有活跃挑战时)
+- 活动会员价 (15a93dd3 + 89673f07):
+- - 管理端活动列表验证 memberPrice 字段
+- - 管理端活动详情验证 memberPrice
+- 文章 (ab9f4a44 + 阅读时长功能):
+- - admin/articles/list 带 auditStatus 参数过滤
+- - 文章详情返回 readTime 字段
+- - /api/articles/record-read 上报阅读时长(需 childId)
+- - /api/share/qrcode 生成小程序码(855a8df5 分享改海报)
+- - /api/admin/articles/upload/image 端点存在性(598e7601 + c697fb7b)
+- 测试结果:211 passed / 0 failed / 0 skipped(原 199 → +12 新增全通过)。
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - VirtualPayService: effectiveAppKey() 按 virtual-pay-env 选择签名密钥,paySig/query_order pay_sig 统一切换
+- - VirtualPayController: 新增 GET /notify URL 验证端点(echostr 校验);POST /notify 增加微信签名校验(sha1(token+timestamp+nonce))防伪造推送
+- 
+- - tasks/rewards/home-pages/teacher 等非 TabBar 页面改用 navigateTo,修复 switchTab 无法跳转分包页的问题
+- - user-edit 登录后角色分流、家长/孩子端任务/奖励入口同步修复
+- 
+- mysql-internet-cn-north-1-23feae22680e4dfa.rds.jdcloud.com:3306,
+- 库名 zxyj(与本地同名),账号 cfc/cfc@1314。
+- main 与 sfms 两段 datasource 同步切换(sfms 默认 enabled=false)。
+- 
+- {memberId, source: "family_member"},source 是 String,
+- Map<String, Long> 会导致 Jackson 反序列化失败。其他端点
+- (kick / editable / logs)不接收 source,保持 Map<String, Long>。
+- 
+- BadSqlGrammarException。直接赋值在两库均可用(MySQL 8 JSON 列接受
+- 字符串时自动校验,MariaDB JSON 为 LONGTEXT 别名)。
+- 
+- - /api/share/qrcode 加入必登录清单,根因解决 anonymous 反复调 cgi-bin/token 导致全实例 token 失效
+- - ShareController.getQrCode 同步加 userId<=0 兜底校验(双保险)
+- 
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - content 富文本内 /uploads/ 相对图片路径替换为完整 URL
+- - 后端 FileStorageService 存储相对路径,前端渲染时需拼接 baseURL
+- 
+- 
+- - ProductSkuEditor: 支持新建时暂存 SKU,商品创建后自动提交
+- - handleSave: 创建后更新 form.id,触发 SKU 编辑器 watch
+- 
+- - DatabaseInitializer 新增幂等迁移:target_mode (VARCHAR(20) DEFAULT 'aggregate') 与 target_value (INT DEFAULT 0)
+- - schema.sql 同步 family_challenge 表结构
+- - FamilyChallenge 实体新增 targetMode/targetValue 字段与 @TableField(exist=false) 的 totalProgress/memberProgress
+- - FamilyChallengeService 扩展 templates 数组为 8 列(添加目标列),重构 checkAndSettle() 按目标模式分支判定:
+-   - aggregate:全体 progress 合计 ≥ target_value 即达标
+-   - all_members:家庭内每个成员 progress ≥ target_value(无记录=0 判失败)
+- - 抽离 normalizeTarget() 实现旧数据向后兼容;fillProgress() 为 /list /history 填充总进度与成员进度
+- 前端:
+- - FamilyChallengeCard 重写:双模式目标展示(aggregate=总进度条 X/Y;all_members=成员进度列表+达标✓),打卡上报入口(updateChallengeProgress({challengeId, childId, delta}) → $emit('updated'))
+- - parent-index 卡片传 :childId="currentChildId" + 监听 @updated="loadFamilyInteraction"
+- - patch-node-compat.cjs:node v24 polyfill(util.isRegExp 等已被移除),构建时通过 NODE_OPTIONS="--require ./patch-node-compat.cjs" 注入
+- 
+- 
+- - 前端 ArticleEdit/ActivityEdit 的 published 不再进入 readonly
+- - 列表页 published 文章按钮由「查看」改为「编辑」
+- - 保存按钮文案与提示语按状态区分(保存修改/保存草稿)
+- 
+- 避免 mounted 阶段编辑器实例已初始化导致配置不生效
+- 
+- - articles.vue: onSearchBlur 补齐闭合花括号、移除多余 }(e327a0ef 引入)
+- 
+- - 上报间隔 30000→10000,每10秒自动记录该用户已读时长
+- - 退出文章时 pauseReadingTimer 记录当时时长(保留原逻辑)
+- 
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - WechatService: access_token 加缓存(TTL 7000s); 实现 msg_sec_check / img_sec_check
+- - MediaController: 上传图片/文本检测 (P0)
+- - AdminArticleController: 文章图片/标题/正文检测 (P1)
+- - HealthReportController: 健康报告图片上传检测 (P1)
+- - ServiceRoleApplicationController: 资质图片上传检测 (P1)
+- - 微信API异常时 fail-open 不阻塞上传; testMode 跳过检测
+- 
+- 屏蔽选择AI助手功能
+- - ArticleEdit/ProductEdit/ActivityEdit: onSuccess 内拼接后端 baseURL 生成完整图片 URL
+- 
+- - 7 report packages by age group (A1/A2/B2/B3/B4/B5/B6, C1 excluded from retail)
+- - 4-tier pricing: single 699 / dual 1280 / triple 1860 / quadruple 2390
+- - Package combination rules per user spec (A2+B4 golden combo, +B3/B5/B6 for 3+ packs)
+- - WeChat native QR payment flow with plan selection modal
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 各调用页面已绑定 @articleClick=goArticleDetail/goDetail,直达详情
+- 组件从 895 行精简至 519 行
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 改为 scroll-view 保持默认 block,内部 .bs-books-inner 用 inline-flex 横向排列
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 
+- - 五维首页(index-home/body/wisdom/mind/wealth)与 action 页统一使用 DimensionProducts
+- - 统一商品跳转 goProductDetail/goMoreProducts,移除登录跳转冗余分支
+- - 修复 DimensionProducts 空态文案依赖 isLoggedIn 的逻辑
+- 
+- - 每屏固定3本,多余横向滑动,指示器按3本一组并随滚动高亮
+- - 骨架屏同步改为3个封面占位
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- wealth: 添加DimensionActivities, 添加loadDimensionActivities, 移除v-if
+- mind: ArticleBookshelf移到DimensionProductList之后, 移除v-if
+- 统一顺序: DimensionActivities → DimensionProductList → ArticleBookshelf → RecommendedSection
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - specs/2026-07-31-compare-table-mobile-redesign.md: 饮水对比表格移动端轮播卡片设计
+- - PROJECT-OVERVIEW.md: 文档索引同步新增两条
+- 
+- - 路径已在 WebConfig JWT 白名单(/api/config/public/**),免登录访问
+- 
+- - mind/wisdom 商品推荐迁移至 DimensionProductList(支持未登录空态)
+- - body 移除商品推荐 v-if 登录守卫,组件内部处理未登录态
+- - DimensionProductList familyId 改为可选,无 familyId 时不请求接口展示引导文案
+- - wealth 页新增推荐阅读区块(未登录/已登录两区块)
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- (domain / dimension_code) 进行维度匹配,导致配置了 dimension_weights
+- 但未设置旧字段的商品/活动在推荐系统中被遗漏。
+- 改为与 ProductService/ActivityService 一致的 JSON_EXTRACT + 旧字段
+- OR 回退模式,确保权重感知查询全面覆盖。
+- 
+- /api/admin/membership/upgrade-records (AdminController) existed.
+- Added /upgrade-records as an alias to the existing /records endpoint
+- in MembershipController, which returns the current user's upgrade
+- records with pagination.
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Revert "feat: 屏蔽在线开通会员功能,改为管理员后台设置"
+- 
+- - upgrade.vue: 替换为'暂不支持在线开通'提示页
+- - ProfileMenu: 导航从index改为benefits
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- book: 草稿同步成书稿人物设定(第三章朋友老李/小艾九岁、第四章朋友老周)+ 第五章全职妈妈身份/小然/张哥年龄修正(四十出头→五十多岁)+ 第十二章'幼儿园'改'学校'(草稿+成书稿同步)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- book: 补权威引用+人物一致性修复——第2/3/6/9/10/11章新增Maslow/WHO/Korelitz/Duhigg/Kluger/Ries等引用、附录新增参考文献总表(41条学术文献)、小茜→老李/老周人物改名、三岁→九岁年龄修正、第七章→第7章格式统一、章节标记全部主题化;策划方案新增'引用与数据策略'章节
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- book: 核实补正——Todorovic氢水研究限定'肥胖成年人'语境(正文+来源块)、第四章补Lepper 1973过度理由效应实验来源(草稿+成书稿同步)
+- book: 全书论点依据核实——魏高峡去名人化4处、无据断言修改(A级硬伤+B级补来源)、'优势溢出效应'改'扬长促短'(草稿+成书稿同步)
+- 屏蔽小程序文章评论及AI问答功能
+- DatabaseInitializer 迁移141: 修正历史 dimension_weights 表 + 主表 JSON 列旧 code
+- ActivityController: 补 java.util.List 导入(遗留编译错误)
+- 
+- - DatabaseInitializer: add migrations 138-140 for tasks.dimension_code,
+-   products.family_scope, activities.family_scope (were dead code in migration102)
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- book: 合入「为什么是算法」主轴论述(第1章)并重新生成成书稿
+- - 收束金句:算法不是让你更快,是让你回家
+- - 第2章「为什么叫算法」节精简呼应,避免重复
+- - 成书稿.txt 同步重新生成(16章结构不变)
+- 
+- book: 书名定位升级为「一词三通」(宇宙因果×传统文化×AI)
+- - 竞品调研新增算法/逻辑方法类(人生算法、底层逻辑)与 AI×家庭类(2026 新兴赛道)
+- - 应对策略与结论同步更新:三块空白交汇处正是本书
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - @close/click内联赋值 → closePoster/closeQuiz/closeResult
+- - quizAnswers[qi]=... → selectQuizAnswer(qi,oi)
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- book: 第三支柱'传承'改'代际传承'(三代链条:承接-活出-传递),育儿内容定位'焦点放回自己'——孩子是镜子验证自己成长,父母是预言验证孩子未来(序章/第1/2/3/6/7章/终章/附录/策划方案同步,成书稿重拼)
+- book: 第1章'教育'石头转'成长'(成人+育儿双视角),第8/9/10/12章加无孩适配注记,终章回顾同步
+- book: 全书定位从'育儿书'转为'个人成长书'——五维是每个人的成长维度,家庭是承载处(序章定位声明/传承支柱/身智两章重构/行四象限+与父母关系/心加非育儿场景/成书稿重拼)
+- wealth/index.vue: 移除全屏登录墙,未登录显示商品推荐+登录引导,登录后显示完整内容
+- 
+- book: 生成成书稿txt(序章→第十三章→终章→附录 全16章拼接)
+- book: 全书一致性修订——补全预告链/数据来源说明,规范引号与格式
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 商品详情: 保留 discover-detail/product-detail(已含 mp-html),删除 discover/product-detail(死代码,641行)
+- 更新 15+ 个文件的引用路径
+- 清理 pages.json 移除 discover-detail 子包中的 activity-detail 注册
+- 
+- 由控制器自行决定返回公开数据还是要求登录。
+- 解决小程序审核中预登录页面被强制要求登录的问题。
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 删除 pages/mind-detail/article-detail.vue(功能不完整,无评论/阅读追踪)
+- 更新 9 个文件的引用路径
+- 移除 pages.json 中的旧注册
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Override via package.json forces 3.1.10 in the webpack-bundle-analyzer tree.
+- 
+- - 3个 article-detail.vue: rich-text → mp-html
+- - 2个 activity-detail.vue: 纯文本 → mp-html 渲染
+- - 2个 product-detail.vue: 纯文本 → mp-html 渲染
+- - family-dashboard.vue: rich-text → mp-html
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - uploadAndParseReport(): 失败/网络错误日志
+- - parseReportPreview(): 失败/网络错误日志
+- - danParsePreview(): 失败/网络错误日志
+- - langgraphRequest(): 不可达时打印URL后回退Dify
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - parent-index.vue: 移除 mounted 中强制跳转登录页的逻辑
+- - agreement.vue: 修改第2.1条「授权登录即视为注册」措辞
+- - 验证商品/活动/文章详情页无需登录可访问(后端公开路径已配置)
+- 
+- Merge: resolve conflicts on recommend system + service-role-apply APIs
+- - Resize SVG to 800x1280 to accommodate QR code section
+- - Replace text CTA button with actual QR code image
+- - Add '扫码了解更多' label above QR code
+- 
+- - Five dimension circles (身/智/富/行/心) with colors
+- - Project description, three pillars, core features
+- - CTA button and contact info
+- - Designed for web/sales/ directory
+- 
+- 2. member-detail/report-detail.vue: 新建(pages.json已注册但文件缺失)
+- 3. member-detail/service-role-apply.vue: 新建(pages.json已注册但文件缺失)
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - ArticleService.getList() / getFeatured()
+- - ProductService.getProductPage()
+- - TaskService dimension filter
+- - ActivityService dimension filter
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 2. package.json: 升级vue-cli-plugin-uni到2.0.2-5010420260703001匹配7月版模板编译器
+- 3. postinstall-fix.js: 新增templateLoader.js补丁,移除未定义的recyclableRender/components导出
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 方式 1(文件上传)虚线蓝框 + 蓝色基调 + 蓝色实心图标方块
+- - 方式 2(拍照上传)橙色边框 + 渐变橙色实心按钮(更醒目,即时操作)
+- - 顶部「方式 1/2」标签让用户明确二选一
+- - 保持 pickFile/takePhoto/selectedFile/photoPath/parsedInfo 逻辑不变
+- - 数据库初始化器同步上一轮的 report_summary 迁移(迁移 106)
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - ContentSharePoster.vue: reusable canvas poster with cover/title/QR code/CTA
+- - product-detail, activity-detail, article-detail: add poster button + component
+- - api.js: add getShareQrCode(page, scene) helper
+- - DimensionWeightPicker: fix proportional redistribution to keep sum=100%
+- 
+- 
+- - action/index.vue: revert auto-select-first-child, only load when saved childId matches
+- - action/index.vue: tab-transition fallback timeout 5000ms -> 800ms
+- - ArticleEdit: add maxFileSize 5MB to upload config
+- - DatabaseInitializer: gate test data behind app.init-test-data flag
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - action/index.vue: first-load fallback to first child when no saved currentChildId
+- - action/index.vue: reduce tab-transition fallback timeout 5s -> 2s
+- - ProductSkuEditor.vue: formatSpecsForInput helper to prevent {} save bug
+- - DatabaseInitializer + schema.sql: sync migration
+- 
+- EnergyWeekCard, FunTaskItem, HealthCheckinCard, HealthDimensionsSection,
+- HealthLikeButton, HealthTips, MediaRecorder, OctopusGraph, PearlDiagram,
+- PointsProgressRing, RepurchaseReminder, SkeletonBlock, TaskItem/TaskReminder,
+- UserQuickEntry, WisdomTips; assessment/body/membership/parent/register-child/
+- wisdom_temp 等老旧页面; teacherGuard router
+- 
+- - index-home/index.vue: 游客视图商品卡片显示价格而非固定'登录查看'
+- 
+- 避免 swiper autoplay 触发每次 re-render 时重复调用方法
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 改为 default: '' 避免警告
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 新增 dailyFortuneSafe / dominantElementSafe computed 属性做 fallback
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- loadDiscoverCircles: 增加 currentChildId 空值保护
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 新增 _parseDate 方法提前归一化为 iOS 兼容格式
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - Add member_fee_family_yearly/monthly/quarterly sys_config keys
+- - Fix getPricingPlans() hardcoded zero prices for FAMILY monthly/quarterly
+- - feat(report): report summary management (backend/frontend/admin)
+- 
+- - exercise-mood-cognition.html: 4 screenshots (BMJ meta, hippocampus, gut diversity, gut RCT)
+- - puerarin.html: 3 screenshots (hangover, diabetes, brain protection)
+- - gut-microbiota-testing.html: 2 screenshots (HMP, dysbiosis->immune disease)
+- Screenshots in web/img/ref-screenshots/ are gitignored (kept locally only)
+- 
+- 更新: LangGraph 前端集成/推广体系/富维度/辈分/文章系统/家庭会员/营养健康 状态
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 家庭成员选择条添加能量值显示
+- - 添加圈子卡片(我的圈子+发现推荐)
+- - 删除章鱼图和导入联系人弹窗
+- - 成员卡片显示能量分数
+- 
+- - 3.4 Logic consistency checklist: avoid "started last week" vs "3-month data" timeline contradiction
+- - 2.2.1 Five-dimension generation/restriction: row-birth-heart, knowledge-restrict-row, wealth-birth-row, row-restrict-body
+- - 2.2.2 Knowledge point requirement: each article must include at least 1 psychology/neuroscience mechanism
+- - 12 Shuangpei Qiangji knowledge base index: A2/B4 reports + public account history articles reference
+- 
+- 
+- 
+- 
+- - createOrder() 新增 PREMIUM 定价分支,年起 ¥13,168/月起 ¥1,314
+- - applyMemberDiscount() 新增 PREMIUM 折扣支持,从 sys_config member_discount_premium 读取
+- 
+- 
+- - 身(土): 🌏 globe with meridian and continent arcs
+- - 智(金): ⚡ lightning bolt shape
+- - 富(水): 💧 water drop with pointed top
+- - 行(木): 🌿 leaf with stem and veins
+- - 心(火): 🔥 flame with inner/outer layers
+- All 81x81px, gray (#999) normal + element color active.
+- 
+- and element-themed colors:
+- - 身(土): circle, orange #FF8C42
+- - 智(金): diamond, indigo #6366F1
+- - 富(水): water drop, amber #F59E0B
+- - 行(木): arrow up, emerald #10B981
+- - 心(火): heart, pink #FF6B9D
+- Normal = gray #999, Active = element color
+- 
+- commit faedcc33 (temporary copies from tab-mind). The icons were
+- corrupted in commit ac6e7040 where they were saved as base64-encoded
+- text instead of binary PNG data.
+- 
+- Merge remote-tracking branch 'origin/cfclub'
+- - SeedsController: minor fix
+- - activity-detail pages: mobile experience upgrade
+- - web articles: SEO & content updates across 25+ pages
+- - CHANGELOG updates
+- 
+- - Add migration 105: ensure products.min_quantity column exists
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- sync: 小红书内容更新 + opencode运维脚本
+- base64-encoded text instead of binary PNG data, causing the
+- wisdom (智) tab icon to not display in WeChat mini-program.
+- - tab-wisdom.png: 10989 bytes base64 text -> 8239 bytes binary PNG
+- - tab-wisdom-active.png: 8351 bytes base64 text -> 6261 bytes binary PNG
+- Note: active icon decoded from truncated base64 (missing ~0.75 bytes
+- of final scanline, imperceptible at 50x50)
+- 
+- - 新增 SeedsController.java: POST /api/admin/seeds/init-test-data,需 admin 权限
+- - 幂等执行: INSERT IGNORE 防止重复插入
+- - 已回滚 DatabaseInitializer.java 中的临时种子数据代码
+- 
+- 等过强表述,改为炎症是多因素中的重要一环。
+- 已修改:
+- - diabetes.html: meta + 尾部 CTA
+- - alzheimer.html: meta + og + hero + 因 section + 核心结论
+- - cardio-cerebro.html: meta + hero + 病 section + 因 section 标题 + 损伤链描述
+- - osteoporosis.html: 因 section intro + 核心证据框 + 主动健康五步
+- - metabolic-syndrome.html: meta + og + hero
+- - cancer.html: 新增免疫三大系统 section(之前未提交)
+- - gut-microbiota-testing.html: 菌株速查表迁移至 probiotics-science(之前未提交)
+- 
+- 已有 DatabaseInitializer 迁移创建但 schema.sql 缺失,初始化时不会自动建表
+- 
+- (item.id || item.circleId),改为 getCircleKey(item) 方法调用。
+- pages/action/index.vue (2处) + pages/discover/circles.vue (2处)
+- 同时更新 AGENTS.md / README.md 加入规范
+- 
+- 会触发'Syntax error in text'解析错误。
+- 修复两处:
+- - A6 节点:'⚙️ PDF解析引擎 (Stage 1)' → 包裹双引号
+- - A9 节点:'📱 创建成长档案 (Stage 2) /create-from-upload' → 包裹双引号
+- 包裹引号后Mermaid将整个字符串视为字面文本,跳过括号解析。
+- 
+- rename: 三高六高 → 从三高到六高 (title, meta, h1, cross-references)
+- - Backend: HealthIndicator add collectionDate field + migration 103
+- - Backend: parsePreview supports image upload (type=image)
+- - Backend: createReport indicator dedup by (category|indicatorName)
+- - Backend: ParsedReportPayload.Indicator add collectionDate
+- 
+- - pages/discover/circles.vue: 新页面,含我的圈子+推荐列表、CircleCard/CircleDetail 组件复用、加入/退出功能
+- - action/index.vue: goDiscoverCircles 改为 navigateTo 跳转到新页面
+- 
+- web: add probiotics/prebiotics science articles + update sales index
+- - New: probiotics-science.html (益生菌科学解读)
+- - Update: prebiotics-guide.html — removed science sections, kept buying
+-   content, added cross-links to new science article
+- - Update: probiotics-guide.html — removed definition section, kept buying
+-   content, renumbered sections, added cross-links to new science article
+- - Update: sales/index.html — nutrition section now 3 articles:
+-   turmeric + prebiotics-science + probiotics-science
+- - Fix: osteoporosis.html — updated citation ref-3 from Physiological
+-   Reviews 2023 to Bone Research 2026 (Wang et al.), corrected image path
+- 
+- - cfc-frontend/pages/action/index.vue: 移除 OctopusGraph 组件, 新增「我的圈子+发现推荐」区块
+- - docs: 设计文档 + 实现计划
+- 
+- never actually executed inside runMigrations(), so the production DB
+- was missing the column. This adds the call at the end of runMigrations()
+- so it runs on next startup.
+- 
+- - sales/*: QR code ?share=xxx referral system on index + 3 sales pages
+- - articles/gut-microbiota-testing.html + metabolic-syndrome.html: new articles
+- - articles/*: various health article updates (alzheimer, cancer, cardio, diabetes, etc.)
+- - img/products/: 4 Enagic product images; img/cert/: certification images
+- 
+- - cfc-frontend: badge.vue 增加家庭勋章排行展示
+- - cfc-frontend: rewards.vue 增加勋章墙导航入口
+- 
+- - 节点形状按身份区分 (圆角矩形/圆形/菱形)
+- - 点自己跳转维护页 (原为添加成员)
+- - 触摸自身显示⚙提示
+- - child-index: 新增'自己出题'快速入口
+- 
+- 后端 Java 实现:
+- - BacteriaFoodMapping: 菌属-食材映射表 KB,启动时加载 22 个核心菌属
+- - BeijingNutritionService: 推荐引擎,支持知识库和数据库两种模式
+- - BeijingNutritionController: 5 个 REST 端点 (save/recommend/recommend-custom/kb-query/kb-list/kb-info)
+- - BeijingNutritionDTO: 请求/响应 DTO
+- 文档与知识库:
+- - 报告指标知识库: 从 14 类扩展至 28 类(GMHI/菌群表型/抗炎/免疫/糖脂代谢等)
+- - 菌属-食材映射表: 22 个核心菌属的促进/抑制食材清单 + 科学引用
+- - 北京报告采集框架: PDF 指纹识别 + 提取流水线架构设计
+- - FMT 前后对比分析文档: 移植前后菌群变化与营养建议
+- 
+- - 添加迁移完成后验证查询,通过information_schema确认列是否存在
+- - 若列缺失会在启动日志中打出error,替代原来静默忽略
+- 
+- fortune_level_text、fortune_description、mood_score、mood_emoji、
+- mood_text、weekly_tip列,对齐FamilyFortune实体。
+- 修复MindFortuneController.getFamilyFortune()调用selectByFamilyAndDate
+- 时报Unknown column 'fortune_level_text'错误。
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - Add unified auth helper (helpers/auth.js) supporting all 8 roles
+- - Add utils.js with API assertion utilities and fixtures.js test data factory
+- - Add db.js globalSetup for automatic database reset before test runs
+- - Update playwright.config.js: globalSetup, increased timeout, retries, screenshots/trace on failure, mobile viewport project
+- - Restructure tests into roles/ directory:
+-   - roles/parent/: family-management, wish-management, assessment-order, energy-dashboard, points (5 files)
+-   - roles/child/: login, daily-checkin, mini-games (3 files)
+-   - roles/teacher/: login, family-binding (2 files)
+-   - roles/admin/: login, article/workflow, vendor/management (3 files)
+- - Add design spec and implementation plan documents
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+-   matches SPEC color mapping: mind=#FF6B9D, wisdom=#6366F1
+- - ArticleService.publishByUser: compute dimensionWeights JSON
+-   (equal distribution, e.g. 3 dims → {"body":34,"mind":33,"wisdom":33})
+-   enables dimension-aware query (COALESCE(JSON_EXTRACT)) for user posts
+- - article-detail.vue: parseDimensions reads real weights from
+-   article.dimensionWeights JSON, falls back to equal distribution
+-   Also fixed mind/wisdom color mapping in dimMap to match SPEC
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - article-detail.vue: call recordArticleRead(id,durationSeconds) on 阅读完成 click
+-   → backend creates completed Task, awards points, calls EnergyService.awardEnergy
+-   → shows earned toast / already-completed / below-threshold feedback
+- - article-center/index.vue: fix res.code === 0 → 200 (backend Result.success = code 200)
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - FamilyUserController, InteractionLogController
+- - RelationshipQuestionnaireController, FamilyMembersController
+- - RelationshipQualityController, AuthController
+- - DanAssessmentExecutionController (含 @GetMapping→@PostMapping 修复)
+- - AdminSettlementController: 修复Result导入路径+@PostMapping+删除重复SettlementStats
+- - pom.xml: 删除重复的PDFBox依赖
+- 
+- - Nav, Section, Grid-2, Card, Stat-Row systems
+- - Evidence-box, Ev-tag, Quote-block, List-styled
+- - Table, Step-flow, CTA, Button, Citation, Auth-badge
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- clean: remove deprecated turmeric_rewritten.html placeholder
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - enagic-turmeric.html: 新增Enagic UKON Sigma产品科普文章
+- - tap-water-pollution.html: 恢复未提交修改
+- - turmeric.html: 恢复未提交修改
+- 
+-   - 销售文章(3篇): sales/tap-water/microplastic
+-   - 慢性病系列(6篇): cancer/cardio-cerebro/diabetes/osteoporosis/alzheimer/uric-acid
+-   - 肠道与免疫(4篇): gut-microbiome-immune + 3篇FAQ
+-   - 饮水安全(2篇): tap-water-pollution/plastic-health
+-   - 营养与抗炎(3篇): turmeric/enagic-turmeric/turmeric_rewritten
+- - 快速跳转导航条 + 各分类颜色编码卡片
+- - AGENTS.md更新目录结构,加入index.html
+- 
+- - cancer_ref_bicarb.png: 新增Cancer Res 2009截图(Robey),标注碳酸氢钠提高肿瘤pH/抑制自发转移/减少转移灶
+- - cancer_ref_molcancer.png: 新增Mol Cancer 2016截图(Faes),标注碳酸氢钠单药抑制54.4%/联合雷帕霉素98.3%
+- - cancer.html: 酸性微环境模块后插入两组证据框,链接临床转化意义声明
+- 
+- - 新增酸性肿瘤微环境模块: Warburg效应→pH6.5-6.8→免疫抑制/侵袭/耐药
+- - 连接还原水: 碱性电解水缓冲瘤内pH的辅助预防逻辑
+- - 姜黄素补充: NF-κB抑制机制+生物利用度限制+增效方案
+- - Step 3新增第⑦项: 酸碱平衡调控(还原水)
+- - 文章叙事链重构: 免疫监视失败→酸性土壤→炎症供能→肠漏源头→抗炎闭环
+- 
+- - 证据框引用更新: Sung 2020→Bray 2024, doi更新, 新增2050预测数据
+- - 免疫三大功能: 从简单列表升级为三栏卡片(免疫防御/自稳/监视), 每栏含机制+异常+癌症关联
+- - 新增三点核心结论(免疫监视失败=癌症)
+- - ref-5引用信息补全: 被引42,510次, 1/5患癌/1/9男1/12女数据
+- 
+- 自来水文章截图替换+标注:4张源论文页面截图(ES&T/JEMA/Ecotox/IntJEnvironHealth)加红色标注框和中文翻译; Enagic pH档位更新为7档精准方案(2.5消毒~11.5去农残); 外出就餐新增消毒水建议; 修正ref-9引用期刊名
+- 截图标注+翻译:7张心脑血管引用截图加红色标注框和中文翻译; 修复Frontiers引用作者名和DOI
+- - cancer.html: 4处证据块添加img.ref-shot引用截图
+- - diabetes.html: 4处证据块添加img.ref-shot引用截图
+- - osteoporosis.html: 3处证据块添加img.ref-shot引用截图
+- 
+-   dimension-based color gradients, magazine spread overlay on tap
+- - Integrated into article-center/index.vue via getFeaturedArticles API
+- - Follows uni.scss design tokens, Vue 2 compatible (no optional chaining,
+-   flexbox layout)
+- - goExplore() navigation stub to /pages/article-center/article-explore
+- 
+- - 768px 以下侧边栏折叠,汉堡按钮控制展开/收起
+- - 侧边栏以 fixed overlay 方式滑入/滑出,配合遮罩层
+- - 路由切换自动关闭移动端侧边栏
+- - window.resize 监听自动适配桌面/移动端
+- Login.vue:
+- - 480px 以下表单卡片全屏展示
+- 全局 CSS:
+- - 移动端 padding 缩小,表格字号调小
+- - PROJECT-OVERVIEW v1.4 -> v1.6 冲突解决(取远程版本)
+- - 废弃设计文档同步移至 backup/
+- 
+- - Phase 3/4 状态修正:文章系统已上线,成长档案已完成
+- - 文章发布审核工作流、维度知识库、菌群报告 -> ✅ 已实施
+- - 家庭关系图修复 -> ✅ 已修复
+- - 公众号内容发布Dify工作流 -> 🔄 已废弃
+- - 确定性PPT设计 -> 移至 backup/
+- - 之前声明为已废弃但未物理移动的10个文件 -> 同步移至 backup/
+- 
+- 优化DAN测评流程
+- - diabetes.html: 4个 ref-shot → evidence-inline引用块
+- - osteoporosis.html: 3个 ref-shot → evidence-inline引用块+CSS
+- - footer.js: 增加子目录路径自适应,logo和链接自动添加../前缀
+- 
+- 新增规范
+- schema.sql: 补充 product_skus 建表语句(含 min_quantity 列)
+- DatabaseInitializer: runMigration101() 定义(添加 min_quantity 列)
+- ProductOrderService.createMultiItem(): SKU 级别最小购买数量校验
+- 
+- - geo-faq-2-attention: 7条引用(血清素/肠脑轴/ADHD菌群/人工色素等)
+- - geo-faq-3-immunity: 5条引用(益生菌/维生素D/儿童感冒次数等)
+- - sales: 添加科普文章交叉链接
+- - 所有nav链接修复为正确的相对路径(../index.html)
+- 
+- 导致.site-footer无样式渲染。补充完整footer CSS适配各文章配色:
+- - 使用 var(--bg-dark, #1a1a3a) 确保 footer 背景自动适配已定义--bg-dark的文章
+- - 使用 var(--accent, #27ae60) 保持 hover/logo-tag 色与文章主题一致
+- - 全文覆盖:.site-footer, .footer-inner, .footer-brand, .footer-links,
+-   .footer-col, .footer-contact, .footer-bottom, .footer-logo-img, .footer-legal
+- 受影响文件:uric-acid, plastic-health, diabetes, cancer, cardio-cerebro,
+- tap-water-pollution, turmeric, osteoporosis
+- geo-faq三个文章已链接主站../css/style.css,无需内嵌footer样式。
+- 
+-   - pages/index-home/index.vue (main package TabBar home page)
+-   - pages/home-pages/ (subpackage for parent-index, child-index, member-home-detail)
+- - Update all navigation URLs to use correct paths
+- - Fix /pages/home-index/index -> /pages/index-home/index across 19 files
+- 
+- - 页脚样式:补充完整的 .site-footer CSS 样式(配色适配文章暗色调)
+- - 参考文献:11篇全部添加 DOI 超链接(CANTOS/Lancet/NEJM/Nature/Cell/Science/PNAS/JAMA)
+- - 证据截图:新增3处 evidence-inline 截图证明(小胶质细胞双面角色/CANTOS抗炎证据/富氢水神经保护)
+- - 修正参考文献作者信息(TREM2: Guerreiro 2013 NEJM, Lecanemab: van Dyck 2023 NEJM, DAM: Keren-Shaul 2017 Cell 等)
+- 
+- corrupting Chinese characters in 230+ files, causing Unterminated string errors.
+- - Restore all files from e8fd4d05~1 (pre-corruption) via git checkout
+- - Re-apply directory rename (pages/index -> pages/home)
+- - Re-apply path replacements using Python with explicit UTF-8 encoding
+- - Fix tab icon references (tab-home -> tab-action) in custom-tab-bar
+- - Fix historical encoding issue in pages/games/1a2b.vue (pre-existing garbled text)
+- - Clean up duplicate pages/home/index/ directory created by git checkout
+- 
+- - alzheimer.html: alzheimer_ref1.png → gut-microbiome-damage.jpg (替换不存在的截图)
+- 
+-   调用 health_butler_graph,支持知识库检索+个性化建议+任务生成
+- - cfc-frontend: 新增 aiSendHealthButlerMessage() (api.js)
+-   输入 childId/familyId,传给 LangGraph /health/butler 端点
+- - cfc-frontend: mode='butler' 完整支持 chat.vue
+-   isButler computed / 导航标题 / 欢迎语+3个快速问题 / 🏥头像 / sendMessage分支
+- - cfc-frontend: 身体页功能列表新增「🏥 健康管家」入口
+-   导航到 /pages/ai/chat?mode=butler&fromPage=pages/body/index
+- 
+- - 新建 health_butler_graph.py (322行): Java KB集成的健康管家图
+-   (load_knowledge → search_knowledge → llm_answer → save_memory)
+-   查询 Java 健康知识库(bacteria/indicator/food)注入 LLM 上下文
+- - 修复 health_coach_graph.py: HEALTH_BUTLER_PROMPT → HEALTH_COACH_PROMPT
+- - 修复 chat.vue: aiSendHealthButlerMessage → aiSendHealthCoachMessage
+- - 修复 AIFloatingAvatar.vue: 从身/智/心页面自动传递 mode=health
+-   确保健康维度页面进入 AI 聊天时使用健康教练模式
+- - 同步 PROJECT-OVERVIEW.md 远程更新(Phase 4/健康7维)
+- 
+- - Update pages.json: TabBar pagePath, main pages array, and subPackages root
+- - Fix custom-tab-bar page paths and icon filenames (tab-home -> tab-action)
+- - Update all Vue file navigation URLs from /pages/index/... to /pages/home/...
+- 
+- - Tasks 1-4, 6-10: ✅ 全部完成 (标记 [x] + evidence)
+- - Task 5: ⚠️ 基础完成(缺专用 health_butler_graph.py)
+- - Tasks 11-13: ⏳ Phase 4 计划级未实施
+- - Scope/Success criteria 同步更新
+- 
+-   to subpackages (pages/index, pages/login, pages/share, pages/profile)
+- - index/index.vue: remove static import of ParentIndex/ChildIndex, redirect
+-   authenticated users via redirectTo instead of rendering as sub-components
+- - AGENTS.md: document subpackage structure (45 subpackages)
+- - api.js: add console.log for /api/auth requests for debugging
+- - family/add-member.vue: minor fix
+- 
+- langgraph调整,.env 文件我没上传
+- - 新增 turmeric.html (姜黄/黄原糖健康科普)
+- 
+- 代码修复
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 修正tap-water-pollution.html图片引用:.png→.jpg,配合已压缩的截图文件
+- 优化tap-water-pollution.html:压缩截图为高质量JPG并修正引用路径;保留Enagic SVG
+- - 修正HTML图片引用:.png/.svg → .jpg(农药残留/DBPs/氯消毒机制/EDCs/抗生素ARGs/肠道菌群)
+- - 保留Enagic还原水对比图为SVG矢量图
+- 
+- web/sales: 新建销售目录,移动sales.html,新增微塑料和自来水污染销售页
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - v1.3 → v1.4, 状态行更新
+- - §3.1: 主动健康六阶 🚧→✅(P0-P2-1完成); 营养缺陷修复 🟡→✅
+- - §3.2: DAN测评结果展示 🟡→✅
+- - §4.1: 公众号内容发布(Dify) ❌取消(LangGraph取代)
+- - §5.1: 维度知识库 🟡待实施→✅已实施
+- - §8: 维度页面缺口 P1+2✅, 营养健康✅
+- - §10: 6个spec/plan状态同步更新
+- - §11: 删除重复行
+- 
+- 新增规范
+- 新增规范
+- language as the energy sandbox (wuxing-sandbox) dots:
+-   行🌿 身🌏 智⚡ 心🔥 富💧
+- 
+-   the energy sandbox (wuxing-sandbox) visual language:
+-   行(wood/leaf) 身(earth/mountain) 智(metal/diamond) 心(fire/flame) 富(water/drop)
+- - Use dimension colors from the sandbox palette for active state,
+-   gray for inactive state
+- - Remove old tab-home icons (replaced by tab-action)
+- - Update pages.json to reference new tab-action filenames
+- 
+-   redirect converting POST to GET
+- - RecommendedFeed.vue: template 'items'→'displayItems' (undefined
+-   computed ref)
+- - parent-index.vue: add .catch() to getFamilyRanking/getChallengeList
+-   to prevent unhandled Promise rejections
+- 
+- 新增规范
+- type list (family/friend/partner/colleague/other), matching backend removal of
+- /relationship-types endpoint and relationship_types table.
+- 
+- v4 alone had remove-scoped.js crash on empty selector (spaces access).
+- - Keep @vue/cli-service ~4.5.0, postcss 7.0.39 pinned
+- - Add postinstall-fix.js to patch remove-scoped.js selector.first guard
+- - Add node-sass as devDependency (needed by uni-app sass-loader)
+- - Restore .postcssrc.js, postcss.config.js, vue.config.js
+- - Document build constraints in AGENTS.md
+- 
+- 导致 webpack-uni-mp-loader/script.js 编译失败。
+- - 正确闭合 loadAlerts 的 .then() 链
+- - 将 dismissAlert 调用抽出为独立的 handleDismissAlert(alertId) 方法
+- 
+- added postcss:^8.4.49 as a direct dependency, causing remove-scoped.js
+- (Cannot read properties of undefined (reading 'spaces')) crash.
+- - @vue/cli-service ^4.5.19 -> ^5.0.9
+- - copy-webpack-plugin ^5.1.2 -> ^14.0.0
+- - Remove .postcssrc.js, postcss.config.js, vue.config.js
+- - Remove postcss from dependencies (v5 brings its own)
+- - Remove postcss/postcss-selector-parser from overrides
+- 
+- - 删除 RelationshipPicker.vue: 已被 GenerationPicker.vue 替代
+- 
+- - @vue/cli-plugin-babel: ~4.5.0 → ^5.0.9
+- - copy-webpack-plugin: ^5.1.2 → ^14.0.0
+- - @babel/core/preset-env: ^7.16.0 → ^7.29.7
+- - Remove override @vue/babel-plugin-resolve-type@1.0.0 (does not exist on npm)
+- Root cause: downgrade to @vue/cli-service v4 in 6a4d0496 triggered
+- remove-scoped.js crash in WeChat DevTools build pipeline.
+- 
+- - 创建 WealthSubScores.vue 组件展示富维度三子维度详情(家长/孩子角色感礁)
+- - 更新 wealth/index.vue: 导入两个新组件 + data添加bodyWealthStatus/Message字段 + API加载逻辑
+- - 修复 DatabaseInitializer.java: runMigration100方法缺少闭合括号导致编译失败
+- TASK-P0-002 前端实施完成,后端EnergyService子维度计算已由先前提交完成
+- 
+- 优化自来水污染科普文章:新增农药残留和氯消毒副产物章节,突出Enagic还原水机方案
+- - 新增Section: 农药残留(46种农药频繁检出,拟除虫菊酯首次在自来水中确认)
+- - 新增Section: 氯消毒副产物DBPs(Liu et al. Nature Sustainability 2022 膀胱癌关联)
+- - 新增Section: Enagic还原水机(ISO 13485认证、五种功能水、科学依据与临床证据)
+- - 新增Sticky TOC导航、数据表格、引用卡片网格、对比表格
+- - 更新参考文献至25条(新增农药/DBPs/Enagic相关引用)
+- - 添加截图占位区域(用户替换为实际截图)
+- 
+- content(D2-D3): 智维度专注力俊辰案例 + 富维度记账破洞 + 知识库索引
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- web: 更新knowledge.html和sitemap.xml适配articles/目录结构
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- web/articles: 移动疾病科普六篇到articles/子目录
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- web/articles: 移动geo-faq三篇及尿酸文章到articles/子目录
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- web/articles/tap-water-pollution.html: 自来水中的隐形威胁
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - B类4项+ C类4项重新分Phase(Phase 2-4)
+- - 新增 comprehensive implementation plan (13 tasks across 3 phases)
+- - 阶段总览更新:Phase 2=商业模式&AI落地, Phase 3=五维增强, Phase 4=平台扩展
+- 
+- 1、用户预约测评后,小程序端可以看到规划师
+- 1、用户预约测评后,小程序端可以看到规划师
+- web/knowledge.html: swap side panel directions per request
+- 1、优化管理端前端的分页异常问题 2、用户预约测评后,管理端分配规划师
+- web/knowledge.html: >> in header, side panel for hidden articles, fix layout
+- - 状态行更新: P0/P1-1/P1-2/P2-1 全部 ✅ 完成
+- - 矩阵新增状态列
+- 
+- - 新增 HealthScoreService 积分计算引擎
+- - 新增 HealthLevelService 等级判定+种子数据自动插入
+- - 新增 HealthTimelineService 时间线事件生成(里程碑/升级/首次)
+- - 新增 HealthScoreController+HealthTimelineController
+- - 数据库迁移 105/106 (health_level+health_timeline_event)
+- - 前端 HealthBadge + HealthTimeline 组件
+- - 前端 store/health-score.js + api.js 端点集成
+- - profile.vue 展示等级称号+进度条+时间线
+- 
+- - 重写 osteoporosis.html(骨质疏松):慢性炎症+肠-骨轴+RANKL/OPG机制
+- - 增强 cancer.html:症压缩证据盒+免疫三大功能+肠-癌轴
+- - 更新 knowledge.html:将 alzheimer.html 接入成长百科(身维度)
+- 文章核心框架:症压缩 → 慢性炎症统一病因 → 抗炎干预(菌群+富氢水)
+- 
+- 启动报错修复
+- - 保存路径:uploads/json-results/{timestamp}_result.json
+- - 每次调用 POST /api/health/report/parse-preview 时自动保存
+- - 使用 Jackson ObjectMapper 格式化输出 JSON
+- - 日志中记录保存的文件路径和关键信息摘要
+- - 不影响主要流程,保存失败仅记录警告
+- 
+- - 数据库: schema.sql + DatabaseInitializer migration 104 (health_alerts表)
+- - 前端: HealthAlertBanner横幅组件 + store/health-alert.js + parent-index集成
+- - 6条预警规则: 睡眠下降/无运动/饮水少/运动过强/7天无打卡/今日未打卡
+- - 去重机制: 同一规则24h内不重复生成
+- - 严重程度排序: high > medium > low,最多展示2条
+- 
+- - 数据库: schema.sql + DatabaseInitializer migration 103
+- - 前端: FeedbackToast, MilestoneCelebration, DailySummary 组件
+- - 预设文案引擎: 12 场景触发 + 里程碑判定
+- - Vuex 反馈状态模块 + parent-index 集成
+- - 微行动完成后自动触发即时反馈
+- 
+- web/knowledge.html: Fix title padding (margin-top), add disease articles, wealth marker right->65%
+- web: Fix 浠艾福 typo(爱→艾), fix knowledge.html title padding, shift markers up 10%, max-3 articles with >> reveal
+- - PROJECT-OVERVIEW.md v1.1→v1.2: 新增 Phase 5 阶段、3.1 身 条目、十 文档索引、十一 主动健康改进章节
+- - AGENTS.md: 新增变更追踪规则 — superpowers/ 下文件增删改必须同步 PROJECT-OVERVIEW.md
+- 
+- web: Fix footer typo 浐色福→浠艾福, remove 成长百科 column; Fix knowledge.html title obscured by fixed header
+- web/diabetes.html: Fix missing shared footer placeholder
+- web: 全站统一 footer 为共享组件 js/footer.js,移除各页面自定义 footer CSS
+- - 人体五部位对应五维: 肠→身, 脑→智, 心→心, 手→富, 脚→行
+- - Desktop: 人体图四周浮动标注卡片,连接圆点指向对应身体部位
+- - Mobile: 顶部5标签切换(身·智·富·行·心),点击显示文章列表
+- - 替换所有'亿图腾(北京)科技有限公司'→'浠艾福主动健康研究院'
+- 
+- - 新增100vh单页布局(overflow:hidden),无滚动
+- - 单人剪影+群组剪影作为装饰性页面背景(低透明度)
+- - Desktop: 5维卡片水平排列,各维度文章链接直接可见
+- - Mobile: 顶部5标签切换(身·智·富·行·心),点击显示对应文章
+- - 所有文章数据及标签切换逻辑由内联JS驱动
+- 
+- - web/css/style.css: 新增知识页面全套响应式样式(k-hero/k-dim-section/k-article-grid)
+- - 全站添加 Microsoft Clarity 用户行为分析脚本(FAQ 3 篇 + sales.html + knowledge.html)
+- - 导航与 footer 链接统一指向 knowledge.html
+- - index.html 知识区新增" 进入成长百科 →\按钮
+- 
+- - 小红书发布/内容方法论-六阶模型.md: 主动健康六阶模型 × 五维映射方法论
+- - 小红书发布/发布日历.md: 30天日均内容矩阵 (身→智→富→行→心 五天循环)
+- - 小红书内容/: 4篇正式稿+指南+速查卡
+- - 小红书发布计划.md / 发布数据复盘清单.md
+- 
+- - 自然暖色调抽象家庭插画:屋顶/成长树/太阳/彩虹弧/家庭剪影
+- - 右侧留白用于文字叠加
+- - .hero-bg 更新为引用真实图片而非 SVG
+- 
+- - 包含:屋顶/成长树/太阳/彩虹弧/家庭五人剪影/心形/草地祥云
+- - 暖色调大地色系(棕#C4956A / 浅绿#8DB48E / 淡黄#F5D89A / 蓝#A8D4E6)
+- - .hero-bg 加 SVG 背景图 + 左侧渐变遮罩确保文字可读性
+- 
+-   Phase 1 completion (5 items), Phase 2 launch (4 items), 6 tech debt items,
+-   4-sprint timeline with dependencies and risk analysis
+- - Updated PROJECT-OVERVIEW.md: 12 completed features corrected from
+-   🚧/🟡 to ✅ based on code verification (profile redesign, action pages,
+-   pre-login experience, emotion check-in, article center, flora report,
+-   membership frontend, family graph, member detail sections, mind dual-tab,
+-   parent homepage, homepage overhaul)
+- 
+- uric-acid.html: rename title to 高尿酸的先天性与后天性
+- index.html: 主动健康概念卡片改为五维语言——被动健康是五维内部消耗(前半生用健康换财富,后半生用财富换健康),主动健康是五维持续增长
+- index.html: 主动健康概念专章改为双栏对比——被动消耗财富 vs 主动创造财富
+- - 右栏:主动健康(🌱)→ 提前规避→创造财富→健康即最大资产增值
+- - 保留五维闭环流程图于底部
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- index.html: 新增主动健康概念专章 + 家庭成长闭环按主动健康思路重写
+- - 家庭成长闭环4步重写:提前识别→风险管控→主动干预→效果评估
+- 
+- index.html: 将积分奖励激励替换为有序支出、规划传承
+- index.html: 全站整合「主动健康」理念
+- - About 描述首位加入:主动健康为核心
+- - 五维能量 section subtitle 增加:主动健康 · 五大能量维度
+- - 五维能量 section desc 首句加入:主动健康理念贯穿五维——不等病来,主动管理
+- - JSON-LD FAQ「浠艾福是什么平台」答案首句加入主动健康理念
+- - JSON-LD FAQ「什么是五维能量体系」重构为以主动健康为核心的定义
+- 
+- 网站去亿图腾化:全面替换为浠艾福主动健康学院,更新备案号为京ICP备14061870号-5
+- - 页脚版权信息、About版块、JSON-LD组织名称 均更新
+- - 移除 keywords 中亿图腾
+- - 4个HTML文件全部更新:index.html, geo-faq-1-allergy.html, geo-faq-2-attention.html, geo-faq-3-immunity.html
+- 
+- index.html: 成长百科新增微塑料与健康、尿酸高的成因与调节两篇文章链接
+- uric-acid.html: 添加8处内联文献证据截图(带高亮注释+中文翻译),移除参考文献列表截图显示
+- - 概述、转运体、肠道菌群、SCFA、益生菌、EAW、富氢水、运动8个关键段落各添加1处带红色虚线高亮框的截图证据
+- - 每处证据盒包含:高亮内容原文 + 中文翻译 + DOI链接
+- - 12个参考文献卡片中移除截图直接显示,仅保留权威性标签+翻译+链接
+- - 更新图4为新生成的痛风发病机理图(diagram_4_en.png)
+- - 新增图1-3英文版机制图(diagram_1/2/3_en.png)
+- - 删除临时文件 .tmp_snapshot_ref3.txt
+- 
+- - 降级 @vue/compiler-sfc 到 2.7.16 确保 HBuilderX 兼容
+- - 添加 postcss-import、postcss-url、autoprefixer 配置
+- - 添加 fix-hbuilderx-scoped.js 和 fix-postcss.sh 自动化修复脚本
+- - 回退 Babel 和 Vue CLI 版本到兼容的 4.x 系列
+- - 优化小程序样式 scoped 问题修复工具
+- - 修复组件编译警告和问题:
+-   * ActionArticleRecommend.vue
+-   * HealthDimensionsSection.vue
+-   * RecommendedFeed.vue
+-   * mind-section.vue
+-   * health 相关页面
+-   * payment.vue (移除 scoped)
+-   * child-index.vue
+-   * index.vue
+- - 优化 Python LangGraph 记忆和检索逻辑
+- 
+- - Downgrade 2 features to ⚠️ (e-commerce shop_ tables missing, promotion frontend missing)
+- - Mark langgraph-requirements-summary.md as ⚠️ file missing
+- - Version bump v1.0 → v1.1
+- 
+- - AI Sidecar: 🟡->🚧 (AiGateway+5% done, sidecar dir ready)
+- - Generation model: 🟡->🚧 (GenerationLevel.java introduced)
+- - Wealth dimension: 🟡->🚧 (EnergyService v2.1 done)
+- - First login: 🟡->🚧 (login.vue modified)
+- - Flora report: 🟡->🚧 (gut-flora-detail.vue modified)
+- - Article center: 🟡->🚧 (4 pages: index/detail/edit/my-posts)
+- - Family membership: 🟡->🚧 (MemberSubscriptionService done)
+- - Section 10 spec/plan index: 8 entries synced accordingly
+- 
+- - AI Sidecar: 🟡→🚧 (AiGateway+5% done, sidecar dir ready)
+- - Generation model: 🟡→🚧 (GenerationLevel.java introduced)
+- - Wealth dimension: 🟡→🚧 (EnergyService v2.1 done)
+- - First login: 🟡→🚧 (login.vue modified)
+- - Flora report: 🟡→🚧 (gut-flora-detail.vue modified)
+- - Article center: 🟡→🚧 (4 pages: index/detail/edit/my-posts)
+- - Family membership: 🟡→🚧 (MemberSubscriptionService done)
+- - Section 10 spec/plan index: 8 entries synced accordingly
+- 
+-   使静态图标 PNG 能被正确追踪
+- - Add tab-wisdom.png / tab-wisdom-active.png (placeholder from tab-mind)
+-   Fix TabBar compile error: 'tab-wisdom.png' not found
+- 
+- web(plastic-health): replace 亿图腾→浠艾福, add Clarity, fix two-col mobile responsive
+- - 移除 ProfileStats(行动/财富数据,归属富页面)
+- - ProfileMenu.vue 新增 showServices prop,我的页面隐藏"服务"板块(会员/订单/售后等归富页面)
+- - 保留:ProfileHeader / ProfileGrowth / ProfileBadges / 个人+设置菜单
+- 
+- - application.yml: 新增 python.* 配置项
+- - RecommendationController: 5% 流量走 Python,异常自动 fallback
+- 
+- - models/: 请求/响应 Pydantic 模型
+- - rag/: ChromaDB + Embedding + 混合检索 (BM25+向量)
+- - tools/: JavaClient HTTP 封装 + product_tools (3 个 @tool)
+- - graphs/recommend_graph.py: RecommendAgent (LLM + Tool Calling)
+- - api/recommend.py: POST /api/v1/recommend 端点
+- - main.py: 注册路由 + startup/shutdown 钩子
+- 
+- - FastAPI app skeleton with /health endpoint
+- - Dockerfile, .env.example, .gitignore
+- - Fix root .gitignore *.py exclusion for cfc-langgraph/
+- 
+-   uni-app 编译器能正确生成 wx:key="id"
+- - placeholder 文章占位卡片的 :key="'ph-'+i" 已改为 :key="i"
+- 
+-   instead of first occurrence on page 1 summary; 566 chars (was 300)
+- - 肠道年龄评估: now captures full gut age (page 12) + flora assessment
+-   (pages 13-14, 菌群平衡/菌群多样性); 1938 chars (was 500)
+- - Removed hard-coded [:500] and [:300] truncation limits
+- - Proper end-marker detection using 菌群构成层级/菌群详细构成
+- 
+- web(plastic-health): optimize screenshot sizes for faster loading
+- web(plastic-health): add ref-22 WWF weekly 5g intake citation
+- 修复前端分页问题
+- web(plastic-health): add screenshot links to all 21 citation cards, fix ref-7/ref-12 metadata
+- - Fix ref-7 journal name: Nutrients -> Antioxidants
+- - Fix ref-12 DOI: 108319 -> 108353
+- - Retake ref-21 without cookie popup
+- - Add translation overlays: ref-13 (Chinese), ref-19 (English)
+- 
+- 修复小程序运行不起来问题
+- 分配规划师
+- 分配规划师
+- 缺少 SQL 绑定,既无 XML 映射文件也无 @Select 注解。
+- 
+-   修复 TypeError: Cannot read properties of undefined (reading 'length')
+-   及由此引发的 WeChat FLOW_DEPTH 渲染层错误
+- - cfc-web/.env.production: VUE_APP_BASE_API= → /admin,
+-   修复 env 缺失导致 baseURL 显示 ? 的问题
+- - JwtInterceptor.java: 两处 401 写入前添加
+-   response.setContentType(application/json; charset=utf-8),
+-   修复后端拒绝返回时前端 axios 无法解析 message 导致提示显示 ?
+- - 配套补: FamilyMemberCard/Strip 组件、action/body/mind/parent-index 页面逻辑完善
+- 
+- web(plastic-health): add authoritative descriptions to all 21 references
+- - ref 2/4/5/7/9/10/11/12/13/14/15/20/21: journal + publisher + SCI tier
+- - ref 3: news media context
+- - ref 19: institutional + professor affiliation
+- 
+- web(plastic-health): enrich references with journal names and add container guide
+-   ref-11: Antioxidants, ref-12: Environment International, ref-13: Nature Medicine
+- - Add ref-20 (ANSES glass cap paint) and ref-21 (Heliyon container comparison)
+- - Replace tip cards container section with safety ranking guide
+- - Re-take NEJM screenshot without cookie popup
+- 
+- 填写预约报告表单
+- web(plastic-health): remove boiling water option from protect section
+- - Renumbered 方案三(电解还原水机)→ 方案二
+- - Keep 方案一 as 更换饮水容器 (tip grid)
+- 
+- web(plastic-health): add antibiotics/pesticides/hormones row and correct boiling limitation
+-   removal across all 4 water solutions
+- - Updated tap water conclusion: acknowledge boiling cannot
+-   remove chemical contaminants (antibiotics, pesticides,
+-   contraceptive drugs)
+- - Updated office tips: recommend activated carbon filter
+-   before boiling as supplement
+- 
+- web(plastic-health): consolidate 4 water solutions into one comparison table
+- a single 5-column table covering 8 dimensions: microplastics,
+- minerals, BPA/plasticizers, secondary contamination, antioxidant
+- benefits, obesity/anxiety risk, cost, and overall rating.
+- - 桶装水/瓶装水 | 自来水(烧开后) | RO反渗透纯水机 | 电解还原水机
+- - Color-coded cells for quick visual comparison
+- - Two conclusion boxes: tap water as budget choice, electrolyzed
+-   reduced water as optimal upgrade
+- 
+- web(plastic-health): add 3 factual logic points - obesity/anxiety from barreled water, tap vs RO comparison, electrolyzed reduced water as optimal
+-    triggering metabolic disorders and gut-brain axis anxiety
+- 2. Tap vs RO comparison table: WHO warns against long-term
+-    demineralized water; boiled tap water retains minerals
+- 3. Electrolyzed reduced water as optimal solution: multi-stage
+-    filtration + antioxidant hydrogen water + retained minerals
+- 4. New references [14]-[19] for all three additions
+- 
+- web(plastic-health): add 4 evidence screenshots with Chinese annotations for office water risk factors
+- - ref-hot-water-antimony.png: 70°C高温锑/BPA释放 对应风险②高温加热
+- - ref-heat-sunlight.png: UV/高温加速降解 对应风险③存放暴晒
+- - ref-ohio-state.png: 瓶装水塑料为自来水2-3倍 对应风险④密封垫磨损
+- Each English-page screenshot includes injected Chinese translation annotations.
+- 
+- 填写预约报告表单
+- - 使用紫粉渐变背景匹配心维度色系
+- - 保留报告列表功能,统一色调
+- 
+- - 10个内容章节:概述→定义→办公室水源→进入路径→5大危害→研究里程碑→对比表→防护方案
+- - 每条结论均标注引用文献链接
+- - 嵌入5张研究来源截图(ScienceDaily/WHO/NEJM/PNAS/科普中国)
+- - 响应式设计,匹配官网设计系统
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - Apply normalization at both init (buildIndexes) and lookup time
+- - Remove duplicate Kangxi radical entries from JSON (now handled by code)
+- - Belt-and-suspenders: data + code both normalize
+- 
+-   to 菌属功能库 (genera 88 -> 92)
+- - Add U+2ED4 Kangxi radical variants of 幽门螺杆菌 and 沙门氏菌
+-   for matching extracted report data
+- - Verified on 556168709-mi.pdf: match rate 98% (176/179)
+-   - Genus: 52/53 (Prevotellamassilia now added)
+-   - Species: 43/45 (CAG unclassified only)
+-   - Disease risks: 10/10 (100%)
+-   - Other indicators: 71/71 (100%)
+- 
+- 直接跳过自动登录,避免后端不可达时触发 WeChat SDK
+- SystemError timeout。
+- 
+- 改为按分原样传参 amount,与全局金额格式化约定保持一致。
+- 
+- - 修复空状态条件引用不存在的 indicatorGroups,改为 indicators.length
+- 
+- to wx:key. Changed to :key="i" which compiles to wx:key="*this",
+- eliminating the WXML runtime warning.
+- 
+- 填写预约报告表单
+- 填写预约报告表单
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - AIChatController [TASK]标记解析集成
+- - FamilyContextService任务上下文注入
+- - chat.vue任务卡片渲染+报告解读模式
+- - 阅读卡片改为今日能量文并重新设计(深色渐变/辉光)
+- - 体检/菌群报告详情页AI解读FAB入口
+- - 富页面模式切换+profile返回入口
+- 
+- - Update showKnowledge() to query v3 KB first (偏高影响/偏低影响/调整建议)
+- - Fall back to old queryKnowledgeBase('disease', ...) when v3 returns nothing
+- - Follows same pattern as gut-flora-detail.vue and gut-flora-species-detail.vue
+- All 4 gut-flora report pages now use KB v3 with fallback.
+- 
+- - .gitignore: add .env.production
+- - git rm --cached .env.production (keep on disk)
+- Environment-specific configs should not be tracked in git.
+- 
+-   (auth.js URLs start with /api/, so baseURL=api caused axios to emit
+-    api/api/... → browser resolves to /admin/api/api/..., backend returns 405)
+- - Login.vue: <img src="/logo.png"> → src="logo.png" (relative,
+-   resolves correctly under /admin/ subpath)
+- - public/logo.png: added (copied from web/logo.png)
+- - .gitignore: add !cfc-web/public/logo.png exception
+- 
+- - Added 3 missing genera: Coprobacter, Paraprevotella, Parasutterella
+- - Verified: 50/55 genera match KB directly, 41/43 species match via genus backoff
+- 
+- - extract_full_report_v5.py: normalize_output() - 字段统一/冗余删除/菌属名称清洗
+- - 字段拆分清单.md: personal data vs knowledge base 边界定义
+- - 设计规格: docs/superpowers/specs/2026-07-19-knowledge-base-v3-data-refactor.md
+- - 验证输出: 547982403.json, 朱评估报告.json 新格式确认
+- 
+- parameter - it's resolved internally via MembershipService.
+- Add @MockBean MembershipService and update call sites.
+- 
+- no interceptor sets familyId as a request attribute → Spring 400 error.
+- @RequestAttribute("userId") + membershipService.getUserFamilyId(userId)
+- Affected controllers:
+- - MindFortuneController (getTodayFortune, refreshFortune, exportFortuneReport)
+- - PackagePaymentController (createOrder)
+- - MarketController (purchasePackage, getMyPlans)
+- - BindController (acceptBind, getBoundGuides, unbind)
+- 
+- - Add recommendedProducts/loadingProducts data states
+- - Implement loadRecommendProducts method with REPORT_DOMAIN_MAP
+- - Add goToProduct and formatPriceWithSymbol utility methods
+- - Insert horizontal scrollable purchase card section below type selector
+- - Add scoped styles for purchase recommendation section
+- 
+- Merge remote-tracking branch 'origin/cfclub' for upstream changes
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 导致生产环境 405 Method Not Allowed 错误。
+- 修复范围:
+- • 用户: updateUser/deleteUser — 方法+URL 修正
+- • 家庭: updateFamily/deleteFamily — 方法+URL 修正
+- • 孩子: updateChild/deleteChild — 方法+URL 修正
+- • 任务模板: updateTaskTemplate/deleteTaskTemplate — 方法+URL 修正
+- • 奖励模板: updateRewardTemplate/deleteRewardTemplate — 方法+URL 修正
+- • 系统配置: deleteSysConfig — 方法修正
+- • 教师任务模板: deleteTeacherTaskTemplate — 方法+URL 修正
+- • 心愿: setWishPrice/rejectWish/approveWishExchange/markWishFulfilled — 方法修正
+- • 心愿: deleteWish — 方法+URL 修正 (/api/wishes/{id}→/cancel)
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- • AssessmentReportController: upload() → store()
+- • DanReportUploadService: upload() → store()
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- • FileStorageService: 增加 delete() 方法用于删除已上传文件
+- • WebConfig: addResourceHandler 使用 upload.base-dir 替代 System.getProperty
+- • application.yml: 添加 upload.base-dir 和 upload.allowed-types 配置
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - Fix regex patterns for abundance, normal range, population level
+- - Add inline fallback for missing disease risks, amino acids, barrier/scfa/nt
+- - Fix overview extraction for gut age, health score details
+- 
+- - DanReportParseService.parseB5Report(): 新增compassImage参数 + 第7步图像分析
+- - 新增常量: B5_QUAD_ANGLES/FACTORS/SUB_DIMS + B5_CENTER坐标
+- - 新增方法: extractB5CompassImage(PDDocument) — PDFBox提取PNG→BufferedImage
+- - 新增方法: measureFillAtAngle() — 沿角度射线逐像素扫描填充半径
+- - 新增方法: extractB5CompassScores() — 动态校准因子 + 19子维度分数映射
+- - parseText(): 新增两参数重载(public) + 三参数版本(private)
+- - 图像提取失败不影响文本数据(log.warn静默降级)
+- 算法: 从r=150扫描跳过中心色块, 25px间隙容忍跨越环线,
+-       每象限角度范围等分→子维度射线±2°偏移→平均fill×校准因子→1-5分
+- 测试: 37 tests run, 0 failures
+- 
+- - HealthKnowledgeBaseService: listAll/save/updateById/removeById
+- - HealthKnowledgeBaseController: /list /add /update /delete
+- - cfc-web/views/admin/health-knowledge.vue: 列表+筛选+新增/编辑/删除/导入
+- - router: 注册 /health-knowledge,Layout 侧边栏 知识中心 下新增菜单
+- 
+- Wave 3: 迁移DAN报告解析 B5(adolescent) Python→Java — 全部完成
+- Wave 1: A1(认知/cognition) + B3(学习/learning) — 6维认知 + 执行功能/学习动机/策略
+- Wave 2: B2(行为/behavior) + B6(职业/career) + C1(校园/campus)
+-   — 自我概念/行为/家庭环境 + Holland兴趣/多元智能/价值观 + 复用A1+A2+B4逻辑
+- Wave 3: B5(青春期/adolescent)
+-   — 情绪调节2维/学业压力5维/人际关系4维/社交5维/睡眠/运动/网络 (文本部分)
+- DanReportParseService 现已覆盖全部8种DAN报告类型解析:
+-   A1(cognition) A2(mind) A2(heart) B2(behavior) B3(learning) B4(wisdom) B5(adolescent) B6(career) C1(campus)
+- 辅助工具方法:
+-   extractTotalScoreAndPercentile, extractScoreWithLabel, extractScoreAfterLabel,
+-   extractRegion, extractNamedScore, getBehaviorEnglishPattern
+- 其他文件:
+-   DanReportUpload: 新增 DIM_COGNITION/LEARNING/BEHAVIOR/CAREER/CAMPUS/ADOLESCENT 常量
+-   DanReportUploadService: dimension 校验扩展到全8种维度
+-   DanReportParseServiceTest: 35个测试用例覆盖所有8种报告类型
+-   ProductOrder.java: 修复重复字段编译错误
+- 编译: mvn compile BUILD SUCCESS
+- 测试: 35 tests run, 0 failures, 0 errors
+- 
+- Wave 2: 迁移DAN报告解析 B2(行为)+B6(职业)+C1(校园) Python→Java
+- - DanReportParseService: 新增 parseB6Report() Holland兴趣6型+多元智能8维+职业价值观
+- - DanReportParseService: 新增 parseC1Report() 复用A1认知+A2大五+B4自驱力逻辑
+- - DanReportParseService: parseText() 新增 behavior/career/campus 路由
+- - DanReportUpload: 新增 DIM_BEHAVIOR/DIM_CAREER/DIM_CAMPUS 常量 + Service校验
+- - DanReportParseServiceTest: 新增12个测试用例,总计28个全部通过
+- - fix: 添加ActivityProvision实体修复ProductOrderController预置编译错误
+- 
+- ProductService was missing this delegation method. Pre-existing bug
+- uncovered when running mvn compile for v1.1 verification.
+- 
+- to resolve Spring Boot 2.7+ circular reference rejection.
+- The cycle was:
+-   HealthReportService → DimensionScoreService → DimensionScoreServiceImpl → HealthReportService
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 重写 admin-butler-review 用 13800138000 账号 + admin-auth/login-by-password 取 token
+- - 新增 health-knowledge-base / nutritionist-apply 覆盖 HealthKnowledgeBaseController (3 endpoints) 与 NutritionistController (2 endpoints)
+- - 附带 mass-create-users 脚本 + create-role-users.sql + 上一次批量建号结果 create-result.json 用于手动复现
+- 
+-    - pages/parent/plans/index.vue, detail.vue
+-    - pages/guide/plans/index.vue, detail.vue
+-    - pages/guide/training-plans/index.vue, detail.vue
+- 2. pages.json 中移除对应的路由注册
+- 3. 新增 components/RecommendedFeed.vue:
+-    - 将商品和活动混合为交替排列的信息流 (商品/活动/商品/活动...)
+-    - 统一展示:封面图 + 类型标签 + 标题 + 价格 + 状态
+-    - 点击统一跳转到对应详情页
+- 4. parent-index.vue:
+-    - 替换 DimensionActivities + DimensionProducts 为 RecommendedFeed
+-    - 新增 onFeedItemClick 和 goMoreDiscover 方法
+- 5. child-index.vue:
+-    - 替换 DimensionActivities + DimensionProducts 为 RecommendedFeed
+-    - 新增 onFeedItemClick 和 goMoreDiscover 方法
+- 6. member-detail.vue:
+-    - 替换 DimensionActivities + DimensionProducts 为 RecommendedFeed
+-    - 新增 onFeedItemClick 和 goMoreDiscover 方法
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - [场景7] Knowledge base popup query and display
+- - [场景8] Quick nav card navigation to subpages
+- - [场景9] Edit mode toggle and save
+- Covers the new v1.1 report detail features.
+- 
+- 修复程序报错
+- 2. stopSimulation 用 clearTimeout 替代 cancelAnimationFrame
+- 3. simulationTick 改用 setTimeout(33ms) 轮询
+- 4. render() 添加 Canvas 节点未就绪时的重试逻辑(最多5次)
+- 5. renderLegacy() 完整迁移 Canvas 2D API(ctx.strokeStyle/ctx.fillStyle/
+-    ctx.lineWidth/ctx.font/ctx.textAlign/ctx.textBaseline 直接赋值)
+- 6. 新增 hexToRgba 辅助函数
+- 
+-    (微信小程序不支持 ctx.setFont() 等链式调用方法)
+- 2. product-detail.vue: onBuy() 从直接创建订单改为跳转到 checkout 结算页
+- 3. checkout.vue: onSubmit() 添加 addressSnapshot、couponId、discountAmount 参数
+- 
+- - 修复富页面运行时 TypeError: getWealthDetail is not a function
+- 
+- - DanAssessmentController 的 /report/parse-preview 和 /report/confirm 委托给 DanReportUploadService(Phase 4-5)
+- - dan_assessment_results.source_report_id 关联 dan_report_uploads.id
+- - dan_assessment_results.analysisStatus 新增字段(待规划师确认分析)
+- - 迁移95: 历史 dan_assessment_results 数据 ETL 回填到 dan_report_uploads
+- - 迁移93-94: dan_report_uploads 建表 + 扩展字段 source_report_id/analysisStatus
+- - schema.sql 同步新建表定义
+- - 合并远程并行迁移(dan_assessment_executions 等表)
+- 
+- 修复程序报错
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - FamilyTianpanCard: 新增 themeStyle/isChild/handleCompassClick
+- - family-dashboard: 添加隐藏 canvas 用于 PDF 渲染
+- - Profile: 移除富沛能量 UI(Header/Menu/Stats)
+- 
+- 修复程序报错
+- - 后端:Swagger @Tag/@Operation注解、DTO校验消息、entity字段注释、service javadoc
+- - 数据库schema.sql:表注释、列注释
+- - 测试文件:测试数据fixture名称
+- - 会员档位选择(membership/upgrade.vue)→'档位选择'避免与任务模板混淆
+- - 测评类型'bundle'标签:'套餐'→'组合'(与任务模板区分)
+- - 未改动:API URL路径、Java类名、数据库表/列名、CSS类名
+- - 验证:mvn clean compile通过 + npm run build通过
+- 
+- - user-edit.vue: autoParent 模式下默认 parent,嵌入 AddressPicker 四级地址组件
+- - UpdateUserDTO + UserController + UserService: 扩展 address 字段支持
+- - schema.sql: users 表同步 address 列
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - PHYLUM_TABLE_TITLES + _parse_phylum_tables() for phylum-level extraction
+- - DISEASE_BACTERIA_TITLES + _parse_disease_bacteria() for obesity/constipation/depression etc.
+- - main() now takes PDF path as arg, outputs same-name .json file
+- - Fallthrough terminator extended, CSV output covers all new table types
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 小程序: 新增 pages/nutritionist/apply 营养师入驻页面
+- - 小程序: 新增 pages/butler/apply 管家入驻页面
+- - pages.json: 注册 nutritionist/butler 两个子包
+- - api.js: 新增 nutritionistApply/nutritionistStatus/butlerApply 函数
+- 
+- 
+- 
+- 
+-    - 原路径从 components/ 目录向上两级会超出项目根目录
+-    - 正确路径应为 ../utils/api.js (从 components/ 到项目根目录再到 utils/)
+- 2. FamilyTianpanCard.vue: 修复 methods 对象后缺少逗号
+-    - 在 export default 对象中,methods 属性后需要逗号分隔
+-    - 缺少逗号导致 Vue 编译器报 'Unexpected token' 错误
+- 3. body/index.vue: 确保 DimensionProductList 组件正确注册
+- Co-authored-by: openhands <openhands@all-hands.dev>
+- 
+- 
+- 
+- AdminController添加营养师审核3端点(applications/approve/reject),
+- ReviewCenterController增加nutritionistPending统计,
+- DatabaseInitializer迁移91,schema.sql同步
+- 前端: NutritionistAudit.vue组件, ReviewCenter.vue添加营养师Tab,
+- admin.js添加营养师审核API函数
+- 
+- 
+- 正确处理 res.data.records 映射;优化样式布局
+- 
+- - ProductSkuService.create() 在 skuCode 为 null/空时自动生成:
+-   'SKU-{productId}-{timestamp}'
+- 
+- - Service.getChangeRequests: 仅在 systemId != null 时加入 where 条件
+- - 全 Controller 20 处 ((Number) ...).longValue() → Long.valueOf(... .toString()) 防 String/Integer 类型解析异常
+- 
+- - router/index.js: 删除 /package-audit /guide-audit /vendor-review /butler-review /withdraw-audit 5 个路由
+- - 删除对应的 Vue 页面文件:
+-   * views/PackageAudit.vue
+-   * views/GuideAudit.vue
+-   * views/admin/VendorReview.vue
+-   * views/admin/ButlerReview.vue
+-   * views/admin/WithdrawAudit.vue
+-   (功能都集中在 ReviewCenter.vue 的 10 个 tab 里, 各 tab 组件在 admin/review/ 目录下)
+- - ReviewCenter.vue: 新增 created() 读取 ?tab= 参数支持直达特定 tab
+- - Dashboard.vue: 待审核卡片链接从 /guide-audit -> /review-center?tab=guide
+-   从 /package-audit -> /review-center?tab=package
+- 验证: mvn compile 通过, 全项目无老审核路由残留
+- 
+- - 新增所属维度筛选(身/心/智/行/富)
+- - 新增审核状态筛选(待审核/已通过/已拒绝)
+- - 优化搜索框占位符文字
+- 样式优化:
+- - 重构 header 布局为 flexbox,支持响应式换行
+- - 统一搜索框和按钮样式
+- - 增加 header-search 类控制搜索框宽度
+- - 优化操作按钮间距和对齐
+- 其他改进:
+- - 默认分页大小从 10 改为 20
+- - 查询按钮显式触发搜索
+- 
+- - 4 Java 文件: entity/EducationSystem, mapper/EducationSystemMapper, service/EducationSystemService, controller/admin/EducationSystemController
+- - Vue 页面: admin/EducationSystems.vue
+- - admin.js: 5 个 education-systems API 封装
+- 顺手清理相关遗留:
+- - DatabaseInitializer:
+-   * 删除 modifyColumnToText('education_systems', 'description') 迁移 (表没了)
+-   * 删除 runMigration92() (整个迁移不入群, 改为 university+education_system 列在 Guide 未被消费)
+- - entity/Guide.java: 删除 university + eduSystem 字段
+-   * 顺带删除 schema.sql 中 guides 表的 university + education_system 列定义
+- - schema.sql: 删除 CREATE TABLE/INSERT FOR education_systems
+- - Layout.vue: 删除教育体系菜单项 + submenu 项
+- - router/index.js: 删除 education-systems 路由
+- 验证: mvn compile 通过, 全项目无 EducationSystem 残留引用
+- 
+- - PackageTemplates 的 GuidePackageTemplateService 也被 GuidePackageController.getTemplates 复用, 保留 Java 侧
+- - 本提交仅移除 3 个 admin-only 维护菜单:
+-   * cfc-web/src/views/admin/ServiceTypes.vue
+-   * cfc-web/src/views/admin/ServiceContents.vue
+-   * cfc-web/src/views/admin/PackageTemplates.vue
+-   * cfc-web/src/api/adminService.js (无其他调用方)
+-   * Layout.vue 配置中心子菜单条目
+-   * router/index.js 路由项
+- 
+- 错误地判定为密码正确。
+- 修复:
+- - 改用 POST /api/family/user/switch-back-verify 单一原子接口
+- - 后端对错误密码直接返回 Result.error (code != 200)
+- - 正确清除 uni storage 中的 isSwitchedChild / currentChildId
+- - 添加 $store.commit 可选检查,避免 store 未定义崩溃
+- - 添加 setTimeout 在 toast 显示后再 reLaunch,提升体验
+- 参考: cfc-backend/.../FamilyUserController.java:135
+- 
+- - goToAchievements() → /pages/rewards/badge (徽章墙)
+- - goToNetwork() → /pages/promotion/team (推广团队)
+- - goToInsurance() → /pages/wealth-sub/insurance-list (保单管理)
+- - goToCreator() → /pages/promotion/index (创客中心)
+- - goToBadges() → /pages/rewards/badge (成就系统)
+- - goToGrowthReport() → /pages/growth/index (成长报告)
+- - goToCheckin() 修正路径 → /pages/wealth-sub/checkin
+- - 新增 childSubDimClick() 处理孩子版 6 个子维度跳转
+- 后端所有目标页面/Controller 端点已存在:
+- - InsurancePolicyController (CRUD 5 endpoints)
+- - FinanceCheckinController (4 endpoints)
+- - BadgeController (10+ endpoints)
+- - EnergyController.wealth-detail
+- 参考计划: /app/cfc/.omo/plans/wealth-features.md
+- 
+- 与后端 FamilyUserController 路径匹配
+- 
+- - SupplySystemService 添加 getByAdminId() 方法
+- - SupplySystemController 添加 /my-system 端点
+- - AdminProductController.list() 支持 distributionSystemId 过滤
+- - 新增 SupplierProductController 提供供应商商品 CRUD
+- 前端:
+- - 新增 SupplierProductManage.vue 页面
+- - 新增 supplier product API 函数
+- - 添加路由和侧边栏菜单
+- - ProductEdit.vue 增强供应商管理员支持(自动锁定体系选择)
+- 
+- Revert unnecessary large files, keep only radar chart fix
+- Changes:
+- 1. Add _safeScore utility in RadarChart.vue - normalize null/NaN scores to 0
+- 2. Update _startAnimation, _drawScoreArea, _drawVertices, _drawScoreText to use _safeScore processing
+- 3. Add retry initialization for Canvas render in RadarChart.vue - retry up to 5 times within 60ms intervals
+- 4. Modify body/index.vue template - replace inline :dimensions/:scores with computed radarDimensions/radarScores (respecting AGENTS.md non-method-call constraint)
+- 5. Handle null scores in computed radarScores - reject null/NaN to 0, maintaining functional correctness
+- Verification:
+- - LSP diagnostics check completed
+- - Resolver scripts completion
+- Co-authored-by: openhands <openhands@all-hands.dev>
+- 
+- - 基于主导五行智能生成个性化行为建议
+- - 优化布局:区分颜色、对齐与留白
+- - 响应式设计:适应不同屏幕尺寸
+- - 文案结构化:不同五行对应不同宜忌行为模式
+- 
+- - 提供周趋势图、月度日历、历史周报三种视图模式
+- - 实现 Canvas 五行罗盘和运势趋势线图绘制
+- - 集成菜单切换功能
+- - 支持 PDF 周报导出功能占位
+- - 优化 UI 交互:响应式布局、动画过渡、色彩搭配
+- 
+- - 增强 FortuneService 实现基于干支五行的吉位算法
+- - 更新 MindFortuneController 返回完整数据格式
+- - 添加专业五行生克关系判断逻辑
+- - 提供更丰富的运势描述和心情表达
+- - 计算复杂:基于家庭五行+日期干支确定最吉方位
+- 
+- - 添加 getFamilyFortune API 函数到 utils/api.js
+- - 优先使用后端返回的数据,兼容模式使用前端算法
+- - 调整 FamilyTianpanCard 组件的数据绑定逻辑
+- 
+- - 37 张表: 从 DatabaseInitializer.runMigration* 提取 CREATE TABLE 语句
+- - 42 张表: 从 entity @TableField/pojo 字段反向生成 CREATE TABLE
+- - 验证: 无重复表名, mvn clean compile 通过
+- 
+- - cfc-frontend/utils/api.js: 新增6个家庭收益API函数
+- - cfc-frontend/pages/promotion/index.vue: 重设计(家庭数据卡片+成员贡献榜+管理员面板+孩子只读+支付预留)
+- P4: 管理后台家庭收益管理
+- - cfc-backend: 新增 AdminEarningsController (3个管理端点)
+- - cfc-web/src/api/admin.js: 新增家庭收益管理API
+- - cfc-web/src/router/index.js: 新增两个路由
+- - cfc-web/src/views/admin/FamilyEarnings.vue: 家庭收益列表+详情弹窗
+- - cfc-web/src/views/admin/FamilyEarningsWithdraw.vue: 家庭收益流水查看
+- 
+- - Update SupplySystem entity with models field
+- - Sync schema.sql
+- - Fix duplicate familyId field in CommissionRecord.java
+- - Create Agnes AI supplier with agnes-image-2.0-flash + agnes-2.5-flash
+- 
+- - 在 pages/mind/index.vue 嵌入家庭天盘模块
+- - 使用火元素配色 (#FF6B9D) 和 Claymorphism 卡片风格
+- - 添加占位数据逻辑,准备对接后端接口
+- - 微信小程序兼容:无可选链、无 CSS Grid、flexbox 布局
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - AdminGuideController: 3处@Autowired替换为@Resource,移除Autowired import
+- - VendorService: 3个方法补全Result<T>泛型参数
+- - VendorController: 同步补全Result<T>泛型参数
+- 
+- - DatabaseInitializer: 36个空catch块添加log.warn日志
+- - TeacherService: getTeacherInfo抛异常, getAuthorizedChildren返回空列表
+- - 14个controller: 42处@GetMapping/@PutMapping/@DeleteMapping→@PostMapping
+- - ButlerController: 2个stub方法标记@Deprecated+抛UnsupportedOperationException
+- 
+- 注册ButlerController bean起别名,解决多个ButlerController项目启动报错问题
+- - ButlerService: 管家核心业务逻辑
+- - ButlerProfile: 管家档案实体
+- - SubscriptionBenefitLogService: 订阅权益日志
+- - DatabaseInitializer: butler_assignments 表迁移
+- - MemberSubscriptionService: 订阅关联修改
+- 
+- merge: resolve conflicts in cfc-web build files
+- - 新增 supply_hierarchy_change_request 表:记录更换上级申请
+- - SupplyHierarchyService: setHierarchy, addRelation, removeRelation, getParent, getChildren, applyChange, reviewChange
+- - SupplyHierarchyController: 11个API端点 (tree, set, remove, children, parent-chain, change-requests, etc.)
+- - ProductOrderService: 支付成功时自动绑定buyer到其referrer的下级
+- - DatabaseInitializer: 迁移86创建新表
+- - schema.sql: 同步建表语句
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- merge: integrate remote changes + supply hierarchy management
+- - cfc-web: supply-hierarchy management (new), supply-system/Detail update
+- - cfc-frontend: App.vue, invite/join.vue updates
+- - cfc-web: admin.js API, router updates
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 实施计划: 分 P1~P4 四个阶段,每阶段可独立上线
+- - P1: 二维码改造(wxacode + env_version 修复 + scene 解析)
+- - P2: 家庭公共账户(3 张新表 + CommissionService 改造)
+- - P3: 前端重构(推广中心重设计 + 支付集成)
+- - P4: 管理后台(家庭收益管理 + 提现审核)
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- JSON string rather than a number. Added type-safe parsing that
+- handles both Number and String id values across the supplier
+- management endpoints.
+- Co-authored-by: Sisyphus <sisyphus@omo.codes>
+- 
+-   implementation plan for dimension-products, repurchase-reminders,
+-   scheduled task, and frontend fixes
+- - 2026-07-13-dan-assessment-phase2-5.md: pending Phase 2-5 plan
+-   referencing assessment-market-plan.md — quota system, dual-channel
+-   reports, plan generation engine, and review→confirm→execute loop
+- Co-authored-by: Sisyphus <sisyphus@omo.codes>
+- 
+- @PostMapping convention. DimensionProductList.goProduct() fires
+- clickRepurchaseReminder() before navigation for repurchase-type
+- products.
+- Co-authored-by: Sisyphus <sisyphus@omo.codes>
+- 
+- RecommendationService.generateDailyRepurchaseReminders() to scan
+- paid/received orders and generate repurchase reminders based on
+- repurchase_reminder_config rules (category/reminderDays/maxReminders).
+- Co-authored-by: Sisyphus <sisyphus@omo.codes>
+- 
+- - getDimensionProducts() — query product_dimension_mapping by
+-   dimensionCode, join products, filter status=上架/stock>0
+- - getRepurchaseReminders() — query user's unpurchased reminders
+- - markRepurchaseClicked() — update clicked=1 on reminder record
+- - generateDailyRepurchaseReminders() — scan paid/received orders,
+-   apply repurchase_reminder_config rules, insert reminders
+- Injects ProductDimensionMappingMapper, RepurchaseReminderRecordMapper,
+- RepurchaseReminderConfigMapper, ProductOrderMapper.
+- Co-authored-by: Sisyphus <sisyphus@omo.codes>
+- 
+- RecommendationController adds 3 @PostMapping endpoints:
+- - /dimension-products — query products by dimension code, sorted by matchScore
+- - /repurchase-reminders — list user's pending repurchase reminders
+- - /repurchase-reminder/{id}/click — mark reminder as clicked
+- Co-authored-by: Sisyphus <sisyphus@omo.codes>
+- 
+- - cfc-web: 多个管理页面样式和功能优化(ArticleCategory, BaziConfigs, CouponManagement, KnowledgeTag, PackageTemplates, RelationshipTypes, VirtualTeamList, ZodiacConfigs, data-source-config, dimension-config, dimension/index)
+- - 版本号自动更新
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - WuxingConfig.vue: 能量来源比例配置+每日限制概览
+- - 路由注册 /admin/energy-config
+- 
+- - 数据驱动多边形填充(familyWuxing.aggregatePercentages)
+- - 百分比标签 + 数据节点圆点
+- - 中心显示家庭名+最强/最弱元素
+- 
+- - ProductOrderService: SKU价格计算
+- - Form.vue: 标签更新
+- 
+- 
+- - 心理维度子项卡片(仅儿童用户显示)
+- - 11个新data字段 + 13个CSS状态变体
+- - loadWealthDetail读取API新字段
+- 
+- - 新增映射器: AiConversationSummaryMapper, AiUserFactMapper
+- - 新增AiContextService: 7意图路由
+- - AIService: enrichInputsWithMemory, getContext, requestSummaryAsync
+- - AIChatController: getContext()端点 + sendMessage注入记忆
+- - DatabaseInitializer: runMigration81内建表
+- - schema.sql: 同步两张新表定义
+- - WebConfig: /api/ai/context加入JWT白名单
+- - chat.vue: 简化传参(移除reportId/surveyId)
+- 
+- - admin.js: Ppoint API 重命名 (getProductPpointList/saveProductPpoint/deleteProductPpoint/byProduct)
+- - supply-system/Form.vue: searchUsers 改用 API 函数
+- 
+- - products.sku_spec_names: 规格维度名 JSON
+- - products.delivery_methods: 配送方式支持
+- - cart.sku_id: 选中 SKU ID
+- - cart.spec_option_ids: 规格选项 ID 列表 JSON
+- 
+- - CircleService: 添加 @Lazy 注解打破 CircleService ↔ CircleMatchService 循环依赖
+- - cfc-web: 新增 ProductPpointManage 积分管理页面,完善供应商体系表单
+- - cfc-frontend: product-detail 页面更新
+- 
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 身: 健康打卡入口(HealthCheckinCard) + body/index.vue
+- - 智: 阅读时长展示(wisdom/index.vue reading stats)
+- - 心: 天盘相性入门版(已有完整天盘/兼容性模块)
+- - EnergyService: 心子维度(情绪稳定/理解包容/传承传递) + 五行克生算法v2.0
+- - MemberEnergyDTO: 心子维度字段
+- - ProductController: spec/map 规格映射接口
+- Phase2 珍珠图/圈子系统:
+- - 后端: SocialCircle/SocialCircleMember实体+Mapper
+- - 后端: CircleService CRUD + CircleMatchService匹配引擎
+- - 后端: CircleController API + DatabaseInitializer迁移85 + schema.sql
+- - 前端: PearlDiagram.vue 珍珠图横向滚动
+- - 前端: CircleCard.vue 圈子卡片组件
+- - 前端: CircleDetail.vue 圈子详情弹窗
+- - 前端: action/index.vue 集成PearlDiagram + CircleDetail
+- - 前端: api.js 圈子API函数
+- 
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - FamilyContextService: 新增3个Dify inputs (dimensionScores/recentCognitiveResult/purchasedProductTags) + 3私有辅助方法
+- - AIChatController: RecommendationQuery传入userId和familyId用于已购过滤
+- Phase 4 (P1):
+- - AssessmentService已有异步hook: DanAssessmentResult parent_upload 触发认知弱维度商品推荐
+- Phase 5 (P2):
+- - RepurchaseReminderService: @Scheduled 每日09:00扫描30-60天订单创建复购提醒 + getPendingReminders/onReminderClicked/onReminderPurchased
+- - RepurchaseReminderController: GET list + POST click/purchased 3个端点
+- - RepurchaseReminder.vue: 前端待处理复购提醒组件
+- 
+- - wisdom/index.vue: 阅读时长条件从 !== undefined 改为 > 0
+- 
+- - cart: 支持 SKU 选择 (sku_id, spec_option_ids), 字段扩展  (skuId, specDesc, supplierName)
+- - DatabaseInitializer: 迁移84 — cart 表 sku_id, spec_option_ids 列
+- - OrderItemVO: 新增 skuId, specOptionIds
+- - ProductDTO: 新增 effectivePpoint, ppointSource, profitRate
+- - CartService: addToCart 接收 skuId, 回填 supplierName 从 vendorName
+- ### P点管理
+- - PpointService: adminList() 管理端分页列表
+- - AdminProductPpointController: 新增管理端 P点配置控制器
+- ### 商品推荐系统
+- - ProductRecommendationService: 维度匹配引擎 (dimensionScore 排序 + 90天过滤 + 购买历史排除)
+- - ProductRecommendationController: POST /api/recommend/dimension-products
+- - 5维页面 (wisdom/body/mind/action/wealth): DimensionProductList 替换 DimensionProducts
+- ### 健康打卡
+- - HealthCheckinCard.vue: 新增健康打卡卡片组件
+- - body/index.vue: 集成 HealthCheckinCard
+- ### 智慧维度
+- - wisdom/index.vue: 本月阅读卡片 + 阅读统计 API 接入
+- ### 文档
+- - 五维能量设计: 更新 v2.1 富维度子维度算法 + 身克富杠杆文档
+- - 五维五行哲学: 补充富子维度表 + 身克富三态公式
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 迁移80: 创建 product_dimension_mapping 表 + 索引
+- - 迁移81: products 表添加 recommendation_tags/purchase_count_threshold/repurchase_interval_days
+- - 迁移82: 创建 repurchase_reminder_record 表
+- - 迁移83: 创建 repurchase_reminder_config 表
+- - 新增 ProductDimensionMapping/RepurchaseReminderConfig/RepurchaseReminderRecord 实体+Mapper
+- - schema.sql 同步新表DDL
+- - 小程序: DimensionProductList 组件 + api.js 推荐/复购接口
+- - 修复 RecommendationQuery DTO
+- 
+- - 新增 Supplier/ProductSpecGroup/ProductSpecOption/ProductSupplier/OrderItemSku 实体+Mapper+Service+Controller
+- - 新增 ProductRecommendationLog 实体+Mapper(推荐记录打点)
+- - EnergyController: /wealth-detail 富维度详情接口
+- - EnergyService: 身克富杠杆逻辑 + calcParentWealth 传参修复
+- - AssessmentService + HealthAnalysisService: 推荐系统相关逻辑
+- - schema.sql: 同步新表DDL
+- - 小程序: 商品详情页规格选择器; 购物车/结算页展示SKU与供应商; 富维度页重构; 个人主页新增
+- - 管理端: EcomSupplierManage.vue 供应商CRUD页面 + admin.js API + 路由
+- - 前端 api.js: 新增供应商/规格/推荐相关接口
+- 
+- - 新增 2026-07-12-wuxing-ke-full-design.md(五克完整设计)
+- - 新增 2026-07-12-wuxing-homepage-and-conversion-algorithm.md(首页+转化算法)
+- - 新增 2026-07-12-dimension-pages-gap-fix.md(分阶段实施计划)
+- - 更新 2026-06-08-five-dimension-wuxing-philosophy.md(克哲学对齐新理解)
+- 
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - ISSUE-008: 中止退款后订单状态未恢复 — cancelPendingRefund增加ProductOrder状态回滚
+- - ISSUE-009: 订单管理搜索条件增强 — 后端支持keyword+日期范围 + 前端增加日期选择器和搜索按钮
+- - ISSUE-010: Dashboard缺失退款审核计数 — StatsController增加pendingRefundCount + Dashboard新增卡片
+- - ISSUE-011: 退款余额不足提示优化 — approveRefund返回明确提示 + 前端使用后端message
+- 
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 移除 wisdom/mind/body 三个页面中的 import、components 注册、模板使用
+- - 清理 body/index.vue 中的残留注释
+- 
+- - action 统一化:补 @manage="goFamilyMembers" + goFamilyMembers method
+- - action 推荐阅读 -> 独立 ActionArticleRecommend 组件,行绿色调卡片造型
+- - 移除未用导入 getContactList/getHealthAlerts/getMilestones
+- 
+- - daily-fortune.vue: 请求载荷添加 familyId
+- - related-items.vue: 请求载荷从 {} 改为 { familyId, daysAhead: 7 }
+- - relation-detail.vue: 传参从 { familyId, memberId } 改为 { member1Id, member2Id }
+- - TianpanController: 兼容性接口从参数读取 memberType (不再硬编码 child)
+- 
+- - ProductOrder实体: refundStatus注释补充 4=退款到帐中
+- - PendingRefund实体: status注释补充 cancelled(已中止)
+- - AdminCommissionController + PendingRefundService: getAllPendingRefunds 支持 orderType 过滤
+- - OrderManage.vue: 新增 refund_pending 状态(退款到帐中)文案/样式/筛选选项,隐藏退款审核按钮
+- - PendingRefund.vue: loadList 传 orderType 到后端
+- - router/index.js: 注册 pending-refund 路由
+- - Layout.vue: 商城营销菜单加'待退款管理'入口
+- 
+- 避免 selfId 不匹配时 same member 同时出现在 selfMember 和 otherMembers 中
+- 
+- - 新增 TianpanDailyFortuneMapper/TianpanMemberAnnualEnergyMapper
+- - buildDailyFortune: cache-aside 模式,优先读 DB 无则计算写入
+- - buildAnnualEnergy: cache-aside 模式,按 member+year 缓存年度能量
+- - schema.sql 同步两表 DDL
+- 
+- - PendingRefundService新增overloaded createPendingRefund、cancelPendingRefund、移除markFailed最大重试限制
+- - ProductOrderService在approveRefund中拦截NOT_ENOUGH余额不足异常,自动加入待退款队列
+- - RefundScheduledTasks新增processProductRefund按orderType路由提现/商品退款
+- - AdminCommissionController新增POST /refunds/cancel管理员中止接口
+- - schema.sql和DatabaseInitializer迁移78同步order_type/order_no列
+- - cfc-web新增PendingRefund.vue管理页面和admin.js API函数
+- 
+- - TianpanController: REST API端点(/api/tianpan/*)
+- - DTOs: TianpanMemberVO/TianpanDashboardVO/DailyFortuneVO/MemberAnnualEnergyVO/RelatedItemsVO/RelationshipVO
+- - TaskService: 新增getPendingTasksByFamily
+- - AssessmentOrderService: 新增getPendingOrdersByFamily
+- - ZodiacAnnualEnergyService: 新增getWesternSign公开方法
+- - WebConfig: 添加cf-club.iwintrue.com CORS
+- - 前端: 天盘6页面 + store模块 + routes/API配置
+- 
+- - WithdrawalService.audit() 审核通过时余额不足自动创建待退款记录
+- - RefundScheduledTasks 每5分钟执行,FIFO处理待退款队列,指数退避重试
+- - 新增 Admin API: /api/admin/commission/refunds/pending (列表+状态过滤+分页)
+- - 新增 Admin API: /api/admin/commission/refunds/summary (待退款总金额统计)
+- - 修复 TianpanDashboardVO 缺失 import
+- 
+- P0: G7(FamilyAccessInterceptor), G1(五维能量分数持久化), G18(测评对比)
+- P1: G8(视角切换+密码校验), G9(邀请码过期/次数/吊销), G2(results_ready联动)
+-      新增: G10(规划师绑定家庭审批), G13(地址SFMS导入骨架), G14(Dify会话本地镜像)
+- P2: G23(schema_versions迁移表), G25(schema.sql新表补齐),
+-      G3(测评报告结构化 structured_analysis), G26(test-mode启动断言)
+- P3: G4(死字段标记deprecated), G27(sfms只读强制)
+- 新增文件: TeacherFamilyBindingController/Service/Mapper/Entity,
+-           ChatConversation, ChatMessage, ChatMirrorService,
+-           SchemaVersion, PendingRefund服务(提现退款处理)
+- 预留未完成(工作量过大): G15(饮食推荐规则层), G21(PDF多供应商), G22(前端mock)
+- 
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 遗漏了 dimensionCode 参数,导致推荐文章未按维度过滤。
+- 智/行维度页已有正确过滤,对齐处理。
+- 
+- - G7: FamilyAccessInterceptor familyId 入参校验
+- - G1: 五维能量分数持久化 (five_dimension_scores)
+- - G18: 首次vs最新测评对比端点
+- - G8: 视角切换统一 + 密码校验
+- - G9: 邀请码过期/次数/吊销
+- - G2: 测评订单 results_ready 联动
+- - G13: 地址数据库导入骨架
+- 
+- - schema.sql: package_orders建表语句同步添加user_coupon_id列
+- 
+- - 创建缺失的 PpointService (被 CommissionService 引用)
+- - 修复 FamilyAccessInterceptor 两处编译错误
+-   - 添加缺失 @Component import
+-   - HandlerMapping.PATH_VARIABLES_ATTR → 字符串字面量
+- - MemberSubscriptionService 实现 P-point 消费返利
+-   - subscribe/renew 时 L1 推荐人获消费返利 (L1=20%, L2=40%)
+- - DatabaseInitializer 添加迁移69: promotion_tier_config 表 + R0-R4 种子数据
+- New files:
+- - PpointService.java
+- - FamilyAccessInterceptor.java (家庭数据访问安全拦截器)
+- - RequestBodyCachingFilter.java (body 缓存供拦截器使用)
+- - AdminSubscriptionController.java
+- - FiveDimensionScoreService.java + entity/mapper (五维能量持久化)
+- 
+-   将 "颜色:红色;尺码:M" 文本格式转为 {"颜色":"红色","尺码":"M"} JSON
+- - 前端 ProductSkuEditor handleSave 发送前同样做前端规范化
+- - 根因: product_skus.specs 列为 MySQL JSON NOT NULL, 前端输入普通文本被拒绝
+- 
+- - 前端小程序(cfc-frontend)会员页用户可见文本
+- - PPT 生成器脚本及输出(5 个生成器 + 确定性PPT)
+- - Java 后端 Swagger 描述、错误消息、日志、注释
+- - SQL schema COMMENT 和段注释
+- - Web 管理端路由和 API 注释
+- - 所有设计文档/需求文档/Spec 文档
+- - 测试文件描述和官网文稿
+- 保留不变:数据库表名/列名、Java 类名/方法名/变量名等技术标识符
+- 
+- - Update imports in guide/plans/detail.vue and guide/plans/index.vue
+- - Remove AssessmentOrderController and related tests (moved to DanAssessmentController)
+- - Resolve merge conflicts in cfc-web
+- 
+- 
+- debug: 添加原生 button 对比测试点击事件
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Prices visible before/after login. Login only required for booking, placing orders, adding to cart.
+- 
+- - AssessmentProduct实体/Mapper/Service/Controller
+- - 管理端测评商品管理页面 + 规划师端测评商品页
+- - 测评额度配额管理与扣减服务
+- - 商品SKU/促销层级/推荐树实体与迁移
+- Phase 2 - 购买与执行解耦:
+- - 预约-支付-执行分离流程
+- - AssessmentQuotaService额度扣减逻辑
+- - 预约确认/取消/支付回调
+- - 前端预约页+额度页+上传页
+- Phase 3 - 报告双通道+结构化指导:
+- - AssessmentReportController(上传/确认/指导意见)
+- - GrowthGuidanceService结构化指导意见
+- - ReportParseService PDF解析
+- - 家长上传报告+规划师录入结果双通道
+- Phase 4 - 方案生成引擎:
+- - AssessmentPlanRule规则引擎(维度×分数区间匹配)
+- - AssessmentPlanGenerator自动方案生成
+- - AdminPlanRuleController规则CRUD
+- - 迁移63-66: assessment_plan_rule建表 + TaskPlanInstance扩展字段
+- - 管理端方案规则配置页 + 方案管理看板
+- Phase 5 - 方案审核与执行:
+- - PlanReviewController(规划师方案列表/审核/激活)
+- - PlanActivationService激活生成待办任务
+- - 规划师小程序方案审核页+详情页
+- - 修复既存asyncDeepParse编译错误
+- 新增: 会员订阅/积分体系/商城商品管理等基础设施
+- 
+- 
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 新增 Vue.use(Link) 注册 Link 组件
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+-   防御性判空: 增加 !trim().isEmpty() 检查, 避免空字串  传入 Long.valueOf()
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 新增服务器运行状态: 运行时长、CPU 使用率、JVM 内存占用, 数据来自后端 /api/system/health 接口
+- 已在 mounted 中调用 loadServerHealth() 自动加载
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - report-confirm.vue: add tongue indicators card, route confirm to confirmTongue
+- - report-list.vue: add tongue badge display
+- - body/index.vue: redirect tongue entry to report-upload?reportType=tongue
+- - tongue-index.vue: deprecate — redirect to new report flow
+- - api.js: parseReportPreview accepts optional type param
+- 
+- - 新增 ButlerSessionMapper (MyBatis-Plus)
+- - 新增 ButlerSessionService (CRUD/归档/上下文管理)
+- - 新增 ButlerController (/api/ai/butler/sessions/* 6端点)
+- - DatabaseInitializer 迁移42: 创建 butler_sessions 表
+- - schema.sql 同步更新
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 拆分为两个并行实施计划:
+-   Plan 1: 订阅+推广核心(P0+P1, 12-15天)
+-   Plan 2: AI+管家+推荐引擎(P0b+P2+P3, 15-20天)
+- - Plan 2 通过 Stub/Provider 模式与 Plan 1 解耦,可完全并行开发
+- 
+- - Rewrite Dashboard.vue to admin-only (875 lines) with expanded stats
+- - Add getDashboardOverview() API for /api/stats/overview
+- - Add ECharts trend chart (user/family growth) and membership pie chart
+- - Replace system info with enriched health panel (status, version, refresh)
+- - Expand quick actions from 4 to 8 (4x2 gradient icon grid)
+- - Register /teacher-dashboard route, update router guard for teacher redirect
+- - Make sidebar '首页' menu path dynamic based on role
+- - Update AGENTS.md with new dashboard architecture
+- 
+-   audit_reason, summary, advice, overall_assessment, config_value fields
+-   from VARCHAR(255/500/200) to TEXT across ~40 tables
+- - Added idempotent modifyColumnToText() migrations in DatabaseInitializer
+-   (~55 ALTER TABLE MODIFY COLUMN calls) for production database sync
+- - Primary fix: activities.description was the original crash site but
+-   many other columns had the same truncation risk
+- 
+- so the card displays for families with only 1 member. the canvas
+- drawing already guards against drawing lines when < 2 members.
+- 
+- admin order management can find refunding orders (was filtering by
+- order.status='refunding' but after-sales was stored in separate table).
+- ProductOrderService.approveRefund/rejectRefund now syncs back to
+- AfterSalesRequest.status so mini-program after-sales list stays in sync.
+- ProductOrderDTO.from() now carries refund/logistics fields that were
+- previously omitted, so admin refund dialog shows refund reason.
+- 
+- - ActivityControllerTest.java: add missing 'role' parameter to create/update/publish/end calls
+- Ultraworked with Sisyphus (https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - HealthReportAudit.vue: new draft audit page with detail dialog (indicators/gut flora/disease risk tabs)
+- - Router + sidebar: register /health-report-audit route and menu entry
+- Ultraworked with Sisyphus (https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - HealthReportController: add POST /api/health/report/admin-list endpoint
+- - HealthReportService: add listAllReportsForAdmin() with childName resolution
+- - UpdateUserDTO: fix stale git conflict markers
+- Ultraworked with Sisyphus (https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- sync: merge E2E test stash from cfclub branch (AGENTS.md, package-lock, test report)
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 添加 → 导航到 /pages/family/add-member
+- - 邀请 → 打开邀请弹窗
+- - family-header 在无 familyName 时显示 '我的家庭' 占位
+- - 筛选后无结果时仍显示 '暂无家长/暂无孩子' 提示
+- 
+- 
+- - Unify formatTime to t.replace('T',' ').substring(0,19) pattern
+- - Replace new Date().toLocaleString() with consistent T-replace in
+-   OrderManage/WithdrawAudit/EmotionAlertManage/ProductManage
+- 
+- - Uses table-scroll-wrap CSS classes (overflow:auto + max-height)
+- - Inline overflow:auto;max-height style on pages without class wrapper
+- 
+- - Import admin-tokens.css globally in main.js
+- - Refactor ~33 admin pages to use standard classes:
+-   - admin-page-header / admin-page-title / admin-page-actions for card headers
+-   - table-scroll-wrap(-sm/-lg) for table containers
+-   - pagination-wrap for pagination
+-   - filter-bar for search/filter bars
+-   - Remove inline width/height/float styles
+- - Update ActivityEdit, ProductEdit with proper header layout
+- - Fix ActivityReview, Assessment (syntax error fix)
+- - Remove duplicate scoped CSS for filter-bar, header patterns
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - Fix prop name from :config to :defaultConfig (wangEditor Vue2 API)
+- - Add toolbarConfig for Toolbar component initialization
+- - Add missing @wangeditor/editor CSS import to ArticleEdit and ActivityEdit
+- - Add editor CSS styles (rich-editor border, toolbar wrap, text-container min-height)
+- 
+- - All 58 Vue pages with fixed="right" columns now have horizontal scroll container
+- - Pattern: div wrapper with overflow:auto;max-height:calc(100vh - 300px)
+- 
+- - Layout.vue 全局滚动修复(overflow-y:auto 覆盖所有 admin-page 编辑页)
+- - 搜索框"全部"选项改为语义标签(11 页面:「全部状态」「全部分类」等)
+- - 状态变更操作增加  确认 + 自动 loadList() 刷新
+- - 活动列表 flex 布局 + 滚动 CSS 修复
+- 
+- - Shows gray dashed avg line behind user's indigo filled polygon
+- - 6 dims: perception/focus/memory/logic/spatial/processing speed
+- 
+- - New _drawAvgScoreArea() method renders average as background layer
+- - Body page passes mock avg scores alongside user dimension scores
+- - Avg scores: [72,68,75,70,73,69,71] for 7 dimensions
+- - Without user data, only avg line shows; with data, both lines visible
+- 
+- - Add console logs for tracking dimension data loading flow
+- - Helps diagnose radar chart not rendering when no child selected or API fails
+- 
+- - Bump package.json version 1.0.11 → 1.0.17
+- - Update .last_build_commit to latest build
+- - web/index.html: update Clarity tracking ID, remove duplicate inline script
+- 
+- - Add null guards in loadTeacherData() for all response properties after Promise.all catch
+- - Handle missing taskCompletionRate gracefully with parseFloat fallback
+- - Replace simplified Markdown parser with block-level parser supporting code blocks, lists, headings, bold/italic/code/links
+- - Fix closing brace formatting that caused build failure
+- 
+- when API returns malformed responses (e.g. non-array family/team lists,
+- missing order records).
+- 
+- flex-wrap-based responsive layout for td-quick-actions and td-today-stats.
+- 
+-   admin pages (Activities, ArticleManage, OrderManage, PointsLog, ProductManage,
+-   VendorReview, WithdrawAudit) and teacher pages (FamilyList, TeacherAssessment)
+- - Add overflow-y:auto to Layout sidebar and admin-page container
+- - Bump version to 1.0.11
+- 
+- null. The method previously passed null to task.setCreatorId(), causing a
+- DataIntegrityViolationException on INSERT. Added null guard before task creation.
+- 
+- happiness model, membership/distribution, module status assessment,
+- P0/P1/P2 roadmap, tech debt, data model overview, architecture, risks.
+- 
+- - 管理员创建三类服务商(测评/解读/规划)
+- - 家长购买测评 → AI 解读 → 人工处理 → 成长规划
+- - 验证需求完整性(80%)和合理性(92%)
+- - 识别 3 个 P0 问题:服务商类型扩展、人工解读功能、成长规划功能
+- - 提供实施建议和代码示例
+- 
+- - cfc-frontend: pages.json/ai.chat/mind.articles/user-edit/wealth 页面优化
+- - cfc-web: 新增 MembershipCenter.vue(295行)/PointsLog.vue(202行),全面更新各管理模块
+- - 67 files changed, 1946 insertions(+), 434 deletions(-)
+- 
+- - ProductOrderController/Service: support mixed payment (points + cash)
+- - PointsService: integrate points deduction for orders
+- - shop pages: refactor detail, index, order-list, order-detail
+- - DatabaseInitializer: resolve merge conflict (keep both migrations 38-40)
+- 
+- Closes ISSUE-007
+- 
+- - 添加supplier_admin角色到UserService.isValidRole()
+- - 添加supplier_admin到AdminAuthController登录角色检测
+- - 添加supplier_admin到数据库users.role ENUM
+- - 创建SupplyManageController供应商管理控制器(CRUD+角色管理+层级调整)
+- 前端:
+- - 添加supplier_admin到permissions.js权限映射
+- - 添加供应商管理菜单到Layout.vue
+- - 添加供应商管理路由到router/index.js
+- - 创建supply-manage/List.vue, Form.vue, Detail.vue
+- - 添加supply-manage API函数到admin.js
+- 
+- 
+- Merge remote changes and resolve conflicts
+- 删除 'RTK.md'
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+-   - 只保留 subPackages 中正确注册的 pages/shop/index/index.vue
+- FRONTEND-02: 缩短过渡页显示时间 5s→2s
+-   - action/wisdom/mind/body/index + profile + index 页面
+- FRONTEND-03: 智页推荐阅读'更多'导航修复
+-   - wisdom/index.vue goMoreArticles() 修正为目标路由
+- FRONTEND-04: 行页面推荐阅读缺失 (relatedDimensions JSON 解析)
+-   - 新增 parseRelatedDimensions() 方法处理 JSON 数组字符串/逗号分隔/数组
+-   - 修复 action/wisdom/mind 三页面 loadFeaturedArticles
+- FRONTEND-05: 行页面移除孩子管理快捷操作组件
+-   - 删除 UserQuickEntry 组件及其 import 和注册
+- 
+- - Replace allowedOriginPatterns("*") with explicit origins (CORS spec: "*" + allowCredentials invalid)
+- - Allowed: https://cfc.etotem.com.cn, http://cfc.etotem.com.cn, localhost/127.0.0.1 dev origins
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - Use API module (getDashboardStats/getRevenueStats/getMembershipStats/getTrendStats)
+- - Element UI icons replacing emojis
+- - Section-level v-loading states
+- - ECharts lifecycle (dispose on destroy, resize handler)
+- - Recent tasks table from dashboard API
+- - Hover effects and responsive layout
+- 
+- - ~50 admin/9 teacher 页面统一添加 admin-page 样式类
+- - 所有列表/管理页添加 <=el-input> 关键字搜索
+- - 有分页的: keyword 传 API 参数
+- - 无分页的: computed filteredData 客户端过滤
+- - teacher 页面同时补齐 admin-page 类与面包屑样式
+- 
+- - DatabaseInitializer migration 34: ensureColumn for all missing columns
+-   - family_member_* (5): id, name, birthday, gender, age
+-   - EMI psych (4): emotion, resilience, stress_coping, self_awareness
+-   - Big Five (6): openness, conscientiousness, extraversion, agreeableness, neuroticism, big_five_overall
+-   - child snapshot (20): name, birthday, gender, age, school, grade, grade_class, height, weight,
+-     family_status, parent_degree, nation, province, city, district, address, single_child,
+-     school_score, urgent_name, urgent_phone
+-   - media (4): pics, videos, audio, audio_url
+-   - extension (2): process_desc, result_desc
+- 
+-   (修复Field doesn't have a default value错误)
+- - schema.sql同步: capability_role列+default_role列并存(兼容保留)
+- 
+-   supply_settlement_detail 4张表 + product_orders追加supply_system_id/
+-   supplier_id/supply_commission 3列+索引
+- - schema.sql: product_orders补列 + 追加4张新表定义
+- - supply_system_schema.sql: supplier_user_id→supplier_id(匹配实体) + 补充supply_commission
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+-   EnergyService.calculateBodyScore Unknown column 'subject_id' 错误)
+- - 迁移32: 创建supply_system/supply_system_member/supply_settlement/
+-   supply_settlement_detail 4张表 + product_orders追加supply_system_id/
+-   supplier_id/supply_commission 3列+索引 (修复OrderTimeoutCancelTask
+-   Unknown column 'supply_system_id' 错误)
+- 
+- - ProductDTO.java: add deliveryMethod, rejectReason fields + from() mapping
+- - DatabaseInitializer: migration 32 - ensureColumn for delivery_method, category_id, distribution_system_id
+- - schema.sql: add 3 columns to products table DDL
+- 
+- - report-confirm.vue: add colored confidence badge + progress bar
+- - report-confirm.vue: add ranked candidate member list with similarity scores
+- - report-confirm.vue: add auto-create member form with pre-filled extracted data
+- 
+- 替代: import E from '@wangeditor/editor' + new E(domRef)
+- 移除: initEditor()方法、beforeDestroy editor.destroy()、editor: null data
+- 新增: editorConfig (MENU_CONF.uploadImage) 传入Editor组件
+- 
+- - Add Jupiter 12yr and Saturn 29.5yr cycle phase calculation
+- - Blend 60% Western + 40% Chinese zodiac with Tai Sui relation modifiers
+- - Update controller to accept birthMonth/birthDay, return full fusion result
+- 
+- - 6步标准流程:错误定位→查实体→检查schema.sql→加迁移→同步schema.sql→编译验证
+- - ensureColumn() 辅助方法优先使用
+- - 幂等性要求:所有迁移必须可重复执行
+- - 同步原则:schema.sql 与 DatabaseInitializer 保持最终一致
+- - 4种场景代码模板:ADD COLUMN / CREATE TABLE / ADD INDEX / MODIFY COLUMN
+- 
+- activity.js: 新增 getAdminList/updateStatus/batchUpdateStatus API
+- ArticleManage.vue: 新增状态筛选/审批操作列/排序拖拽/发布状态切换
+- ArticleEdit.vue: 优化表单校验/状态联动/发布时间记录
+- Activities.vue: 重构列表页 - 新增状态标签/审批弹窗/批量操作
+- ActivityEdit.vue: 优化表单 - 新增状态流转控制/发布时间
+- 
+- AdminArticleController: 新增文章管理分页/审核/排序端点
+- Activity: 新增 status/approvalStatus/remark/publishedAt 字段
+- ActivityAdminService: 新增分页查询 + 状态流转(待审核→发布/驳回/下架)
+- AdminActivityController: 新增活动管理完整CRUD + 状态审核端点
+- schema.sql: 新增 ACTIVITY_WAITING_APPROVAL 状态到状态约束
+- 
+- 1. 拖动某维度时其他维度同向变化
+- 2. 各维度独立0-100, 总和未保持100%
+- 修复: onWeightChange(changedCode) 将 100-newValue 按比例分配到
+- 其他维度, 确保总和恒为100%。移除 getMaxForDim / getRemaining。
+- 
+- - scripts/generate-changelog.js: 从 git log 分类生成变更日志
+- - vue.config.js: 注入 VUE_APP_VERSION / VUE_APP_BUILD_TIME
+- - Dashboard.vue: 版本显示动态化 + 变更日志弹窗
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - Fix playwright.config.js baseURL and viewport for desktop admin
+- - Add dev:h5/build:h5 scripts to cfc-frontend package.json
+- - Fix config.js truncated API URLs
+- - Add ensureLoggedIn() helper with auto-login flow for admin tests
+- 
+- - 删除 Layout.vue 侧边栏'工作台'菜单项
+- - 删除 TeacherDashboard.vue(内容已完整集成在 Dashboard.vue)
+- - fix: StatsController.java teacher_status 查询字段修复
+- 
+- - 若存在 default_role 但无 capability_role,CHANGE COLUMN 重命名并保留数据
+- - 若两者均不存在,ADD COLUMN capability_role 默认值 parent
+- - 若 capability_role 已存在,跳过
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+-   完全覆盖 JAR 内置值;config/ 目录存在时自动加载外部配置
+- - config/application.yml: 新增外部配置模板(数据库/JWT/微信/Dify)
+- - application.yml: 数据库凭据改为 CHANGE_ME_* 占位符,避免内置生产密码
+- 
+- - ArticleAdminControllerTest.java: getAdminList mock 补齐参数,update 改用 Map 参数+Result<String>
+- - AdminArticleControllerTest.java: getAdminList mock 补齐参数,update 改用 Map 参数+Result<String>
+- - application.yml: datasource 切到本地 MariaDB (root/cfc123)
+- 
+- - PaymentOrder.java: 删除重复的 period 字段
+- - MembershipLevelDTO.java: 删除重复 priceQuarterly,补回缺失的 priceYearly
+- - MigrationController.java: 添加缺失的 java.util.Date import
+- - MembershipController.java: createOrder 调用补第6个参数
+- 
+-   add VUE_APP_SKIP_CAPTCHA=true for admin build, use git pull --rebase instead of
+-   fast-forward merge to handle diverging branches
+- - update activity API and router for admin
+- - cleanup Activities.vue and ArticleManage.vue
+- 
+- but the component file was not included. Create it with dimension grid
+- display, score bars, and navigation to detail pages.
+- 
+- - Article 实体新增 publishTime, viewCount, likeCount, shareCount 字段
+- - AdminArticleController 重构: 文章 CRUD + 状态机(草稿→待审→已发布/下线)
+- - ArticleService 新增: findByStatusPage, approve/publishArticle, updateViewCount
+- - CommissionController 新增 getTodayCommission
+- - MembershipController 新增按成长值排序接口
+- - MigrationController 新增 getTables, truncateTable 工具方法
+- - DatabaseInitializer 新增 schema_version 表, 版本化迁移, 9个复合索引
+- 小程序前端:
+- - articles.vue 新列表页(160行+), article-detail.vue 文章详情(255行+)
+- - shop/index 店铺首页(+24行), shop/detail 商品详情(+108行), shop/cart 购物车(+13行)
+- - 新增 shop/after-sales/ 售后申请页面, shop/after-sales-detail/ 售后详情页面
+- - promotion/index 推广页面(+167行), discover 页面调整(-10行改动)
+- - 修复 mind-index, body-index, wisdom-index 各页面 member-index 视角切换
+- 管理端:
+- - ArticleManage.vue 文章管理(69行+): 列表/搜索/状态筛选/上下架操作
+- - ArticleEdit.vue 文章编辑(48行+): 富文本编辑, 分类标签选择
+- - KnowledgeTag.vue Knowledge标签管理(134行+): 标签 CRUD
+- - Layout.vue 导航栏调整(-11行)
+- - router/index.js 新增 article/knowledge 路由
+- cfc-web: Element UI tree-shaking 优化配置
+- 
+- - 背景替换为暖棕渐变 (#1A0F00 → #4A3020)
+- - 五行沙盘 SVG → CSS 公转五维能量轮盘
+- - 中心家金色徽章 + 脉冲动画
+- - 五维色系节点: 身橙/智紫/富金/行绿/心粉
+- - role-tags 颜色更新: 家庭客户(紫)/服务商(粉)/平台运营(绿)
+- - 右侧表单区保持不变
+- cfc-frontend body/index.vue:
+- - RadarChart → HealthDimensionsSection 组件替换
+- 
+- - FamilyRelationGraph: add 暂无其他家庭成员 for 1-member case
+- - action/index.vue: remove outer v-if on FamilyRelationGraph so its
+-   own empty state renders when no members
+- 
+- - Show 暂无商品 / 登录后查看更多商品 when empty
+- - Matches DimensionActivities empty state pattern
+- 
+-   Spring @Resource name collision with ActivityService.activityMapper
+- - Rename GuideActivityController.activityService → guideActivityService for consistency
+- - Fix MessageBox prototype registration in cfc-web
+- - Add echarts dependency to cfc-web
+- 
+- - 均在 pages/health/ 分包下注册
+- - funcList 6个按钮全部绑定正确页面路径
+- - 修复舌诊路径缺失前缀问题
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- called immediately after in onShow, before activeChildId was set.
+- Result: activeChildId was still null → loadCognitiveReport returned
+- early → cognitiveReport stayed null → radar chart v-if never rendered.
+- after activeChildId is confirmed set (from storage or default to first child).
+- 
+- 
+- cleanup: remove inline AI entry card from parent-index (replaced by floating avatar)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - Add product_skus table creation to DatabaseInitializer (was manual-only)
+- 
+- - 新增 GuideActivity 实体 + guide_activities 表
+- - 新增 GuideActivityMapper / GuideActivityService
+- - 新增 GuideActivityController (7个端点: list/detail/create/update/publish/cancel/delete)
+- 前端:
+- - api.js 新增 7 个活动管理 API (getActivityList/detail/create/update/publish/cancel/delete)
+- - pages/guide/activities/index.vue — 活动列表 (筛选/新建/发布/取消/删除)
+- - pages/guide/activities/detail.vue — 活动详情页 (create模式+edit模式, 日期选择器, 分类选择)
+- - pages.json 注册 2 个新页面
+- 关键设计: 使用页面跳转 (navigateTo), 无 modal 弹窗, 符合 training-plans 模式
+- 
+- cfc-web: article read-only mode for published articles
+- - Edit: draft + never-published only
+- - View: published or ever-published (readonly)
+- - Copy: all states
+- ArticleEdit.vue:
+- - ?readonly=1 → read-only detail mode
+- - Published/ever-published → auto readonly
+- - handleCopyAsNew() for in-place copy
+- 
+- - Fix body, mind, wisdom goMoreActivities to use ?type=activity
+- - Fix wisdom goMoreProducts to use ?type=product
+- 
+- - Previously various targets: discover/index, discover/index?type=activity&dimension=*, or empty stubs
+- - Applies to: parent-index, child-index, body/*, mind/*, wisdom/*, action/* pages
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- merge
+- - 用于心愿兑换时的积分原子性检查和扣除
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- ArticleAdminControllerTest: create()参数改为Map<String,Object>
+- FamilyMembersControllerTest: setMemberId改为setId
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- FamilyMemberManagementFlowTest: setRelationshipType/setNickname/setEnabled(Integer)/setRecordTitle
+- GrowthRecordSyncFlowTest: @Builder注解/parseReport/recordTitle/移除不存在的controller方法
+- ProductPurchaseFlowTest: setTotalAmount改为Integer/create返回Result包装
+- PlannerBindInviteFlowTest: setServicePrice(Integer)/unbindGuide变量名/setUserId移除/createGuideFamily签名
+- AssessmentOrderFlowTest: 移除不存在的getLatestResult方法
+- DailyCheckinStreakFlowTest: 移除checkAndGrantReward测试/updateCheckin改为Map参数/deleteCheckin(Long,Long)/setCheckinDate(Date)
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - AssessmentAppointmentService: 重构预约服务,删除冗余代码
+- - CreateWishDTO: 新增imageUrl/linkUrl/estimatedPrice字段支持商品型心愿
+- - PaymentService: 新增支付方法扩展
+- - PaymentServiceInterface: 接口同步更新
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - GrowthRecordService: 新增getRecordsByChild(Long childId)方法
+- - GrowthRecordServiceInterface: 接口同步更新
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - DailyCheckinService.deleteCheckin(): (Long) → (Long, Long)
+- - DailyCheckinController: update(Map)/delete(Map)适配新的service签名
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - EnergyService: 新增grantEnergy()(Long,Long,Long,String)和deductForWish(Long,Long,Long)方法
+- - 添加WishMapper依赖用于心愿兑换能量扣除
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - NEW-02: ProductSkuController.listByProduct() 添加productId空值校验防止NPE
+- - NEW-03: ActivityController.publish() 包装try-catch,返回Result.error()而非500
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- config: SfmsDataSourceConfig multi-datasource settings
+- 
+-   - 新增活动报名/能量规则/商品SKU/订单生命周期/会员体系等新功能
+-   - 新增6个完整E2E跨角色业务流程场景
+-   - 从80个API用例扩展至120个需求驱动用户故事
+- - issue-tracking/README.md: 补充ISSUE-004/005/006根因分析
+-   - 确认全部为测试数据缺失+测试脚本问题,非代码缺陷
+-   - 核心根因: children表为空,31个测试家庭无孩子记录
+- 
+- - FinanceCheckinController create: 补充 checkinType 必填校验
+- - EnergyController overview: @RequestBody 改为 required=false + null 校验
+- 
+- 已清理: unpackage/dist所有缓存,强制重新编译
+- 
+- - T1: 会员试用机制 (TrialMembership + ScheduledTask)
+- - T2: 推广数据看板 (CommissionService + StatsController)
+- - T3: 组合套餐/订阅制 (MembershipLevel + PaymentOrder + 折扣体系)
+- - T4: 管理端数据大屏 (Dashboard + ECharts)
+- - T5: 内容裂变 (ShareEvent + ShareRead + 积分奖励)
+- - T6: 推广素材中心 (PromotionMaterial CRUD + 素材库页面)
+- - T7: 积分商城 (PointsExchange + 兑换记录 + mall页面)
+- - T8: 社交关系链 (ContactMatchRequest + 1对1匹配)
+- - T9: 用户分层运营 (UserRfmTag + UserTriggerRule + RFM计算)
+- 数据库迁移: DatabaseInitializer 新增 T5-T9 所有表
+- 前端: 新增 promotion/material.vue, points/mall.vue, membership/upgrade.vue, admin/Dashboard.vue
+- 
+- AdminController → ProductOrderService → PaymentService 循环
+- 
+- - func-list 拆分为 funcListRow1(前4个) 和 funcListRow2(后4个)
+- - 每行4个按钮均分宽度,图标文字更易读
+- 
+- - admin.js: add getEmotionAlertList and resolveEmotionAlert API endpoints
+- - router/index.js: add /emotion-alert route
+- - Layout.vue: add sidebar menu item for emotion alert management
+- 
+- - Auto-create FollowUp with 7-day due date and high priority on alert resolution
+- - Query familyId from Child table for follow_up association
+- 
+- - MentalHealthScreenService.submitScreen: push crisis alert for severe screening results or suicide ideation
+- 
+- - EmotionAlertController: fix NPE in condition checks, add admin role auth check, add /api/mind/admin/alert/list and /api/mind/admin/alert/resolve endpoints
+- - WechatService: add sendTemplateMessage() for alert push via WeChat template messages
+- - application.yml: add alert-template-id config
+- Implementation checklist complete:
+-   ✓ DatabaseInitializer.java: version gate + DDL
+-   ✓ EmotionAlertController.java: NPE fix + auth + admin endpoints
+-   ✓ WechatService.java: sendTemplateMessage()
+-   ✓ application.yml: alert-template-id
+- 
+- - 后端: 每日健康打卡、饮食/运动/睡眠/饮水记录实体
+- - cfc-web: DimensionWeightPicker 五维权重组件, 集成到活动/文章编辑
+- - cfc-web: 成长任务管理重构, 活动报名审核, 能量规则管理
+- - cfc-frontend: 身体页面 — 运动/睡眠/饮水/饮食记录, 成长曲线, 健康趋势
+- 
+- - TrialMembership: 入门会员体验实体与Mapper
+- - 前端页面调整(splash引导页改版)
+- 
+- - 调整支付回调路由至商城订单处理
+- - 新增订单发货(ship)/确认收货(confirmReceive)/取消(cancel)
+- - 新增配送方式(快递/自提)支持
+- - 新增ProductSku实体/CRUD/SKU选择器
+- - 新增UserAddress实体/CRUD
+- - 新增OrderItem实体/CRUD
+- - 新增退款申请/审批/拒绝流程
+- - 新增超时取消自动任务
+- - 新增库存乐观锁防超卖
+- - 前端:detail SKU选择器 / checkout skuId传参 / order-list退款操作
+- - 前端:goShop/goDetail导航修复(address已使用CFC API)
+- - SQL: 添加product_skus/user_addresses/order_items扩展表
+- 包含关联更新: Activity/Energy模块扩展, 会员试用TrialMembership实体
+- 
+- - 新增 cognitive-recommendations.yml(3-tier × 6维离线任务/游戏/文章推荐)
+- - 新增 CognitiveTrainingConfigService + CognitiveRecommendationDTO
+- - POST /api/cognitive/recommendations — 获取行动清单
+- - POST /api/cognitive/recommendations/create-task — 一键添加任务
+- - cognitive-report.vue 新增「家庭行动建议」区块
+- Phase B1 — 常模参考线
+- - 新增 CognitiveNorm 实体 + cognitive_norms 表 + 种子数据(6维×4年龄带)
+- - 新增 CognitiveNormMapper / CognitiveNormService
+- - POST /api/cognitive/norms — 返回百分位等级(较弱/偏弱/中等/良好/优秀)
+- - 条形图显示同龄中位参考线 + 等级标签
+- Phase B2 — 历史趋势
+- - 新增 CognitiveTrendItemDTO
+- - POST /api/cognitive/trend — 历史六维分数序列
+- - cognitive-report.vue 新增「历史趋势」区块(前后对比表)
+- Phase C — 训练方案系统(规划师端)
+- - 新增 TrainingPlan / TrainingPlanItem / TrainingPlanTask 实体 + schema
+- - 新增 TrainingPlanMapper / TrainingPlanService
+-   — CRUD / generateFromRecommendations / deployPlan / getExecutionBoard
+- - 新增 TrainingPlanController(guide端9个端点)
+- - 前端: guide/training-plans/index.vue(列表/生成/下发/删除)
+- - 前端: guide/training-plans/detail.vue(编辑/看板模式)
+- - api.js 新增训练方案相关API(10个方法)
+- 
+- parallel via CompletableFuture (ThreadPoolExecutor). Frontend: Dashboard.vue
+- loads all data in one request instead of Promise.all(7).
+- 
+- 
+- 
+- - Add schema_version table for idempotent migrations (version >= 1 skips)
+- - Subsequent app starts: ~8s faster (no ALTER TABLE spam)
+- 
+-   N queries (one per category) — eliminates N×categories DB roundtrips
+- - calcParentBody: batch-fetch health reports for all children via
+-   HealthReportMapper.selectOne with IN(userIds) instead of loop
+- 
+- - Removed duplicate jdbc-url/credentials from hikari block (was overriding spring.datasource)
+- - Fixed TrainingPlanService: RecommendationItem -> DimensionRecommendation
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 
+- - 主包从 54 页减少至 21 页,符合微信 2MB 限制
+- - 更新 pages.json 配置匹配新的目录结构
+- - 更新 splash 页面使用项目 logo
+- - 修复 report-survey.vue 语法错误
+- 
+- - 新增 TongueRecord/IndicatorDefinition/IndicatorValue 实体 + Mapper
+- - 新增 IndicatorService + TongueDiagnosisService(两阶段舌诊流程)
+- - 扩展 AIService:sendTongueDiagnosis + mockTongueResult(开发模式)
+- - HealthReportController 增加 type=tongue 分支(parse/confirm/discard)
+- - 新增 IndicatorAdminController(指标管理 CRUD)
+- - 前端:tongue-index.vue 全流程页 + body/index.vue 雷达图 + func-grid 改舌诊
+- - 前端 API:4个新接口(parseTonguePreview/confirmTongue/discardTongue/getIndicatorDefinitions)
+- - cfc-web:indicators/index.vue 指标管理页 + 路由注册
+- 
+- - DistributionService: add getUserTeams, getTeamTree, getUserPosition,
+-   getTeamMembers, updateMemberTeam methods
+- - AdminVirtualTeamController: 9 endpoints for virtual team CRUD + member mgmt
+- - cfc-web admin: VirtualTeamList.vue + VirtualTeamDetail.vue pages
+- - Router + sidebar: virtual team menu items under system config
+- 
+- pages.json: 重构小程序页面路由结构
+- Admin/Product/VendorController: @RequestHeader(X-User-Id)统一为@RequestAttribute(userId)
+- schema.sql: articles表增加article_type和word_count字段
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 
+- - 重排页面区块顺序:RadarChart → 关系图谱 → 快捷入口 → 功能入口
+- - 移除WisdomTips组件引用及五个废弃区块(cognition-summary, highlight-card, tips-list, quick-actions, bottom-spacer)
+- - 创建DimensionArticles共享组件,遵循DimensionTasks/DimensionActivities/DimensionProducts模式
+- - 智页面推荐阅读区域改用DimensionArticles组件,去除模板重复
+- 
+- - permissions: nutritionist增加diet:*权限, 组级权限匹配(无冒号prefix)
+- - router: rewards perm改family:rewards, 新增wishes路由, 审核菜单perm细分(audit:package/guide/vendor)
+- 
+- - RelationshipQualityController: 注入UserMapper,getHealthAlerts/getMilestones
+-   从JWT token推导familyId,不再强求请求体传familyId
+- 
+- - 后端: DatabaseInitializer新增interaction_logs/relationship问卷表
+- - 后端: FamilyMember实体新增关系质量相关字段
+- - 前端: interaction-log.vue + relationship-questionnaire.vue页面
+- - 前端: family-members.vue关系编辑增强
+- - 前端: wisdom_temp/下5个临时页面
+- - 前端: pages.json注册新页面路由
+- 
+- - api.js: 移除danshopRequest/goodsCategory,所有danshop*函数改用request()
+- - coupons.vue: 添加statusClassMap computed替代方法调用
+- - upgrade.vue: 修复template单根元素+重新缩进
+- 
+- - 快捷操作区添加'返回首页'按钮及 goHome() 方法
+- - 添加 jest/playwright 测试配置
+- 
+- - 修复 membership/upgrade.vue 模板多根节点错误(wrapper 包裹)
+- 
+- - 表格新增列: 封面图/活动类型/地点/费用(元)/人数
+- - 复用 /api/admin/articles/upload/image 上传接口
+- - 价格前端用元展示,后端存分
+- - 后端 ActivityService 无需修改(已支持所有字段)
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - Removed standalone #pillars section
+- - Removed nav link for #pillars (now accessible via 浠艾福)
+- 
+- - Renamed: 幸福三支柱 → 幸福支柱
+- - Renamed: 四大核心能力·数据到行动的闭环 → 核心能力
+- - Renamed: 五行相生相克 · 五维动态平衡 → 能量维度 (subtitle: 五大能量维度 · 动态平衡)
+- - Updated nav with new names and order
+- 
+- but the IntersectionObserver in main.js did not include .pillar-card in
+- its querySelectorAll list. The cards were never observed and never got
+- the .visible class, making them permanently invisible.
+- 
+- Three pillar cards with mapping to five dimensions:
+- - 衣食无忧 → 身 + 富 (保命保财, 家庭物理底盘)
+- - 受人尊敬 → 智 + 行 (内外兼修, 社会价值彰显)
+- - 子女传承 → 心 + 智 (爱与智慧, 传承有质量)
+- CSS: responsive pillar card layout with hover effects, dimension badge colors matching the five-dimension scheme, mobile breakpoints at 768px and 480px.
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 衣食无忧 → 身(根基)+ 富(源泉)
+- - 受人尊敬 → 智(内核)+ 行(外显)
+- - 子女传承 → 心(纽带)+ 智(质量)
+- 新增映射逻辑解读行,清晰说明每个目标如何落地到五维行动体系。
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 身强体健(身 · 主动健康):健康是一切幸福的根基
+- - 关系和谐(行 · 人际和谐):家庭幸福源于人际和谐
+- 原有三支柱(衣食无忧/子女传承/受人尊敬)保持不变。
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - dimension-config.vue: health norm config table with el-dialog edit
+- - data-source-config.vue: health data source CRUD table
+- - 3 unit test files (DimensionScoreService, ProductOrderService, DifySyncService)
+- - router: add /health-norm-config and /health-data-source routes
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- growth_plans/growth_records/task_templates等表,以及后端DTO/Entity/Service/Controller、
+- 前端页面和文档中的对应引用。
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - EMI: emotion_score, resilience_score, stress_coping_score, self_awareness_score
+- - Big Five: openness, conscientiousness, extraversion, agreeableness, neuroticism, big_five_overall_score
+- Also cleanup: remove leftover merge conflict markers from DatabaseInitializer and delete legacy UserAddressController (superseded by new module).
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 移除index.vue内联splash覆盖层(由独立splash.vue页面替代)
+- - 新增tab-transition.vue组件:五维品牌过渡(行/身/智/心/富)
+- - 5个tabbar页集成tab-transition:onShow时显示1.1秒过渡
+- - 修复health-dimensions.vue的getSpokeStyle方法调用兼容性
+- 
+- - 会员体系: MembershipService, PackagePaymentService, 会员升级/续费接口
+- - 推广裂变: ReferralLeaderboard(排行榜), InviteMilestone(里程碑), Coupon(优惠券)
+- - 成长任务: GrowthTask + GrowthTaskLog 实体/Service/Controller
+- - 分佣扩展: CommissionService 新增分佣逻辑
+- - 定时任务: LeaderboardWeeklyResetTask 每周排行榜重置
+- - 数据库: schema.sql 新增相关表结构
+- Frontend(小程序):
+- - 会员/推广: upgrade.vue, promotion/index.vue, invite.vue, leaderboard.vue
+- - 优惠券/成长任务: coupons.vue, daily-tasks.vue, onboarding.vue
+- - 导航/API: ProfileMenu 新增入口, api.js 新增接口
+- Admin(管理端):
+- - 优惠券管理 CouponManagement.vue
+- - 成长任务管理 GrowthTaskManagement.vue
+- - 推广管理 PromotionManagement.vue
+- - Layout/路由: 新增管理菜单项
+- 测试:
+- - e2e: test-promotion-flow.sh 推广流程测试脚本
+- 
+-  && echo DONE
+- - Product list: ProductController/Service, DimensionProducts component
+- - AI recommendations: RecommendationService (tag-based LIKE), DifySyncService (TODO)
+- - Energy on purchase: NOT implemented - ProductOrder.pay() doesn't call awardEnergy()
+- - Proposed improvements documented in Section 8.2
+- 
+- - Frontend: promotion pages (team list, invite), SharePoster component, API helpers
+- - pages.json: add /promotion/share route
+- 
+-   to design doc spec (growth/sleep/vision/immunity/nutrition/gut/exercise)
+- - Includes: DB migration (3 tables), entity remodel, percentile engine,
+-   data source tier priority, gut flora report mapping
+- - Design spec: 7-dim model definition, mapping matrix, architecture notes
+- 
+- - 后端: family_members 主表 + relationship_types 配置表+种子数据
+- - 后端: 手机号关联已注册用户, capability_role→权限映射
+- - 前端: add-member.vue 统一添加入口, family-members.vue 改版
+- - 前端: store新增switchToMember/switchBackFromMember
+- - 前端: index.vue 修复 _doInit 方法位置, health-report.vue 修复:class方法调用
+- - 管理端: RelationshipTypes.vue CRUD完整功能
+- - 编译通过, AGENTS.md 更新验证策略
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 新增 RelationshipPicker.vue 可复用组件(自动加载关系类型列表,v-model 双向绑定)
+- - add-member.vue 改用 RelationshipPicker 替代内联 picker
+- - family-members.vue 增加编辑成员关系类型功能(弹窗+保存)
+- 
+- - docs/运营推广设计/IMPLEMENTATION_PLAN.md: 完整实施计划(19个待办事项,含验收标准、QA场景、引用路径)
+- 功能范围:
+- P0(补全占位): 分享邀请卡、推广团队页、微信转发
+- P1(激活+变现): 新手任务、每日任务、优惠券系统
+- P2(裂变放大): 邀请里程碑、推广排行榜
+- 含管理端3个页面
+- 分支: cfclub
+- 
+- - 自己出题自己答四步交互流程
+- - 训练中心 2 游戏入口(舒尔特+猜数字)
+- - 认知报告 7→6 维修正(DAN六维标准)
+- - FamilyRelationGraph wisdom 支持
+- - Phase 2 待办清单
+- 
+- - DB: health_dimension_score, health_data_source_record, health_norm_reference tables
+- - Entities: HealthDimensionScore, HealthDataSourceRecord, HealthNormReference
+- - Mappers: HealthDimensionScoreMapper, HealthDataSourceRecordMapper, HealthNormReferenceMapper
+- - Services: HealthDimensionScoreService, HealthDataSourceRecordService, DimensionScoreService
+- - Controller: HealthDimensionController with /overview, /upload, /questionnaire, /history endpoints
+- - Frontend: pages/body/health-dimensions.vue with CSS radar chart
+- - Gut report integration:肠道健康评分 saved as body dimension score
+- - API: getDimensionOverview, uploadDimensionScore
+- Compile fixes (pre-existing bugs blocking build):
+- - DimensionScoreVO: add 5-arg constructor for DEFAULT_DIMENSIONS
+- - HealthReportController: add BigDecimal import, Integer->BigDecimal conversion
+- - DatabaseInitializer: fix batchUpdate(Object[][]) -> Arrays.asList(Object[][])
+- - Result.ok() -> Result.success() in EmotionCheckinController, MindController, TraditionalMirrorController
+- - AIService: add moodScore, emotionType, stressLevel fields to EmotionCheckin entity
+- Other additions from previous session:
+- - EmotionCheckin flow (controller, service, mapper, DTOs)
+- - BaziReadingTemplate and NumSoulConfig entities with seed data
+- - HealthReportPermission entity and mapper
+- Backend compiles: mvn clean compile BUILD SUCCESS
+- Frontend: pages.json + api.js + health-dimensions.vue + food-list.vue
+- 
+- - Web端: Activities.vue重写,使用api/activity.js封装,完整CRUD+分页+状态筛选
+- - Web端: ActivityReview.vue重写,实现真实审核通过/驳回(draft→publish/reject)
+- - Web端: 新增api/activity.js(6个API函数)
+- - 小程序: 新增vendor/product-edit商品编辑页(创建+编辑双模式)
+- - 修复: 移除Vue文件中直接axios调用和可选链?.
+- 
+- - 22个问题精简为11个,聚焦家长最关心的核心问题
+- - 健康档案类问题从纯菌群检测改回健康数据中心定位
+- - 删除过技术化的16S rRNA、过度细碎的多个家庭/长辈问题
+- 销售文案:
+- - 对标滴滴企业版痛点-方案-数据三段式结构
+- - 面向家长群体,5个痛点覆盖散装育儿/健康管理/成长记录/夫妻沟通/服务商选择
+- - 书宁老师 13701366188
+- 
+- - 新增菌群检测适用年龄/周期/技术科普、精准健康方案、
+-   规划师服务、五维评估流程、多孩管理、长辈使用、
+-   付费模式、AI教育对比、五行应用、数据安全等问答
+- - 前端可见#faq区同步扩展至20条,内容与结构化数据一致
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - Add ShoppingList, ShoppingListItem entities
+- - Add FollowUp entity
+- - Add UserFoodPreference entity
+- - Add corresponding Mapper interfaces
+- - Update DatabaseInitializer and Food entity
+- 
+- - 营养师健康报告/指标管理页面
+- - 新增营养映射管理页面(NutritionMappings)
+- - 路由配置更新支持营养功能
+- - Layout布局适配
+- 
+- - 新增健康报告详情页(body/health-report.vue)
+- - 家长首页(parent-index)大改版,增加营养板块
+- - 扩展API接口支持营养功能
+- - pages.json路由配置更新
+- 
+- - 扩展健康报告分析服务(肠道菌群/营养评分)
+- - 饮食推荐服务完善(季节食材过滤/候选人筛选)
+- - 数据库初始化增加营养相关表
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- parent-index.vue / child-index.vue 集成引导浮层+storage 触发
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 发现页:emoji 4 卡片替换为五维价值矩阵(身🌏心🔥智⚡行🌿富💧)
+- 角色切换:transition fade out-in 0.3s 淡入淡出
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 新
+- - feat(faq): Add FAQ section with 8 Q&As + wired FAQPage schema
+- - feat(stats): Add social proof stats bar (120K+/40K+/1K+)
+- - feat(testimonials): Add testimonial section with 3 user review cards
+- - feat(cta): Add 扫码体验 CTA button in hero linking to #contact
+- - feat(content): Deepened DAN and 菌群检测 product card descriptions
+- 
+- web: 强化家庭会员概念 - 产品概览增加会员制副标题,角色卡标注会员主体
+- web: 文案覆盖成人用户,评估维度明确为身智心行
+- web: 核心功能重构为识别诊断→个性化方案→跟踪执行→成果检验闭环
+- web: 核心功能改为功能闭环(含导航和页脚)
+- web: 幸福三支柱改为平台角色并锚点到#roles,五维幸福维度改为幸福维度
+- web: 顶部核核心产品标签改为产品概览,下区分两个核心产品
+- web: 移除三支柱卡片,内容合并进产品区引言
+- web: AI区标题改为六大AI引擎,专业知识库+大模型
+- web: 统计数据改为3/4/5/6并添加锚点链接
+- web: 核心产品替换健康好水为精准营养方案
+- web: 小程序码放大至180px便于扫码
+- web: 客户角色卡替换SVG占位符为真实小程序码
+- web: 添加浠艾福小程序码(cf.jpg)到联系我们区域
+- 上传文件至 'web'
+- web: 五维卡片SVG插图 - 船体上宽下窄/¥抽象为帆/鱼放大
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 2. uploadReport: gut_flora段补充symptoms设置+ParsedIndicator新增symptoms字段
+- 3. 新增UserNutritionProfile模块(Mapper/Service/Controller),MealRecommendService改用数据库偏好
+- 4. 小程序新增recipe-detail.vue和preference.vue+pages.json注册+api.js接口
+- 5. filterCandidates增加卡路里上限过滤(>2400kcal排除)
+- 
+- - 行维度重新定义为人际和谐(关系建设)
+- - 新增幸福三支柱章节(衣食无忧/子女传承/受人尊敬)
+- - 新增五行相生相克关系说明
+- - 新增企业官网介绍与目录结构
+- - 新增 nginx 部署配置说明
+- - 更新公司及产品介绍对齐官网文案
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Plan covers: 5 tasks — skeleton, Canvas lines, interaction, unit tests, integration verification.
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - View layer (flexbox) for nodes — conditional layout per member count
+- - Canvas layer (type=2d) for self-to-other relation lines
+- - Energy value mapped to avatar size (not ring progress bar)
+- - Native View @tap replaces manual Canvas hit detection
+- - Removes: polarLayout, drawMember, drawMemberLegacy, drawMemberShape, drawEnergyRing, initCanvas, onCanvasTap
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - FamilyInvitation entity + mapper(邀请令牌)
+- - FamilyInvitationService(生成/校验/接受/合并/转让)
+- - 5个API端点:/generate, /validate, /accept, /check-family, /transfer-admin
+- - WechatService.generateWxacode() 小程序码生成(降级ZXing QR)
+- - DatabaseInitializer 添加 family_invitations 表迁移
+- 新增小程序端:
+- - pages/invite/join.vue(扫码落地页:登录+身份选择+合并)
+- - App.vue handleScene() 处理 wxacode 场景值
+- - api.js 新增 5 个 API 方法
+- - pages.json 注册邀请页路由
+- 数据流:扫码 → scene=invite={token} → App.vue解析 → 跳转join页
+- → 登录 → 选身份 → 调/accept → 加入成功
+- 
+-   ProfileHeader (user card + energy + role switch)
+-   ProfileStats (action data + wealth data + referral code)
+-   ProfileBadges (badge grid with API/local fallback)
+-   ProfileGrowth (growth report card)
+-   ProfileMenu (menu list + password modal + logout)
+-   ProfileMenu emits invite-generate to parent to preserve shareData
+- - rewards.vue: remove duplicate loadRewards() method (second
+-   overrode the first, first correctly reads currentRole from storage)
+- 
+- - Create pages/meal/recommend.vue (AI recipe recommendation)
+- - Create pages/meal/log.vue (meal logging + nutrition summary)
+- - Register meal subpackage in pages.json
+- - Create web admin src/api/diet.js (13 API functions)
+- - Create admin Foods.vue, Recipes.vue, SeasonalFoods.vue pages
+- - Add admin diet routes to router/index.js
+- - Add '饮食管理' menu section to Layout.vue sidebar
+- 
+- - Add 4 mappers: FoodMapper, RecipeMapper, SeasonalFoodMapper, MealLogMapper
+- - Add 5 services: FoodService, RecipeService, SeasonalFoodService, MealLogService, MealRecommendService
+- - Add 2 DTOs: RecommendationContext, MealRecommendResult
+- - Add MealRecommendController (/api/meal/*) for recipe recommendations, food replacement, meal logging
+- - Add 3 admin controllers: AdminFoodController, AdminRecipeController, AdminSeasonalController
+- - Add DDL for 4 new tables in DatabaseInitializer
+- - Fix: add matchChildIdByName to HealthReportService (needed for remote PDF parsing feature)
+- 
+- - HealthReportController: POST /api/health/report/upload (multipart upload)
+- - HealthReportService: 事务写入报告/指标/菌群/疾病风险四表
+- - DatabaseInitializer: ALTER TABLE 迁移新增字段
+- - report-upload.vue: 新增PDF文件选择+上传组件
+- - health-report.vue: 新增SVG环形评分仪表盘可视化
+- - App.vue: onShow 同步 storage → Vuex token
+- - login.vue: 移除 setTimeout,登录后 Promise 链内直接跳转
+- 
+- - Article: add submittedBy, reviewedBy, reviewedAt, reviewComment, sourceType, sourceUrl fields
+- - ArticleService: submit, review, getPendingList, getUserSubmissions methods
+- - ArticleController: /submit, /my-submissions, /fetch-link, /upload/document endpoints
+- - AdminArticleController: /review, /pending-list endpoints
+- - PdfParseService + DTOs: parse gut flora PDF reports (ParsedReportResult, ParsedGutFlora, etc.)
+- - HealthReport/HealthGutFlora entities: report upload and storage
+- - HealthReportController: report upload + parsing endpoints
+- - Activity: add fields and endpoints
+- - DatabaseInitializer: schema updates
+- Frontend (mini-program):
+- - pages.json: register new pages
+- - body/index.vue + member-body-detail.vue: health report UI
+- - action/index.vue + member-action-detail.vue: activity UI
+- - mind: article-detail, index, member-mind-detail updates
+- - child-index.vue: updates
+- - api.js: new API endpoints
+- 
+- specs: add growth record rebuild design
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - ActivityControllerTest - 活动管理员 API
+- - ArticleAdminControllerTest - 文章管理员 API
+- - GuideRolePermissionTest - 规划师权限边界
+- - HealthReportControllerTest - 营养调理师 API
+- 修复编译错误 (24 个):
+- - BigDecimal->Integer 分制: GuidePackageServiceTest, GuideModuleIntegrationTest,
+-   GuideFamilyServiceTest, ServiceContentServiceTest, GuideOrderControllerTest,
+-   GuidePackageTemplateServiceTest
+- - .toList()->.collect(Collectors.toList()) (Java 1.8): ActivityControllerTest
+- - void mock doNothing: HealthReportControllerTest
+- 文档: test-inventory.md(32文件/324用例), test-report.md(485全量)
+- 
+- plan: dimension knowledge base implementation plan (17 tasks, 4 phases)
+- specs: add dimension + knowledge base design
+- 4 frontend components, 2 admin pages.
+- Co-authored-by: Sisyphus <sisyphus@ohmyopencode.dev>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - AdminAuthController: allow nutritionist/activity_admin/article_admin roles
+- - Auto-detect role on login for new role types
+- Frontend (cfc-web):
+- - Router: role-based route access control (admin bypasses all)
+- - Layout.vue: role-specific sidebar menus
+- - Add Activities.vue route for activity_admin
+- - Add .omo/ to gitignore
+- 
+- - docs: family-relation-graph plan and spec
+- - docs: mind-page dual-tab plan
+- - docs: profile-page redesign plan and spec
+- - docs: precise nurture recommendation spec
+- - test: article CRUD controller/service tests
+- - test: update test-cases and test-inventory
+- - fix: InternalApiController, DanshopMigrationService, ArticleEdit
+- - chore: cfc-web router/request/vue.config adjustments
+- 
+- 后端原未返回该字段,growthReport.monthActiveDays 始终为 0。
+- 改为统计当月有积分变动的天数。
+- Co-authored-by: Sisyphus <sisyphus@ohmyopencode.dev>
+- 
+- 
+- - 功能菜单4组分组(个人/财富/服务/设置)
+- - 邀请合并为ActionSheet选择类型
+- - 勋章墙3×3网格,优先调后端Badge API
+- - 成长报告真实数据(复用 /api/stats/child/overview)
+- - mind/index.vue: 心理Tab新增心愿单入口
+- 
+- 
+- - onCancel uses danshopOrderCancel (was productOrderCancel CFC)
+- - onConfirmReceive uses orderNo param (was orderId)
+- - onBuyAgain navigates to shop/detail (was discover/product-detail)
+- Co-authored-by: Sisyphus <sisyphus@ohmyopencode.dev>
+- 
+- 
+-   instead of calling CFC productOrderPay which had wrong order system
+- - order-list: onCancel() → danshopOrderCancel (DanShop) not productOrderCancel (CFC)
+- - order-list: onConfirm() → danshopOrderConfirm (DanShop) not productOrderConfirm (CFC)
+- - checkout: fix address selection eventChannel — both events{} and success{}
+-   callbacks now set selectedAddress (was empty stub, blocking order creation)
+- Co-authored-by: Sisyphus <sisyphus@ohmyopencode.dev>
+- 
+- - Add cfc-frontend unit tests:
+-   - API tests (115): all modules (auth, streets, user, family, tasks, points, wishes, guide, payment, mini-games, growth, energy, badges, articles, contact, vendor, product, commission, stats, AI chat, health report, danshop, etc.)
+-   - Store tests (14): all mutations + actions
+-   - Config tests (7): all environments + helpers
+-   - Format utils tests (11): formatPrice/rate/score
+- - Fix danshop route changes (/danshop/ -> /api/shop/)
+- - Fix config DANSHOP_BASE_URL (8888 -> 9081)
+- - Fix productList method (GET -> POST)
+- - Add 8 new API tests (health report, report survey)
+- - Update test-report.md (211 frontend tests passing)
+-   cfc-frontend: 153 passed
+-   cfc-web: 44 passed
+-   e2e: 14 passed
+-   Total: 211 passed (100%)
+- 
+- 
+- - Tab栏:心·心理 / 智·认知 双Tab切换
+- - 心理Tab:EMI心理四维、大五人格、每日心理、推荐阅读(心理相关)
+- - 认知Tab:DAN综合认知评分、六维雷达图、认知训练、阅读统计、推荐阅读(认知相关)
+- - Tab切换时活动/商品跟随切换维度(mind/wisdom)
+- - 推荐阅读根据文章 relatedDimensions 按Tab筛选
+- 
+- - DanshopPaymentRecord: 支付代理记录实体+Mapper
+- - DanshopMigrationService: 批量迁移用户/商品到DanShop
+- - DanshopMigrationController: 迁移触发端点
+- - application.yml: 新增wechat.danshop-notify-url配置
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - A1: FamilyEnergyBar 成员导航 — 页面已存在且已注册,无需修改
+- - A6: 修复 parent-index.vue 模板孤立 @moreProducts 标签
+- - A4: child-index.vue onDomainClick 追加 childId 参数
+- - A5: 补充运动类/艺术类/家务类成就徽章解锁逻辑
+- - A2: 移除 DimensionActivities 组件自加载 API(父组件已传 prop)
+- - A3: 移除 DimensionProducts 组件自加载 API(父组件已传 prop)
+- - A7: wuxing-sandbox preview 模式缓存随机值(Storage 持久化)
+- - A8: FamilyMemberCard roleLabel 增加前端兜底显示
+- - A9: 收紧 parent-index 降级路径成员过滤条件,移除 !c.role
+- - A10: FamilyMemberStrip scroll-view 增加固定高度 160rpx
+- 
+-   防止唯一键冲突
+- - 修复 GuideApplicationServiceTest(2用例):添加 @MockBean
+-   GuideApplicationRecordMapper,避免 addRecord() 真实写入 DB
+- - 修复 AuthControllerTest(1用例):移除不必要的 doNothing() 调用
+- - 新增 5 个测试文件(AuthControllerTest 39用例, WishControllerTest 27用例,
+-   TaskControllerTest 19用例, FamilyControllerTest 10用例,
+-   StatsControllerTest 6用例)
+- - 更新 test-inventory.md 和 test-report.md 测试文档
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 主目录仅保留当前有效文档
+- - 新增 docs/CHANGELOG.md 变更记录
+- - 行远页新增「重要关系维护」功能设计 (spec + plan)
+- - 新增 Contact 实体/API 设计
+- - 心智页能量柱改为堆叠图(心+智叠加)
+- - 私密活动可见性扩展为 visibility/visibleScope/visibleTo 三字段模型
+- 
+- - DanAssessmentResult: EMI 4 字段 (emotion_management/empathy/social_adaptability/self_motivation)
+- - User: +birthHour 出生时辰
+- - family_member_attributes: 新结构 (member_id/member_type/birth_datetime/eight_characters/wuxing_elements/mind_base_score/wisdom_base_score/behavior_modifier)
+- - schema.sql + DatabaseInitializer 全面更新
+- Phase 1: 心智计算
+- - FamilyMemberAttributeService: autoCalculate(生肖/八字四柱/五行星盘/生命灵数) + calcInnateScore
+- - FamilyAttributeController: /api/family/attributes/{update,get,calculate}
+- - EnergyService: calcChildMind=EMI 70%+先天30%+行为修正; calcChildWisdom=COG 70%+先天30%+行为修正
+- - FinanceCheckinService: +awardEnergy 接入
+- Phase 2-3: 前端
+- - user-edit.vue: +出生时辰选择器
+- - cognitive-report.vue: 认知测评报告页
+- - health_reports: child_id→user_id
+- 已实现降级策略: DAN→先天→任务完成率
+- 
+- - docs: 新增 v1.2-心智增强-版本计划.md(阶段划分/交付物/验收标准)
+- - docs: 新增 v1.2-心智增强-阶段总结.md(5路代码审计 + 需求确认 + 19项实施任务)
+- - feat: 会员与分销体系(Membership CRUD/升级/佣金/提现/邀请)
+- - feat: 财富维度页面(记账打卡/保单管理/财富首页/保险添加)
+- - feat: 教育后台管理 + 健康报告实体/服务/控制器
+- - feat: 规划师端测评管理/团队管理 + 认知评分服务
+- - feat: 前端 TabBar 5标签重构 + 身体/行动/发现/商城/教师页面
+- - refactor: 前端组件化(PageBanner/RadarChart/TaskItem/BadgeGrid/EnergyWeekCard)
+- - refactor: 后端服务拆分(EnergyService/HealthReport/Commission/FinanceCheckin)
+- - chore: 配置更新(application.yml/pom.xml/schema.sql/schema_assessment.sql)
+- 
+- - AGENTS.md: add energy/commission/article/badge module entries
+- - .env.development: remove (should not be tracked)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - Plans: module development plan, wuxing layout update, wuxing sandbox refactor, article publishing, energy system
+- - Specs: wuxing sandbox refactor design, body dimension energy, remaining dimensions energy
+- - Analysis: domain comparison (亲子 vs 个人健康/关系维护/康养/认知提升)
+- - product-plan/ directory
+- - Updated: pre-login discovery plan/spec, 需求分析文档, 小程序页面重设计划
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- New API modules: article.js, energy.js
+- Updated: admin.js (new endpoints), router/index.js (new routes), Layout.vue (nav items)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - body/: 身体健康维度页面 (body dimension)
+- - energy/: 能量中心 (energy center hub + history)
+- - mind/: 心理健康维度页面 (mental health dimension)
+- - promotion/: 推广中心 (referral/promotion hub + invites + commissions + team)
+- - games/records.vue + stats.vue: 游戏记录/统计
+- - rewards/badge.vue: 徽章展示页
+- - stats/index.vue: 统计概览
+- Updated pages: index (parent/child), discover, profile, login, shop, membership, tasks (child/review), wishes, games/list, config.js
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - Rewrite custom-tab-bar/index.vue for new TabBar pages [body, mind, profile]
+- - Updated uni.scss with new page variables and energy/promotion theme colors
+- - PlayfulButton/PlayfulCard: gamified UI primitives with wǔxíng animations
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - Move non-TabBar pages to subPackages (teacher, guide, parent, child, tasks, wishes, rewards, games, assessment, growth, shop, vendor, stats, promotion, energy, membership)
+- - TabBar changed: [index/discover/shop/profile] -> [index/body/mind/profile]
+- - manifest.json: lazyCodeLoading, name/description update
+- - package-lock.json: rename zxyj -> cfc
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 
+- 
+- 
+- 
+- 
+- 
+- 
+- 
+- 
+- 
+- 
+- 
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - Java 包: com.zxyj → com.etotem.cfc (主程序 + 测试)
+- - pom.xml groupId/artifactId/name, application.yml 数据库/JWT 配置
+- - AGENTS.md, DESIGN.md, README.md 引用更新
+- - 前端/Web package.json name 更新
+- - 分支: feature/modules-A-E-complete → cfclub
+- 
+- - 实施计划:12个任务,从DB迁移到前端集成完整流程
+- - 健康指数算法待定,先返回0占位
+- 
+- @RequestHeader 读取导致的 401 错误。改用 request.setAttribute +
+- @RequestAttribute 模式,JwtInterceptor 同时设置两处确保兼容性。
+- 
+- T12-T14: Web admin product/order/config management
+- - OrderManage.vue: admin order list with status filter, detail dialog
+- - SysConfig.vue: admin config CRUD with inline edit dialog
+- - admin.js: product/order/config API functions aligned with backend paths
+- - router/index.js: ProductManage/OrderManage/SysConfig routes + adminRoutes list update
+- - Layout.vue: sidebar menu items for product-manage, order-manage, sys-config
+- 
+- T7-T11: Frontend product system pages
+- - discover/index: real product grid replacing hard-coded cards, filter chips
+- - NEW product-detail: cover, name, price, buy flow, create order + pay
+- - NEW order-list: status tabs, order cards, pay/cancel/confirm actions
+- - NEW order-detail: order detail with bottom action bar
+- - NEW vendor/products: vendor product list with shelve/edit actions
+- - NEW vendor/orders: vendor order list with confirm action
+- - vendor/center: fixed navigation methods
+- - pages.json: registered all 5 new pages
+- 
+- - 新增 familyRole 字段支持家长身份 (爸爸/妈妈/姥姥等)
+- - 新增 Family.creatorId 标识家庭管理员
+- - 实现家庭成员管理及踢出功能
+- 模块 B: 家长邀请规划师
+- - 优化 InviteCardService.acceptGuide 自动绑定规划师到家庭
+- - 前端增加邀请规划师入口
+- 模块 C: DAN 测评购买改造
+- - AssessmentOrderController.createOrder 支持 guideId 可选
+- - 自动从 Family.teacherId 分配规划师
+- - 前端支持'由系统安排'选项
+- 模块 D: 规划师邀请家长
+- - 新增 /api/guide/parent-invite/generate 生成邀请码
+- - 新增 /api/guide/parent-invite/accept 接受邀请
+- - 自动创建成长档案并绑定规划师
+- - 前端支持邀请码生成和接受流程
+- 模块 E: 成长档案 + 测评购买一体化
+- - 新增 /api/growth/record/create-with-order 合并接口
+- - 前端增加'同时购买 DAN 测评'选项
+- - 支持创建后直接跳转支付
+- 技术改进:
+- - 统一使用 @PostMapping 规范
+- - 优化 InviteCard 生成逻辑支持 parent_invite 类型
+- - 前端支持邀请码自动识别和处理
+- 
+- - superpowers: 新增规划文档(家长端重设计/邀请码流程)
+- - 新增logo和specs文档
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - TaskStatsService: 任务统计服务
+- - GuideApplicationRecord: 规划师申请记录实体和Mapper
+- - stats包: 统计相关控制器
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - index.html: 标题和meta更新
+- - package.json: 添加element-ui依赖
+- - 移除 pnpm-lock.yaml (改用npm)
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - TeacherMessages: 规划师消息管理功能完善
+- - TeacherDashboard/TeacherFamilies: 仪表盘和家庭管理优化
+- - TeacherAssessment/TeacherTeam: 测评和团队管理增强
+- - Dashboard/GuideAudit/Users: 管理员看板和审核功能优化
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 登录页(login): 优化验证码和登录流程
+- - 心愿/任务/兑换: 交互细节优化
+- - 成长档案/规划师注册: 页面完善
+- - 新增 child-detail 孩子详情页
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 测评订单和预约: 新增字段和业务逻辑优化
+- - 成长档案: 服务逻辑完善
+- - 认证和家庭绑定: 流程优化
+- - DatabaseInitializer: 数据库初始化脚本同步
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - GuideManagementController: 完善邀请码生成和规划师申请流程
+- - TeacherMessageController: 老师消息回复接口优化
+- - GuideFamilyService/GuideApplicationService: 家庭绑定和申请服务增强
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - AdminAuthController: 锁标识从纯IP改为phone+ip组合
+- - UserService.resetPassword: 改用encryptPassword统一盐值(xzyj_salt_)
+- - 修复管理员重置密码后用户无法登录的问题
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 需求分析文档V2.0:对比需求文档与代码实现,标注完成状态
+- - 新增测试清单文档
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - router/index.js:新增teacher路由组+权限守卫
+- - Login.vue:登录页优化
+- - 修正API路径(teacher-message→guide/messages, guide/my/packages→guide/packages/my)
+- - 修正assessment API方法GET→POST
+- - 新增guidePackage/guideTask/teacherMessage API模块
+- - 新增TeacherAssessment/TeacherOrders视图
+- - 添加jest/babel配置和测试框架
+- - 更新依赖(pnpm-lock)
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - GuideOrderControllerTest:订单列表和统计测试
+- - GuideTeamControllerTest:团队管理测试
+- - GuideApplicationServiceTest:申请审核测试
+- - GuideFamilyServiceTest:家庭绑定测试
+- - GuideHierarchyServiceTest:层级关系测试
+- - GuidePackageServiceTest:套餐管理测试
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 新增SwitchRoleDTO角色切换DTO
+- - UserService重构:完整实现directRegister/isPhoneRegistered,新增switchRole/registerWithInviteCode/resetPassword
+- - UserServiceInterface添加缺失方法声明
+- - 新增GrowthPlanMapper支持成长规划表数据迁移
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 修复AuthController手机号/身份证格式校验
+- - 新增GuidePackageController /my端点解决路由404
+- - GuideOrderController查询逻辑优化
+- - GuideTeamController团队功能增强
+- - GuideController路由重定向处理
+- - DataMigrationController + MigrationController新增迁移端点
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - DataMigrationService实现9步数据迁移
+- - 更新DatabaseInitializer添加数据库表和字段迁移
+- - ZxyjApplication排除DataSourceAutoConfiguration
+- - application.yml添加sfms数据源配置
+- Ultraworked with Sisyphus
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+-   - guide_packages表: 移除IF NOT EXISTS, 新增teacher_id/template_id改为NULL
+-   - assessment_appointments表: 移除IF NOT EXISTS
+- - GuideModuleIntegrationTest: 修正套餐创建使用TaskTemplatePackage(非GuidePackageTemplate)
+-   - 使用CreatePackageDTO + taskTemplatePackageService.createPackage()
+-   - 添加cycleDays必填字段
+-   - 新增重复创建验证替代原价格校验
+- - TeacherLoginTest: 补全users表NOT NULL字段(openid, familyId)
+-   - 修正role为ENUM有效值(teacher), 使用roles字段测试多角色
+- 
+- - 所有Service实现类添加implements XxxServiceInterface
+- - MediaRecordService和StorageService(旧接口) extends对应新接口
+- - 修正接口方法签名与实现类一致:
+-   - TaskReminderServiceInterface: 基于Task实体(无TaskReminder实体)
+-   - PaymentServiceInterface: 基于PackageOrder实体(无Payment实体)
+-   - BindInviteServiceInterface: 基于GuideFamily(无BindInvite实体)
+-   - LoginAttemptServiceInterface: 内存实现(无LoginAttempt实体)
+-   - DataMigrationServiceInterface: 仅runMigration方法
+-   - PointsServiceInterface: 基于PointsLog实体
+-   - MembershipServiceInterface: 基于FamilyMembership实体
+-   - PackagePurchaseServiceInterface: 基于PackageOrder实体
+-   - PackagePaymentServiceInterface: 基于PackageOrder实体
+-   - AssessmentServiceInterface: 补充完整方法签名
+- - 新增TaskPlanServiceInterface(原缺失)
+- - mvn clean compile BUILD SUCCESS
+- 
+- - 添加成长规划师、DAN评估、小游戏任务等核心功能
+- - 更新API接口列表
+- - 添加测试和开发规范说明
+- 
+- - 新增成长规划师登录测试(TeacherLoginTest)
+- - 修复AssessmentResultMapper类型错误(DanAssessmentResultMapper)
+- - 修复Admin实体nickname字段缺失
+- - 修复AssessmentAppointment status类型(String)
+- - 修复GuideFamilyTaskControllerTest测试
+- 
+- - 添加套餐模板管理API
+- - 添加成长规划师套餐API (CRUD + 状态管理)
+- - 添加团队管理API (我的团队、邀请码)
+- - 添加订单与佣金API
+- - 添加家庭管理API
+- - 添加消息功能API
+- - 实现所有API改用POST方法
+- - 添加测试用例覆盖所有CRUD操作
+- - 更新数据库初始化脚本
+- - 添加前端管理页面 (服务类型、服务内容、套餐模板)
+- - 添加成长规划师工作台页面
+- 修改:
+- - 后端安全增强 (防暴力破解、HTTP安全头)
+- - 前端路由守卫Token验证
+- - Web管理端功能完善
+- 
+- - 实现指导师邀请码系统(GuideInviteCode)
+- - 支持指导师套餐定价(GuidePackage)
+- - 实现测评报告权限控制(上级可查看下级报告)
+- - 添加套餐购买和支付功能
+- - 创建指导师注册、邀请码分享、测评申请等前端页面
+- - 添加数据库表结构(schema_guide.sql)
+- - 修复 Java 8 兼容性问题(toList、List.of)
+- - 编译验证通过
+- 
+- - TaskService增加completeMinigameTask方法处理小游戏任务完成
+- - TaskController增加minigame-options和complete-minigame接口
+- - 前端:创建任务页面支持选择小游戏类
+- - 任务列表显示小游戏任务标识
+- - 小游戏页面支持从任务跳转并调用任务完成接口
+- 
+- 更新测试用例:添加小游戏任务类型测试(MINITASK-001~004),更新需求同步文件
+- 设计文档:在线小游戏作为任务类型的处理方案(方案B-2:category+minigameCode)
+- 修复需求同步状态,添加小游戏相关需求项
+- - 新增Wish实体/Mapper/Service/Controller完整后端API
+- - 新增小程序孩子端心愿页面(列表/创建/详情)
+- - 新增小程序家长端心愿管理页
+- - 新增Web管理端心愿管理页
+- - 删除错误的migration_wishes.sql迁移脚本
+- - 新增schema-wishes.sql建表脚本
+- 设计明确:
+- - rewards: 心愿库(家长预设奖励模板)
+- - wishes: 个人心愿(每个人的实际心愿)
+- 其他修复:
+- - 修复pages.json路由配置
+- - 修复API调用和页面跳转
+- 
+- 更新需求文档:小游戏作为任务类型的一种形式,新增小游戏类任务分类和API说明
+- 完善测试用例:新增指导师功能、小游戏模块、任务模板管理等API和Web测试用例
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 小程序端:API接口测试,构造请求数据验证响应,不进行UI点击
+- - Web管理后台:浏览器自动化测试,管理员/指导师登录,测试过程截图
+- 测试账号更新:
+- - 管理员: 13800138000/admin123
+- - 指导师: 13800138003/teacher123
+- - 家长和孩子不登录Web后台
+- 环境配置:
+- - 后端API地址: http://192.168.16.18:8080
+- - Web管理端地址: http://192.168.16.18:8081
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- sync: 更新测试说明与同步元数据
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - 添加年龄空值检查
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - POST接口参数从@RequestParam改为@RequestBody适配JSON请求体
+- - Web管理端API调用从GET改为POST
+- - 小程序utils/api.js默认方法改为POST
+- 变更文件:
+- - 后端Controller: MarketController, TaskTemplatePackageController, PackagePaymentController, StreetController, MediaController, MiniGameController, StreakController, MembershipController, BindController, BindInviteController, UserController, GuideController, GuideFamilyTaskController, TeacherController, TeacherMessageController, AdminController, RewardController, RewardWishlistController, PointsController, TaskController, TaskReminderController
+- - Web API: guideTask.js, teacherMessage.js
+- - 小程序API: utils/api.js
+- - DTO: CompleteTaskDTO
+- Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- - DatabaseInitializer: 添加admin_task_templates表新字段迁移(complete_types/duration/review_type/task_type/frequency/max_frequency)
+- 
+- - 整理TASK-001~016需求清单和状态
+- - 定义Task实体字段和数据模型
+- - 汇总API接口和前端页面
+- - 标注待完善功能
+- 
+- - P1需求42%完成(19项),包括任务提醒统计
+- - 更新指导师、小游戏、打卡功能修复状态
+- - 记录数据库迁移和定时任务
+- - 添加下一步开发建议
+- 
+- - TASK-014: 任务历史记录(带状态/时间筛选)
+- - TASK-015: 任务统计分析(概览/分类/日期/家庭统计)
+- 新增API:
+- - GET /api/tasks/reminder/{childId} - 需要提醒的任务
+- - GET /api/tasks/upcoming/{childId} - 即将到期任务
+- - GET /api/tasks/overdue/{childId} - 已超时任务
+- - GET /api/tasks/history/filter/{childId} - 带筛选的历史
+- - GET /api/tasks/statistics/{childId} - 统计概览
+- - GET /api/tasks/statistics/category/{childId} - 分类统计
+- - GET /api/tasks/statistics/date/{childId} - 日期统计
+- - GET /api/tasks/statistics/family/{familyId} - 家庭统计
+- 
+- - OperationLogController改用POST方法(安全要求)
+- - Web端API调用适配POST方法
+- - 改进Layout菜单和角色显示逻辑
+- - 路由守卫改进指导师权限检查
+- 
+- - OperationLogController改用POST方法(安全要求)
+- - Web端API调用适配POST方法
+- - 改进Layout菜单和角色显示逻辑
+- - 路由守卫改进指导师权限检查
+- 
+- - 实现每日/每周重复任务设置(TASK-004)
+- - 创建RepeatTaskGenerator定时任务,每天凌晨5点生成重复任务实例
+- - Task实体添加templateId和isTemplate字段追踪模板关系
+- - 前端create-task.vue添加日期时间选择器和重复类型选择
+- - 添加数据库迁移20-21
+- 
+- - REWARD-002A: 家庭奖励库,多家长可调整积分
+- - REWARD-002B: 多孩子心愿单隔离
+- - POINT-002: 超额积分规则,支持自定义bonusRule
+- - POINT-009: 积分有效期,支持按任务设置过期天数
+- - 添加数据库迁移16-19
+- - 添加积分过期定时任务PointsExpireTask
+- - 新增操作日志功能
+- 
+- sync: 同步测试资产到 V1.2 需求
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
+- 
+- 1. 任务分类 TASK-005: P1 → P0
+- 2. POINT-002: 提前完成奖励 → 超额完成奖励(家长制定规则)
+- 3. POINT-009: 积分每月清零 → 积分不清零,可设置有效期
+- 4. REWARD-001A: 家长填写所需积分后心愿进奖励库 (P0)
+- 5. REWARD-002A: 家庭奖励库 (P0)
+- 6. REWARD-002B: 多孩子心愿单隔离 (P0)
+- 7. DAN测评模块重构:
+-    - 测评数据来自接口(非拍照上传)
+-    - 作为测评记录,不作为孩子基本信息
+-    - 与任务、心愿平行(P1)
+-    - 删除手动录入、图片上传等需求
+- 
+- sync: 同步需求变更,新增 MODE-010 测试用例
+- - 新增 MODE-010 指导师注册与审核测试用例 (P2)
+- - 创建 .test-sync.json 记录需求同步状态
+- - 需求变更:新增 9 个需求项,修改 1 个需求优先级
+- 新增需求测试用例:
+- - TASK-012A ~ TASK-012F (已包含)
+- - MODE-008, MODE-009 (已包含)
+- - MODE-010 (本次新增)
+- 修改需求:
+- - MODE-006: P2 → P0,描述更新
+- 需求覆盖度:100% (P0/P1/P2 全覆盖)
+- 
+- - 优化UserController用户信息更新逻辑
+- - 优化login.vue登录流程和手机号检查
+- - 优化parent-index.vue导航逻辑
+- - 更新需求分析文档状态
+- 
+- - 实现连续打卡里程碑奖励及自动重置定时任务
+- - 重构控制器按功能模块分组(admin/auth/family/guide/task/reward)
+- - 修复指导师信息入库、家庭检索逻辑等问题
+- - 添加API权限校验和测试文件
+- - 创建.gitignore排除构建产物
+- 
+- - 更新后端AGENTS.md,添加街道地址功能和代码地图
+- - 更新前端AGENTS.md,完善uni-app配置和地址匹配功能
+- - 新建Web管理端AGENTS.md,Vue.js + Element UI文档
+- - 新建Superpowers AGENTS.md,AI开发工具工作流规范
+- - 新建Tests AGENTS.md,分层测试策略和状态评估
+- 
+- - getFamilyWishlist: POST /family 改为 GET /family
+- - 避免与create的POST /冲突
+- - 修正HTTP方法语义(查询用GET)
+- 
+- - 添加idx_teacher_id索引
+- - 修复Unknown column 'teacher_id'错误
+- 
+- - getMyPackages: POST / 改为 GET /my
+- - 避免与createPackage的POST /冲突
+- - 修正HTTP方法语义(查询用GET)
+- 
+- - GuideFamilyTaskController保留 /api/guide/families
+- - 避免Ambiguous mapping错误
+- 
+- - BindInviteController保留 /api/guide/bind/invite
+- - 避免Ambiguous mapping错误
+- 
+- - 将指导师相关字段迁移移到DatabaseInitializer
+-   * teacher_no - 指导师证书号
+-   * teacher_photo - 指导师照片
+-   * certificate_image - 证书照片
+-   * teacher_status - 审核状态
+- - 修复GuideController缺少UUID导入
+- 
+- - 更新auth.js优化认证逻辑
+- - 更新router添加更多路由
+- - 更新Layout优化菜单结构
+- - 更新Rewards和Tasks页面功能
+- - 更新index.html标题
+- - 更新package.json依赖
+- 
+- - 新增PlayfulButton和PlayfulCard组件 - 趣味化UI
+- - 新增指导师相关页面(套餐管理、绑定邀请等)
+- - 新增家长市场页面(套餐市场、任务计划)
+- - 新增任务创建和审核页面
+- - 新增教师端页面
+- - 新增会员中心页面
+- - 新增孩子管理页面
+- - 优化登录页面和首页UI
+- - 更新pages.json路由配置
+- - 更新全局样式uni.scss
+- 
+- - 新增BindController - 家庭绑定指导师
+- - 新增BindInviteController - 绑定邀请
+- - 新增GuideController - 指导师管理
+- - 新增GuideFamilyTaskController - 指导师家庭任务管理
+- - 新增MarketController - 套餐市场
+- - 新增PackagePaymentController - 套餐支付
+- - 新增TaskTemplatePackageController - 任务模板套餐
+- - 新增PackageOrder实体和Mapper
+- - 新增BindInviteService和PackagePaymentService
+- - 更新schema.sql和配置文件
+- 
+-   * 省市区街道四级选择
+-   * 支持v-model双向绑定
+-   * 自动加载地址路径
+- - 新增家庭地址编辑页面address-edit.vue
+-   * 集成地址选择组件
+-   * 保存家庭地址到后端
+- - 新增区域匹配页面street-match.vue
+-   * 显示街道级/区县级/城市级匹配结果
+-   * 统计各级别家庭和指导师数量
+- - 更新api.js添加街道相关API
+-   * getProvinces - 获取省份
+-   * getStreetChildren - 获取子级地址
+-   * matchByStreet - 区域匹配
+-   * getStreetStats - 区域统计
+- 
+- - Family和Teacher实体添加streetId及地址冗余字段
+- - 实现StreetService支持区域回退匹配逻辑
+-   * 优先匹配相同街道
+-   * 回退到区县级匹配
+-   * 最终回退到城市级匹配
+- - 实现StreetController API端点
+-   * GET /api/streets/provinces - 获取所有省份
+-   * GET /api/streets/children/{parentId} - 获取子级地址
+-   * GET /api/streets/{id}/match - 区域匹配
+-   * GET /api/streets/stats - 按区域统计
+- - 数据库迁移添加streets表示例数据(广东省)
+- - 修复TaskReviewDTO缺少approved和comment字段
+- 用途:
+- - 家庭和指导师按街道进行匹配
+- - 按区域统计家庭数和指导师数
+- - 支持地址四级联动选择
+- 
+- - 在DatabaseInitializer中添加runMigrations()方法
+- - 使用try-catch处理列/索引已存在的情况
+- - 支持幂等性迁移(可重复执行)
+- - 添加tasks表executor_type/executor_id字段
+- - 添加users表roles/total_points等新字段
+- - 添加children表birthday/gender字段
+- - 支持teacher角色
+- 
+- - 修复TaskPlanService和TaskTemplatePackageService中var类型推断(Jave 8不支持)
+- - 修复TaskTemplatePackageService.getPublicPackages()方法
+- - 将QueryWrapper.list()改为packageMapper.selectList(wrapper)
+- 
+- - 完善Users, Children, Tasks, Rewards, Points页面功能
+- - 集成后台API接口,实现CRUD操作
+- - 优化Layout.vue菜单结构和路由配置
+- - 更新Login.vue登录逻辑
+- 
+- - 删除不存在的/pages/index/index路由
+- - 修复login.vue中isNewUser判断逻辑
+- - 更新api.js添加新的API端点
+- - 更新pages.json和App.vue配置
+- 
+- - 新增Mapper接口: MediaRecordMapper, TeacherMapper, TaskTemplateMapper等
+- - 新增Service层: MediaRecordService, TeacherService, MembershipService等
+- - 支持多媒体上传、教师管理、会员套餐、任务模板等功能模块
+- 
+-   * JwtInterceptor将userId存入request attribute
+-   * Controller从@RequestHeader改为@RequestAttribute获取userId
+- - 修复TaskService中PointsLog字段错误
+-   * log.setUserId改为log.setChildId
+- - 新增待审核任务查询端点 GET /api/tasks/pending-review
+- - 新增MediaController、TeacherController等控制器
+- - 完善AdminController的Web管理端API
+- - 修复AdminController路由 /admin -> /api/admin
+- 
+- - 登录接口支持选择角色(parent/child)并收集生日性别
+- - 新增长按孩子卡片切换到孩子身份功能
+- - 家长端可添加孩子、切换模式
+- - 孩子端可切换回家长模式
+- - 添加数据库自动同步服务
+- 
+- - Add AGENTS.md for zxyj-backend with Spring Boot conventions
+- - Add AGENTS.md for zxyj-frontend with uni-app conventions
+- - Fix AdminLoginDTO missing password field for admin login
+- 
+- 重写schema.sql修复GBK乱码,所有中文注释使用正确UTF-8编码
+- 修复schema.sql中注释与SQL语句同行导致的语法错误
+- 将Java源文件编码从GBK转换为UTF-8,修复编译错误
+- 将项目从xzyj重命名为zxyj,更新所有包名和配置,修复selectSum编译错误
+- 删除原生小程序目录miniprogram,项目使用uni-app开发
+- 将项目名称从xzyj改为zxyj,更新所有包名和配置
+
+### 新功能
+- 健康报告三合一 - 统一报告列表/审核/代传为单页带Tab
+- 成长页新增推荐文章+推荐商品板块
+- 成长板块推荐文章/商品 + AI自动分类
+- 我的页面改为电商风格 - 订单五宫格/购物车/收货地址, 移除功能网格
+- 通关解锁管理端 - 关卡配置 CRUD/排序/启停/家庭进度管理
+- 前端组件+页面改造 - WuxingSandbox切换开关/gate-lock/gate-guide-bar/关卡中心页/parent-index+child-index门禁
+- 报告详情页统一重构为完整页面,修复上传后跳转 routeDone 报错
+- 食材戒备匹配功能
+- 新增成就页面 achievement/index.vue
+- 实现服务角色申请、报告详情、成就页面,修复占位按钮
+- 新增应季食材管理后台页面
+- 新增子维度自检题库(行6维/心自驱力自我概念/智成长型思维/富家族传承)及计分
+- 心13维分组雷达图+行6维关系域雷达图+智成长型思维加入认知雷达
+- 五维体系新增心13维/行6维/智成长型思维/富家族传承子维度字段与计算逻辑
+- 菌群功能分析——功能维度聚合+P/B比值+饮食模式+风险提示
+- 我的页面重设计为以我为中心
+- 我的页面新增个人成就统计API
+- 全量列表页支持点击列头排序
+- 全量列表支持多列排序
+- 通关解锁后端全链路 - 2表迁移+UnlockGateService(8判定)+/api/unlock/status+sandbox个人/全家门禁+5处触发钩子+管理端接口
+- 上传报告前增加责任声明勾选
+- 食材列表支持多列排序
+- 添加营养产品管理后台页面(列表+详情+菜单)
+- nutrition_product 添加 local_product_id 字段关联本平台商品
+- 新增营养产品爬虫主脚本(强制包含被gitignore的.py)
+- 新增营养产品爬虫脚本(京东/Amazon)
+- 新增营养产品推荐Controller
+- 新增营养产品推荐Service及DTO
+- 新增6个营养产品Mapper
+- 新增6个营养产品实体类
+- schema.sql同步营养产品6张表
+- 数据库迁移214-219创建营养产品6张表
+- 食材库种子数据 224 条
+- 富维度月度引导语 + 健康/成长页五维闭环体系
+- 补全健康页和成长页登录前内容
+- 行维度落地页挂载 - 五维弹窗 action 跳转到专属页面
+- 添加菌群知识库836篇文章+embedding+LangGraph集成
+- 五维详页+健康+成长页登录前品牌内容
+- 菌群知识库6疾病相关菌新增问题相关性/证据强度
+- 新增请求日志中间件 + /api/v1/logs 查询接口
+- 首页新手任务进度条置顶 + 无家庭成员空状态引导
+- 自检结果页新增一键加入今日微行动
+- 新手任务新增 COMPLETE_SELF_CHECK(提交五维自检即完成)
+- 微行动×五维联动 — micro_actions 增加维度字段与短板维度推荐
+- 个人信息所在地改为省市区三级联动并与订单联系人共享地区数据
+- 疾病风险内联编辑 + fromMap diseaseRisks 映射 + 全量编译验证
+- 报告入口切换到统一详情页
+- 统一报告详情页 report-detail(blocks 渲染)
+- 通用报告块渲染器 report-blocks-renderer
+- getReportDetail/DAN detail 返回 blocks
+- 三个落库挂点写入 report_blocks(confirmDraft/confirmUpload/编辑)
+- ReportBlockAssembler DAN 组装(score/list/text)
+- ReportBlockAssembler gut_flora 组装 + fromMap 键名转换
+- ReportBlock 实体/Mapper/Service(blocks upsert + 读取)
+- report_blocks 表迁移(通用报告展示块)
+- 报告确认后跳转方案页 + 全家报告选择+AI对话+任务生成
+- 报告确认后跳转方案页 + 全家报告选择+AI对话+任务生成
+- 五维页登录前改月度引导语 + 富页面移除底部菜单
+- 成长页面重构为干预中心 + 定期调研系统全栈实现
+- 上传后自动跳转确认页按 draftId 解析,移除本页预览/成员选择逻辑
+- 新增 JOIN 赠券种子数据 + 我的优惠券接口
+- 健康数据中心全栈实现
+- 会员页精简 - 合并续费/升级卡片、移除tab价格、个人中心按钮与徽章等高
+- 会员中心支持编辑会员等级(前端弹窗+后端update接口)
+- 健康/成长Tab功能入口重组 + 成长档案改名成长记录
+- 会员中心权益对比文案与个人中心会员卡升级入口
+- 会员升级页移除功能列表、权益对比列联动高亮、状态卡片紧凑化
+- member_upgrade_records 增加 approve_* 审核列迁移
+- 首页新增品牌定位语区块
+- 报告上传流程拆分 — 新增 /report/upload(仅上传)+ /report/parse(按草稿解析)端点,修复 uploadBaseDir BLOCKING-2 残留
+- 添加DimensionIntroCard组件 + 四个维度页插入介绍卡片
+- 登录前页面改版 - 五维品牌定位语+LoginGuideCard升级+我的页跳过入口+富维度商城预览
+- 富维度页面重构为财富之泉主题
+- 小程序 index.vue 增加 LIFETIME 检测与会员态修复(终身会员隐藏续费入口、显示永久有效)
+- 子维度改为水滴水满样式
+- 新增财富能量环组件
+- 小程序 upgrade.vue 增加 LIFETIME 权益对比列(灰色不可购买)与状态卡片终身会员展示
+- 首页动态改为单行跑马灯滚动, 快捷按钮放大
+- Web MembershipCenter.vue 增加终身会员统计卡片与标签样式
+- AdminController 增加终身会员概览统计、候选人查询与审核授予接口
+- 新增LifetimeStatsMapper消费/销售滚动365天聚合查询
+- getPricingPlans 改读membership_levels并过滤LIFETIME(下线sys_config价格)
+- 平台公告功能 - 动态页显示平台消息+管理员公告管理
+- 插入LIFETIME终身会员等级行(migration 204)
+- membership_levels 添加原价列并幂等同步价格(migration 203)
+- 会员等级实体/DTO增加原价字段, 升级记录增加审批字段
+- 商品详情底部按钮布局调整 - 海报靠左、加购物车/立即购买靠右
+- 手机号快捷登录 - 使用微信 getPhoneNumber 授权获取手机号
+- 商品推荐支持空维度返回全量推荐
+- 推荐商品/推荐阅读改四列网格; fix(backend): 家庭成员列表按userId去重
+- 去掉'我的'页面 Tab 切换过渡页
+- 管理端CF值余额与流水查询页面
+- 新增管理端CF值余额与流水查询接口
+- 购买商品发放CF值并激活推荐人分润
+- 活动签到发放CF值
+- 新增CF值表结构迁移与存量佣金迁移
+- 新增PlatformPointsService管理CF值余额与流水
+- 新增CF值余额与流水实体及Mapper
+- pages.json 注册会员 pay/result 页面
+- 新增支付结果页 result.vue(成功态+赠券/失败态+续付)
+- 新增订单确认页 pay.vue(明细/优惠券/拆单提示/虚拟支付逐期)
+- /api/membership/plans 返回原价字段(originalYearly/Monthly/Quarterly)
+- 会员原价配置(sys_config 新增4键: family/premium 年费月费原价)
+- 商城首页搜索栏加购物车入口(带角标) 财富页移除购物车服务项
+- 商城订单快捷+推广中心快捷+购物车/订单角标
+- 任务首页重设计 - 三Tab布局 + 家庭成员任务分配 + 接受/拒绝 + 关系分数调整
+- 任务首页重设计 - 支持分配任务给家庭成员,接受/拒绝机制及关系分数调整
+- 我的页面服务区添加商城和购物车入口
+- 将过渡页从首页移入独立页面 pages/splash
+- TabBar 重构 - 4Tabs(首页/健康/成长/我的) + 中间五维启动器 + 自定义TabBar
+- 成员详情页接入以成员为中心的关系条
+- pairwise接口API + 成员条centerMemberId视角模式
+- 成员条空状态引导 + 长按菜单升级关系现状Action Sheet
+- 家庭成员卡片增加关系现状三色点
+- 关系pairwise接口(以成员为中心) + VO补齐沟通评分+isSelf
+- 问卷提交时同步pairwise关系评分到family_relationships
+- family_relationships表增加关系质量评分三列
+- 健康饮食菜单添加 LangGraph 管理入口
+- 报告解析管理端页面 - 类型管理/指纹自学习/解析器导入/未知聚类
+- 报告解析 agent 接入指纹识别与自动标注
+- 报告指纹解析系统 - 类型注册/指纹识别/未知聚类/解析器导入
+- 小程序同意/拒绝+参与成员多选+pending展示
+- 管理端挑战评分配置页+AdminChallengeScoreConfigController
+- respond端点+创建去门控+list返回myStatus
+- create改pending+respondChallenge+打卡结算口径收紧
+- ChallengeScoreService方向性评分结算引擎
+- EnergyService新增awardEnergyByCode按维度code发放
+- 新增participant/方向分数/评分配置实体与Mapper
+- 参与机制迁移-新增participant/方向分数/评分配置表
+- 恢复商品会员价 - 管理端设置 + 小程序详情页展示
+- 规划师端代上传健康报告页面
+- 规划师营养师代上传健康报告
+- 添加饮食模块 AI 接口
+- 添加饮食模块 AI 接口
+- 添加饮食模块 AI 接口(食材识别+菜单生成)
+- 线上服务商品管理闭环 - 服务者/时段配置UI + nutritionist服务商类型
+- 饮食模块完整前端页面(7个页面)
+- 饮食模块前端页面(首页+调研表)
+- 饮食模块后端 API 完整实现
+- 扩展 BeijingNutritionService(食材推荐方法)
+- 法律合规补全 - 隐私政策/用户协议/同意记录/注销/数据授权/日志脱敏
+- 家庭挑战管理页仅家长可访问
+- 家庭挑战孩子端打卡入口 + cancelled 状态显示修复
+- 家庭挑战到期惰性结算 + 角色校验(家长管理/孩子打卡)
+- 家庭挑战结算发放能量点奖励并标记成员完成
+- 商品详情页按会员身份显示会员价/原价,支付价按身份计算
+- 合并生成含目录的完整成书稿(写法3完整版,16章5089行)
+- 第3-7章按写法3重写(身/智/富/行/心五维)
+- 供应商管理(CRUD + 侧边栏 + 入库单选择供应商)
+- 订单管理页适配配送履约
+- 商品配送与履约前端适配
+- 优惠券表单加商品选择器ProductPicker,替代手输商品ID
+- 创建会员权益独立配置表 + 隐藏非会员会员价 + 优惠券会员提示
+- 商品配送与履约扩展(自取/线上服务)
+- 库存管理 - 入库单商品搜索/日期/金额 + 手动出库 + 订单快递费
+- 库存管理 - 入库单日期/金额/经办人 + 手动出库 + 订单快递费
+- 家庭邀请流程改为申请审批制
+- 库存管理 - 路由+侧边栏
+- 库存管理 - ProductManage.vue增加库存按钮+弹窗
+- 库存管理 - InventoryInboundCreate.vue
+- 库存管理 - InventoryManage.vue(4标签页)
+- 库存管理 - 管理端API调用
+- 库存管理 - 订单集成(支付/取消/退款库存流水 + bundle穿透)
+- 库存管理 - AdminInventoryController
+- 库存管理 - InventoryService
+- 补全饮水打卡 + 综合健康打卡页面 + 管理后台打卡管理
+- 库存管理 - Mapper接口
+- 库存管理 - 实体类(5个新实体 + Product/ProductSku扩展)
+- parsePreview 先调 LangGraph 解析,失败回退 Java
+- 创建 POST /api/v1/report/parse 接口
+- 家庭加入改为申请审批流程 + familyId 后端派生(移除前端 familyId 存储依赖与冗余传参)
+- 创建 ReportParseAgent(算法解析 + LLM 兜底)
+- 提取 PDF 解析核心模块到 LangGraph parsers
+- 家庭加入审批流程与统一知识库DB化(合并rebase后本地改动)
+- 优惠券积分兑换入口+商品详情兑换区块+发券提示+会员权益展示
+- 优惠券配置表单扩展+发券记录页+移除商品会员价输入
+- 管理端发券记录查询grant-log接口
+- 商品统一价停用memberPrice(活动侧保留)
+- 积分兑换优惠券exchangeCoupon+优惠券兑换/查询4端点
+- 新增家庭成员时按POPULATION规则发放人口券(成员有账号发自己,无账号发家庭创建者)
+- PERIODIC会员券每日5:00定时补发任务+listActiveMemberUserIds
+- 会员开通/续费/赠送时发放JOIN会员券(试用除外)
+- CouponService支持三类型核销+幂等发券grant方法与查询(8单测)
+- Coupon实体扩展会员券字段+新增CouponGrantLog实体与Mapper
+- 迁移164 coupon表扩展会员券字段+新建coupon_grant_log发券流水表
+- 虚拟支付失败错误上报后端日志,便于定位支付未完成根因
+- 家庭挑战自定义管理
+- report-confirm 补上 auto-create-inline 面板内嵌表单基础样式
+- report-confirm 面板样式 + 清理 auto-create-card 死样式
+- report-confirm 被检测人选择整合进基本信息卡片(内联面板+移除独立卡片)
+- 商品详情页新增SKU规格选择器
+- AiGateway.generateQuestionnaire LangGraph 接入 + fallback mock + python.base-url 指向 ai.etotem.com.cn
+- 注册引导-无家庭引导组件接入核心页
+- 注册引导-活动报名接入就地补充回写
+- 注册引导-个人中心个人信息完善卡片
+- 注册引导-user-edit新用户流程最小化
+- 注册引导-回写工具profile-backfill
+- 注册引导-个人信息使用关联表profile-field-usage
+- 注册引导-前端api新增backfillProfile
+- 注册引导-新增统一backfill回写接口
+- 注册引导-注册路径不再自动创建家庭
+- 注册引导-登录响应新增needsFamily标记
+- 关系问卷评分算法替换 mock — 维度加权/反向/降级/缺题处理 + 5 个单测
+- FamilyMemberService 补 isCallerInSameFamily/isCallerInFamily 跨家庭校验方法
+- 会员退款ORD分支 + iOS退款问询按官方协议接入
+- 指标标题显示共N项/M项异常,异常数红色
+- 指标输入框颜色标注异常 + ?帮助按钮弹窗显示指标说明
+- 书架封面有图时底部叠加文章标题
+- 新增家庭详情/地址更新/区域统计 API 封装
+- 新增按街道ID统计家庭/成长规划师数量接口
+- 商品赠送会员功能 - 成长档案关联商品配置(GrowthArchiveProduct) + 后端 Controller/Service/Mapper/Entity + 前端 ProductEdit 商品编辑页
+- 商品赠送会员-管理端配置区块
+- 会员中心页与会员价引导交互
+- 活动/商城会员价展示、分转元显示与未登录会员状态处理
+- 活动详情支持游客浏览与会员价 - detail(id,userId) 解析会员价
+- 活动模块升级——付费报名订单/审核发布流/总结资料
+- 健康报告确认页指标按类别分组折叠, 支持全部展开/折叠与需处理计数
+- 五维家庭自检问卷(P0-1) + 五行相生寻源建议引擎(P0-2)
+- 接入现网/沙箱双 AppKey 并补充消息推送 Token 校验
+- 活动详情报名/签到/分享海报需登录,注册弹窗改为自定义遮罩去内置按钮
+- 管理端虚拟支付道具映射CRUD页面
+- 小程序活动创建表单添加会员价输入
+- 活动管理添加会员价字段(创建编辑表单+列表展示)
+- 活动详情页分享改为生成海报(复用ContentSharePoster组件)
+- 前端接入小程序虚拟支付
+- 商城入口统一指向商品商城/移除积分商城+推荐商品文案统一+商城标题'浠艾福商城'
+- 虚拟支付超时兜底任务 pending订单query_order确认+超时关单,防success回调丢失
+- 支持集体总合与全员个人双目标模式
+- 订阅订单改虚拟支付
+- 放开已上架文章和活动的编辑权限,便于初期维护
+- 会员订单改虚拟支付 createOrder返回VirtualPayParams,发货推送复用processPaymentCallback,修正等级硬编码FAMILY
+- 测评订单改虚拟支付 payOrder返回VirtualPayParams保持pending,服务端计价,发货推送markPaid+预约确认+佣金
+- 文章详情阅读时长每次进入从0开始计时,10秒上报一次
+- VirtualPayController 接收虚拟支付消息推送 /api/internal/virtual-pay/notify(公开) + ios-refund-query,返回微信ErrCode协议
+- VirtualPayService paySig签名/参数生成/发货退款推送处理+sessionKey持久化 JDK原生HMAC-SHA256零新依赖,双签名(paySig+signature),前缀路由,迁移144
+- add counterfeit-warning product page, gut-kit image, HRW article image, update sales index
+- 虚拟支付道具映射 实体/Mapper/Service/管理端CRUD接口
+- 新增wechat.appkey与virtual-pay-env配置 小程序虚拟支付paySig签名密钥与环境(0现网/1沙箱)
+- 迁移143 创建virtual_goods_config道具映射表 测评/会员/订阅虚拟支付道具映射,UNIQUE(goods_type,biz_key),幂等
+- 权益对比区分家庭/高级会员(高级享每周管家服务)+ 家庭会员仅年付、高级会员月/年付费档位
+- 微信内容安全检测(msg_sec_check + img_sec_check)
+- add DAN professional assessment product page with 4-tier packages
+- 活动中心增强——管理员活动管理+已报名状态标记+报名截止时间+未报名签到扣'行'维度能量
+- add payment to water ionizer and turmeric product pages
+- add gut-testing product links to articles
+- sticky bottom payment bar like e-commerce
+- 推荐阅读点击封面直接进入文章详情页
+- save contact info to package_orders, keep SVG flow only
+- ArticleBookshelf 改为竖版封面风格,一行3本横向滑动
+- gut-testing 检测流程改用SVG流程图,8大检测维度补充商品解析长图
+- add recipient address field to order form
+- 新增公共配置读取接口 PublicConfigController
+- 五维页面推荐组件统一——推荐阅读改用ArticleBookshelf、商品推荐改用DimensionProductList
+- gut-testing 产品页补充商品图片(谷禾肠道菌群检测专业版)
+- add memory-gut, water-unseen articles and gut-testing product page
+- 商品详情加分享海报按钮+scene邀请码解析
+- 文章详情去掉分享按钮,海报传维度/简介/邀请语
+- ContentSharePoster 参数化五维配色+简介/邀请语/价格行+居中弹窗
+- SharePoster 家庭邀请卡加 familyName 文案与邀请语,字号缩小2px
+- 屏蔽在线开通会员功能,改为管理员后台设置
+- 重新设计家庭成员页面 - 暖橙卡片风格 + 底部操作栏 + 直接邀请海报
+- 文章评论审核前端——RadarChart/article-detail/order-list/article.js/CommentReview
+- 文章评论审核功能——AdminArticleController/ArticleCommentController/ArticleCommentService
+- 活动详情页新增报名表单 Modal(家庭成员选择 + 手动输入 + 合计)
+- activity_registrations 表添加 registrant_name/registrant_phone 列, child_id 改为可空
+- 活动报名支持批量提交 registrants 列表
+- JwtInterceptor 无token改为设匿名用户(userId=-1)放行,不返回401
+- complete coaching integration - rename characters (小付/小艾/小茜), action card rewrites, dialogue layer updates
+- mp-html 富文本组件替换微信原生 rich-text
+- 重新设计底部tab智图标为交叉斧剑
+- 重新设计底部tab身图标为弯曲胳膊
+- api请求失败时console打印完整URL以方便排查
+- 替换底部tab富图标为水滴设计并修正引用
+- 替换底部tab心图标为爱心设计
+- 替换底部tab智图标为大脑设计
+- 替换底部tab身图标为臂肌设计
+- 替换底部tab行图标为嫩芽设计
+- add withdrawal rules display on withdraw page per review guideline
+- add AI disclaimer at bottom of health coach chat page
+- integrate RecommendedSection into all 6 dimension pages
+- add qr code image to project card
+- add project introduction card SVG for sales directory
+- add service role application review page and admin endpoints
+- add service role apply entry in ProfileMenu
+- add service role apply page with multi-select, upload, address
+- add API functions and page registration for service role apply
+- add ServiceRoleApplicationController with apply/upload/admin endpoints
+- add ServiceRoleApplicationService with submit/approve/reject
+- add ServiceRoleApplication entity, mapper, DTO + User fields
+- add service_role_applications table and User status fields
+- 文章详情页完整功能 — 自动完成阅读+评论系统+AI答题
+- add gut microbiota-obesity article with 3 reference screenshots + track HRW sleep screenshots
+- 过渡页最少800ms最多3s — 集中计时到tab-transition组件
+- 完整记账功能 — 收支管理+分类统计+月度概览
+- 上传健康报告页面两种上传方式差异化重构
+- 财商打卡页面完整功能实现
+- 家庭成员管理邀请功能增加分享邀请卡
+- add hydrogen-water-sleep article with 5 PubMed reference screenshots
+- insert scientific figures into pancreatitis and leaky-gut articles
+- 家庭成员关系卡片增强 — 关系标签+联系+辈分+长按菜单
+- 管理后台能量行为配置页面
+- 能量行为配置系统 — 可配置每种行为的能量发放规则
+- content share poster with wxacode for product/activity/article pages
+- 任务添加五维维度参数支持
+- 切换地址系统从 consignee 到 user_address
+- add pancreatitis and leaky-gut articles, update screenshot plan
+- insert 14 academic reference screenshots into 4 articles
+- update stroke risk factors section and screenshot plan
+- remove read-complete button, add auto reading time tracking
+- add report-reading-time API for cumulative reading tracking
+- add article_id and updated_at to article_reading_records
+- 推荐活动卡片高度减半,布局更紧凑
+- 添加浠艾福会员卡介绍PPT
+- 科普文章嵌入参考文献截图(14篇健康科普嵌入配图)
+- 行页面重构 - 能量沙盘+成员选择条+圈子卡片
+- index.vue 兼容 PREMIUM 等级 - 对比表四列 + 等级列表按钮
+- upgrade.vue 支持 FAMILY + PREMIUM 等级切换
+- plans.vue 动态加载会员等级 + FAQ 更新
+- /api/membership/plans 使用 sys_config 价格 + 推荐标记
+- MembershipService 支持 PREMIUM 等级
+- 文章/商品/活动详情页增加分享功能 + 邀请码自动绑定
+- Add invitation QR code modal to parent index page
+- redesign tab icons to match 五行沙盘 emoji themes
+- 推荐阅读改为书册风格 ArticleBookshelf 组件
+- redesign all 5 tab icons with consistent style (五维×五行)
+- 扩展测试数据至五维全覆盖(15条记录)- 活动/文章/商品各3条,覆盖身智行心富五维 - SeedsController.java导入修复
+- admin product min_quantity filter, activity detail mobile adaptation, web articles & changelog updates
+- 添加独立测试数据初始化脚本和接口
+- refactor upload to 2 methods (file/photo), add collectionDate, indicator dedup, image support
+- 创建独立圈子发现页 /pages/discover/circles
+- 行首页 OctopusGraph → 圈子区块替换
+- 添加 carol.png 和 hxy.png 头像资源
+- add Enagic product intro with images, QR referral tracking, gut/meta articles, and update existing health articles
+- 勋章管理后台页面 + 家庭排名 + 勋章墙导航
+- 家庭关系图视觉重编码 (信任/沟通/亲密度) + 身份形状 + 自导航维护页
+- 北京菌群报告采集与精准营养推荐
+- add 3 buying guides - water purifier, prebiotics, probiotics
+- add ERW/HRW gut microbiome section with 3 new references (Tamaoki 2021, Xie 2022, systematic review 2025)
+- ProductEdit 添加最小购买数量(minQuantity)输入框
+- minQuantity DTO 字段映射 + 多商品下单产品级校验
+- 2x2 grid layout + annotation overlays for 4 clinical-evidence screenshots
+- 切换孩子前检查家庭成员中是否有child角色
+- 微信登录自动获取手机号
+- 新增index.html目录首页+AGENTS.md更新
+- CA Cancer Statistics 2022截图标注替换(Sung 2020→Bray 2024); 免疫系统三大功效全重写为三栏卡片+癌症数据关联
+- 心脑血管文章多项增强——牙痛心梗症状/比目鱼肌锻炼/个体化干预/菌群检测评估与追踪+7张来源截图
+- 新增心脑血管文章误诊板块(沉默心梗/女性误诊/卒中漏诊/青年卒中),插入CANTOS和肠漏引用截图
+- add ArticleBookshelf book-style recommendation component
+- 手机自适应扩展 — Dashboard 2列 + 表格滚动 + 表单堆叠
+- 管理后台手机自适应 — 响应式侧边栏折叠 + 布局优化
+- 完善7维健康模型 - Tier2 VOICE/PHOTO支持, canvas雷达图, 数据源表迁移
+- 商品规格最小购买数限制(minQuantity字段 + 订单校验)
+- 完成 Task 5 AI健康管家MVP
+- Task 5 AI健康管家补全 — health_butler_graph + 前端路由修复
+- subpackage split - move non-TabBar pages out of main package to reduce size
+- Dify-compatible adapter layer + AI health butler MVP
+- use emoji tab icons matching wuxing sandbox style
+- redesign tab bar icons in wuxing sandbox style
+- 推广佣金体系后端实体 + 删除废弃 RelationshipPicker 组件
+- TASK-P0-001 辈分重构 — 订阅式 generation + is_spouse,删除关系类型表与字段
+- 富维度子维度组件 + 身克富杠杆展示 + 修复DatabaseInitializer编译错误
+- P2-1 身份重塑系统 - 健康等级+积分引擎+时间线
+- 完成5篇深度疾病科普文章并接入成长百科
+- 在 HealthReportController 添加自动保存解析结果到 JSON 文件
+- P1-2 健康行为智能预警实现
+- P1-1 即时多巴胺反馈实现
+- 成长百科改为人体五维标注布局 + 文本替换
+- 重写成长百科为100vh单页布局(剪影背景+五维卡片+手机标签)
+- 新增成长百科主页面 + Clarity 全站覆盖
+- Hero 背景改用 AI 生成插画 (agnes-image-2.1-flash)
+- 首页 Hero 添加家庭幸福健康抽象插画背景
+- 预约页面传递 assessorId 参数
+- 重构 AppointmentController 接入 DanAssessmentExecutionService 双角色模型
+- AppointmentService 支持 assessorId, DanAssessmentExecutionService 关联 appointmentId
+- assessment_appointments 添加 assessor_id, dan_assessment_executions 添加 appointment_id
+- AiGateway + 5% grayscale routing to LangGraph
+- config, models, RAG, Java client, RecommendAgent
+- scaffold Python sidecar project
+- 本地修改同步提交 - 小程序前端组件更新
+- 微塑料科普页面 — 看不见的入侵者
+- 行首页移除成长里程碑 - 移除OctopusGraph/milestones功能
+- 心页面添加心理报告卡片 - 完整EMID四维条形图展示
+- AI任务生成+今日能量文卡片+体检AI入口
+- integrate KB v3 into gut-flora-risks-detail.vue
+- knowledge base v3 - data/template separation foundation
+- add purchase recommendation section to dan-assessment/report-upload page
+- add purchase recommendation section to report-upload page
+- implement taxonomy level support, pathogen tabs, report interpretation, DB migration 98
+- add personalized indicator interpretations (P0) and overall assessment descriptions
+- add report indicator knowledge base with standard ranges and descriptions
+- add taxonomy level extraction (class/order/family/genus/species) from unified section
+- 活动商品统一管理后续三项任务完成
+- B5指南针仪表盘图像提取 — 19个子维度分数
+- expand health survey with disease/family history, add physical exam detail page
+- 健康知识库管理后台 CRUD
+- FamilyRelationGraph 新增齿轮跳转成员管理、悬停/点击+号进入添加成员页、高度自适应
+- add api methods, knowledge-popup component, register 4 pages in pages.json
+- add KnowledgeBaseDataImporter + ref JSONs + import endpoint
+- add POST /api/health/report/edit + updateReportFromPayload
+- add health_knowledge_base (entity+mapper+service+controller+migration98)
+- 将DAN报告上传重构到独立 dan_report_uploads 表
+- add DAN report to JSON extraction script (extract_dan_to_json.py)
+- 富维度页面添加TabTransition动画 + 用户卡片重构
+- 心维度页面集成家庭天盘模块 + 心理报告上传功能
+- 新增天盘周报PDF导出,移除富沛能量模块
+- 首次登录跳过角色选择直接进入信息补充页(默认parent)+ 地址四级选择器
+- 营养师/管家小程序入驻申请流程
+- 文章/套餐审核添加详情弹窗、驳回原因显示、批量通过/驳回
+- 添加营养师/管家申请API
+- 添加营养师审核功能
+- 添加 api_endpoint/api_key 字段; fix(sku): specs 字段类型改为 Object 支持JSON数组
+- 推广/佣金配置控制器 + rebate_commission_config表; fix(promotion): 改用sysConfigService.getValue; feat(schema): 同步rebate_commission_config表
+- 活动工作流缺失端点 + 电商供应商管理CRUD; feat(schema): 同步ecom_supplier表
+- 同步健康打卡5表定义(exercise/sleep/water/meal/meditation)
+- 健康打卡 exercise/sleep/water 三个控制器; fix(web): growth-task路径修正
+- 增强搜索条件和优化样式
+- 统一审核中心 - ReviewCenter.vue + 10子组件 + 后端summary接口
+- 替换所有"即将上线"为真实跳转,补齐子维度点击导航
+- 添加 family_member_logs 表(家庭成员变更日志)
+- 家庭关系管理系统补齐 (relationship type extension + contact-to-member upgrade + family_member_logs + relation graph shapes)
+- 新增供应商商品管理功能
+- 为天盘卡片添加今日宜忌提示
+- 实现天盘详情页展示周/月趋势
+- 实现五行吉位算法
+- 对接后端接口为家庭天盘提供动态数据
+- 商城营销菜单新增家庭收益和收益提现审核入口
+- 家庭推广体系重构 P3+P4
+- add models field and agnes-2.5-flash model
+- 添加家庭天盘功能到心页面
+- 创建身/心/智/行四个维度专属内容组件
+- member-detail 维度专属内容动态组件插槽
+- add FamilyEarnings entity/mapper/service/controller + fix ButlerController bean name conflict
+- add cfc-web butler admin UI + ButlerCommissionService + scheduled settlement
+- add AdminButlerController + ButlerServiceRecord/CommissionSettlement entities
+- 按中版本分文件存储 changelog,CHANGELOG.md 作为索引页显示最新版本
+- skip version bump if only chore/engineering commits
+- butler 管家服务 - 申请/档案/分配 + DB迁移
+- add butler entities + migration + schema
+- 供应商上下级关系体系 (supply hierarchy)
+- 商城页新增会员升级营销触点 — 首页/购物车/结算页/支付页升级提醒
+- 发现页新增会员升级营销触点 — 商品详情页立省横幅+发现页推荐卡片
+- add dan_reports - assessment reports and processing scripts
+- 肠道菌群报告详情页 + 上传日期评分优化 + 身页面重构 + 首页角色分流
+- 新增家庭关系联系人组件 FamilyRelationshipSection
+- RepurchaseReminderScheduledTask runs daily at 2 AM
+- dimension-product query + repurchase-reminder service logic
+- add dimension-products + repurchase-reminders endpoints with DTO fields
+- 6个管理端表单页增加保存成功确认对话框(继续添加/关闭)
+- AI conversation memory - migration 82 for ai_conversation_summary + ai_user_facts tables
+- CartService.buildCartItemDTO builds specDesc from ProductSku.specs JSON when skuId is present
+- 五行能量配置管理
+- 增强五行雷达图可视化
+- 管理端功能优化
+- 五行相生相克前端展示
+- AI对话记忆层 - 会话摘要+关键事实+意图感知上下文注入
+- productSpecMap API + Ppoint API 重构 + 供应商管理员搜索修复
+- products/cart 表新增 SKU 规格字段
+- admin/user/search 供应商选管理员接口 + 修复 CircleService 循环依赖
+- 添加OctopusGraph关系健康组件
+- 维度页面缺口修补(Phase1) + 圈子系统(Phase2)
+- 商品推荐 Phase 3-5 — FamilyContextService Dify输入 + AIChatController userId + 复购提醒
+- 电商 + 推荐系统 + 阅读统计 综合升级
+- wire FamilyMember birth fields + User hobbies/dietPreferences + profile history through service/controller/migration
+- UserProfileHistory entity + mapper + schema.sql for tracking profile changes
+- add hobbies + dietPreferences to User entity + UpdateUserDTO
+- add birthHour/birthWeight/birthPlace/isCesarean to FamilyMember entity + DTO
+- add article placeholder cards on action home page
+- 商品推荐维度映射 + 复购提醒 + 供应商/规格迁移补全
+- 电商体系升级 — 供应商/规格/推荐日志 + 五维能量富维度详情 + 产品推荐
+- DAN报告上传 - 集成到mind/wisdom维度页面
+- DAN报告上传 - 前端API + report-upload页面
+- DAN报告上传 - Controller端点 + 维度分数更新
+- DAN报告上传 - 创建DanReportParseService (A2/B4解析)
+- DAN报告上传 - 实体字段 + 数据库迁移80
+- clean dimension tabs + styled action articles
+- TianpanService 引入缓存逻辑 - DB持久化每日运势和年度能量
+- 产品订单退款系统 - 余额不足待退款队列、管理员中止、提现/商品双路退款
+- 家庭天盘完整功能 - 核心服务+控制器+DTO+前端页面
+- 退款队列系统 - 待退款自动重试
+- 确定性差距修复 - P0全部 + P1部分 + P2/P3核心完成
+- 变更日志弹窗宽高加大至900px/700px
+- enhance PpointService with save/delete/query methods and English javadoc
+- add PromotionTierEvalService and daily scheduled task for tier check
+- promotion tier system, teacher message unread badge, FamilyEnergyBar collapse
+- integrate promotion tier scaling into commission settlement + DB migration
+- add PromotionTierConfig entity/mapper for configurable promotion tiers
+- 确定性差距修复 - P0全部 + P1部分完成
+- 一生一世家庭会员订阅系统 - 编译修复与完善
+- DAN测评市场转化全链路实现(Phase 1-5)
+- tongue diagnosis as health report type
+- AI管家会话管理 - ButlerSession实体/服务/控制器 + 迁移42
+- 统一四个Tab页面的家庭关系卡片组件 + 齿轮图进入成员维护
+- emotion checkin add video capture + enhanced AI simulation
+- 五维幸福矩阵『身』由『主动健康』更名为『根基永固』
+- split admin/teacher dashboards, enrich admin with 8 stat cards, ECharts charts, system health panel, 8 quick actions
+- purchase field config UI + consignee mini-program pages (P2-P3)
+- enhance health reports page and add draft audit UI
+- consignee + purchase field module (migration, entity, mapper, service, controller)
+- add admin activity creation and management features
+- family members empty state — always show as entry point
+- redesign article-center with search/nav/dimension-param; enhance mind/articles with search and unified detail
+- unify article entry points to article-center
+- redesign family-members page with gear entry, detail modal, edit permissions
+- add /api/family/member/editable endpoint
+- add FamilyRelationshipService, refactor FamilyMemberService for bidirectional relations
+- add family_relationships table with entity/mapper/migration
+- radar chart dual-line support (avg + user cognitive scores)
+- radar chart dual-line support (avg + user scores)
+- v1.0.11 - table overflow scroll fix + Layout sidebar scroll fix
+- 综合更新 - 后端服务修复、前端页面优化、管理端功能扩展
+- add pointsUsed/moneyAmount to ProductOrderDTO + checkout points UI + noMoneyPayment handling
+- product order hybrid payment + shop page refactor + DatabaseInitializer merge conflict resolution
+- 添加供应商管理员(supplier_admin)角色及供应商管理功能
+- admin/teacher 页面全局搜索 + 统一 admin-page 样式
+- 心首页关键信息卡片 — 家庭+个人双栏概览
+- health report Phase 2 - match confidence, candidate selection, auto-create member
+- supplier distribution system - entities, services, controllers, and admin UI
+- fuse Western astrology with Chinese zodiac for annual energy calculation
+- 文章活动工作流状态管理前端页面
+- 文章活动工作流状态管理API
+- 饮食/文章管理完善 + 供需分发系统文档
+- ActivityEdit 表单校验 + 创建成功弹窗
+- update food-list.vue with full nutrition fields and recommendation index display
+- 自动版本号递增 + CHANGELOG.md 生成
+- add /api/health/foods/by-family endpoint and health report trigger for food index
+- add FoodRecommendController with index/history/by-family endpoints
+- add FoodRecommendService sourcing index from report scores
+- update Foods.vue table columns and dialog fields with full nutrition input
+- add FoodRecommendIndex and FoodRecommendIdxLog entities with mappers
+- add food_recommend_idx and food_recommend_idx_log tables, fix kcalPer100g JSON mapping
+- 订单详情页 + 订单/商品管理完善
+- 商品管理前端 — 列表/分类/编辑/SKU组件 + DimensionWeightPicker修复
+- 新增商品管理 + 订单管理 API
+- 新增Cart/SystemConfig模块 + 家庭角色DTO/组件 + 设计文档 - 新增购物车实体/CartItemDTO/CartMapper/CartService - 新增系统配置实体/SystemConfigMapper/SystemConfigService - 新增家庭角色相关DTO(Create/Info/Update) + NutritionProfileService - 新增 FamilyRelationshipSection 前端组件 - 新增四维度首页及家庭成员角色系统重构方案文档
+- teacher dashboard + activity admin API enhancements
+- start.sh 支持本地外部配置,数据库凭据通过 -D 参数注入
+- after-sales system — apply/list/detail pages + mock logistics + profile/order entries
+- activity-detail 补充 formatDate 工具方法 + paid/checkin 状态增强
+- activity/activity-detail 报名同步增强 - formatDate / 付费不退费 / paying 状态
+- 活动详情页报名+签到全流程 + 付费确认 + 日期格式化 - 新增 formatDate() 方法统一日期显示格式 - 新增付费活动报名确认弹窗和退费说明 - 新增报名状态检查(pending/approved)、取消报名功能 - 新增签到状态管理和 checkinTime 渲染 - discover-detail 和 discover 双路径 activity-detail.vue 同步增强
+- 文章审核系统 + 商城完善 + 管理端升级
+- 新增 shop/index 店铺首页 + 修复 article-edit.vue :style 规范 - 新增 cfc-frontend/pages/shop/index/ 店铺分包含入口页面 - article-edit.vue: 将 :style 复杂内联表达式改为 dimStyle() 方法
+- add HealthDimensionsSection component for inline health dimensions display on body page
+- 创建身维度5个详情页面并绑定快捷入口
+- 替换EMI四维条形图为大五人格雷达图,右上角添加测试按钮
+- 活动模块后端+前端接入 - 初始化活动表/Product表字段扩展, DimensionActivities组件接入活动列表, 各维度页面导入getActivityList
+- add audit workflow to web admin panel
+- 简化 AIFloatingAvatar 组件 + 添加到各页面 + 更新 AGENTS.md - 移除 AIFloatingAvatar 脉冲动画,简化组件 - 在 body/index、index、mind、wisdom、profile、activity 页面添加悬浮头像 - AGENTS.md 新增 :class 绑定规则(小程序不支持方法调用)
+- add my-posts page with status badges
+- add article edit page with publish and draft
+- add article detail page with AI quiz
+- add article list page with tab navigation
+- register subpackage in pages.json + add API methods
+- add publish, my-posts, and audit endpoints
+- enhance activity list - view ended/published activities, disable edit for non-draft, click participant count to review registrations inline
+- add AI questions endpoint + submit answers with scoring
+- 规划师端活动管理 — 活动创建/编辑/发布
+- add article-center implementation plan
+- 补充AI对话和profile页面变更
+- add Article entity audit fields + ArticleQuizRecord
+- add article-center implementation plan
+- create activity home page with 3-tab structure
+- 添加活动中心页面子包注册
+- 新增心愿兑换积分检查和扣除方法
+- 成长记录新增getRecordsByChild接口
+- 新增grantEnergy和deductForWish接口
+- 重写DimensionWeightPicker为slider+数字输入,动态max限制总和≤100%
+- add 热门活动 and 推荐阅读 sections to index and body pages
+- redesign SharePoster with brand header, warm orange gradient, content card, and dimension dots
+- DataMigration controller and service adjustments
+- schema v6 with shop order columns migration
+- 修复打卡/能量接口 400/500 错误
+- 推广系统九大功能升级 (T1-T9)
+- add EmotionAlert admin management page with list and resolve actions
+- add getAdminAlerts method to EmotionAlertService for admin page pagination
+- auto-create follow_up on alert resolve in EmotionAlertService
+- auto-create follow_up record when crisis alert is resolved
+- push WeChat template notifications for high-severity alerts
+- add WechatAlertTemplateService for crisis alert push via WeChat template messages
+- 健康记录模块 — 日常打卡/成长记录/维度权重管理
+- 活动报名服务 + TrialMembership入门会员
+- 商城重构 — 订单生命周期/SKU/地址/退款/超时取消
+- 认知评估增强 — 行动清单/常模参考线/历史趋势/训练方案系统
+- FamilyRelationGraph升级compatibilityMap属性+mind首页入口路由更新
+- 新增family-dashboard家庭天盘页面+duo-compatibility双人合盘详情页
+- TraditionalMirrorController新增family-dashboard+compatibility两个端点
+- CompatibilityService算法引擎+9个DTO定义+FamilyMemberAttributeService fromJson/toJson公开
+- 兼容性数据表(entity+mapper)+schema seed(zodiac_pairing/blood_type_pairing/life_number_relationship)
+- 激活会员中心页面导航入口
+- redesign membership page with loading/error states
+- add Canvas-based trend charts and index page updates
+- upgrade emotion-checkin pages with 2D affect grid and Plutchik wheel
+- add PHQ-9/GAD-7 screening page and route
+- add PsychCrisisBanner component for crisis alerts
+- implement emotion alert service with risk detection
+- add emotion alert entity and VO
+- implement mental health screening service with PHQ-9/GAD-7 scoring
+- add mental health screening entities and DTOs
+- implement emotion checkin service with trend/report + alert wiring
+- add emotion entity fields and trend/scatter point DTOs
+- add fine-grained emotion fields to DTOs and VO
+- enhance virtual team management with invite controller and scheduled tasks
+- 浠宝/福宝IP形象系统 - 用户可选择AI助手形象,所有AI对话携带形象标识
+- 舌诊功能 + 身首页改造 + 全域指标管理
+- virtual team management + unified invite system
+- 关系健康概览 + controller familyId推导
+- 关系质量评估+互动记录+智慧维度临时页面
+- skip captcha verification in test mode (VUE_APP_SKIP_CAPTCHA=true)
+- two-phase health report upload with preview confirm page
+- 补全 Activities.vue 缺失字段 - 封面图上传/活动类型/地点/人数/价格/可见范围/签到积分
+- add AI emotion recognition to emotion-checkin page
+- add report draft module and food recommendation
+- skip captcha verification in test mode
+- move three pillars inside the product overview section
+- restructure sections - swap pillars before capabilities, rename
+- add happiness three pillars section with dimension mapping
+- add health-norm-config and health-data-source menu entries
+- admin controller, norm/data-source config views, tests
+- dimension questionnaire, detail page, and entry navigation
+- 数学闯关前端页面
+- 数学闯关后端服务
+- 新增肠脑轴情绪打卡功能
+- add EMI and Big Five personality fields to dan_assessment_results
+- 开屏splash页+tabbar切换过渡动画
+- 会员体系 + 推广裂变 + 优惠券 + 成长任务模块
+- add newbie task reward system with 6 task types
+- add health-dimensions navigation entry
+- wave 1 - trend, product-energy, dify, body energy integration
+- referral team features - team list, invite, share poster
+- wisdom dimension page redesign - 14-block full layout, cognitive report, self-quiz, training hub
+- 统一家庭成员管理 - 后端双表+前端统一入口+管理端CRUD
+- add ecommerce DDL blocks to DatabaseInitializer
+- add ecommerce DB schema tables, config, and design spec
+- migrate checkout/payment/logistics pages to CFC API
+- migrate address.vue and address-edit.vue to CFC API
+- migrate cart.vue to use CFC cart API
+- enhance ProductOrderService/Controller and add LogisticsController
+- refactor PaymentService with WeChat Pay V3 integration
+- enhance ProductService and ProductController
+- add AfterSales module (entity+mapper+service+controllers)
+- add UserAddress module (entity+mapper+service+controller+region)
+- add Cart backend module (entity+mapper+service+controller)
+- add Discount module (entity+mapper+service+controller)
+- add Distribution system module (entities+mappers+service+controller)
+- add ProductCategory module (entity+mapper+service+controllers)
+- add ProductOrder entity fields and OrderItemVO DTO
+- add Product entity fields (categoryId, distributionSystemId)
+- enhance web admin growth records with source type filter and new columns
+- refactor growth record frontend pages with source types, upload, and supplement
+- add growth record API functions and page registrations
+- add growth record upload, supplement, dedup-check endpoints
+- add report parsing service and growth record service with dedup
+- add growth record DB schema, entity fields, and PDFBox dependency
+- TabBar改文字+RelationshipPicker组件+编辑关系功能
+- health-dimensions-phase1 implementation + compile fixes
+- 活动管理功能完善——后端Service层+Web端CRUD+审核+小程序商品编辑
+- 产品区改为数据采集→数据分析→方案确认→执行跟踪闭环描述
+- 多源数据整合分析→健康档案,作为平台核心能力展示
+- DAN成长档案→成长档案,菌群检测→健康档案 统一产品命名
+- 新增运营推广文档与配置文件
+- 新增GEO专题页面并优化产品定位
+- 网站样式与交互优化
+- 数据库配置切换为本地连接
+- FAQ结构化数据扩展至20条,同步前端FAQ展示
+- add food recommendation API endpoint, FoodService.listByReportId, and frontend food display in health report
+- save food suitability data on health report creation; add reportId/score to Food entity
+- add food suitability parsing to PdfParseService
+- 登录页品牌升级 - 企业官网设计语言
+- add nutrition-related entities and mappers
+- 营养师管理页面与登录页优化
+- TabBar重构与健康报告页面
+- 营养评估与饮食推荐功能
+- 五维沙盘粒子流动画
+- 首次登录引导浮层组件
+- 开屏页与发现页五维价值传达
+- 登录页背景色改为品牌暖橙
+- add frontend components, docs assets and .gitignore for Python
+- Landing page optimization - Schema.org, FAQ, stats, testimonials, CTA, content
+- 更新企业官网品牌色系与Logo为天空蓝主题
+- add cfc-frontend/static assets (logo + tab icons)
+- 添加网站品牌 Logo 资源
+- 添加亿图腾企业官网页面
+- remove danshop subsystem
+- 家庭邀请二维码功能(小程序码+令牌+落地页)
+- implement diet recommendation system (frontend)
+- implement diet recommendation system (backend)
+- health report PDF upload + login redirect fix
+- article publish-review system + gut flora report parsing
+- add gut flora summary fields to health report schema and refactor mind page
+- register dimension store module in Vuex
+- add routes for dimension-config and knowledge-base
+- add dimension config and knowledge base admin pages
+- add dimension selector, tag selector, knowledge table and dialog components
+- add dimension and knowledge base API and Vuex store
+- add dimension config and knowledge base admin controllers
+- add knowledge base service with Dify sync support
+- add dimension config and knowledge tag services
+- add mybatis mappers for dimension and knowledge base
+- add dimension config and knowledge base entities
+- add nutritionist/teacher/admin views
+- add role-to-permission mapping utility
+- add multi-role JWT support (nutritionist/activity_admin/article_admin)
+- add nutrition chat UI to frontend
+- wire nutrition API into controllers + config
+- add health analysis & recommendation services
+- add nutrition recommendation DTOs
+- add multi-role support (nutritionist, activity_admin, article_admin)
+- 富沛(我的)页面改造 + 心愿单入口
+- 心智页添加心/智双Tab结构
+- CFC-DanShop集成 - 支付代理+批量迁移
+- add FamilyRelationGraph canvas component to body/mind/action pages
+- update web admin pages with slider captcha and format utils
+- update frontend pages, components and splash screen
+- update backend entities, services, DTOs and configs
+- add precision nutrition & health report survey flow
+- add showToFamily toggle in profile/child-edit, clean up mind page
+- add FamilyMemberCard/FamilyMemberStrip components, wire into pages
+- add contact management feature (ContactCard, ContactImport, contact-detail)
+- add showToFamily field to Child/User, update HealthReport
+- add getVisibleMembers and updateVisibility to UserService
+- configure Dify API key for AI chat
+- add showToFamily to ChildInfoDTO/UpdateChildDTO, create FamilyMemberVO
+- add show_to_family column migration to children and users tables
+- 心智模型重构 — DAN 70% + 先天 30% + 行为修正
+- 健康能量 v1.2 心智增强设计 + 会员分销/财富模块功能完善
+- migrate TabBar to 5-tab (首页/身体/心智/行动/我的), move shop→action path
+- add web admin pages for article management, energy sandbox, withdraw audit, profit rate
+- add energy/body/mind/promotion/stats pages, update existing pages for energy system
+- add frontend components, custom-tab-bar and global styles
+- restructure WeChat miniprogram with subPackages to fix error 80051 (source size 3172KB > 2MB)
+- update backend config, schema, entities and services for new modules
+- add backend services and controllers for energy/commission/article/badge/game/invite modules
+- add backend entities, mappers and DTOs for energy/commission/article/badge/game modules
+- 商城+服务商页面更新
+- 心愿模块+任务管理模块更新
+- 组件升级(claymorphism适配+PlayfulCard重构)
+- 重构心愿页
+- 重构家长端首页
+- 重构孩子端首页(claymorphism设计系统)
+- 统一品牌色系、基础样式与页面配置
+- Product/ProductOrder/SysConfig/Admin 后端 Controller
+- api.js 追加商品/订单/系统配置 API
+- SysConfig 实体/Mapper/Service 实现
+- ProductOrder 实体/Mapper/Service 实现
+- Product 实体/Mapper/DTO/Service 实现
+- 创建发现页作为登录前首页,未登录重定向
+- 提取五行沙盘为独立组件,替换首页内联实现
+- 商品/订单/系统配置 3 张表 DDL + 种子数据
+- Web管理端添加服务商审核页面(审核列表+通过/拒绝操作)
+- 个人中心添加会员中心/服务商中心入口及状态检测
+- 添加五行能量沙盘(溪艾福)组件和溪福俱乐部占位页面(发现/商城/入驻/中心)
+- 更新小程序TabBar(发现/商城)并注册溪福俱乐部页面路由和API
+- 实现服务商入驻/审核/查询API(入驻申请+审核列表+审核操作)
+- 用户实体添加服务商/家庭管理员字段并新增DB迁移
+- 实现模块 A-E 完整功能
+- 新增成长规划Controller、任务统计服务和申请记录实体
+- 小程序前端功能增强和重构
+- 规划师模块新增首页统计和家庭信息接口
+- 实现任务批量操作功能(TASK-016)
+- 添加任务时长字段(TASK-011)
+- 修复DataMigrationService性别映射、幂等性和日志
+- 重构Web管理端布局路由和API集成
+- 完善数据迁移服务和用户认证流程
+- 添加sfms多数据源配置和数据迁移服务
+- 补充测试用例并修复编译错误
+- 添加Service接口规范(TaskService,RewardService,UserService)
+- 实现成长规划师模块完整功能
+- 实现指导师功能完整迁移
+- 实现小游戏作为任务类型功能
+- 添加数据库字段运行时自动同步处理器(SchemaSyncHandler)
+- 实现心愿功能(wishes)替代rewards/reward_wishlists
+- 实现任务提醒和统计功能
+- 实现用户操作日志功能
+- 实现用户操作日志功能
+- 完善任务重复设置功能
+- 实现V1.2 P0需求
+- 更新需求文档需求细则
+- 更新需求文档(V1.2)
+- 添加自动化测试套件,实现100%需求覆盖
+- 实现小游戏积分系统、连续打卡功能及问题修复
+- 创建分层AGENTS.md文档系统
+- 完善Web管理端API和路由
+- 完善前端页面和组件
+- 新增指导师套餐和绑定功能控制器
+- 实现前端地址选择和区域匹配功能
+- 添加街道地址功能支持家庭和指导师区域匹配
+- 完善Web管理端页面和API集成
+- 新增实体类、Mapper和Service支持多媒体和会员功能
+- 添加用户角色选择、生日性别字段及家长孩子身份切换功能
+- add AGENTS.md files and fix AdminLoginDTO password field
+
+### 重构
+- 成长页面调整 — 戒备/饮食推荐从健康移至成长
+- 去掉API自动传memberId——child角色从JWT获取currentMemberId,parent不自动选孩子
+- LangGraphAdmin 重构为标签页布局 + 真实请求历史面板
+- 方案制定页改为分步表单UI,隐藏AI对话界面
+- 清理重复的 loadAllData 调用
+- 标记旧佣金结算链路为@Deprecated
+- 提现流程改为基于CF值余额
+- upgrade页移除支付/优惠券逻辑,改下一步跳转pay,修复会员状态判断bug,支持划线原价
+- 重设计我的页面 - 用户卡片+数据概览+五维能量+待办提醒+分组菜单
+- 重设计'我的'页面为信息集散中心 - 用户卡片+数据概览+五维能量+待办提醒+功能菜单
+- 重设计家庭挑战主页 - 移除重复的快速创建区,模板移至弹窗内,简化布局
+- 首页重新设计 — 对齐新TabBar页面模式
+- 移除维度页中的活动/文章/商品区块,仅保留能量相关内容
+- 移除family-guard弹窗,无家庭时自动创建;移除创建/加入家庭按钮
+- restructure tabbar from 5-dim to 4-tab + center 5-dim launcher
+- 家庭关系卡重设计为FAB浮标+扇形展开,移除创建/加入家庭按钮(已自动创建)
+- 清理已废弃的 relationship_types 表(迁移169)——移除活路径 ALTER 代码、DROP TABLE 从死代码移到活路径
+- rename childId to memberId across full stack (childId was always family_member.id)
+- 健康报告上传页 report-upload.vue 重构
+- 移除死页面 plans.vue,权益对比保留在 upgrade 页
+- gut-testing 删除 gut-kit-6/8 图片块,更新 8 大检测维度解析长图为压缩版
+- 统一五维首页商品推荐组件为 DimensionProducts
+- 移除 gut-testing 截图占位块和 gut-kit-3 微信解读CTA块
+- 移除 gut-testing 产品页 gut-kit-2 寄回流程图和 gut-detail-banner 长图
+- 统一活动详情和商品详情页
+- 统一文章详情页为 article-center/article-detail
+- 主动健康vs被动健康区域改为纵向布局,红绿改暖黄+青绿配色
+- redirect old apply pages to unified service role apply page
+- 富页面去掉我的邀请码区域
+- 商品列表查询参数统一为 dimensionCode
+- 按场景+角色重构测试用例,扩展至8角色27流程
+- move strain table from gut-microbiota to probiotics-science, add cross-links and new target audience cards
+- 重构10个控制器移除HttpServletRequest手动userId获取改用@RequestAttribute注入
+- 更新添加孩子入口导航至家庭成员页面
+- 废弃独立添加孩子页面,重定向至家庭成员
+- 年龄优先判定孩子角色
+- 替换并新增证据截图(CA Cancer/Bicarb/Mol Cancer)
+- 精简症状识别表(+酸性微环境+抗炎闭环)
+- 用科普文章链接替换免费领取白皮书文案
+- 我的页面改为仅个人信息+配置,移除富相关组件
+- 行页面移除成长里程碑(OctopusGraph组件+action页面清空)
+- users.role ENUM → VARCHAR(20); add migration 99
+- make indicator ranges computable with min/max + status levels
+- redesign card UI with cover gradient and badge layout
+- 删除成长计划页面并合并推荐商品与活动为统一信息流
+- 扁平化营养师/管家入驻申请页面结构 + 统一import路径为@别名
+- 全局UI文案套餐→任务模板重命名
+- 审核中心提升为一级菜单, 删除老的5个子审核页面
+- rename FamilyRelationshipSection -> OctopusGraph; fix: health chart shows zeros when no data
+- 重构FamilyRelationGraph为全Canvas force-directed关系图
+- 删除 UserQuickEntry 组件及全站引用
+- remove FamilyRelationshipSection (重要关系组件) from body/mind/wisdom pages, keep unified FamilyRelationGraph
+- remove relationship components from body/mind/wisdom pages
+- merge health actions into quick-action bar, remove separate report/nutrition sections
+- 全代码库替换术语 分销→销售 分润→返利 裂变→推荐 分佣→佣金
+- remove login gate from activity/product/article detail pages
+- remove reading timer from article detail
+- unify admin page styles with global CSS design tokens
+- merge wechatLogin and wechatPhoneLogin, capture phone from WeChat
+- rebuild admin dashboard
+- TabTransition 动态化 - 数据就绪后才自动消失
+- 合并工作台至首页,删除独立路由和菜单
+- 登录页左侧品牌区重新设计 — 五维能量轮盘
+- replace inline 推荐阅读 with DimensionArticles组件 on action/mind pages
+- 测评预约服务重构 + CreateWishDTO新增商品字段 + 支付服务扩展
+- 子包重组 - 详情页移至 *-detail 目录降低主包大小
+- 重构智页面布局并提取推荐阅读为共享组件
+- 重构菜单分组+权限体系
+- remove 智·认知 tab and add 传统文化 sections
+- 移除DAN等级相关字段
+- 数据库迁移DDL+seed, HealthReportController集成refreshFromGutReport, 前端7维字段修复
+- rewrite FamilyRelationGraph with View+Canvas hybrid layout
+- extract API base URL to config.js with multi-env support (.env.development/staging/production)
+- zxyj → cfc 全局重命名
+- Web管理端Layout重构和规划师模块完善
+- 实体模型更新及后端服务增强
+- 为所有44个Service类添加Interface规范
+- 优化控制器导入和用户相关功能
+
+### 文档
+- 我的页面电商风格改造设计
+- 通关解锁计划状态更新为后端完成+前端核心完成
+- 新增实施计划 - 13任务分解,含迁移/Service/Controller/前端组件/管理端全链路
+- 小程序空功能实现计划(P0-P3分类,共23项)
+- 设计升级 v2.1 - 三关递进+沙盘个人/全家切换+增值关卡+六步法关卡总表
+- 通关解锁功能设计 - 自检门禁解锁能量沙盘+增值关卡+软引导
+- 知识库菌-疾病关联表格新增问题相关性/证据强度列
+- 新增新用户引导与留存设计方案
+- 通用报告块渲染引擎实施计划
+- 通用报告块渲染引擎设计文档
+- 新增规划与设计文档 - 内部沟通/合伙人PPT/家庭挑战参与
+- 成长页面重构为干预中心设计文档(今日进度+持续追踪+里程碑+定期调研)
+- 补充富维度登录前/后设计 + 五维统一视觉规范
+- 更新 PROJECT-OVERVIEW.md v2.7 — 增加 LIFETIME 终身会员全栈完成记录
+- 登录前页面改版设计 + 维度介绍卡片规范
+- 富维度页面 redesign 设计文档 (财富之泉方案)
+- 健康数据中心实现计划(12任务,3批次)
+- 健康数据中心实现计划(12任务,3批次)
+- 健康数据中心设计文档(看见·主动健康闭环)
+- 平台终身会员(LIFETIME)设计文档(方案A: 等级扩展+实时聚合+管理员审核)
+- 推荐组件移除维度实现计划
+- 补充推荐组件移除维度设计细节
+- 推荐组件移除维度参数设计
+- 会员支付/升级实现计划(upgrade→pay→result 三段式 + 原价配置)
+- 会员支付/升级页面设计(方案B:upgrade→pay→result 三段式 + 原价配置)
+- 更新 PROJECT-OVERVIEW v2.6 - TabBar 重构完成状态
+- 更新 TabBar 重构计划为 completed 状态 + 完成情况清单
+- add TabBar redesign spec + restructure plan (4 native tabs + 5-dim launcher + wuxing dashboards + theory layer)
+- 家庭成员关系条增强实现计划(FamilyMemberStrip)
+- 家庭成员关系条关系展示增强设计文档
+- 家庭挑战参与机制实现计划
+- 更新 PROJECT-OVERVIEW.md
+- 更新参考资料/dan_reports 提取脚本(extract_all_types +468行重构,merge 与 type_detector 小修)
+- add tabbar restructure implementation plan
+- 修复 momus 二轮评审问题(路由命令/打卡状态校验/奖励幂等条件更新)
+- 家庭挑战修复计划按 momus 评审修正(完整方法体/登录角色门控/全员奖励发放/精确paths)
+- 家庭挑战断点修复实现计划 + PROJECT-OVERVIEW 索引更新
+- 家庭挑战 spec 自审修正 - 澄清家长修改进度表述
+- 家庭挑战使用流程梳理 v1.0 - 现状基线 + 断点清单
+- 新增滔达福项目总体介绍PPT成品(V1/V2)
+- AI创新项目大赛新增行业应用场景,五维能量标签更新为身智富行心
+- 新增AI创新项目大赛项目介绍文档(浠艾福定稿:AI健康教练/五维相生溯源算法/双培强基成果)
+- 库存管理设计文档(入库单+流水+盘点+预警+套餐拆库存)
+- 合并7个知识库为统一知识库JSON(v2.0 254.9KB,12模块,数据保真修正)
+- AGENTS.md 追加 LangGraph 启动命令 + PROJECT-OVERVIEW 关系域标记已实施
+- 报告解析迁移实现计划
+- 报告解析迁移设计 — Java→LangGraph(Python算法+LLM兜底)
+- 会员体系重构实现计划(修正apply折扣语义+8个单测)
+- 会员体系重构设计-统一定价+优惠券发放/积分兑换
+- mark report-confirm member-selector plan steps complete
+- PROJECT-OVERVIEW 标记 report-confirm 选择面板计划已完成
+- report-confirm 被检测人选择面板整合实现计划
+- spec self-review - 统一 selectAndClose 选择逻辑 + 回填字段明确化
+- report-confirm 被检测人选择面板整合设计
+- 添加商品SKU选择器设计文档和实现计划
+- 注册引导实施计划完成
+- 新用户注册引导+个人信息按需补充/回写实施计划
+- 关系问卷与互动记录功能补全实施计划
+- 规格自检修正(POST /api/user/info、交叉引用)
+- 新用户注册引导+个人信息按需补充/回写设计稿
+- 关系问卷与互动记录功能补全设计稿
+- 商品赠送会员实施计划
+- 商品赠送会员功能设计(方案B 独立规则表)
+- 同步设计文档 §5.1/5.2/§8 与 PROJECT-OVERVIEW 状态
+- 假算法题材网络小说章节库 51 章
+- 虚拟支付实施计划 + PROJECT-OVERVIEW 索引更新
+- 章节草稿及规范文档同步更新引用表述
+- 成书稿移除「浠艾福家庭健康报告」品牌化引用,改中性表述
+- /运营: 小红书内容 D14/D15/D16、第三篇-月入2万的家庭、发布指南、README 同步更新
+- 《家的算法》全书插图占位33处+插图规划清单+知识产权查证档案(24730/章鱼图/珍珠图)
+- 《家的算法》全书审阅修复+藏宝图改名+第3-7章补本章要点(人物一致性/章节引用/数据矛盾/行动卡格式统一)
+- 家庭成员页面重设计实施计划 + 饮水对比移动端轮播式重设计
+- 《家的算法》第3章补充水主题延伸阅读书单(李复兴系列3本)
+- 《家的算法》科学看见主线补强(财务/关系体检工具+菌群检测桥段+3个新家庭案例)
+- 分享功能改造实施计划(海报组件参数化+5项分享入口)
+- add D11-D14 drafts, post8/9 content, D8/D9 tracking data and process files
+- 分享功能改造设计(海报组件参数化+5项分享入口)
+- 家庭成员页面重新设计 - 设计文档
+- 文章评论审核系统方案与实现计划
+- mark service role apply design as implemented
+- superpowers PROJECT-OVERVIEW and service-role-apply design + plan
+- 文章详情页功能补充设计 — 自动完成阅读+评论系统+AI答题
+- 家庭成员关系卡片修复方案
+- 家庭成员关系卡片差距分析 — FamilyMemberStrip vs 需求设计
+- 能量行为配置与系统功能关联机制设计
+- 能量配置管理系统设计 — 行为配置+消费配置+转换规则
+- 五维能量来源分析 — 19个来源+消耗+日上限
+- update PROJECT-OVERVIEW to v2.1 - Phase 4 ✅ 已完成
+- 维度筛选设计分析 — 活动/商品/文章/任务四实体对比
+- 更新成员选择分析 — 按childId/memberId/无参数分类列出全部141个功能接口
+- 家庭成员选择能力分析 — 梳理childId/memberId接口
+- 补充活动流程图 — 详情页分享/报名按钮 + 评价流程
+- 新增 checkout 地址管理改造设计文档和实施计划
+- 新增财富能量兑换优惠券流程图
+- 新增佣金结算流程图 — 两级推荐佣金+提现+结算全链路
+- 新增支付流程流程图 — 覆盖订单创建/支付/退款/提现全链路
+- 全部31个流程图重绘 — 数据上连线+中文标注+分层+完整性分析
+- update PROJECT-OVERVIEW to v2.0 (2026-07-28)
+- add report management design spec
+- 数据移到连线标注 + 中文命名
+- 重构成长档案流程图 — 按阶段/分层/数据传递重绘
+- rewrite publishing guide with 5-dimension and knowledge point framework
+- PROJECT-OVERVIEW v1.9 - E2E Phase 1 docs + resolve merge conflicts
+- 创建AGENTS.md销售文章目录+交叉链接审计
+- PROJECT-OVERVIEW v1.8 - 健康维度重构全完成(Tier2 VOICE/PHOTO + canvas雷达图),商品规格最小购买数限制已实施
+- PROJECT-OVERVIEW - 添加管理后台手机自适应设计文档和实施计划索引
+- docs:
+- PROJECT-OVERVIEW v1.4 - Phase 5全栈完成 + 文档审计同步
+- PROJECT-OVERVIEW - 健康维度重构状态更新为后端框架已实现
+- PROJECT-OVERVIEW v1.7 - 同步富维度/文章发布/权限系统完成状态
+- PROJECT-OVERVIEW v1.6 - Phase 4 status sync (健康7维/成长档案/供应商体系后端已实现,供应商订单修复完成)
+- comprehensive plan Task 5 [-5→] ✅完成
+- PROJECT-OVERVIEW v1.5 - sync P2-2/P3 active health backend status (all implemented)
+- comprehensive plan 状态审计 - Tasks 1-10 完成情况更新
+- PROJECT-OVERVIEW v1.4 - 全量状态审计
+- update TASK-P0-001 status to 已实施
+- PROJECT-OVERVIEW v1.3 - 辈分重构全栈完成 + 状态同步
+- update PROJECT-OVERVIEW.md v1.3 - 辈分重构全栈完成状态同步
+- PROJECT-OVERVIEW v1.2 状态审计校正(辈分重构→后端完成、推广体系→前端基础就绪、电商扩展→暂停、新增DAN双角色模型记录)
+- update PROJECT-OVERVIEW.md v1.2 with Phase 2-4 recategorization and comprehensive implementation plan
+- update PROJECT-OVERVIEW.md - P2-1 marked complete
+- 主动健康六阶模型改进设计文档
+- add implementation audit, tickler, phase1-remaining, and P0 tickets
+- 新增小红书自动化发布工作流 + 30天内容矩阵
+- unified execution plan v1.0 + PROJECT-OVERVIEW v1.2 status corrections
+- mark LangGraph Phase 3 as implemented in PROJECT-OVERVIEW
+- sync phase1-4 plan checkpoints; add langgraph start.sh; ignore .venv
+- PROJECT-OVERVIEW.md v1.1 audit calibration
+- sync PROJECT-OVERVIEW.md Phase 1 statuses with git-history verification (encoding fix)
+- sync PROJECT-OVERVIEW.md Phase 1 statuses with git-history verification
+- LangGraph Phase 2-4 implementation plans
+- LangGraph migration design doc + Phase 1 implementation plan
+- add AxonHub model routing and multi-model workflow to upgrade plans
+- SB3 upgrade implementation plan with task breakdown
+- Spring Boot 3升级 + Dify替代实施计划
+- add Dify migration feasibility analysis
+- add implementation plan for mini-program and Java backend modifications
+- add analysis of personalized descriptive content to extract from reports
+- add gap analysis between extraction results and miniprogram/backend
+- 更新菌群报告设计 — 仅展示个性化数据+知识库弹框+异常颜色箭头
+- update v5 export script, add knowledge base directory
+- 菌群报告页面重构设计规范(查看+编辑混合模式)
+- 添加DAN测评服务闭环流程设计文档
+- add extracted JSON reports for 5 test PDFs
+- refactor to single-PDF-in structured JSON mode + add phylum/disease bacteria tables
+- cleanup old scripts and temporary CSV artifacts
+- add bacteria composition tables extraction (core genus/probiotics/harmful/pathogens) for triplet format
+- fix JSON triplet whitelist filtering + name/age/gender regex + vitamin B1/B12 overlap bug
+- fix 朱 food table extraction (compressed detection + ref lookup) + regenerate CSV
+- fix neurotransmitter dedup + regenerate all CSV with corrected data
+- fix inline extraction for vitamins/barrier/pathogens + add disease risk known names and amino acid merge
+- add PDF extraction scripts (v4 + v5 with JSON mode)
+- update ISSUE-TRACKING v17 — admin route fix + all tests passed
+- update ISSUE-TRACKING v16 with remote sync analysis and pending test plan
+- 成员详情维度分段 设计文档+实施计划
+- add CSV data and raw text from PDF extraction
+- remove deprecated extract_food_csv.py
+- 家庭推广体系重构 — 设计文档与实施计划
+- supplier-system gap-fix plan + DAN Phase 2-5 framework
+- 添加参考资料 PDF
+- ISSUE-012~015 family member fixes tracking
+- 五维功能-能量映射文档 + 缺失功能补全实施计划
+- 商品推荐功能实施计划
+- 添加富维度体系重设计划(子维度拆分+身克富杠杆+小程序富页)
+- 添加 superpowers 设计文档与确定性修复计划
+- 添加融资计划书演示文稿(PreA/PreA+轮)
+- 融资计划书PPT内容方案更新至 v1.0
+- add DAN assessment market transformation plan — full 5-phase design
+- 一生一世家庭会员设计方案 v1.1 + 双并行实施计划
+- update E2E test results documentation
+- add article system redesign design document
+- add 阶段性需求规格说明书 V1.0
+- add family member relationship conversion spec and plan
+- rewrite root AGENTS.md - compact, high-signal, removes stale refs
+- 添加数据库迁移工作流规范
+- add login-left-panel and article-center design docs
+- add activity home page design and implementation plan
+- DimensionWeightPicker 重设计规格文档
+- 重写测试矩阵为用户故事方式(v2.0/120用例) + ISSUE-004/005/006根因分析文档
+- 完整E2E测试报告2026-07-01 + ISSUE-003修复验证 + ISSUE-004/005/006录入 + 测试用例矩阵更新
+- v2.2 IP形象融入五维能量色系
+- 更新问题追踪表 ISSUE-001/003 已解决
+- v2.1 浠宝→玄凤鹦鹉, 福宝→蓝白英短
+- 浠宝(鹦鹉)/福宝(猫) IP吉祥物形象设计书 v2
+- 同步e2e测试结果文件
+- 更新测试追踪报告 + ISSUE-003根因确认 (2026-06-30)
+- 添加测试追踪系统 + 多角色E2E测试报告 (2026-06-29)
+- 更新E2E测试报告 - 第三次验证
+- 更新管理后台发布E2E测试报告 - 第三次验证
+- 更新管理后台发布E2E测试报告 (2026-06-28) 同步测试
+- 添加智页面重构和组件提取实施计划
+- 更新管理后台发布E2E测试报告 (2026-06-28)
+- 重构幸福三支柱为三支柱→五维映射框架
+- 身强体健更名为身强
+- 升级幸福三支柱为五支柱,补充身和行
+- add incremental implementation plan for 7D health dimension system
+- 添加关系质量功能(第二层)实现计划
+- update health dimensions design spec - add product-dimension integration section
+- 更新百科词条-去技术章节改第三人称加参考资料
+- 新增亿图腾百科词条(运营文案)
+- add 7-dim health model refactor plan + design spec
+- 更新README和AGENTS,同步TabBar/端口/关系管理模块
+- add health-dimensions-phase1 design plan and resolve merge conflicts
+- add mini-program promotion design and implementation plan
+- add 智维度页面重设计方案 - wisdom dimension page redesign
+- 心版块第一阶段实现计划——核心体验闭环补齐+六大补充方向
+- P1 implementation plan
+- P1 nutritionist feature design spec
+- update AGENTS.md for cfclub branch (146 commits ahead)
+- 更新企业官网文案与 README
+- P0营养师核心功能实现计划(15 Tasks,5 Waves,档案视图+缺乏分析+可视化解读)
+- P0营养师核心功能设计方案(档案统一视图+缺乏分析+可视化解读)
+- 根据企业官网内容更新项目 README
+- add health nutrition gaps fix implementation plan (5 tasks)
+- add FamilyRelationGraph redesign spec and implementation plan
+- add 参考资料 directory with PDFs
+- add gut flora report schema fix implementation plan for dev engineer
+- add admin backend controller to meal recommendation implementation plan (Task 9)
+- add web permission system design docs
+- add precision nutrition implementation plan
+- add cfc-web refactor plan + test docs and fixes
+- add cfc-web E2E test fix plan
+- add DanShop order-fix plan
+- update project knowledge base (AGENTS.md) - cfclub branch info, critical config, TabBar 5-page structure, system patterns and anti-patterns
+- trim homepage plan — 9 tasks done by remote c1ade35, keep only Task 1
+- 添加文章与活动发布系统设计文档
+- add homepage risk fix plan — 10 issues across parent-index/child-index
+- add systems-analyst role definition for OpenCode
+- add family member cards design specs and plan
+- 文档归档整理 + 行远页新增重要关系维护设计
+- 新增财富健康设计文档和实现计划(记账打卡+保单管理+能量联动)
+- add plans, specs, analysis docs for energy system, article system, wuxing sandbox, subPackages
+- add article publishing system implementation plan
+- 文章设计文档增加浏览权限控制(public/login/private)
+- 新增文章内容发布系统设计文档
+- 更正五星布局,从最左侧顺时针木火土金水,顶为心
+- 新增五维五行哲学体系设计规范,更新能量设计文档对照
+- 更新公司及产品介绍文案(五维全景幸福矩阵)
+- 新增公司及产品介绍(身心情行富五大领域)
+- 品牌名统一为浠艾福(Care Family),重写README定位为家庭健康成长平台
+- 项目名称变更 知心益家→浠艾福,重写README
+- 小程序页面重设计划
+- add five-dimension energy system design spec and implementation plan
+- 添加登录前浏览体验实现计划(7个任务)
+- 添加登录前浏览体验设计规格(pre-login discovery)
+- 现状差异分析报告 + Phase 1 商品系统实现计划
+- 添加Phase 0实现计划文档
+- 添加溪福俱乐部(CFC)设计文档和Phase 0实现计划
+- 更新需求分析文档和设计文档
+- 更新项目文档和需求分析文档
+- 更新README项目结构和技术栈
+- update design docs and directory references
+- move system design docs under docs
+- move system test docs under docs
+- move requirements docs under docs
+- 梳理任务管理需求文档
+- 更新需求完成报告,反映V1.2当前实现状态
+
+### 样式
+- 添加商城订单快捷和推广中心快捷样式
+- 重绘「身」TabBar 底签哑铃图标, 更新浠艾福项目总体介绍 pptx; gitignore 排除 .codegraph
+- 家庭挑战卡片缩水为纯展示组件
+- 心理报告上传卡片参照身页面卡片风格重新设计
+- 淡化中心太极阴阳鱼,去除黑白底色改为半透明
+- activity-detail 补充付费不退费 CSS 样式
+
+### 测试
+- 参与机制单元测试(respond/评分矩阵)
+- 身份参数加固回归测试 + 修复过期断言
+- 新增 parseDate 单元测试(iOS 兼容回归保障)
+- 端到端测试 — report_parse API + ReportParseAgent + LLM非dict防护
+- 补充近期需求变更的端到端覆盖
+- switchToMember 测试 body 类型改为 Map<String, Object>
+- fix 35+ flow-l1 test param issues (118→153 passed)
+- Phase1 - infrastructure + core roles restructuring
+- admin/health/nutrition 覆盖新增控制器
+- add v1.1 scenarios for knowledge-popup, quick-nav, edit mode
+- add unified-audit-center, guide-family-list, and vendor-product-manage E2E tests
+- fix admin routes in E2E tests to use http://cfc.iwintrue.com/admin/login
+- add admin-butler-review and family-earnings-flow E2E tests + update dan-report-flow for DAN cognitive/EMI dimensions
+- update ISSUE-TRACKING v15 — remote sync analysis + E2E results + pending test additions
+- fix E2E route paths per pages.json + update ISSUE-TRACKING with v14 findings
+- add E2E tests for DAN report, flora microbiome, and AI plan-task flows + fix playwright.config.js baseURL
+- fix e2e test runner - mini-games Playwright syntax, admin-panel URL, baseURL
+- improve E2E test robustness and simplify DAN assessment flow
+- 新增 DAN 测评服务商体系完整流程测试 + 需求验证报告
+- v13 最终版 - SupplySystemServiceTest(18/18), 修复 getAdminList 参数签名, 更新测试文档
+- v13 test records + issue tracking (ISSUE-010~012)
+- unit tests for SupplySystem/FoodRecommend/ArticleWorkflow + v11 API test updates + E2E workflow scenarios
+- s: fix playwright config, add E2E status report, system Chrome used
+- s: v10 results - 15 PASS / 0 FAIL, ISSUE-002 fixed, issue tracking added
+- 新增健康营养师流程测试 + E2E场景矩阵文档
+- s: update v9 results - backend accessible, 12 pass / 3 fail
+- s: add v9_test.js for cfclub updates
+- v8 final results 11 PASS 2 FAIL 1 SKIP
+- add v3 API test scripts for NEW fix verification
+- round 5 API test reports + NEW-01/02/03 issue tracking + test scripts
+- E2E测试配置和运行指南
+- 成长记录/能量系统/商品购买/签到奖励流程测试
+- 家庭成员管理/心愿兑换/规划师绑定流程测试
+- Playwright E2E 端到端流程测试套件 (8个核心业务流程)
+- 测评订单全流程集成测试
+- add dimension controller and energy sync tests
+- add service layer tests for ActivityAdminService, FoodService, NutritionDeficiencyService (36 tests)
+- add teacher/admin role tests for WishController, child/admin denial for guideBindFamily; add test report
+- add 7 role-boundary tests for GuideFamilyTaskController, extract TestRoles constants
+- fix 6 test files entity/DTO field mismatch
+- add 70 backend tests for 4 role types + fix 24 compilation errors
+- add cfc-frontend test suite (153 tests) + update test report
+- results:
+- 修补测试用例,全量204测试通过
+- s run: 204, Failures: 0, Errors: 0, Skipped: 0
+- 新增成长档案与测评模块测试报告
+- 新增成长规划师模块测试用例
+- 重构系统测试用例,分离API测试和Web浏览器测试
+
+### 性能优化
+- 维度首页过渡页强制关闭上限 3s 缩短至 1.5s
+- pre-compute display values in computed to avoid template method calls
+- add async thread pool (core=8/max=16/queue=100) + start.sh with G1GC
+- combine dashboard 7-API calls into single POST /api/stats/dashboard
+- replace full Element UI import with selective imports
+- add 9 composite indexes via idempotent migration
+- add migration version table, skip migrations after first run
+- batch queries in EnergyService to eliminate N+1 patterns
+- configure HikariCP pool size 50, remove duplicate datasource config
+
+
 ## v1.0.1009 (2026-08-12)
 
 ### 新功能