Renumbered from BUG-599: staging took 599 and 600 from other sessions while this branch was in review. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016P5RoqzmUQEbeC2qjAkeGr
4.0 KiB
4.0 KiB
报告生成进度:真实环境走查清单(2026-09-09,BUG-601)
执行环境没有登录态、没有 Chrome、没有模型凭据,因此没有任何一次真实报告生成被观察过。下面每一条都需要一位有真实账号的人在 staging 上照做。自动化替代证据见 frontend/tests/personal-report-progress.test.ts(16 项,纯函数 + 源码锁)。
前置:staging 已部署含本轮改动的 SHA;账号点数足以生成一份个人报告。
1. 三个阶段各自出现过
生成一份个人报告,停在 /reports/<id> 不要离开,全程录屏或每 30 秒截一张。
- 准备阶段:屏幕上是一个转圈 + 「正在准备你的星盘证据」。没有章节清单,没有「已完成 0 / 0 章」。
- 写作阶段:转圈消失,换成「已完成 N / M 章」大字 + 一条按章分格的进度条 + 章节清单。M 等于本次生成的主题数(默认 5:事业、婚恋、财富、应期、健康)。
- 收尾阶段:清单消失,回到转圈 + 「正在整理成文」。
- 完成后自动跳到报告正文。
如果从头到尾没有出现过写作阶段,说明分章行没有下发,这是本轮最可能的失败模式,请把 /api/reports/<id> 的响应体(去掉正文)贴给开发。
2. 章节名对得上,而且不错位
这是本轮最容易做错的一条,请特别留意。
- 清单里同一时刻至多一章显示「正在写」。
- 那一章的名字,与几十秒后变成「已完成」的那一章,是同一章。(如果它写完后变成已完成的却是清单里的另一行,就是错位,必须报回来。)
- 已完成的章按完成先后逐个变成「已完成」,不会一次跳变两章以上(除非确实很快)。
- 章节名是中文(事业 / 婚恋 / 财富 / 应期 / 健康),不是
career这样的英文 id。
3. 进度条与清单不打架
- 进度条的格数 等于 清单的行数。
- 深色格数 = 清单里「已完成」+「写作失败」的行数。
- 进度条不会自己平滑地往前爬——它只在某一章状态变化时跳一格。盯着看 30 秒,没有变化时它应该纹丝不动。
4. 慢章节的文案
需要碰到一次某章写得久(超过 90 秒)。可遇不可求,遇到就记下来。
- 该章文案从「正在写」变成「用时较长,仍在写」。
- 该文案没有出现「第 2 次尝试」「重试」这类字样。
- 恢复推进后,下一章回到正常的「正在写」。
5. 有章节失败时
需要一次部分失败的生成(不易构造,若一直没遇到请在清单上写「未遇到」,不要打勾)。
- 失败的那一章显示「写作失败」。
- 进度条对应格仍然是深色(失败也算完成的工作),整体继续前进。
- 最终页面出现「M 个主题中 N 个写作失败:…」这类说明,不是只说一句「完成」就跳走。
6. 长等待与离开
- 等到超过 8 分钟:页面出现「生成时间超出预期」,有「继续等待」和「返回报告中心」两个按钮。
- 点「继续等待」后,等待计时归零,进度重新开始显示(不是空白)。
- 中途切到别的标签页再切回来:进度继续,没有重复计时或倒退。
- 中途刷新页面:进度接着显示,不是从头开始。
7. 手机上
- iPhone Safari 竖屏:章节清单每行「主题名 — 状态」左右对齐,不换行错位、不溢出。
- 进度条在窄屏下每格仍然可见(5 格不会挤成一条)。
8. 深色模式
- 系统切到深色:已完成 / 正在写 / 待写 三种颜色仍然区分得开,进度条深色格与底色对比足够。
未打勾的项一律写成「未验证」,不要因为"看起来应该没问题"就打勾。发现错位、卡住不动、或章节名不对,直接把现象和 /api/reports/<id> 响应(去掉正文)贴回。