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
@@ -0,0 +1,57 @@
|
||||
# PROGRESS · 报告与星盘页的「空列」(2026-10-03)
|
||||
|
||||
- 任务书:`docs/tasks/TASK-report-chart-blank-columns-20261003.md`(`3bbc2daa`)
|
||||
- 基线:`origin/staging` `3bbc2daa`(任务书写的 `1af34880` + 任务书本身,代码相同)
|
||||
- 分支 / worktree:`codex/report-chart-blank-columns-20261003` / `.worktrees/report-chart-blank-columns-20261003`
|
||||
- 执行方式:产品 10-03 说「请你执行」,Claude 直接实现并独立验收。
|
||||
- BUG:1199~1203(开工核对最大号 1198)
|
||||
|
||||
## 完成情况
|
||||
|
||||
| 任务 | 结果 | 要点 |
|
||||
| --- | --- | --- |
|
||||
| T1 Kranti 删列(BUG-1199) | 完成 | `pl9_reader_export.py` p33 表四列;materials `kranti: blocked` 与质量门 `RESTRICTED_MATERIAL_IDS` 未动 |
|
||||
| T2 八分法三列(BUG-1200) | 完成,**实现方式偏离任务书** | 见下「偏离」 |
|
||||
| T3 上升星宿(BUG-1201) | 完成 | `_nakshatra_fields` 九曜 / 计都 / 上升共用;`cache_schema_version` 4→5;指纹 / 绑定核查:只用出生资料(`report-birth-binding`、`secondary-page-data` 的 `profileFingerprint`),报告封面哈希是报告正文;均不受影响 |
|
||||
| T4 分盘十档庙旺(BUG-1202) | 完成 | `jyotish_engine.varga_dignity_level`(Vimsopaka 与 `/api/varga_full` 共用);新模块 `scripts/varga_dignity.py`,API 主文件只改一行(行数 10923 不变);前端删 `vargaDignity` 与四张表,旧缓存无等级整列隐藏 |
|
||||
| T5 末尾分盘去重 + 提示前移(BUG-1203) | 完成 | `fencedReportChartIds` 页面与导出共用;提示句由引擎写在 p6-p17 标题下(中英) |
|
||||
|
||||
未用让步顺序。
|
||||
|
||||
## 偏离任务书:T2 不改 `ashtakavarga.py`
|
||||
|
||||
任务书写「`_map_to_houses_values` 增字段」。照做后快速门红 4 条(`test_rectification_validation_integrity_gate`)、`test_sealed_holdout_contract_freshness` 红 3 条:该文件在生时校正冻结身份里(ERR-110 同型;台账新增 ERR-115,是任务书本身的疏漏)。改为 reader 用 `sav.scores` 与 `bav.Lagna.bindus` 拆分,并要求逐宫 `SAV + 上升 BAV == house_scores_full.sav_score` 才填;`ashtakavarga.py` 已回到基线字节,门禁恢复全绿,无需重新冻结。红线 1(`sav_score` 不变)照样满足。
|
||||
|
||||
## 既有断言改动(原值 / 新值 / 原因)
|
||||
|
||||
| 位置 | 原值 | 新值 | 原因 |
|
||||
| --- | --- | --- | --- |
|
||||
| `frontend/tests/chart-varga-table.test.tsx` D1 逐字节基线 | 表 == `chart-d1-table-baseline.html` | 表 == 基线把上升行唯一一组「— — — —」换成「Uttara Phalguni / ☉ / 1 / —」;并断言基线里这样的全横杠行只有一处 | BUG-1201:上升三格现在有引擎值;其余逐字节不变 |
|
||||
| 同文件 D9 行 | `dignity == "own"` / `"debilitated"`;markup `>自宫<`、`>落陷<` | `"OWN_SIGN"` / `"DEBILITATED"`;markup `>入庙(Own Sign)<`、`>落陷(Debilitated)<`,另加入友 / 中性 / 入敌 / 极敌四行 | BUG-1202:十档引擎等级、D1 状态列措辞 |
|
||||
| 同文件「null 不关列」 | tbody 不含 `同位/入旺/自宫/落陷` | tbody 不含 `同位` 与 `(Exalted|Own Sign|Debilitated|Neutral)` | 同上,标签换了;断言强度不变 |
|
||||
| `frontend/tests/chart-view-varga-dignity.test.ts` | `vargaDignity` 三档优先级 8 条断言 | `vargaDignityLevel` 接受十档、拒绝旧三档值与非字符串;标签与 D1 措辞一致、键集合 = 十档 | 前端自算函数已删除(不留第二套判定) |
|
||||
| `tests/test_chart_page_vedic_tables_contract.py` | `test_tables_equal_engine_constants`、`test_every_planet_sign_pair_matches_engine_dignity_level`(钉三档表) | `test_dignity_labels_equal_engine_status_wording`(措辞表 = `DIGNITY_LABELS`,旧四表已不存在)+ `test_d9_projected_dignity_is_the_engine_level`(真实 TS mapper 投影 = 引擎等级,golden 覆盖入庙 / 落陷 / 中性 / 入敌 / 入友) | 同上 |
|
||||
|
||||
golden:`frontend/tests/fixtures/chart-view-golden.json` 只新增字段(上升三项、每颗分盘星 `dignity_level`),原值零改动;重录方式写在 `sourceCommand`(`_nakshatra_fields(ascendant.lon)`、`annotate_varga_dignity` 作用于已存位置,即 `/api/chart`、`/api/varga_full` 现在的调用)。
|
||||
|
||||
报告大 fixture(`report-reader-main-fictional*.json`、`report-density-fictional-reader.json`)是 9 月真实输出,里面仍是旧表;前端没有断言碰这两张表,未重录(重录会混入其后大量无关引擎变化)。新表由 Python 测试现场渲染断言。
|
||||
|
||||
## 验收
|
||||
|
||||
| 项 | 结果 |
|
||||
| --- | --- |
|
||||
| `tsc --noEmit` | 0 错 |
|
||||
| `npm run lint` | 0 error(126 warning 均为既有;改动文件单独跑 eslint 0 问题) |
|
||||
| `npm test`(Node 22) | 4927 项 / 失败 24;基线 `3bbc2daa` 4921 项 / 失败 24;失败清单逐名一致,全为无 Docker 的数据库 / 部署套件;新增 6 项 |
|
||||
| `next build` | 通过,`/` 为 `○ Static` |
|
||||
| 首屏 gzip(`index.html` 引用的 29 个脚本 / 样式 gzip-9 求和) | 基线 625,123 → 本分支 626,061,**+0.15%**。基线构建在最后 standalone 复制步因整机磁盘满(ENOSPC)退出,编译与页面生成已完成,`index.html` 与引用文件齐全,数字有效 |
|
||||
| Python 定向 | `test_report_chart_blank_columns`(新 12 项)、`test_chart_page_vedic_tables_contract`、`test_api_server_security`(新增 1 项)、`test_report_english_edition`、`test_report_reader_main`、`test_report_chart_block`、`test_ashtakavarga_invariants`、`test_api_server_growth_contract`、`test_rectification_validation_integrity_gate`、`test_sealed_holdout_contract_freshness` 全绿 |
|
||||
| 快速门 `run_quality_gate.py --profile quick` | Python 段 1047 passed / 1 skipped;最后一步 `npm test` 因上述 24 项无 Docker 失败而整体判红,与基线同 |
|
||||
| 既有红 | `test_dynamic_rectification_fact_priority::test_historical_event_priority_preserves_vimshottari_actor_difference` 在基线 `3bbc2daa` 同样失败(`selection_priority 0.0`),与本轮无关,未处理 |
|
||||
| Vimsopaka 抽函数 A/B | `PYTHONHASHSEED=0`,3 张虚构盘 `cmd_full_reading` 的 vimsopaka / varga_full / jaimini / 行星 / 上升(除新增星宿字段)基线与本分支逐字节相同 |
|
||||
|
||||
## 环境缺口
|
||||
|
||||
- 无登录态与 Chrome:真机走查留给产品,清单 `docs/testing/report-chart-blank-columns-20261003.md`。
|
||||
- 无 Docker:数据库 / 部署套件 24 项按基线逐名比对。
|
||||
- 整机磁盘曾满(他会话占用):一次快速门因 `/tmp` 建不了目录全部 error(未计入结论),腾出自己的构建产物后重跑得到上表结果。
|
||||
@@ -412,4 +412,4 @@
|
||||
| `TASK-yoga-lunar-node-consistency-20261002.md` | `PROGRESS-yoga-lunar-node-consistency-20261002.md` | 月亮前后有星格(Sunaphaa/Anaphaa/Duradhara)计入罗睺计都、孤立格(Kemadruma)不计,泰勒/齐达内卡上同时出现互相矛盾的格局;统一为只计五颗真行星 | **已并入** `TASK-upstream-sync4-20261002.md` T5(交付见 `PROGRESS-upstream-sync4-20261002.md`,`f3ed9509` + `0a4e6d0a`,BUG-1187) | 原分支未使用;在 `codex/upstream-sync4-20261002` 交付 |
|
||||
| `TASK-upstream-sync4-20261002.md` | `PROGRESS-upstream-sync4-20261002.md` | 上游同步第四轮(对照 yinduzhanxing `0a6696c5`):婚姻计数删关系次数断语、双重过运相位错一宫、Shadbala 四处计算错、格局列表截断与空回退、月亮/太阳类格局只计五星(吸收月亮单)、Arudha 只留 jaimini 一个来源、定位星循环与未标定概率;BUG 从 1183 起 | **待验收**(子代理直接执行完毕,未推送;追加 F3 太阳最低要求;BUG-1183~1191) | 分支 `codex/upstream-sync4-20261002` |
|
||||
| `TASK-upstream-sync5-20261002.md` | `PROGRESS-upstream-sync5-20261002.md` | 上游同步第五轮:Narayana 默认 K.N. Rao、Chara Karaka 罗睺、燃烧统一、八分法净化、Yogini、诅咒格措辞、Budha-Aditya、Badhaka;生时校正至少 4 件事 3 个领域 | **待验收**(PM 移植 U2–U8 + 子代理 U8 后续 / R1 / 冻结 / 评测 / 回测第七轮,未推送;U1 延后;分数不变不升 scoring-11,policy v3 → v4;BUG-1192~1198) | 分支 `codex/upstream-sync5-20261002` |
|
||||
| `TASK-report-chart-blank-columns-20261003.md` | `PROGRESS-report-chart-blank-columns-20261003.md` | 报告/星盘页空列:Kranti 删列、八分法宫位表 SAV 标错(实为含上升 386)补三列、上升补星宿、分盘庙旺接引擎十档(有限推翻 BUG-1076/1099 三档)、报告末尾重复分盘去重(BUG-1199~1203);待领取 |
|
||||
| `TASK-report-chart-blank-columns-20261003.md` | `PROGRESS-report-chart-blank-columns-20261003.md` | 报告/星盘页空列:Kranti 删列、八分法宫位表 SAV 标错(实为含上升 386)补三列、上升补星宿、分盘庙旺接引擎十档(有限推翻 BUG-1076/1099 三档)、报告末尾重复分盘去重(BUG-1199~1203);Claude 直接执行,已合入 staging,待部署核对与真机 |
|
||||
|
||||
Reference in New Issue
Block a user