盘面顶部加档案切换下拉,可直接切到其他人 #150

Open
opened 2026-10-28 15:08:16 +08:00 by jesse · 4 comments
Owner

Part of #142(拆单 C1,来源:#142 评论 2 截图 1–2)

竞品怎么做

盘面栏最上方是当前档案「称呼 · 出生时间 · 城市」的下拉;展开后列出所有档案(含示例),每项有编辑 / 删除,底部「新增」。切换后盘面、分盘页签和下方要点(上升、月亮星宿、太阳、当前大运)一起换。

现状

星盘库在账户弹窗里(page.tsx 约 3570–3640 行),换人要「设为默认」,对话固定用默认档案。

要做什么

  • 星盘页和对话旁的盘面面板顶部加切换下拉,复用 app/api/chart-profiles。
  • 明确对话里切人的语义:切换后新问题用新档案;已有会话保持绑定原档案,或提示新开会话(实现前先确认)。
  • 编辑 / 删除复用现有弹窗。

前置

组件库 #106(K2 对话页 + 星盘面板)、#107(K3 星盘页)。

验收

  • 切换后盘面数据与所选档案一致;删除当前档案后回到默认档案。
Part of #142(拆单 C1,来源:#142 评论 2 截图 1–2) ## 竞品怎么做 盘面栏最上方是当前档案「称呼 · 出生时间 · 城市」的下拉;展开后列出所有档案(含示例),每项有编辑 / 删除,底部「新增」。切换后盘面、分盘页签和下方要点(上升、月亮星宿、太阳、当前大运)一起换。 ## 现状 星盘库在账户弹窗里(`page.tsx` 约 3570–3640 行),换人要「设为默认」,对话固定用默认档案。 ## 要做什么 - 星盘页和对话旁的盘面面板顶部加切换下拉,复用 `app/api/chart-profiles`。 - 明确对话里切人的语义:切换后新问题用新档案;已有会话保持绑定原档案,或提示新开会话(实现前先确认)。 - 编辑 / 删除复用现有弹窗。 ## 前置 组件库 #106(K2 对话页 + 星盘面板)、#107(K3 星盘页)。 ## 验收 - 切换后盘面数据与所选档案一致;删除当前档案后回到默认档案。
jesse added the agent/待规划agent/试点 labels 2026-10-28 15:08:16 +08:00
jesse added a new dependency 2026-10-28 15:08:17 +08:00
Author
Owner

同意 请你出一个原型图 咱们定了之后再开始

同意 请你出一个原型图 咱们定了之后再开始
Collaborator

原型

https://claude.ai/artifact/UUUMweZFqMCU9hBTN8dS6C (目前只有你能打开,要给别人看需要在页面的分享菜单里打开)

先说现状:本单正文写的「现状」过时了

staging 上已经有大半:

  • 星盘页、星历、报告的标题旁已有「当前星盘」切换,能选人,底部有「添加一个人」(CurrentSubjectSwitcher)。
  • 对话顶栏也能切(ChatProfilePicker)。本单写的「对话里切人的语义要先确认」其实已经定了:已有消息的对话里选别人,会「新建会话并使用此人物」,原对话保留;回答还在写时显示「这段回答结束后再换」。

所以原型只画缺的部分。

这次要加的(原型里可以点)

  1. 按钮写全:「小林 · 1990-03-12 07:30 · 杭州」,不只写名字。
  2. 每一行写全:名字 + 关系标签(本人 / 伴侣 / 父母……),下一行出生日期时间 · 城市。资料不全的人置灰,写「这份资料还不完整,补全后才能看盘」。
  3. 每一行右边「⋯」:
    • 编辑:打开现有的档案编辑弹窗(不新做表单)。
    • 删除:本人不能删;确认框沿用档案页的说法「将同时删除 N 个对话和 M 份报告,无法恢复。」。删掉当前正在看的人后,自动回到本人。
  4. 底部「新增一个人」:直接打开新增表单(/people?add=1),不是只跳到档案列表。
  5. 对话旁的盘面顶部也放这个切换(现在没有)。规则和对话顶栏一样:已经有消息的对话里选别人,会新开一个对话。

