- 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
6.5 KiB
6.5 KiB
PROGRESS · 报告与星盘页的「空列」(2026-10-03)
- 任务书:
docs/tasks/TASK-report-chart-blank-columns-20261003.md(3bbc2daa) - 基线:
origin/staging3bbc2daa(任务书写的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 |
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(未计入结论),腾出自己的构建产物后重跑得到上表结果。