Files
Jyotisha/docs/tasks/PROGRESS-chart-subject-table-fix-20261022.md
T
Jesse_Chen 28dd8df333
Independent Staging Quality Gate / validate (push) Successful in 15m56s
Independent Staging Quality Gate / publish (push) Successful in 3m36s
Merge codex/chart-subject-table-20261021 (#86) into staging
# Conflicts:
#	CHANGELOG.md
#	docs/BUG_HISTORY.md
2026-10-22 03:23:59 +08:00

49 lines
5.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.
# 进度:星盘页就地编辑 / 报告表换行(issue #86 第 1 次打回)
修复单 `docs/tasks/TASK-chart-subject-table-fix-20261022.md`。分支 `codex/chart-subject-table-20261021`。开工先合入 `origin/staging` `2806bd5b75bd701e62e837fae70eda87d6d796ac`(只含文档,无冲突)。被打回的提交是 `885bd5665`。
## 改了什么
- **F1** 报告里只有表头含「速度 / Speed / 度数 / 黄经」的数值表加 `personal-report-table-numeric`,单行和按内容撑宽只挂在这个类上。作用说明、建议这类表恢复换行。打印时所有表都是页宽,单元格可以换行。打印块里不再出现按内容撑宽和禁止换行。
- **F2** 「保存他人」收到 `frontend/src/lib/other-profile-save.ts` 的 `saveOtherProfile`。请求、409 `reported_birth_time_is_immutable` 的文案、成功后清星盘和星历缓存都在这里。星盘编辑框和档案页都调它。档案页以前只刷新名单,改完别人再看星盘仍是旧盘,记为 BUG-1411。
- **F3** 编辑框只在点击落在框外(遮罩)时关闭。点内边距、或拖选文字后松手落在内边距上,不关闭、不丢掉未保存内容。Esc 仍关闭。记为 BUG-1412。
- 测试文件改名为 `frontend/tests/chart-birth-editor-and-report-table.test.tsx`。仓库里没有别的测试按源码断言旧文件名;BUG-1410 的验证路径已改成新名字。
- 「填报的出生时间保存后不能再改」只留在时间旁边那一行。表单说明里不再写。档案页编辑已经保存过出生时间的他人时,也锁住这一项,所以同一句仍然会出现,但只从这一处来。
## 断言改动
| 位置 | 原值 | 新值 | 原因 |
| --- | --- | --- | --- |
| 本单测试里的表格 CSS | `.personal-report-table-wrap` 的单元格含禁止换行;打印表按内容撑宽,单元格也不换行 | 这两条只出现在 `.personal-report-table-numeric` 下;打印块里没有;普通表宽 100% | 整句表和打印被数值表的单行规则带走了 |
| 同上,星宿英文名 | `.report-nakshatra-en` 自己禁止换行 | 仍是浅色小字;单行靠数值表单元格 | 禁止换行只留给数值表。数值表的格子已经不会从中间拆开英文名 |
| 同上,锁定提示 | 渲染结果里出现「填报的出生时间保存后不能再改」即可 | 锁定时正好一次,写在时间旁边;说明、编辑框源码、档案页源码里都没有这句 | 同一句原来在说明和锁定提示各出现一次 |
| `chart-library-other-profile.test.ts` | `/method: editingOther ? "PUT" : "POST"/` 写在人物页 | `/method: id ? "PUT" : "POST"/` 在 `saveOtherProfile` | 星盘编辑框和档案页共用这一处请求 |
| 同上 | `catch {` 后 180 字内「保存失败,请重试」 | `catch (caught)` 后仍有这句 | 409「填报的出生时间不能再改」要从共用函数原样提示,不能一律盖成保存失败 |
没有删测试,也没有放宽「保存失败不得假装成功」「不写本地星盘库」这些断言。
## 检查
| 检查 | 命令 | 结果 |
| --- | --- | --- |
| 类型 | `frontend` 里 `node_modules\.bin\tsc --noEmit -p .` | 退出码 0 |
| lint | `npm run lint` | 0 个错误,122 条警告(与打回验收记录的基线相同)。这次改过的前端文件再跑 eslint,0 条警告 |
| 本单测试 | `tsx --test tests/chart-birth-editor-and-report-table.test.tsx` | 8 通过,0 失败 |
| 星盘页、档案页、报告表、CSS 合同 | 同一条 `tsx --test` 加上 `chart-page-view.test.tsx`、`people-archive-view.test.tsx`、`people-archive-regressions.test.ts`、`self-edit-people-20260928.test.tsx`、`profile-gender-ui-20260927.test.tsx`、`chart-library-other-profile.test.ts`、`settings-mvp-contract.test.ts`、`report-reader-polish.test.tsx`、`report-fact-table-print.test.ts`、`personal-report-markdown-view.test.ts`、`personal-report-longform-md.test.ts` | 105 通过,0 失败,0 取消 |
| 阅读版速度 | `pytest tests/test_report_chart_blank_columns.py -q`(本工作树没有 `.venv`,用了 `agent-loop` 工作树的解释器) | 16 通过,退出码 0 |
| 全量 `npm test` / `next build` | 修复单约定交给验收 | 未跑 |
## 偏离
- 整句表用自动列宽加页宽,单元格可换行,没有退回改前的固定列宽。固定列宽是行星表被从中间拆开的原因。
- 档案页在别人已经保存过出生时间时也锁住这一项。这样「保存后不能再改」只留在时间旁边,档案页不会把这句丢掉。
- 开工时 `BUG_HISTORY` 去重后的最大号是 1404。新增 BUG-1411(档案页缓存)和 BUG-1412(点内边距关闭)。修复单写明 #85 占用 1404~1408,合入前会重编。没有再用 1404。
- 没有在浏览器里点已登录的星盘页、档案页和报告页。
## 未做
- 没有 push。
- 没有跑全量 `npm test`,没有 `next build`。
- 合入 staging 时 Claude 把本分支的 BUG-1404~1406 改为 **BUG-1410~1412**(1404~1408 归 #85,1409 归 #90)。