需要你定

  1. 「⋯」里放删除可以吗?还是只放编辑,删除仍然只在档案页做(更不容易误删)?
  2. 对话旁的盘面要不要加切换?加了以后,对话顶栏和盘面顶部会有两个一样的切换,也可以只留一个。

示例人物都是虚构的。

## 原型 https://claude.ai/artifact/UUUMweZFqMCU9hBTN8dS6C (目前只有你能打开,要给别人看需要在页面的分享菜单里打开) ### 先说现状:本单正文写的「现状」过时了 staging 上已经有大半: - 星盘页、星历、报告的标题旁已有「当前星盘」切换,能选人,底部有「添加一个人」(`CurrentSubjectSwitcher`)。 - 对话顶栏也能切(`ChatProfilePicker`)。本单写的「对话里切人的语义要先确认」其实已经定了:已有消息的对话里选别人,会「新建会话并使用此人物」,原对话保留;回答还在写时显示「这段回答结束后再换」。 所以原型只画缺的部分。 ### 这次要加的(原型里可以点) 1. **按钮写全**:「小林 · 1990-03-12 07:30 · 杭州」,不只写名字。 2. **每一行写全**:名字 + 关系标签(本人 / 伴侣 / 父母……),下一行出生日期时间 · 城市。资料不全的人置灰,写「这份资料还不完整,补全后才能看盘」。 3. **每一行右边「⋯」**: - 编辑:打开现有的档案编辑弹窗(不新做表单)。 - 删除:本人不能删;确认框沿用档案页的说法「将同时删除 N 个对话和 M 份报告,无法恢复。」。删掉当前正在看的人后,自动回到本人。 4. **底部「新增一个人」**:直接打开新增表单(`/people?add=1`),不是只跳到档案列表。 5. **对话旁的盘面顶部**也放这个切换(现在没有)。规则和对话顶栏一样:已经有消息的对话里选别人,会新开一个对话。 ### 需要你定 1. 「⋯」里放删除可以吗?还是只放编辑,删除仍然只在档案页做(更不容易误删)? 2. 对话旁的盘面要不要加切换?加了以后,对话顶栏和盘面顶部会有两个一样的切换,也可以只留一个。 示例人物都是虚构的。
Collaborator

原型已确认(jesse 2026-10-28)

按原型做,两个问题按原型的画法定:

  1. 「⋯」里放「编辑」和「删除」,本人不能删,删除走现有确认框和用量统计。
  2. 对话旁的盘面顶部加切换,规则同对话顶栏(已有消息时新开对话)。

验收补充:

  • 按钮和每一行都写「称呼 · 出生日期时间 · 城市」,关系标签取 chart_profiles.relation,老档案为空时显示「其他」。
  • 删除当前正在看的人后回到本人;删除按钮在回答生成中不可点。
  • 「新增一个人」打开 /people?add=1。
  • 手机 375 px 宽下弹层不超出屏幕,每行按钮不小于 44 px。
## 原型已确认(jesse 2026-10-28) 按原型做,两个问题按原型的画法定: 1. 「⋯」里放「编辑」和「删除」,本人不能删,删除走现有确认框和用量统计。 2. 对话旁的盘面顶部加切换,规则同对话顶栏(已有消息时新开对话)。 验收补充: - 按钮和每一行都写「称呼 · 出生日期时间 · 城市」,关系标签取 `chart_profiles.relation`,老档案为空时显示「其他」。 - 删除当前正在看的人后回到本人;删除按钮在回答生成中不可点。 - 「新增一个人」打开 `/people?add=1`。 - 手机 375 px 宽下弹层不超出屏幕,每行按钮不小于 44 px。
Claude added agent/执行中 and removed agent/待规划 labels 2026-10-28 19:04:52 +08:00
Collaborator

#150 已做完,推到 staging(2dea3c29,门禁在跑)

