docs(tasks): 状态下沉第二批进度记录与真人走查清单
Independent Staging Quality Gate / validate (push) Failing after 6m17s
Independent Staging Quality Gate / publish (push) Skipped

进度记录含三簇 20 个状态的分类表(每个写明谁在读)、改前改后实测、
既有断言改动的三栏说明、反向验证、lint warning 逐条比对、以及
session 簇留 4 个在外壳的让步说明。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JUei7K13cYxLHE3Axe4A45
This commit is contained in:
Jesse_Chen
2026-09-16 02:02:22 +00:00
co-authored by Claude Opus 5
parent bdb81c8c86
commit 7ae6df3ebb
2 changed files with 390 additions and 0 deletions
@@ -0,0 +1,171 @@
# 真机清单 · 状态下沉第二批(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 %)。