Files
Jyotisha/docs/tasks/TASK-chart-western-fix-20260925.md
T

2.8 KiB
Raw Blame History

TASK · 西洋盘 ASC / MC 标签与行星重叠 + 点击区过小 + 文档陈旧行(2026-09-25)

基线

  • origin/staging = fabe0114(已部署)。分支 codex/chart-western-fix-20260925。只动 frontend/src/components/chart-page/western-wheel-svg.tsx、frontend/src/lib/western-wheel-layout.ts 与其测试、文档;与另两份修复单不交叉。
  • Claude 09-25 验收:星盘 / 星历修复(19ea0f06)与大运 / 西洋改版(5a2d9da9)逐项通过;两个 golden 已按真实引擎复算(Chara 逐字节一致;西洋 11 颗行星与 12 宫头一致)。以下是未通过项。

事故实证

  • P1:ASC、MC 标签在 r=162(两层行星半径 136 与 188 之间)、偏离轴线 9°,不参与避让。排查用真实布局函数模拟 3000 张随机盘:「ASC」与行星标签重叠约 34%,「MC」约 3%,行星标签之间在启用第二半径后仍约 6%。典型情形是第 12 宫有行星、离上升点几度。1990 年测试盘上升附近恰好无行星,所以测试通过。违背本次改版"消除重叠"的目的。
  • P3:行星点击区 r=22(520 viewBox),375px 屏幕约 31px,低于 44px;西洋 fixture 是从真实值改写成视图键的子集(值真、形状手造,AGENTS §7.4 偏弱);docs/BUG_HISTORY.md BUG-1025 的修复 / 验证行与 CHANGELOG.md(首页拆分条目)仍写 ?settings=chart 打开星盘资料,实际已跳 /people。

决策记录

  • D1 ASC / MC 纳入避让集合(与行星同一轮松弛计算,轴点标签视为固定锚点、行星让位),或给轴点独立半径且与两层行星半径都保持 ≥ 字号的间距;二选一,写进 PROGRESS。
  • D2 避让测试改为扫描:用真实引擎生成至少 50 张虚构盘(或排查用的随机生成器 + 真实布局函数,固定种子),断言任意两标签(含 ASC / MC)包围盒不相交;允许的残余重叠率写成常量且 ≤ 1%。
  • D3 行星点击区在 375px 下 ≥ 44px(透明命中圆,不改视觉)。
  • D4 西洋 fixture 改为保存真实引擎原始响应,再由测试内的 mapper 转换;文档两处陈旧行更正。

硬红线

不改引擎与接口;不缩小字号到 < 12;相位线常显不变;骨架模式无文字不变;全量失败名单与基线逐条一致(Node 22 + Linux);既有断言三栏。

开工前置命令

git fetch origin --prune
git worktree add -b codex/chart-western-fix-20260925 .worktrees/chart-western-fix-20260925 origin/staging
cd .worktrees/chart-western-fix-20260925/frontend && npx tsx --test tests/western-wheel-layout.test.ts tests/chart-page-view.test.tsx

BUG 编号

沿用 BUG-1029 之后的号:若需记账用 people-archive-p1-fix 之后的下一个号,开工时核对。