fix(people): 本人 can edit their own birth data in 星盘档案 (S1, BUG-1081)
The owner had no edit entry anywhere once /people replaced the settings chart pane. 本人 now gets 编辑 with the same form; the save goes through PATCH /api/account via a shared lib/self-profile-save.ts that the home onboarding also uses. The dead saveProfile is removed. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N4f2nya58RoRu4yEmJgRGE
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
adbb205440
commit
8415fdca72
@@ -14547,3 +14547,18 @@
|
||||
- 防复发:首页不得在「本人刚保存出生地」这一刻自动弹出任何弹窗;顶层 `<dialog>` 也要 portal 到 `SidebarInset` 之外;过场是否真的放了,部署后按 `docs/testing/birth-sky-cover-checklist.md` 新账号条目真机走一遍(若仍看不到过场,优先查 3 秒预算内 `/api/birth-sky` 的耗时)。
|
||||
- 相关记录:BUG-968(`SidebarInset` inert 与 portal 约定)、BUG-434(兑换弹窗样式);`TASK-birth-sky-followup-20260928` F4、`TASK-birth-sky-polish-20260928` P4。
|
||||
- 修复版本:分支 `codex/birth-sky-pacing-20260928`(本条所在提交),未部署。
|
||||
|
||||
## BUG-1081 | 全站没有任何地方能改本人的出生资料(星盘档案只给他人「编辑」)
|
||||
|
||||
- 状态:resolved(分支修复与回归测试已完成;真机待 staging 部署后按 `docs/testing/self-edit-avatar-menu-20260928.md` 走)
|
||||
- 首次发现 / 最近更新:2026-09-28 / 2026-09-29
|
||||
- 影响面:所有账户的本人出生资料(日期、时间与来源、地点、岁差、称呼);`/people` 星盘档案本人详情。
|
||||
- 现象:产品在 staging 真机反馈「星盘档案里没法修改个人档案的信息」。本人详情只写「本人不能删除」,没有「编辑」;设置 → 个人资料只能改头像与性别;生时校正文案「请先到资料里改出生时间」指向一个不存在的入口。
|
||||
- 触发条件:任何已完成建档的用户想改自己的出生资料。
|
||||
- 根因:`ab6c55f8`(星盘档案 P1,2026-09-25)用 `/people` 取代设置弹窗里的星盘资料块,只给 `role === "other"` 做了编辑视图,`people-page.tsx` 注释写「本人 has no edit view here」;首页那块表单 `chart-library-panel.tsx` 已无引用,随 `d08ffdc0` 删除。首页 hook 的 `saveProfile` 从此没有任何 UI 调用。任务书 D1 写的是「统一列表、统一操作;户主不可删」,并没有「本人不可编辑」。
|
||||
- 为什么没拦住:合同测试只断言「本人不能删除」与「他人有编辑」,没有任何测试断言「本人至少有一个出生资料编辑入口」;`settings-mvp-contract` 反而把「/people 不伪造已移除的本人编辑」写成了断言。
|
||||
- 修复(`TASK-self-edit-avatar-menu-20260928` S1):本人详情也有「编辑」,编辑视图与他人同一张 `ChartProfileForm`(称呼、出生资料、岁差、性别),标题「编辑我的资料」,没有删除区。保存抽成 `lib/self-profile-save.ts`:出生资料走 `PATCH /api/account`(`selfProfilePatchBody`,带 `birth_time_source`、不带 `gender`),首页 onboarding 的 `persistProfile` 改用同一函数;性别变了再单独 PATCH `{ gender }`。保存后同步丢掉旧资料的副本:layout 的账户(`setAccount`)、首页 warm snapshot 与今日卡、星盘缓存(`pinChartSnapshotIdentity`)、星历缓存、人物目录。删除首页 hook 与 `page.tsx` 里无人调用的 `saveProfile`。
|
||||
- 验证:`frontend/tests/self-edit-people-20260928.test.tsx`(本人详情有编辑、编辑视图无删除、PATCH 载荷带时间来源不带性别、失败透出路由文案、`/people` 本人保存不走 chart-profiles 且清理缓存、守卫:本人至少有一个编辑入口);改写断言见 `docs/tasks/PROGRESS-self-edit-avatar-menu-20260928.md`。
|
||||
- 防复发:守卫测试锁住「本人出生资料至少有一个编辑入口,且走共享的 `saveSelfProfile`」;取代某个入口的改动必须在任务书里写明新入口。
|
||||
- 相关记录:BUG-1030/1039(星盘档案)、BUG-018(账户出生资料声明与状态同写)。
|
||||
- 修复版本:分支 `codex/self-edit-avatar-menu-20260928`,未部署。
|
||||
|
||||
Reference in New Issue
Block a user