照原型(评论 36180 同意)做了五条:

  1. 按钮写「称呼 · 出生日期 时间 · 城市」。手机对话顶栏放不下,只写称呼;名单里照样有。
  2. 每一行:名字 + 灰底标签(本人 / 伴侣 / 孩子 / 父母 / 朋友 / 其他,没填过写「其他」),下面一行「日期 时间 · 城市」。资料不完整的写「这份资料还不完整,补全后才能看盘」,不能选。
  3. 每行右边「⋯」
    • 编辑:去星盘档案,直接打开这个人的编辑框(新加 /people?edit=<id>;本人沿用 ?self=1)。
    • 删除:只有别人有。先查对话和报告数,确认框和星盘档案同一句「将同时删除 N 个对话和 M 份报告,无法恢复。」删掉的是当前人物就回到本人。回答还没写完时写「这段回答结束后再删」,点不了。
  4. **底部「新增一个人」**直接打开新增表单(/people?add=1)。
  5. 对话右边的盘面顶部也放了同一个切换,规则和对话顶栏一样:已经说过话再换人会新开一个对话,原来的保留。盘面图本身单独做了缓存,切换按钮重画时不会重画星盘(#123 的要求不变)。

手机:每行「⋯」是 44×44,名单宽度不超过屏幕,长城市名用省略号截断。

验证

  • 新测试 frontend/tests/subject-switcher-150-20261028.test.tsx,8 项全过:行文案、按钮文案、菜单规则、删除文案和星盘档案一致、本人不能删、?edit=、盘面顶部、手机尺寸。
  • 改了 4 处旧断言(「添加一个人」→「新增一个人」、行说明、按钮读屏名、盘面入口),每处写了原值 / 新值 / 原因。
  • 前端全套失败数和基线一样,26 项都是本机没有 Docker 数据库的环境项;tsc、lint(0 error)、next build 都通过。
  • 等部署完,我用测试账号在 staging 上点一遍再报。

顺带说明:这次推送也会重跑 #146–#148 和 BUG-1496(#161)的门禁。前两次失败都和这几单的代码无关:一次是镜像构建那一步没输出就失败了,一次是一项已知会偶发失败的 Python 测试,已经记为 BUG-1498(investigating)。

## #150 已做完,推到 staging(`2dea3c29`,门禁在跑) 照原型(评论 36180 同意)做了五条: 1. **按钮**写「称呼 · 出生日期 时间 · 城市」。手机对话顶栏放不下,只写称呼;名单里照样有。 2. **每一行**:名字 + 灰底标签(本人 / 伴侣 / 孩子 / 父母 / 朋友 / 其他,没填过写「其他」),下面一行「日期 时间 · 城市」。资料不完整的写「这份资料还不完整,补全后才能看盘」,不能选。 3. **每行右边「⋯」** - 编辑:去星盘档案,直接打开这个人的编辑框(新加 `/people?edit=<id>`;本人沿用 `?self=1`)。 - 删除:只有别人有。先查对话和报告数,确认框和星盘档案同一句「将同时删除 N 个对话和 M 份报告,无法恢复。」删掉的是当前人物就回到本人。回答还没写完时写「这段回答结束后再删」,点不了。 4. **底部「新增一个人」**直接打开新增表单(`/people?add=1`)。 5. **对话右边的盘面顶部**也放了同一个切换,规则和对话顶栏一样:已经说过话再换人会新开一个对话,原来的保留。盘面图本身单独做了缓存,切换按钮重画时不会重画星盘(#123 的要求不变)。 手机:每行「⋯」是 44×44,名单宽度不超过屏幕,长城市名用省略号截断。 **验证** - 新测试 `frontend/tests/subject-switcher-150-20261028.test.tsx`,8 项全过:行文案、按钮文案、菜单规则、删除文案和星盘档案一致、本人不能删、`?edit=`、盘面顶部、手机尺寸。 - 改了 4 处旧断言(「添加一个人」→「新增一个人」、行说明、按钮读屏名、盘面入口),每处写了原值 / 新值 / 原因。 - 前端全套失败数和基线一样,26 项都是本机没有 Docker 数据库的环境项;tsc、lint(0 error)、`next build` 都通过。 - 等部署完,我用测试账号在 staging 上点一遍再报。 **顺带说明**:这次推送也会重跑 #146–#148 和 BUG-1496(#161)的门禁。前两次失败都和这几单的代码无关:一次是镜像构建那一步没输出就失败了,一次是一项已知会偶发失败的 Python 测试,已经记为 BUG-1498(investigating)。
Claude added agent/待真机 and removed agent/执行中 labels 2026-10-28 19:22:24 +08:00
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Reference: root/Jyotisha#150