Files
Jyotisha/docs/tasks/PROGRESS-chart-ui-114-20261027.md
T
Jesse_ChenandClaude Opus 5.5 36fd4b2c83
Independent Staging Quality Gate / validate (push) Successful in 23m11s
Independent Staging Quality Gate / publish (push) Successful in 5m14s
Chart page back to the signed-off prototype (issue #114, round 5)
Round 3 followed the competitor screenshots instead of prototype v2.
Restored from the prototype source: page head (name, system switch,
report and chat buttons), layer row left / style right, the caption
strip with dasha chips, north board drawn from house centroids with sign
glyph + name + house number, dignity colours and " R", twelve house
theme chips with dots, wrapped antardasha chips, card hints, inspector
empty state, deep-reading hints, chevron date steps and 此刻, year axis
under the mahadasha scroll, three-column birth data. Point layers stay
in the layer group; side triangles stack bodies so nothing leaves the
frame (BUG-1465 test kept).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Ad9rqAB8pXXvyzh7f4X8v
2026-10-27 17:28:14 +08:00

8.0 KiB
Raw Blame History

PROGRESS · 星盘页一页铺开与点选联动(issue #114,2026-10-27)

直接执行模式:产品 2026-10-27 在会话里说「这单你来做,不交给 Grok」。没有单独任务书,范围与决策以 issue #114 评论(Q1~Q9 + 原型三件小事)和 docs/research/chart_ui_vs_competitor_2026_10_27.md 为准。原型:https://claude.ai/artifact/55AgsjsV8cFRobtM4d2cKz

  • 基线:origin/staging 8e05e4114;分支 codex/chart-ui-114-20261027。
  • 决策(产品定):Q1 B 配色不变只学圆角卡;Q2 A 一页铺开;Q3 南北都做默认北;Q4 西洋盘保留;Q5 数字 + 强中弱;Q6 未满足收起;Q7 问 AI 只填输入框;Q8 A 进对话就有盘 + 右栏可拖宽;Q9 观测日期任意。三件小事按原型默认:手机底部拉起、右栏宽度记住、南北全站统一。
  • 推翻的既有决定(已写进 DESIGN.md §15 新节):星盘页四页签结构;盘里只放彩色符号(2026-09-18)→ 星盘页盘面改中文一字星名 + 度数(报告、校正右栏仍用 VedicChartSvg);对话右栏默认收起、手机没有入口;右栏宽 280–560 → 320–760。

做了什么

块 内容 位置
数据 六力(modules.shadbala 六分量)、闭合清单瑜伽、出生历法(提毗 + 星期)直接随 /api/chart 映射;新懒层 ashtakavarga(/api/ashtakavarga + /api/bhava_bala);transitDate 查询参数(1000–2999 任意日) lib/chart-view-insight.ts、chart-view-contract.ts、chart-view-load.ts、chart-view-engine.ts、app/api/chart-view/route.ts
M1/M2 南北印度可点盘、图层、宫主实线 / 视相虚线、检视面板、键盘切换 components/chart-board/*、lib/chart-board-model.ts、hooks/use-chart-board.ts
M3 页头小签、命盘速览、九曜表、宫位主题、大运条 chart-side-cards.tsx
M4 观测日期、三层进度(子运同一比例公式 lib/dasha-span.ts)、行运表 + 土星七年半、人生长卷、双轨对照 chart-deep-reading.tsx、hooks/use-transit-at.ts
M5–M7 能量图谱、命性格局、排盘底册(含宫主流向) chart-deep-reading.tsx
M8 对话右栏完整盘面、默认打开、拖宽记住;手机底部抽屉 chat-natal-chart.tsx、chat-chart-frame.tsx、chat-chart-sheet.tsx

验证

  • tsc --noEmit 0;eslint 改动文件 0 问题。
  • 新测试 frontend/tests/chart-board-20261027.test.tsx 16 条(金样 tests/fixtures/chart-insight-golden.json 来自本机真实引擎,sourceCommand 写明)。子运与引擎 five_levels.pratyantar 当日结果一致。
  • 改动的既有断言(三栏说明写在测试里):chart-page-view.test.tsx 5 处、chat-chart-panel-state.test.ts 3 处、drag-width-handle-20261027.test.tsx 1 处。
  • 全量 npm test:5235 条(基线 5219),失败 26 条=基线 25 条无 Docker 的库/部署测试 + rectification-latency-20260926 一条负载下超时(单跑在本分支与基线都通过)。消失的 3 个测试名是带三栏说明改名的。
  • next build 通过,/ 仍 ○ Static,/chart ○;首屏 gzip 699696 → 700870(+0.17%)。
  • 本机引擎实测:/api/ashtakavarga、/api/bhava_bala、/api/dasha/chara、行运 /api/chart 各约 0.05 s。

本轮发现、未修

  • BUG-1462:special_lagnas 日出偏几个小时(scripts/jaimini.py 太阳黄经公式错)。星盘页不读;报告事实表读这一字段,可能受影响。需单开修复单。
  • BUG-1463:单独调 /api/shadbala 带出生资料时 500(swe 未导入)。星盘页不受影响。

环境缺口

  • 无登录态与 Chrome:浏览器级真机走查见 docs/testing/chart-board-114-20261027.md。
  • 竞品「交界与结构联系」、出生历法的羯罗那 / 常瑜伽 / 日出日落 / 下次交界:引擎没有出生时刻的这些值,本轮不做。

遗留

  • chart-vedic-tab.tsx 里的 ChartVedicTab / VedicLayout(旧盘面分栏与换盘动效)和 chart-basics-tab.tsx 已不被页面使用,仍有 10 个测试文件在测它们;清理需另开一轮连测试一起改。

第二轮:数据表与标点图层(2026-10-27 下午)

产品贴竞品五张数据表(星力、八分点、映射、特殊点、虚星),原型第 2 版定设计;10-27 13:10 答「1 需要做(标点做成图层)2 可以(数据表不重复大运、瑜伽)」。

块 内容 位置
引擎 新端点 /api/chart_points:直接调既有生产者——gulika.calculate_upagrahas、native_special_lagnas.native_special_lagna_rows(Swiss Ephemeris 日出,避开 BUG-1462)、annual_native.yogi_sphuta.build_yogi_sphuta_local、jaimini.calc_arudha_padas、jyotish_engine._build_planetary_friendship_snapshot;各块独立失败。主文件只加一段薄注册(类方法数不变,行数 10949 < 11224),模块放子包 scripts/chart_view_points/(根目录 py 预算已满 452) scripts/chart_view_points/api.py
数据 懒层 points;六力补位置力 / 时间力分量;八宫点补上升行 chart-view-insight.ts、chart-view-contract.ts
界面 标点图层(虚星 / 特殊点 / 映射)、点的检视、数据表六页、八宫点「升」行 chart-board-svg.tsx、chart-inspector.tsx、chart-deep-reading.tsx、use-chart-board.ts

验证:快速门 Python 部分(py_compile、审计、pytest)全过,前端一步失败 25 条=基线无 Docker 库测试条数;next build 通过,/ ○ Static,首屏 gzip 699696 → 701085(+0.20%)。tests/test_chart_view_points_api.py 8 条(太阳推算点公式、Avayogi = Yogi + 186°40′、综合敌友 = 天生 + 临时、单块失败不连坐、路由薄注册);chart-board-20261027.test.tsx 新增 4 条(金样含 chart_points,由同一模块对金样星盘实算)。

第三轮:整版收拾(2026-10-27 傍晚)

产品 15:58 评论「现在做的太丑了……完全就一个字乱」。本机 next build + 临时路由(只在本地,未提交)+ Chrome 无头截 1440 / 390 宽,对照 issue 竞品图逐块找乱源:

乱在哪 根因 改法
北印度盘中心叠四个星座名、交叉点叠两个 借用报告盘写数字的内角位置 signNumberAnchor NORTH_SLOTS 每宫四个位置(BUG-1465)
右侧三角星体出界 occupantAnchor 在三角里往外推 同上;星体组左偏、两侧竖排
手机盘被裁 卡片内容网格隐式列取最小内容宽 grid-template-columns: minmax(0, 1fr)
盘卡三排控件 + 说明条 第二轮把标点做成第二组页签 图层与标点并成一排;北南切换进标题;删说明条
南印度标点胶囊重叠 固定 30 间距、宽度按字数粗估 按字宽量、间隔 3
体系页签又小又偏 分段 Tabs 套在下划线行样式里;宽 1100 与两栏 1240 不齐 variant="line";同宽
宫位主题十二枚 + 小圆点 — 只列有星的宫
日期框撑满整行 全站 input:not(...)×5 规则 width 100% 更具体的选择器
时运流年底部重复一列 Vimshottari 手风琴 复用旧大运页 ChartDashaTab secondOnly

验证见本轮提交说明与下方数字。

第五轮:按原型改回(2026-10-27 晚)

产品:「you did not follow prototype」。第三轮我参照竞品图改了版式,偏离了产品签过的原型 v2(说明条删了、北南切换挪进标题、宫位主题只列有星的宫、分运单行横滑、各卡提示语删了)。本轮以原型源码为准逐项对齐:页头三件、盘卡工具行与说明条、北印度画法(重心定位、符号 + 名字 + 宫号、尊贵着色、「 R」)、右栏四卡提示与样式、检视空态、深读提示、日期按钮、人生长卷年份刻度、排盘底册三列。保留第二轮产品要的标点图层(并进图层组)和第二条运法(Chara / Yogini,原型没有,但是既有能力)。为不出框偏离原型三处,写在 DESIGN.md §15。