diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a6dd329..0b408866 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,15 @@ - 核实上游「年运面板装配丢失」修复对本仓不适用,未抄(BUG-1096)。 - Skill 版本不 bump(Skill 文本未改)。不改数据库结构。 +## 2026-09-29 — 报告页:生成入口挪到页面中间、一键到底部、导出更显眼、目录分层、表格加底色、导出显示文件大小(待验收) + +- 「我的报告」页面顶部是一张「生成个人报告」卡片,按钮在卡片正中;下面是「过往的报告」列表。标题栏右上角的生成按钮去掉,只留这一个入口。 +- 报告详情页右下角有「到底部」按钮,点一次直接到文末(长报告也不会停在半路);接近底部时变成「回到顶部」。 +- 导出按钮改成带「导出」文字的按钮,不再是一个灰色图标。分块导出弹窗里显示文件大小(全篇和已选各一个,例如「约 186 KB」),按真实下载内容计算。 +- 目录里章节名加粗加深,小节往里缩,一眼能分出层级。报告里的表格加了淡淡的表头底色和隔行底色,打印时更浅;聊天里的表格不变。 +- 报告技术页去掉「字段」这类词:「Birth Chart 星主与状态字段」改叫「行星主星与状态」,表头 RL / NL / SL / SS / SB 改成星座主 / 星宿主 / 分主 / 分分主 / 力量比,并在表下说明;状态列不再出现「入旺(入旺)」这种重复(BUG-1092~1094)。 +- Skill 版本不 bump(Skill 文本未改)。不改数据库结构、不改计算。 + ## 2026-09-29 — 生时校正不再一路索要经历,选择题问完就给范围(待验收) - 说够开场那几件经历(至少 3 件、两类事)之后,校正只问点选题,问完直接给「目前范围」;不再逐条追问家里、钱、身体等七类事,也不再「身体这边再问一次」或按某年某月点名补经历。原因:打字补的经历在这之后几乎不能把范围缩小,反而把用户拖到十几二十件(BUG-1084)。自己主动打字补的经历照常记下。 diff --git a/docs/BUG_HISTORY.md b/docs/BUG_HISTORY.md index 1d744257..bc4bd22a 100644 --- a/docs/BUG_HISTORY.md +++ b/docs/BUG_HISTORY.md @@ -14688,6 +14688,50 @@ - 复发自:无 - 修复版本:未修 +## BUG-1092 | 报告技术页标题出现「字段」,行星主星表头是看不懂的 RL / NL / SL / SS / SB + +- 状态:resolved(代码 + 回归测试;未部署,真机待合入 staging 后复核) +- 首次发现 / 最近更新:2026-09-29 / 2026-09-29 +- 影响面:`scripts/pl9_reader_export.py`(p3 / p6 / p17 三个 `####` 标题、p6 表头、`_strip_pl9_user_engineering_markers` 的 `field_状态` 替换)。 +- 用户现象:个人报告「出生资料与图盘」里出现「Birth Chart 星主与状态字段」「原版补充字段」;表头是 `Planet | RL | NL | SL | SS | 状态 | SB`,产品反馈「用户都不知道这是啥」。 +- 触发条件:任何 reader_main 报告;p3 / p17 补充表只在引擎返回对应原版资料时出现。 +- 根因:模板标题照搬了引擎侧的工程命名(field / 字段)和 PL9 原版缩写,没有做面向读者的命名。 +- 修复:标题改为「行星主星与状态」「出生资料补充」「特殊上升与派生点补充」;`field_状态` 改译「状态」;表头改为「行星 | 星座主 | 星宿主 | 分主 | 分分主 | 尊贵状态 | 力量比」,表下加一句名称说明(力量比 = `ishta_bala_pct / 100`,1 以上为达标)。 +- 验证:`tests/test_report_reader_main.py::test_reader_headings_drop_field_jargon_and_dignity_is_one_name`;虚构案例同机改前 / 改后两次渲染 diff 只含这几处文案(golden `frontend/tests/fixtures/report-reader-main-fictional.json` 按该 diff 打补丁,其余逐字节不变)。 +- 防复发:报告标题不得出现「字段」;新增表头用读者能懂的中文,缩写须在表下说明。 +- 相关记录:BUG-1093、TASK-report-reader-polish-20260929 +- 复发自:无 +- 修复版本:分支 `codex/report-reader-polish-20260929` + +## BUG-1093 | 报告尊贵状态显示成「入旺(入旺)」「中性(中性)」 + +- 状态:resolved(代码 + 回归测试;未部署) +- 首次发现 / 最近更新:2026-09-29 / 2026-09-29 +- 影响面:`scripts/pl9_reader_export.py` p6「行星主星与状态」与「宫主(Bhavesh)落宫解释」两张表的状态列。 +- 用户现象:状态列同一个词写两遍(入旺(入旺)、入庙(入庙)、中性(中性)),另有「入敌(敌对星座)」「极敌(Great Enemy)」中英混杂。 +- 触发条件:任何 reader_main 报告。 +- 根因:引擎 `DIGNITY_LABELS` 本身是中英双写(`入旺(Exalted)`);reader 的汉化是全文逐词替换,把括号里的英文也译成中文,于是两边相同;glossary 里没有的词(Great Enemy)保持英文。 +- 修复:新增 `_dignity_label`,只取双写标签的中文部分;两张表的状态单元格都经它输出。引擎 `DIGNITY_LABELS` 不动(其它消费方依赖它)。 +- 验证:同 BUG-1092 的回归测试断言全文不再出现 `X(X)` 形式、两张表状态列无括号;`_dignity_label` 单测覆盖双写、纯中文、空值。 +- 防复发:reader 表格里的引擎枚举值先归一再进汉化,不依赖逐词替换处理括号。 +- 相关记录:BUG-1092 +- 复发自:无 +- 修复版本:分支 `codex/report-reader-polish-20260929` + +## BUG-1094 | 报告页可用性:生成入口不显眼、没有到底部、导出按钮找不到、目录层级分不清、表格行难对齐、导出不知道多大 + +- 状态:resolved(代码 + 回归测试;未部署,浏览器级真机欠,见 `docs/testing/report-reader-polish-20260929.md`) +- 首次发现 / 最近更新:2026-09-29 / 2026-09-29 +- 影响面:`personal-report-center.tsx`、`generate-personal-report-button.tsx`、`personal-report-markdown-view.tsx`、新增 `report-edge-jump.tsx`、`report-actions.tsx`、`report-export-drawer.tsx`、`lib/report-export-blocks.ts`、`globals.css`。 +- 用户现象(产品截图):生成按钮是标题栏右上角的小描边按钮,空状态文案写「生成完整报告」而按钮叫「生成报告」;长报告没法一下到底;导出只是一个灰色图标;目录里「强度、关系与 Ashtakavarga 技术页」像上一组的子项;表格无底色;分块导出只显示字数。 +- 根因:入口与导出做成了次要样式;按章节懒渲染却没有配套的到底部;目录一级 / 二级只差 12px 缩进、同色同字重;报告表格沿用聊天的极简表格样式;导出计数只统计字符(图盘块含 SVG,与文件大小差距大)。 +- 修复:生成入口挪进页面顶部卡片(删标题栏按钮),下方「过往的报告」;右下角「到底部 / 回到顶部」单按钮,点击先 `flushSync` 挂载全部懒渲染章节再滚到 `scrollHeight`;导出改为带文字的描边按钮;目录一级加粗用 ink、组间留白,二级缩进 `--space-5`;仅报告表格加表头淡底与隔行底色(打印更浅);导出弹窗显示 `TextEncoder` 实测字节(全篇与已选)。 +- 验证:`frontend/tests/report-reader-polish.test.tsx`(6 条)、`report-export-drawer.test.tsx` 新增文件大小用例;既有断言改动三栏见 `docs/tasks/PROGRESS-report-reader-polish-20260929.md`。 +- 防复发:报告页只有一个生成入口;到底部不得接入会话滚动锚;表格底色选择器限定在报告作用域。 +- 相关记录:BUG-1092、BUG-1093 +- 复发自:无 +- 修复版本:分支 `codex/report-reader-polish-20260929` + ## BUG-1095 | 太阳返照本地时间是 UT 原样:读者版「Varshapravesha」差一个时区,Sahams 昼夜按错误时刻判 - 状态:resolved(2026-09-29 Claude 独立验收通过:6 测试文件+隐私守卫 156 passed;基线树 vs 分支北京虚构盘 A/B:solar-return 6 处差异全为修正项、tajika 0 差异;快速门 Python 步 1001 passed / 1 skipped 与基线一致,npm 步为 worktree 无 node_modules 的环境缺口) diff --git a/docs/tasks/PROGRESS-report-reader-polish-20260929.md b/docs/tasks/PROGRESS-report-reader-polish-20260929.md new file mode 100644 index 00000000..f1312aa9 --- /dev/null +++ b/docs/tasks/PROGRESS-report-reader-polish-20260929.md @@ -0,0 +1,35 @@ +# PROGRESS · 报告页打磨 · 2026-09-29 + +> 任务书:`docs/tasks/TASK-report-reader-polish-20260929.md`。执行:Claude(直接执行模式,产品 2026-09-29「请你开始执行」)。 +> 分支 `codex/report-reader-polish-20260929`,基线 `origin/staging` = `6e393780`。BUG-1092~1094。 + +## 交付对照 + +| 编号 | 结论 | 说明 | +|---|---|---| +| R1 报告中心改版 | 完成 | 标题栏无按钮;`.report-center-create` 卡片居中放「生成报告」(实心,默认尺寸);下方「过往的报告」;无报告时一行「还没有个人报告。」。按钮的防重复点击、`classifyCreateResponse` 未改 | +| R2 到底部 | 完成 | 新组件 `report-edge-jump.tsx`;`LazyMarkdownSection` 新增 `forceVisible`,点击时 `flushSync` 挂载全部章节后滚到 `scrollHeight`;距底 480px 内变「回到顶部」,一次只显示一个 | +| R3 导出按钮 | 完成 | 描边、默认高度、可见文字「导出」,`aria-label="导出报告"` 保留 | +| R4 目录层级 | 完成 | 一级 ink / 600 / 组间 `--space-3`;二级缩进 `--space-5` | +| R5 字段文案与表头 | 完成 | 三个标题、`field_状态`、p6 表头改中文 + 表下说明;状态列经 `_dignity_label` 去掉双写;同样的去重也用在「宫主(Bhavesh)落宫解释」表(排查时发现的同源问题) | +| R6 表格底色 | 完成 | 只作用于 `.personal-report-table-wrap` 与 `.personal-report-fact-tables`;打印 5% / 2.5% | +| R7 导出大小 | 完成 | `exportByteSize` = `TextEncoder` 字节;`formatExportSize` 显示「约 N KB / 约 N.N MB」;全篇与已选各一个 | + +## 既有断言改动(原值 / 新值 / 原因) + +| 文件 | 原值 | 新值 | 原因 | +|---|---|---|---| +| `frontend/tests/personal-report-view.test.ts`「ready reports expose only the back link and accessible export icon」 | `match size="icon"`、`match