|
|
@@ -8,10 +8,13 @@
|
|
|
- [x] git 收尾——打卡修复 9 文件 commit(f71832d28)+ 707ea09ad push 至 origin/cfclub(会话 ses_e9351acf0ffes62UwpWqFOCVDP,15:11 完成),工作区干净
|
|
|
|
|
|
## 等你拍板(2026-10-27 定稿)
|
|
|
-- [ ] **T28-FIX(P0)修复方向裁决**:独立核验报告 `origin/verify/t28-food-overview = 90798afd1` 实锤 AC-09 P0——报告确认路径把 `family_members.id`(memberId)写入 `food_recommend_idx.user_id`,而家庭总览按 `family_members.user_id`(users.id)关联,两条键不唯一对齐,总览重算链路完全失效。两个修复方向(核验报告第三章已评估):
|
|
|
+- [x] **T28-FIX(P0)修复方向裁决**:独立核验报告 `origin/verify/t28-food-overview = 90798afd1` 实锤 AC-09 P0——报告确认路径把 `family_members.id`(memberId)写入 `food_recommend_idx.user_id`,而家庭总览按 `family_members.user_id`(users.id)关联,两条键不唯一对齐,总览重算链路完全失效。两个修复方向(核验报告第三章已评估):
|
|
|
1. **写侧统一**:recalculateForUser 入库前把 subjectId 归一为成员 user_id 再写;历史 memberId 键行需一次性迁移。
|
|
|
2. **读侧兼容**:doRecalculate 查询键同时覆盖 user_id 与 family_members.id 两种键;总览 memberScores.userId 语义需明确。
|
|
|
⚠️ 涉及历史数据迁移属不可逆操作,必须主理人裁定向后再开工。
|
|
|
+ - **主理人裁决(2026-11-02)**:方向 A(写侧统一)——"报告也要写 family_members.user_id"。
|
|
|
+ - **核查结论(2026-11-02 13:3x)**:方向 A 骨架已由 E2E Test Bot 在 `62f37b609`(2026-10-31)合入 cfclub(`resolveFoodIndexUserId` 方法 + recalculateForUser/writeKey 归一 + 读侧 3 处归一化 + 6 项单测,AC-09 FAIL→PASS)。但发现**新增 P0 隐患**:当前实现先查 `family_members.id`,若传 `users.id` 且该值恰好与某 `family_members.id` 数值碰撞(两表各自自增,重叠概率高),会误判为 memberId 并映射到错误的 `user_id`,导致读错他人数据。**需加固**(注入 `UserMapper`,先查 users 表判定幂等)。另需**历史数据迁移脚本**(测试库 zxyj 共 2 行全为 memberId 键;生产库规模未知)。
|
|
|
+ - **待办**:派发开发会话加固代码 + 写迁移脚本(只写不执行)→ 待主理人确认迁移方案后执行 → 派发独立核验。`feature/t28-fix-key-align`(方向 B 双轨变体,c70b58049)未合入 cfclub,与已选方向 A 冲突,废弃。
|
|
|
- [x] **T29-B1 合主线**:B1 独立核验已完成(`origin/feature/t29-b1v-verification = 608f18fbf`),结论 **CONDITIONAL PASS**。B1+FIX 已于 2026-10-27 **合并入 cfclub**(merge commit `4dc706188`,父链 = cfclub 637d6a15b + vfix c1df0f17d,7 文件无冲突,V-01 setScore 兜底 + V-02 report_date 提取均已验证在合并结果中)。
|
|
|
- [x] **T29-B2 派发**:已派 lan-189 `ses_e82f773fcffePaGYPNUK1muSHx`(axon/deepseek,分支 `feature/proxy-fix-b2-security`,2026-10-27 19:04 确认正常执行),指令 `out/t29_b2_security_prompt.txt`。B3 待 B2 核验通过后派。
|
|
|
- [x] **优惠券未完成任务补录入池**:2026-10-27 补录 4 条到任务池(`COUPON-C2`/`COUPON-C3`/`COUPON-REG`/`COUPON-P2`,均 pending)。C2/C3 已由 pub-iwintrue 会话完成但**未 push**(commit `be16b8eb3`/`3379d4ad1`/`892a7e7c9` 不在任何远端分支,全量 fetch 验证);COUPON-REG(注册发券)原观察项转正式;COUPON-P2 为技术债打包。spec `docs/优惠券需求设计与实现核查.md` 已在 cfclub。
|
|
|
@@ -34,3 +37,11 @@
|
|
|
- [x] **独立核验 有条件 PASS**:lan-189 `ses_e65806c2fffeBuj2pXHw97jnfh`(12:23 派发,12:57 产出报告),指令 `out/verify_child_def_prompt.txt`。编译 BUILD SUCCESS(2033 源文件)、单测 11/11(FamilyMemberServiceIsChildTest 5 + UserUtilTest 6)、九项审查全 ✓。核验分支 `origin/verify/user-is-child`(rebase 后 `3b9576d4f`)。
|
|
|
- [x] **已合入 cfclub(13:2x)**:merge commit `1173f3375`(`--no-ff`,父链 = eec0db368 + verify -> 3b9576d4f,11 文件无冲突),推送验证通过。
|
|
|
- ⚠ **主理人知会(非阻断)**:**B1** 项目 `pom.xml <skipTests>true</skipTests>` 默认跳过单测(合入后常规 mvn test 不自动验证,须 `-DskipTests=false`);**B5** updateMember 改成员生日只写 family_members.birthday 不写 users.birthday,is_child 年龄兜底读 users.birthday 可能用旧值(既有双写问题延伸,本提交未恶化);B2/B3/B4/B6/B7/B8 为轻量后续可统一。
|
|
|
+
|
|
|
+## AI 使用会员门禁(2026-11-02 需求)— 架构定稿 + 已派发
|
|
|
+- [ ] **需求**:小程序所有 AI 使用功能为会员加开关,仅有效期内缴费会员可用。
|
|
|
+- [ ] **主理人四项决策**:① 等级下限=BASIC 及以上;② 复用开关 `ai.coach.member_gate_enabled`;③ 过期后可查看+删除/归档历史会话;④ 不纳入门禁(保留 FREE 每日 1 次引流钩子):/report/analyze + 情绪照片 + 舌诊 + 饮食识别。
|
|
|
+- [ ] **Q3 拍板**:`/butler/sessions/create` 纳入门禁(list/detail/archive/delete 保持开放)。
|
|
|
+- [x] **任务书已合入 cfclub**:`docs/superpowers/specs/2026-11-02-ai-member-gate-design.md`(commit `85e93fb56`,v1.1)。
|
|
|
+- [ ] **已派发(23:5x)**:后端 T-B0/B1/B2 → lan-248 `ses_e6308a0f4ffeDIT5WaGL3FlVuX`(分支 `feature/ai-member-gate-backend`);前端 T-F0/F1/F2 → lan-189 `ses_e6306855affekn2AjzNbWLkHn3`(分支 `feature/ai-member-gate-frontend`)。指令 `out/ai_member_gate_backend_prompt.txt` / `out/ai_member_gate_frontend_prompt.txt`。
|
|
|
+- [ ] **待**:dev 会话自 commit+push → 派独立核验 → 合入 cfclub → 回填 done。
|