Files
Jyotisha/docs/tasks/PROGRESS-special-lagnas-native-20261008.md

3.5 KiB
Raw Permalink Blame History

PROGRESS · 特殊上升点改为本仓原生计算(2026-10-08)

执行分支 codex/special-lagnas-native-20261008。工作树从当时的 origin/staging fe833b35 拉出(任务书写的基线是 c04786f7,其后 staging 又有纯文档提交)。状态:待验收。未上线。

做了什么

  • 八个特殊上升点在有经纬度时改由 Swiss Ephemeris 计算,source 为 native_special_lagna。日出用出生地经纬度和请求的岁差,算完恢复原来的岁差。
  • 公式按本仓已引用的出处:P.V.R. Narasimha Rao《Vedic Astrology: An Integrated Approach》§5.2(Bhava 0.25°/分、Hora 0.5°/分、Ghati 1.25°/分、Vighati 15°/分),Sree 为月亮在星宿内剩余度数乘 27 再加上升,Indu 与 Varnada 用 B.V. Raman。没有把「一宫每一 vighati」写成 75°/分。references/ 里没有 BPHS 第 4 章原文,八点都有上述具名出处,没有写 blocked。
  • 运行时删除 calculate_pyjhora_special_lagnas。PyJHora 4.8.7 只离线生成 tests/fixtures/special_lagnas_pyjhora_487.json。生成命令:python scripts/research/freeze_special_lagnas_pyjhora_fixture.py。
  • 缺坐标时仍用原来的 Bhava / Hora / Ghati 公式。生时校正继续调用这三个函数,算法身份不升。
  • Tajika 的进程内 PyJHora 打分、校正三引擎对照的 PyJHora 列,分别挪到 scripts/pyjhora_panchavargiya_reference.py 和 scripts/pyjhora_rectification_d1_reference.py。默认全盘不调用它们。
  • 快速门增加 tests/test_runtime_jhora_import_scan.py。

对照

三张公开或虚构盘 × Lahiri、Raman × 八个点,相对冻结的 PyJHora 4.8.7,最大绝对差 4.9e-5°。Hora 与 Ghati 度数不同。公开盘 Lahiri 的 Bhava / Hora / Ghati 仍是狮子 17.12°、水瓶 22.58°、处女 8.94°。

本机验证

检查 结果
ruff(本轮改过的 Python 文件) 通过
py_compile(本轮改过的模块) 通过
test_runtime_jhora_import_scan.py、test_special_lagnas_birth_instant.py(不含全盘那条)、test_rectification_three_engine_packet.py 18 通过
屏蔽 jhora 后的 cmd_full_reading,加上三引擎包测试 5 通过;八点 computed,source 为 native_special_lagna
隐私扫描 tests/test_repo_privacy_markers.py 通过

未跑、不能写成通过:没有 PyJHora 的门禁虚拟环境(本机 Anaconda 装了 PyJHora 4.8.7,测试是屏蔽导入);Linux 全量 pytest 相对 62 条基线;快速门整段(含 npm test 与 turbopack 构建);部署后的 /api/health、/login、未登录 /api/account。

开工预检

python scripts/pre_work_check.py --remote-timeout 8 --command-timeout 45 在本工作树跑完。远端可见性已核对,外部引擎适配器诊断通过,Python 运行时通过。碎片扫描在 90 秒超时,聚焦测试在 45 秒超时。不把这次退出当成通过,也没有改断言或补 .workbuddy 镜像。

偏离

  • 导入扫描会走到 jyotish_api_server 再走到校正三引擎包。那里的 import_module("jhora...") 挪进 pyjhora 文件名的参考模块,包函数 _pyjhora_d1 仍在原处,现有测试照旧替换它。
  • 全盘年运段仍会按需导入 annual_pyjhora_replay(文件名含 pyjhora,扫描不进入)。导入失败时该段记 blocked,不挡八个特殊上升点。

Claude 验收(2026-10-08)

通过。见 docs/BUG_HISTORY.md BUG-1273 的验收补记。已部署 staging 795b8845。