fix: repair missing reported birth-time status

This commit is contained in:
Jesse_Chen
2026-07-26 13:14:14 +08:00
parent 5f492be1b9
commit cdf7a76766
6 changed files with 146 additions and 9 deletions
+16
View File
@@ -1413,3 +1413,19 @@
- 防复发:代码不得要求每轮必须提问,也不得把隐藏 prompt 自动拼接到 Agent 正文;没有可见短答问题时 `evidenceRequest` 应为 null,用户叙述节奏由 Agent 与用户共同决定,代码只维护记录、抽取、评分、收敛与确认边界。
- 相关记录:BUG-070、BUG-072、BUG-074
- 修复版本:待提交(本地可测)
## BUG-076 | 完整出生资料已保存但权威档案状态为空
- 状态:resolved
- 首次发现:2026-07-26
- 最近更新:2026-07-26
- 影响面:账户出生资料保存、星盘库同步、`POST /api/consult` 服务端资料校验
- 用户现象:出生日期、家人确认的具体时间、地点、坐标和时区都已填写,星盘库副本也显示 `birthTimeStatus: reported`,但咨询仍返回“暂时无法核对完整出生资料”。
- 触发条件:首次创建 `profiles` 行,或既有合法出生声明的 `birth_time_status` 为空且用户原样重新保存。
- 根因:分钟校正主链合并时把 BUG-018 的首次档案派生状态分支退回为 `{}`;共享 helper 又只在声明字段发生变化时写 `reported`,导致空状态行原样重存也无法自愈。`chart_profiles.profile` 只是星盘库 JSON 副本,不是咨询接口采用的权威出生资料。
- 修复:账户路由统一调用共享状态派生 helper;新档案和合法声明空状态均原子写入 `reported`,确认分钟继续禁止被普通资料编辑覆盖;增加前向迁移,仅回填没有 active/candidate/case 应用结果且声明满足来源规则的空状态行。
- 验证:账户 helper 回归覆盖新档案、空状态原样重存、候选失效和 confirmed 保护;迁移契约锁定安全过滤条件,并要求生产迁移工作流上传和应用各一次。
- 防复发:服务端权威 `profiles` 的声明和状态必须同写;星盘库 JSON 不得作为咨询真值,历史空状态只能通过受约束前向迁移修复。
- 相关记录:BUG-018、BUG-073
- 复发自:BUG-018
- 修复版本:待提交(本地可测)