# 真机清单 · 状态下沉第二批(synastry / profile / session)行为是否与改前一致(2026-09-16) 对应 `TASK-home-state-lowering-batch2-20260916`。自动化锁的是状态住处、hook 调用顺序与源码合同,**锁不住**真实的合盘请求、头像上传、会话列表翻页与归档。本仓没有浏览器与登录态,下面这些必须用已登录的 staging 做。 地址:`https://staging.jyotisha.chat`。截图不要带真实姓名、出生资料、邮箱或会话内容。本单**零文案、零交互改动**;任何和改前不一样的地方都记为失败。 先看 `GET /api/health` 的 `deployment.gitCommit` 是否等于本单合入 staging 后的 SHA。不一致 = 先别测。 --- ## A. 合盘(synastry 簇:4 个状态搬进 `useSynastry`) ### A1. 发起一次合盘 1. 设置 → 星盘库,选一条「其他人」的盘。 2. 关系类型下拉切到「商业合作」,再切回「恋爱」。 3. 点「用于合盘」。 - ✅ 下拉每次切换都立刻生效,不回弹默认值。 - ✅ 点下后按钮变「正在计算合盘...」,**这一条盘的按钮**禁用;期间其他盘的「用于合盘」也点不动。 - ✅ 底部提示「正在计算基础合盘证据,请稍候。」 - ✅ 算完后弹窗关闭,输入框里出现合盘问题草稿 + 证据摘要;恋爱走 `Ashtakoot x/y`,商业走「已完成基础商业合作证据筛查」。 - ❌ 按钮卡在「正在计算合盘...」不恢复;或算完弹窗没关;或摘要跑到错误的关系类型文案。 ### A2. 合盘失败的三种提示 分别制造:对方盘没存云端(404)、连点多次触发限流(429)、后端不可用。 - ✅ 404 →「请先把对方星盘保存到云端,再用于合盘。」 - ✅ 429 →「合盘请求过于频繁,请稍后再试。」 - ✅ 其它失败 →「合盘计算暂时不可用,已先生成问题草稿。」且草稿仍然写进输入框。 - ✅ 任何一种失败后按钮都恢复可点。 ### A3. 合盘历史 1. 成功合盘一次后重开星盘库。 2. 退出登录、换一个账号登录,再开星盘库。 - ✅ 刚才那张合盘卡在历史里,最新的排最前,最多 10 条。 - ✅ 云端历史读不出时出现「合盘历史暂时无法读取,请重试。」且**带一个「重试」按钮**,点它会重新拉。 - ✅ 换账号后历史清空,不残留上一个账号的合盘卡。 - ❌ 历史越积越多超过 10 条;或换账号后还看得见旧账号的对方姓名。 --- ## B. 资料与头像(profile 簇:6 个状态搬进 `useProfileOnboarding`) ### B1. 首次引导三步 用一个资料未填完的账号: 1. 输名字 → 继续。 2. 填出生日期时间 → 继续。 3. 选出生地 → 确定。 - ✅ 每一步提交时按钮变「保存中」并禁用,完成后回到可点。 - ✅ 三段对话气泡按原来的顺序逐字出现,文案一字不变。 - ✅ 出生时间没填全时「继续」按钮保持禁用;出生地没选时「确定」保持禁用。 - ✅ 三步走完落到正常首页,没有多出一次加载动画或空屏。 - ❌ 按钮一直「保存中」;或某一步保存后气泡重排/重播。 ### B2. 改出生资料 1. 完整资料下进设置 → 星盘库 → 本人盘,改一个字段并保存。 - ✅ 保存中按钮禁用并显示「保存中」。 - ✅ 保存成功后弹窗里的提示文案与改前一致。 - ✅ 关掉弹窗回首页,首页与侧栏的姓名/首字母跟着更新。 - ✅ 若改的是出生时间声明,随后触发的评估流程与改前一致。 ### B3. 头像 1. 设置 → 个人资料 → 换头像。 - ✅ 上传中按钮禁用,成功/失败提示文案与改前一致。 - ✅ 失败后提示留在个人资料面,不串到星盘库面。 - ✅ 换完后侧栏头像立即更新。 ### B4. 退出登录 1. 设置 → 退出 → 确认退出。 - ✅ 按钮变「正在退出」并禁用,取消按钮同时禁用。 - ✅ 最终**整页硬跳** `/login`(地址栏变化 + 页面白屏重载),不是前端路由软跳。 - ❌ 退出后还能按浏览器后退看到上一位用户的对话。 --- ## C. 会话列表(session 簇:6 个状态搬进 `useSessionManagement`) ### C1. 列表加载与翻页 1. 用一个会话很多的账号进首页。 2. 滚到侧栏底部点「加载更多」。 - ✅ 首屏列表顺序与改前一致(置顶在前,按更新时间降序)。 - ✅ 「加载更多」只在**确实还有下一页**时出现;加载完最后一页后它消失。 - ✅ 连点两次不会重复插入同一批会话。 - ❌ 加载更多后列表顺序乱了,或出现重复标题。 ### C2. 归档视图 1. 点侧栏「查看已归档」,再点回来。 - ✅ 两个视图的会话集合互不重叠:归档视图只显示已归档,正常视图只显示未归档。 - ✅ 当前正在看的会话即使被过滤条件排除,也仍然留在列表里(原有规则)。 - ✅ 切换视图时**会话菜单自动收起**。 - ✅ 归档数量角标与实际归档条数一致。 ### C3. 会话菜单 1. 在一条会话上点「⋯」。 - ✅ 同一时刻只有一个菜单展开;点另一条会自动关掉前一个。 - ✅ 生成回答中(有进行中的咨询)时菜单项按原规则禁用。 ### C4. 重命名 / 置顶 / 归档 / 分享 逐个操作一遍。 - ✅ 每项的提示文案、成功后的列表位置变化与改前一致。 - ✅ 置顶后该会话上移到置顶区;取消置顶后回到时间序。 ### C5. 删除 1. 菜单 → 删除。 - ✅ 弹出确认框,正文是「“<标题>”将被永久删除,无法恢复。」 - ✅ 点遮罩、点「取消」都能关掉且**不删**。 - ✅ 确认后会话消失,若删的是当前会话则自动落到列表里的另一条。 - ❌ 确认框标题串成了别的会话。 ### C6. 切换会话与消息加载 1. 点一条从没打开过的历史会话。 - ✅ 正文一次揭开,不出现转圈/骨架/「正在加载」。 - ✅ 地址栏 `?s=` 跟着变;浏览器前进后退能在会话之间来回。 - ✅ 快速连点多条不会把消息错插到另一条会话里。 ### C7. 模型切换与同步失败 1. 在一条会话里换模型。 2. 断网后再换一次。 - ✅ 换模型立即生效,刷新后仍然是新模型。 - ✅ 同步失败时的提示与改前一致,恢复网络后重试能成功。 ### C8. 写满后开新对话 / 继续到新对话 - ✅「在新对话里继续」按原样新建会话并带上上下文,左侧新增一条。 - ✅ 新建期间「新对话」按钮禁用,不会连点出两条。 --- ## D. 校正入口没被牵连(本单挪动了 hook 调用顺序) 1. 首页点「生时校正」卡。 2. 从侧栏点一条历史校正会话。 - ✅ 首页卡在打开期间显示「正在打开」,随后一次揭开校正面。 - ✅ 从侧栏打开历史校正仍然能进去(这条走 `rectificationSessionOpenerRef`,本单挪了 hook 顺序,必须实测)。 - ❌ 点历史校正没反应、或落到空白普通聊天。 --- ## E. 首屏观感 - ✅ 揭幕后不出现 spinner / 骨架 / 「正在加载」(流式生成中除外)。 - ✅ 输入框只有一个,滚动跟随只有一套。 - ✅ 首屏体积与改前无肉眼差别(自动化实测 gzip 变化 +0.009 %)。