docs(chart): progress, BUG-1076/1077, design, glossary, changelog, device checklist for chart types (T8 chart part)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
c35e0195e1
commit
856dab6c55
@@ -14467,3 +14467,33 @@
|
||||
- 相关记录:BUG-473、BUG-1053、BUG-1074;`TASK-consult-first-frame-and-pacing-20260928`。
|
||||
- 复发自:无
|
||||
- 修复版本:staging `79c5e566`(2026-09-28 部署核对:`/api/health` `deployment.gitCommit` = 79c5e566,未登录 `/api/account` = 401;Claude 验收门禁见 PROGRESS;真机清单 7 条与 `first_byte` 耗时待产品)。
|
||||
|
||||
## BUG-1076 | 星盘页分盘表格显示的是本命数据:切到 D9 / D10 只换了表头
|
||||
|
||||
- 状态:待验收(回归测试已过;分支 `codex/chart-types-20260928` 本地提交,未推 staging、未部署)
|
||||
- 首次发现 / 最近更新:2026-09-28 / 2026-09-28
|
||||
- 影响面:`frontend/src/components/chart-page/chart-vedic-tab.tsx`(表格)、`frontend/src/lib/chart-view-contract.ts`(`chartViewVargaSchema`)、`frontend/src/lib/chart-view-mapper.ts`(`buildVargas`)。线上 `/chart` 自 09-15 首版起即如此。
|
||||
- 现象:产品转述真机反馈「下面的表中的数据也要根据星盘不同显示不同的表中数据」。实测切到 D9 时表头写「D9 · 配偶/灵性」,每一行星座、度数、宫位、星宿仍是 D1。
|
||||
- 触发条件:星盘页选任意非 D1 分盘。
|
||||
- 根因:表格 `<tbody>` 渲染的是 `view.vedic.ascendant` / `view.vedic.planets`(`planetRows(chart)` 只读 `/api/chart` 本命数据),只有 `<caption>` 用了 `varga.id`;契约里分盘只有画盘用的 `chart`,没有表格行。原测试只断言 caption 随 chip 变,没断言行内容。
|
||||
- 修复:契约给 D2 起的分盘加 `ascendant` 与 `rows`(分盘星座、分盘内度数、从分盘上升数的宫位、本命星座、庙旺、同位 / Vargottama、本命顺逆);分盘表改六列「行星 · 分盘星座 · 宫位 · 本命星座 · 庙旺 · 同位」,删掉星宿 / 宿主 / 足(那是本命经度的属性,放进分盘是错数据)。庙旺用 `frontend/src/lib/vedic-chart-tables.json`,表与 `jyotish_engine` 的 `EXALTATION / DEBILITATION / SIGN_LORDS` 和 `_get_dignity_level` 的判定顺序由 `tests/test_chart_page_vedic_tables_contract.py` 逐格钉住(不在 Python 响应里加字段,是为了不改被报告、咨询、golden 共用的 `varga_full` 形状)。D1 表不变。
|
||||
- 验证:`frontend/tests/chart-varga-table.test.tsx` 先写先红(基线 5dc977ef 上 D9 太阳行是「双子 1°32′」,断言要「天秤」),修后绿;D1 表与基线渲染逐字节相同(`fixtures/chart-d1-table-baseline.html` 由基线提交渲染);D9 土星「自宫 + 同位」、太阳「落陷」;每张非 D1 分盘 9 行。`chart-view-varga-dignity.test.ts` 钉判定顺序。
|
||||
- 防复发:分盘表的行必须来自该分盘自己的 `rows`;新增盘型的测试必须断言行内容,不能只断言标题。
|
||||
- 相关记录:BUG-704~706(星盘页首版)、BUG-1016(骨架);`TASK-chart-types-and-report-buttons-20260928` T3。
|
||||
- 复发自:无
|
||||
- 修复版本:本地 `ab6ee94e`(未推送)。
|
||||
|
||||
## BUG-1077 | `/api/bhava_chalit` 缺 MC 时 Sripati 静默退化成等宫
|
||||
|
||||
- 状态:待验收(回归测试已过;分支 `codex/chart-types-20260928` 本地提交,未推 staging、未部署)
|
||||
- 首次发现 / 最近更新:2026-09-28 / 2026-09-28
|
||||
- 影响面:`scripts/jyotish_api_server.py` `_compute_bhava_chalit`(直接调用该端点的任何调用方)。报告链 `jyotish_engine._build_natal_foundation_modules` 自己用 `swe.houses_ex(..., FLG_SIDEREAL)` 取 MC,不受影响;CLI `bhava_chalit.cmd_bhava_chalit` 也自己算 MC,不受影响。
|
||||
- 现象:不传 `mc_lon` 时,12 宫 `span_degrees` 全是 30.0,Bhava 宫与星座宫完全相同,「换宫」恒为 0。**即使请求里带齐出生年月日时与经纬也一样**——端点只给 placidus / koch 算 JD。
|
||||
- 触发条件:`house_system` 为 sripati(默认)或 porphyry,且请求不带 `mc_lon`。
|
||||
- 根因:`mc_lon = self._normalize_degree(body, 'mc_lon', (asc_lon + 270) % 360)`:缺省 MC 取上升减 90°,四个象限各恰好 90°,三等分后就是等宫。
|
||||
- 修复:新模块 `scripts/bhava_chalit_mc.py` `resolve_bhava_mc_lon`:显式 `mc_lon` 优先;否则有出生时刻与地点就用 `swe.houses_ex(jd, lat, lon, b'R', FLG_SWIEPH | FLG_SIDEREAL)` 在请求岁差下取恒星黄道 MC(与报告链同一调用);再否则 sripati / porphyry 直接 400,不猜。不需要 MC 的宫制(equal / whole_sign / placidus / koch)行为不变。端点只改了既有一行的位置(净增 0 行,类方法数不变)。星盘页 Bhava 层另有一道防线:`mapBhava` 遇到宫制回退、缺 MC、或 MC 恰等于 `asc + 270` 一律返回 unavailable,不画等宫。
|
||||
- 验证:`tests/test_api_server_security.py` 三条新测试先写先红(基线上「缺 MC 与出生时刻应 400」未抛出、「带出生时刻时跨度不全为 30」得到 `[30.0, 30.0, …]`),修后绿;MC 与独立的 `houses_ex` 调用差 < 1e-3°,同一调用的上升与引擎本命上升差 < 0.01°;equal 宫制无出生时刻仍可用。真实响应存为 `frontend/tests/fixtures/chart-view-bhava-golden.json`(星盘页 golden 的虚构盘:太阳、水星、土星换宫)。`frontend/tests/chart-bhava.test.tsx` 断言占位 MC 与宫制回退都不出盘。
|
||||
- 防复发:任何取 Bhava 宫头的新调用方都经 `bhava_chalit_mc.resolve_bhava_mc_lon`,不得再给 MC 写几何默认值。
|
||||
- 相关记录:BUG-320(Bhava 进换升表);`TASK-chart-types-and-report-buttons-20260928` T5。
|
||||
- 复发自:无
|
||||
- 修复版本:本地 `c35e0195`(未推送)。
|
||||
|
||||
Reference in New Issue
Block a user