Files
Jyotisha/docs/testing/cend-report-20260916.md
T
Jesse_ChenandClaude Opus 5 a1a78c7ebc
Independent Staging Quality Gate / validate (push) Canceled after 3m14s
Independent Staging Quality Gate / publish (push) Canceled after 0s
feat(ui): 报告中心改行式列表,阅读页并入外壳并把目录挪到右侧常驻
报告中心原来是卡片方阵,状态只靠三块底色区分;报告一多,扫读成本
按卡片数线性涨。现在一列一行:带色点的状态 chip、标题、创建时间 ·
深度 · 主题,操作靠右。失败原因从右边一小块挪进行内,能完整读到。

chip 里原来的 StatusIcon(generating 转圈、ready 打勾、failed 警告)
换成 5px 色点——原型如此,且列表是轮询不是演出。失败行不加「重新
生成」,顶栏已经有唯一的生成入口。

行内小字只写接口真给的东西。GET /api/reports 不返回节数和盘数,所以
不写「9 节 · 22 张盘」(VOICE.md 第 2 条),原型图上那行是 mock。

/reports/[reportId] 是最后一个脱离外壳的全屏路由,九个 phase 全部并进
SecondaryShell,根节点从 <main> 改成 <div>(外壳自己就是 main)。

任务书 E10「没有目录」已过期:目录在 cfcd369d 就存在。本轮把它从左栏
挪到正文右侧并定稿视觉,位置用 grid-column 显式指定而不是靠 DOM 次序,
这样窄屏抽屉仍能排在源码最前面,不会掉到全文末尾。860px 以下常驻栏
消失、折叠抽屉保留——删掉抽屉等于窄屏彻底失去章节定位。

挂外壳带出一个真实风险:window.print() 打的是整篇,而 .chat-app /
.chat-panel 是 height:100%;overflow:hidden,会把九节报告裁成一页。阅读
页因此多挂一条 media="print" 样式,把外壳既隐藏又解锁。放组件里而不是
globals.css:它只在阅读页挂载期存在,对话页的打印不受影响,也不用
:has() 去够祖先,更不越界到并行轮次的 CSS 区段。

纸面三个 token 一个没动,--report-accent 仍是 #85432f;目录栏用应用
调色板,因为它是 chrome 不是纸。report-chart-grid-rehype.ts 一行未动,
新增断言守住它仍然接线(BUG-616/617)。

tsc 0 错;lint 0 error / 118 warning(未增);3350→3355 条,0 条既有
断言被改,31 条无 Docker 失败与基线逐条一致;四个路由渲染标记不变,
/ 首屏 gzip −0.58%。

「20 张盘以上不重叠、滚动不卡」与「挂外壳后的打印真实输出」无真机做
不了,已写成环境缺口,清单在 docs/testing/cend-report-20260916.md。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0193vBv6w5MV2cifdTUu9H5P
2026-09-16 06:41:39 +00:00

72 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 真人验收清单 · 报告中心行式列表 + 报告阅读常驻目录(R6)
- 日期:2026-09-16
- 分支:`codex/cend-report-20260916`
- 对应:`docs/tasks/TASK-cend-surfaces-claude-alignment-20260916.md`R6)、`docs/tasks/PROGRESS-cend-report-20260916.md`
会话侧已经做完的(**不用再做**):`tsc` 0 错、`lint` 0 error、3355 条测试(31 条无 Docker 失败与基线逐条一致)、`next build` 四个路由渲染标记不变、`/` 首屏 gzip 0.58%。纸面三个 token 未动、`report-chart-grid-rehype.ts` 未动,均有断言守着。
下面全是会话做不了的:需要登录态、真实报告数据、真实浏览器和打印机/PDF 导出。
---
## A. 20 张盘以上的报告仍然不重叠、滚动不卡(最高优先,关联 BUG-616 / BUG-617
阅读页这一轮并进了 app 外壳,滚动容器的所有权变了,盘面 grid 必须复验。
1. 打开一份**九节、20 张盘以上**的完整个人报告。
2. 从头滚到底,不要跳。
3. 通过标准:
- 每张北印盘各占一格,**没有任何两张叠在同一位置**;
- 连续滚动不掉帧、不卡顿,尤其是经过密集盘面那几节时;
- 页面**不出现横向滚动条**(宽表格在自己的框里横滚是对的)。
## B. 打印 / 导出 PDF(本轮风险最高的一项)
阅读页现在坐在外壳里,而 `window.print()` 打的是整个文档。
1. 在同一份报告里点「打印」,另存为 PDF。
2. 通过标准:
- 纸上**没有**左侧栏、**没有**顶部那条 46px 窄栏、**没有**右侧目录;
- 报告**不是只印出一页**——九节应当完整分页;
- 纸面是浅色(打印锁定浅色调色板),正文不是白底白字;
- 页边距是 A4 / 13mm 12mm 14mm 的样子;
- 宽表格在纸上不被裁掉右边。
3. 顺带在微信内置浏览器里打开同一页点打印,应当出现「请在系统浏览器中打开本页后打印」的提示,而不是印出一份坏的。
## C. 右侧常驻目录
1. 桌面宽度(> 860px)打开报告。
2. 通过标准:
- 目录在**正文右侧**,滚动时一直在;
- 往下滚,高亮项跟着当前看到的章节走;
- 点任一节,跳到该节标题,**标题没有被顶部那条操作条盖住**;
- 目录自己内容超长时在目录框里滚,不把页面撑长。
## D. 窄屏
1. 把窗口拉窄到 860px 以内(或用手机)。
2. 通过标准:右侧目录栏消失;正文上方出现一个**收起的**「目录」,点开可用、能跳转。
3. 再窄到手机宽度:侧栏变抽屉,从顶栏的按钮能拉开、能关上,关上后焦点不丢。
## E. 报告中心行式列表
1. 账号里同时存在**生成中**与**已完成**至少各一份报告时打开「我的报告」。
2. 通过标准:
- 列表是**一列行**,不是卡片方阵;每行左边一枚带色点的状态 chip;
- 「已完成」「生成中」「未完成」三种色点一眼分得开(也请在深色模式下看一遍);
- 生成中那行能被读屏软件播报(macOS VoiceOver / Windows 讲述人均可);
- 行右侧:已完成是「导出报告(.md)」+「查看报告」,生成中是「查看进度」,失败行右侧**没有**按钮;
- 每行的第二行小字是「创建时间 · 深度 · 主题」,**不应出现**任何「N 节」「N 张盘」之类的数字(接口没有给,前端不许编)。
3. 把窗口拉窄到 767px 以内:行内操作换到正文下方、左对齐,不出现横向滚动。
## F. 失败行
1. 找一份失败的报告(或等一次真实失败)。
2. 通过标准:失败原因写在**行内**(不是挤在右边一小块),能完整读到;不因为太长把行撑破。
## G. 导出报告(.md)的错误提示
1. 断网后在「已完成」那行点「导出报告(.md)」。
2. 通过标准:该行出现一行红色错误文字,读屏软件按 alert 播报;再联网重试能成功;期间不会重复触发第二次导出。