fix(report,chart): blank columns — drop Kranti, split Ashtakavarga house SAV, ascendant nakshatra, engine varga dignity, no duplicate charts (BUG-1199..1203)
- Report p33 table: no Kranti column (no producer; materials.kranti stays blocked). - Report p53 table: the "SAV" column was the with-Lagna total (386). Split in the reader into SAV / Lagna BAV / SAV + Lagna with a totals row; ashtakavarga.py is untouched (frozen rectification identity, ERR-115). - /api/chart ascendant carries nakshatra / pada / lord (_nakshatra_fields shared with the nine bodies); chart cache schema 4 -> 5. - /api/varga_full bodies carry dignity_level from varga_dignity_level, the function the Vimsopaka path now shares (A/B identical); the chart page shows the D1 status wording and no longer derives a three-level dignity itself. - Report page draws each chart once: the trailing block skips charts the body already fenced (same rule as the export); the birth-time caveat moves under the body's chart heading. 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
0e856f9cb6
commit
ae18952e51
@@ -16134,3 +16134,75 @@
|
||||
- 防复发:同上。
|
||||
- 相关记录:BUG-1195。
|
||||
- 修复版本:`codex/upstream-sync5-20261002`(未推送)。
|
||||
|
||||
## BUG-1199 | 报告「Declination / Kranti / Speed」表的 Kranti 列整列为「-」
|
||||
|
||||
- 状态:resolved(分支验证;待部署 staging)
|
||||
- 首次发现 / 最近更新:2026-10-03 / 2026-10-03
|
||||
- 影响面:`scripts/pl9_reader_export.py` p33 表(中英两版报告正文与目录)。
|
||||
- 现象:产品真机截图,个人报告「Declination / Kranti / Speed」表七行 Kranti 全是 `-`,像没算出来。
|
||||
- 触发条件:任何一份报告。
|
||||
- 根因:reader 读 `strengths.kranti_local.planets[*].kranti_degrees`,全仓没有任何 producer;引擎 materials `kranti` 自标 `missing_in_local / blocked`(no independent Kranti producer)。表照样留了这一列。
|
||||
- 修复:产品选删列:表改为 `Planet | Degree | Declination | Speed`,标题 `Declination / Speed`。不按古典公式补算(无 PL9 原值可对照,Declination 已是真实赤纬)。materials `kranti: blocked` 审计口径与 `full_report_quality_gate.RESTRICTED_MATERIAL_IDS` 不变。
|
||||
- 验证:`tests/test_report_chart_blank_columns.py::test_declination_table_has_no_kranti_column`(中英两版:无 Kranti、四列、无 `-`)。
|
||||
- 防复发:没有 producer 的字段不进读者表格;要加列先有来源。
|
||||
- 相关记录:BUG-1200~1203(同一张截图)。
|
||||
- 复发自:无
|
||||
- 修复版本:`codex/report-chart-blank-columns-20261003`
|
||||
|
||||
## BUG-1200 | 报告「Ashtakavarga 完整宫位分数」把含上升合计标成 SAV,另两列为「-」
|
||||
|
||||
- 状态:resolved(分支验证;待部署 staging)
|
||||
- 首次发现 / 最近更新:2026-10-03 / 2026-10-03
|
||||
- 影响面:`scripts/pl9_reader_export.py` p53 表(数据源 `scripts/ashtakavarga.py::_map_to_houses_values`,未改)。
|
||||
- 现象:表头「House | Sign | SAV | BAV/承接 | Full with 上升」,后两列全 `-`;「SAV」列 12 宫合计 386,与同页「Sign | SAV score」表(合计 337)对不上。
|
||||
- 触发条件:任何一份报告。
|
||||
- 根因:`_map_to_houses_values(full_sav, …)` 只写 `sign` + `sav_score`,传入的是 `full_sav = sav + lagna_sav`(337 + 49);reader 用 `row.get('sav') or row.get('sav_score')` 取到含上升合计标成 SAV,`bav` / `full_with_lagna` 字段不存在。**数字标错,不只是缺列**。
|
||||
- 修复:在 reader 拆分,**`ashtakavarga.py` 不改**——它在生时校正冻结身份(`sealed_holdout_rerun.PRODUCTION_FILES`)里,最初按任务书改它新增字段,快速门 `test_rectification_validation_integrity_gate` 4 条转红(ERR-110);改为 reader 用引擎已有的按星座 SAV(`sav.scores`)与上升 BAV(`bav.Lagna.bindus`)拆出,且要求 `SAV + 上升 BAV == house_scores_full.sav_score` 逐宫成立才填,否则 SAV / 上升两列写 `-`、不出合计行,绝不把合计填进 SAV 列。`sav_score` 语义与数值不变(生时校正在读)。表改为 `House | Sign | SAV | Lagna BAV | SAV + Lagna`(中文版「上升 BAV」「SAV + 上升」),末行合计。
|
||||
- 验证:`tests/test_report_chart_blank_columns.py`:每行 SAV + 上升 BAV = 最后一列、合计 337 / 49 / 386(中英两版);SAV 列 = 按星座 SAV、上升列 = Lagna bindus、末列 = `house_scores_full.sav_score`;删掉 Lagna BAV 时 SAV / 上升两列为 `-` 且无合计行。验证完整性门禁与封存评测新鲜度测试保持全绿(冻结身份未变)。
|
||||
- 防复发:报告表格列只读语义明确的字段,不用 `or` 链兜到别的口径。
|
||||
- 相关记录:BUG-1199。
|
||||
- 复发自:无
|
||||
- 修复版本:`codex/report-chart-blank-columns-20261003`
|
||||
|
||||
## BUG-1201 | 星盘页本命表上升行的星宿 / 宿主 / pada 一直是「—」
|
||||
|
||||
- 状态:resolved(分支验证;待部署 staging)
|
||||
- 首次发现 / 最近更新:2026-10-03 / 2026-10-03
|
||||
- 影响面:`scripts/jyotish_engine.py::compute_chart_data`(`/api/chart` 的 `ascendant`)、`frontend` 星盘页 D1 / 月亮盘表上升行。
|
||||
- 现象:上升行星宿、宿主、pada 三格为「—」,九曜都有。
|
||||
- 根因:`compute_chart_data` 给九曜按 `nak_span` 算了 `nakshatra / nakshatra_pada / nakshatra_lord`,`result["ascendant"]` 漏了;前端按「引擎不给就不推」留空。
|
||||
- 修复:抽 `_nakshatra_fields(sidereal_lon)`,九曜、计都、上升共用;`/api/chart` 缓存 `cache_schema_version` 4 → 5(缓存 TTL 900 s,改版本只影响查找键;指纹 / 绑定只用出生资料,不受影响)。前端只改注释。
|
||||
- 验证:`tests/test_report_chart_blank_columns.py`(边界 0°、13°20′ 两侧、360°;golden 盘上升 Uttara Phalguni 1 足、九曜与 golden 逐星一致);`frontend/tests/chart-varga-table.test.tsx` 上升行断言;旧缓存无字段仍渲染「—」。golden `chart-view-golden.json` 用 `_nakshatra_fields` 重录(命令写在 `sourceCommand`)。
|
||||
- 防复发:同一个量(星宿)只有一个计算函数,新增盘点直接复用。
|
||||
- 相关记录:BUG-1076(D1 表逐字节基线:本次放开上升三格,见进度记录三栏)。
|
||||
- 复发自:无
|
||||
- 修复版本:`codex/report-chart-blank-columns-20261003`
|
||||
|
||||
## BUG-1202 | 星盘页分盘表「庙旺」只做三档,敌宫 / 中性等一律「—」
|
||||
|
||||
- 状态:resolved(分支验证;待部署 staging)
|
||||
- 首次发现 / 最近更新:2026-10-03 / 2026-10-03
|
||||
- 影响面:`/api/varga_full`(新模块 `scripts/varga_dignity.py`)、`jyotish_engine.varga_dignity_level`、`frontend/src/lib/chart-view-{varga,mapper,contract}.ts`、`vedic-chart-tables.json`。
|
||||
- 现象:D9 表只有入旺 / 自宫 / 落陷有字(太阳在金牛=敌宫、月亮在摩羯=中性都是「—」),产品以为没算。
|
||||
- 根因:BUG-1076 / 1099 有意只做三档,前端自带一份 `vargaDignity` 表;引擎 Vimsopaka 路径早有完整判定没接过来。
|
||||
- 修复(产品 10-03 拍板,**有限推翻 BUG-1076「三档庙旺」与 BUG-1099「三档庙旺保留」**;BUG-1099 能力声明规则不变):抽 `varga_dignity_level(planet, varga_planets)`(暂时关系取该分盘自身位置,与 Vimsopaka 一致),Vimsopaka 与 `/api/varga_full` 共用;`/api/varga_full` 每星加 `dignity_level`;前端只校验并用 D1 状态列同一措辞(`DIGNITY_LABELS`)显示;删除前端 `vargaDignity` 及只为它服务的四张表。旧缓存无等级时整列隐藏,不自算。
|
||||
- 验证:Vimsopaka 抽函数前后同机 A/B(`PYTHONHASHSEED=0`,3 张虚构盘 `cmd_full_reading` 的 vimsopaka / varga_full / jaimini / 行星 / 上升)逐字节相同;`tests/test_api_server_security.py::test_varga_full_standard_divisions_carry_the_vimsopaka_dignity_level`(与 `varga.calc_all_vargas` 的 Vimsopaka 输入逐星同座同级);`tests/test_chart_page_vedic_tables_contract.py`(真实 TS mapper 投影 = 引擎等级,golden 覆盖入庙 / 落陷 / 中性 / 入敌 / 入友;措辞表 = `DIGNITY_LABELS`);`frontend/tests/chart-varga-table.test.tsx`、`chart-view-varga-dignity.test.ts`。
|
||||
- 防复发:分盘庙旺只有引擎一套;页面不得再写第二套判定。
|
||||
- 相关记录:BUG-1076、BUG-1099。
|
||||
- 复发自:无(范围扩展,不是回归)。
|
||||
- 修复版本:`codex/report-chart-blank-columns-20261003`
|
||||
|
||||
## BUG-1203 | 报告末尾「分盘核对」把正文已画过的分盘再画一遍
|
||||
|
||||
- 状态:resolved(分支验证;待部署 staging)
|
||||
- 首次发现 / 最近更新:2026-10-03 / 2026-10-03
|
||||
- 影响面:`frontend/src/components/personal-report/report-calculation-charts.tsx`、`personal-report-page.tsx`、`src/lib/report-chart-block.ts`、`report-export-blocks.ts`、`scripts/pl9_reader_export.py`(提示句)。
|
||||
- 现象:正文「本命与分盘北印度图盘」已画全部分盘,正文后又出现「分盘核对」+ 提示句 + D1、D2… 第二遍,在目录外、样式散。
|
||||
- 根因:页面在 Markdown 正文后无条件挂 `ReportCalculationCharts`;导出早已按正文围栏去重,页面没用同一规则。
|
||||
- 修复:抽 `fencedReportChartIds`,页面与导出共用;页面只画正文没有围栏的结构化分盘(新报告整段消失,老报告缺哪张补哪张)。提示句由引擎写到正文分盘标题下(英文版走术语表),组件里的提示删除。
|
||||
- 验证:`frontend/tests/report-calculation-charts.test.tsx`(真实 golden 正文 → 整段不渲染;无围栏正文 → 照旧且不带提示;页面与导出跳过同一批盘);导出原有测试(含冻结哈希)全绿;`tests/test_report_chart_blank_columns.py::test_chart_section_carries_the_divisional_caveat`(中英)。
|
||||
- 防复发:同一张盘页面只画一次;页面与导出共用去重函数。
|
||||
- 相关记录:BUG-607 / 616(报告图盘渲染)。
|
||||
- 复发自:无
|
||||
- 修复版本:`codex/report-chart-blank-columns-20261003`
|
||||
|
||||
Reference in New Issue
Block a user