test(ephemeris): move the expectations BUG-1275 shifts and regenerate three goldens
The nutation branch left the quick gate red: eight expectations still encoded the mean-ayanamsa frame (dasha boundaries two days late, a solar-return frame gap that was the bug itself, a 0.01 Kala drift from frozen sidereal fixtures) and three goldens were never regenerated. Python full suite is back to the baseline list; quick gate passes. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
7a78638beb
commit
db0134f9db
+3
-1
@@ -17135,7 +17135,7 @@
|
||||
|
||||
## BUG-1275 | 恒星黄道经度少扣章动:所有行星偏约 0.005°,Vimshottari 日期差 2–3 天
|
||||
|
||||
- 状态:resolved(只覆盖恒星黄道经度与同一框架的上升、宫头;v5 77 例评测单独记在进度,未完成时不把红线 3 的评测格写成已关闭)
|
||||
- 状态:resolved(代码;部署以 `/api/health` 的 `deployment.gitCommit` 为准)
|
||||
- 首次发现 / 最近更新:2026-10-08 / 2026-10-08
|
||||
- 来源:Claude 验收完整数据版报告时,对比上游 `23be1807` 同盘导出。
|
||||
- 影响面:产品默认盘、行运、Bhava Chalit、日运月亮、Shadbala 记录的岁差、KP 宫头展示、生时校正打分。`mean` 档仍去掉章动。西方盘是热带,不适用。Hora / Ghati / Bhava 上升公式未改。
|
||||
@@ -17148,3 +17148,5 @@
|
||||
- 相关记录:2026-10-07 sync6 验收里「虚构盘大运与独立计算差约 2 天」曾被 Claude 判为岁差版本差异,实为本条。BUG-1268(子运起点)。BUG-621(旧校正记录仍只读打开)。
|
||||
- 复发自:无。
|
||||
- 修复版本:本分支 `codex/ephemeris-nutation-20261008`。未推送,未部署。
|
||||
- Claude 验收(2026-10-08,Linux,屏蔽 PyJHora):乔布斯、奥巴马、虚构盘 × Lahiri / Raman / KP,七星与 `FLG_SIDEREAL` 最大差 5.7e-14°。v5 九格:先验头名 −1.3 / −1.3 / −1.3,六题回放 +2.6 / +1.3 / +6.5,线上区间 0 / −5.2 / 0(百分点,±10 / ±30 / ±60);产品 2026-10-08 接受。
|
||||
- 验收补修(Claude,产品授权直接执行):执行方未跑 Python 全量,留下 8 条旧期望(全量 62→70,快速门红)。三栏:`test_user_invocation_acceptance_contract` 子运起止 2014-04-27/2016-09-20、2023-07-13/2026-09-11、2026-09-11/2027-08-24 → 2014-04-25/2016-09-18、2023-07-11/2026-09-09、2026-09-09/2027-08-22(月亮含章动后边界提前约 2 天;2023-07-11 与独立 `FLG_SIDEREAL` 计算一致),连带 `test_one_command_user_invocation_acceptance_check`、`test_skill_release_clean_trial`;`test_solar_return_frame` 本命太阳与求解框架之差 > 10″ → < 1″(旧值正是本 Bug 造成的框架差);`test_shadbala_precise_context` 月亮 Kala 存档差值 +52.18 → +52.17(夹具里的恒星黄道经度按旧平岁差框架采集,配真岁差后 Ayana 26.09 → 26.08);`references/cross_project_contract/fixture_manifest.v1.json` 本仓兼容哈希 `25704246…` → `f1ea2b20…`(上游仓自存另一份哈希,不受影响);`tests/fixtures/double_transit_d1_cl_golden.json` 与 `references/oracle/shadbala_dig_source_of_truth_audit_2026_07_22.json` 用真实引擎重生成(快照只有经度与上升平移约 0.005°,Dig 值不变)。
|
||||
|
||||
@@ -116,3 +116,10 @@ Python 全量没有跑完。不把失败名单写成 Linux 62 的子集。已知
|
||||
- 快速门:同一条命令已经结束,退出码 1。pytest 段 4 failed / 1059 passed / 1 skipped,用时 667.64 秒。两条记忆化失败是门禁进程读到的还是 `PENDING_NUTATION_COMMIT`;第二笔提交把 `SOURCE_COMMIT` 写成 `e5f2a75183381c4a027014c7f1e89ddcb8393bd3` 之后,`tests/test_rectification_engine_memoization.py` 再跑为 25 通过、退出码 0。`test_consultation_native_layers.py::test_the_new_layer_leaves_every_existing_output_unchanged` 是本机已知失败,不是发布依据。`tests/test_double_transit_d9_targets.py::test_d1_and_chandra_lagna_layers_match_the_pre_fix_golden` 仍对照章动修正前的相位度数,golden 没有重生成。这一条算未完成,不把快速门写成通过。
|
||||
- `npm run test:db` 未跑。SQL 守卫没有改。
|
||||
- 记忆化 v5 的 `source_commit` 已写成 `e5f2a75183381c4a027014c7f1e89ddcb8393bd3`。
|
||||
|
||||
## Claude 验收与补修(2026-10-08)
|
||||
|
||||
- 结论:通过(产品接受 v5 变化)。代码由 Claude 在 `claude/nutation-merge-20261008` 上补修后快进推 staging。
|
||||
- 独立核对:屏蔽 PyJHora 后,三张盘 × 三种岁差七星与 `FLG_SIDEREAL` 最大差 5.7e-14°。
|
||||
- Linux Python 全量:执行方分支 70 条失败,基线 62(另有 3 条 prashna 并行噪声);新增 8 条均为旧期望,已按 BUG-1275 验收补修逐条改(三栏见 Bug 历史)。快速门转绿。
|
||||
- `npm test` 4992 项、失败 24,与基线逐名相同;tsc 0。
|
||||
|
||||
@@ -317,7 +317,7 @@
|
||||
| `TASK-rectification-refresh-r3-r4-20260913.md` | `PROGRESS-rectification-refresh-r3-r4-20260913.md` | 刷新阶段 R3(MIN_BOUNDARY_DAYS 45→30)+ R4(pratyantar 与 D9/D10 上升 Narayana);首轮出题不变。即使放宽仍有 0 题例子,定向补事另线保留(BUG-664/665) | 已实现 `ab1ade59`,已部署;2026-09-13 验收通过(实现单由执行方自拟,无产品决策记录段;收益口径见研究文档) | `codex/rectification-refresh-r3-r4-20260913` |
|
||||
| `TASK-upstream-sync6-20261007.md` | [PROGRESS-upstream-sync6-20261007.md](PROGRESS-upstream-sync6-20261007.md) | **上游同步第六轮(`23be1807`)**:10-05 五个计算修正一行未合——D5/D6/D8/D11 映射(乔布斯盘四张分盘星座全不同)、Vimsopaka 权重、Yogini 顺序与出生余额、Panchadhikari 宫位参照、Narayana 并列、特殊上升、出生秒数、Neecha Bhanga 两条件、首段大运子运、岁差被覆盖;逐项对照原书核实;最先做 | 已验收(门禁补修 `2df6ee72`,已部署 staging) | [PROGRESS-upstream-sync6-20261007.md](PROGRESS-upstream-sync6-20261007.md) |
|
||||
| `TASK-special-lagnas-native-20261008.md` | `PROGRESS-special-lagnas-native-20261008.md` | **特殊上升点原生计算(线上缺陷)**:sync6 U6 运行时调 PyJHora,生产镜像没有 PyJHora → staging 上 Hora/Ghati/Sree/Indu/Pranapada 全 blocked;原生实现、PyJHora 只作冻结对照、快速门禁止运行时 import jhora;最先做 | 已验收(已部署 staging `795b8845`,BUG-1273) | `codex/special-lagnas-native-20261008`(未上线;部署以 `/api/health` 为准) |
|
||||
| `TASK-ephemeris-nutation-20261008.md` | `PROGRESS-ephemeris-nutation-20261008.md` | **恒星黄道少扣章动(BUG-1275)**:行星 = 含章动热带视位置 − 平岁差,全体偏 Δψ(≤17″),大运日期差 2–3 天;改标准算法、PyJHora 冻结对照、scoring-12、v5 重跑 | 待验收 | `codex/ephemeris-nutation-20261008`(未推送,未部署) |
|
||||
| `TASK-ephemeris-nutation-20261008.md` | `PROGRESS-ephemeris-nutation-20261008.md` | **恒星黄道少扣章动(BUG-1275)**:行星 = 含章动热带视位置 − 平岁差,全体偏 Δψ(≤17″),大运日期差 2–3 天;改标准算法、PyJHora 冻结对照、scoring-12、v5 重跑 | 已验收(Claude 补修 8 条旧期望,产品接受 v5;推 staging) | `codex/ephemeris-nutation-20261008`(未推送,未部署) |
|
||||
| `TASK-sync6-gate-red-20261007.md` | — | **sync6 后门禁仍红**:run 3213 快速门已过,「Frontend and database tests」开跑 20 秒后日志中断、15 分钟后判失败,后续步骤 failure 0 秒;疑运行机掉线;先 Re-run,红则本机带 Docker 跑 `CI=1 npm test` 对照 `0ed45a4b` | 已完成(Re-run 通过,BUG-1271,部署 `2df6ee72`) | — |
|
||||
|
||||
| `TASK-rectification-tie-break-entry-fix-20260913.md` | `PROGRESS-rectification-tie-break-entry-fix-20260913.md` | 修复单:参考题入口只读 `window_scan` 标志位 → 两道答完后仍显示、再点弹「现在没有可答的参考题」;并按产品拍板改成点一次连出 D9+D10(BUG-666~668,Skill 10.0.26) | 已合入(无独立验收记录) | `99127601`(BUG-666~668 resolved;已部署 staging,run 2589) |
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
"node_mode": "mean",
|
||||
"timezone_offset": 5.5
|
||||
},
|
||||
"compatibility_hash": "257042461fe303aa3bff5a8333f65090832ce8a2be395f038523838d724b474b"
|
||||
"compatibility_hash": "f1ea2b20a9521a32801661fdd5d6625308ce1ca9d3efc56abe085006573ceb0f"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -39,8 +39,8 @@
|
||||
"planet": "Jupiter",
|
||||
"external_dig_rupa": 1.3433,
|
||||
"house": 11,
|
||||
"planet_lon": 87.2772,
|
||||
"asc_lon": 149.0606,
|
||||
"planet_lon": 87.2722,
|
||||
"asc_lon": 149.0556,
|
||||
"current_linear_house_model": 0.6667,
|
||||
"house_midpoint_angular_model": 0.5734,
|
||||
"bhava_madhya_angular_model": 0.6568,
|
||||
@@ -55,8 +55,8 @@
|
||||
"planet": "Mars",
|
||||
"external_dig_rupa": 1.2902,
|
||||
"house": 9,
|
||||
"planet_lon": 5.8598,
|
||||
"asc_lon": 149.0606,
|
||||
"planet_lon": 5.8548,
|
||||
"asc_lon": 149.0556,
|
||||
"current_linear_house_model": 0.8333,
|
||||
"house_midpoint_angular_model": 0.6211,
|
||||
"bhava_madhya_angular_model": 0.7044,
|
||||
@@ -71,8 +71,8 @@
|
||||
"planet": "Mercury",
|
||||
"external_dig_rupa": 0.2107,
|
||||
"house": 6,
|
||||
"planet_lon": 291.1311,
|
||||
"asc_lon": 149.0606,
|
||||
"planet_lon": 291.126,
|
||||
"asc_lon": 149.0556,
|
||||
"current_linear_house_model": 0.1667,
|
||||
"house_midpoint_angular_model": 0.2941,
|
||||
"bhava_madhya_angular_model": 0.2107,
|
||||
@@ -87,8 +87,8 @@
|
||||
"planet": "Moon",
|
||||
"external_dig_rupa": 1.5913,
|
||||
"house": 8,
|
||||
"planet_lon": 344.5165,
|
||||
"asc_lon": 149.0606,
|
||||
"planet_lon": 344.5115,
|
||||
"asc_lon": 149.0556,
|
||||
"current_linear_house_model": 0.3333,
|
||||
"house_midpoint_angular_model": 0.4975,
|
||||
"bhava_madhya_angular_model": 0.4141,
|
||||
@@ -103,8 +103,8 @@
|
||||
"planet": "Saturn",
|
||||
"external_dig_rupa": 0.327,
|
||||
"house": 3,
|
||||
"planet_lon": 207.932,
|
||||
"asc_lon": 149.0606,
|
||||
"planet_lon": 207.927,
|
||||
"asc_lon": 149.0556,
|
||||
"current_linear_house_model": 0.3333,
|
||||
"house_midpoint_angular_model": 0.2437,
|
||||
"bhava_madhya_angular_model": 0.3271,
|
||||
@@ -119,8 +119,8 @@
|
||||
"planet": "Sun",
|
||||
"external_dig_rupa": 0.4135,
|
||||
"house": 7,
|
||||
"planet_lon": 312.5175,
|
||||
"asc_lon": 149.0606,
|
||||
"planet_lon": 312.5124,
|
||||
"asc_lon": 149.0556,
|
||||
"current_linear_house_model": 0.5,
|
||||
"house_midpoint_angular_model": 0.3248,
|
||||
"bhava_madhya_angular_model": 0.4081,
|
||||
@@ -135,8 +135,8 @@
|
||||
"planet": "Venus",
|
||||
"external_dig_rupa": 1.1658,
|
||||
"house": 5,
|
||||
"planet_lon": 267.9412,
|
||||
"asc_lon": 149.0606,
|
||||
"planet_lon": 267.9362,
|
||||
"asc_lon": 149.0556,
|
||||
"current_linear_house_model": 0.8333,
|
||||
"house_midpoint_angular_model": 0.9229,
|
||||
"bhava_madhya_angular_model": 0.8396,
|
||||
@@ -151,8 +151,8 @@
|
||||
"planet": "Jupiter",
|
||||
"external_dig_rupa": 0.631,
|
||||
"house": 4,
|
||||
"planet_lon": 34.2332,
|
||||
"asc_lon": 327.826,
|
||||
"planet_lon": 34.2375,
|
||||
"asc_lon": 327.8303,
|
||||
"current_linear_house_model": 0.5,
|
||||
"house_midpoint_angular_model": 0.7144,
|
||||
"bhava_madhya_angular_model": 0.6311,
|
||||
@@ -167,8 +167,8 @@
|
||||
"planet": "Mars",
|
||||
"external_dig_rupa": 0.0193,
|
||||
"house": 5,
|
||||
"planet_lon": 69.2064,
|
||||
"asc_lon": 327.826,
|
||||
"planet_lon": 69.2107,
|
||||
"asc_lon": 327.8303,
|
||||
"current_linear_house_model": 0.1667,
|
||||
"house_midpoint_angular_model": 0.0201,
|
||||
"bhava_madhya_angular_model": 0.0632,
|
||||
@@ -183,8 +183,8 @@
|
||||
"planet": "Mercury",
|
||||
"external_dig_rupa": 0.3437,
|
||||
"house": 5,
|
||||
"planet_lon": 85.9761,
|
||||
"asc_lon": 327.826,
|
||||
"planet_lon": 85.9804,
|
||||
"asc_lon": 327.8303,
|
||||
"current_linear_house_model": 0.3333,
|
||||
"house_midpoint_angular_model": 0.4269,
|
||||
"bhava_madhya_angular_model": 0.3436,
|
||||
@@ -199,8 +199,8 @@
|
||||
"planet": "Moon",
|
||||
"external_dig_rupa": 0.245,
|
||||
"house": 12,
|
||||
"planet_lon": 289.8315,
|
||||
"asc_lon": 327.826,
|
||||
"planet_lon": 289.8358,
|
||||
"asc_lon": 327.8303,
|
||||
"current_linear_house_model": 0.3333,
|
||||
"house_midpoint_angular_model": 0.2056,
|
||||
"bhava_madhya_angular_model": 0.2889,
|
||||
@@ -215,8 +215,8 @@
|
||||
"planet": "Saturn",
|
||||
"external_dig_rupa": 1.6447,
|
||||
"house": 4,
|
||||
"planet_lon": 31.7687,
|
||||
"asc_lon": 327.826,
|
||||
"planet_lon": 31.773,
|
||||
"asc_lon": 327.8303,
|
||||
"current_linear_house_model": 0.5,
|
||||
"house_midpoint_angular_model": 0.2719,
|
||||
"bhava_madhya_angular_model": 0.3552,
|
||||
@@ -231,8 +231,8 @@
|
||||
"planet": "Sun",
|
||||
"external_dig_rupa": 0.0022,
|
||||
"house": 5,
|
||||
"planet_lon": 66.1221,
|
||||
"asc_lon": 327.826,
|
||||
"planet_lon": 66.1264,
|
||||
"asc_lon": 327.8303,
|
||||
"current_linear_house_model": 0.1667,
|
||||
"house_midpoint_angular_model": 0.0372,
|
||||
"bhava_madhya_angular_model": 0.0461,
|
||||
@@ -247,8 +247,8 @@
|
||||
"planet": "Venus",
|
||||
"external_dig_rupa": 0.9833,
|
||||
"house": 5,
|
||||
"planet_lon": 68.7289,
|
||||
"asc_lon": 327.826,
|
||||
"planet_lon": 68.7331,
|
||||
"asc_lon": 327.8303,
|
||||
"current_linear_house_model": 0.8333,
|
||||
"house_midpoint_angular_model": 0.9772,
|
||||
"bhava_madhya_angular_model": 0.9394,
|
||||
|
||||
+4
-4
@@ -1597,7 +1597,7 @@
|
||||
"type": "Position"
|
||||
},
|
||||
{
|
||||
"desc": "合相(4.07°)",
|
||||
"desc": "合相(4.06°)",
|
||||
"type": "Conjunction"
|
||||
}
|
||||
],
|
||||
@@ -1629,7 +1629,7 @@
|
||||
"type": "Position"
|
||||
},
|
||||
{
|
||||
"desc": "合相(4.07°)",
|
||||
"desc": "合相(4.06°)",
|
||||
"type": "Conjunction"
|
||||
}
|
||||
],
|
||||
@@ -1709,7 +1709,7 @@
|
||||
"type": "Position"
|
||||
},
|
||||
{
|
||||
"desc": "合相(4.07°)",
|
||||
"desc": "合相(4.06°)",
|
||||
"type": "Conjunction"
|
||||
}
|
||||
]
|
||||
@@ -1776,7 +1776,7 @@
|
||||
"type": "Position"
|
||||
},
|
||||
{
|
||||
"desc": "合相(4.07°)",
|
||||
"desc": "合相(4.06°)",
|
||||
"type": "Conjunction"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -69,7 +69,10 @@ def test_precise_kala_preserves_archived_comparison_with_corrected_hora() -> Non
|
||||
assert abs(context["sunrise_hour"] - 6.886306) < 0.00001
|
||||
assert abs(context["sunset_hour"] - 17.890427) < 0.00001
|
||||
for planet, expected in PYJHORA_KALA.items():
|
||||
delta = 52.18 if planet == "Moon" else -60.0 if planet == "Venus" else 0.0
|
||||
# BUG-1275: Ayana reads tropical = sidereal + ayanamsa. The fixed sidereal
|
||||
# longitudes of _planets() were captured in the old mean-ayanamsa frame; with the
|
||||
# true ayanamsa the Moon's Ayana moves 26.09 -> 26.08 (Kala -0.01).
|
||||
delta = 52.17 if planet == "Moon" else -60.0 if planet == "Venus" else 0.0
|
||||
assert abs(calc_kala_bala_precise(planet, planets, context)["total"] - expected - delta) < 0.001
|
||||
|
||||
|
||||
|
||||
@@ -67,7 +67,10 @@ def test_target_longitude_is_the_natal_sun_in_the_solver_frame() -> None:
|
||||
natal, _asc, natal_jd, _ay = compute_chart_data(*birth, "mean", ayanamsa_name="lahiri")
|
||||
solver_sun = solar_return._get_sun_lon_jd(natal_jd, ayanamsa_name="lahiri")
|
||||
chart_sun = natal["planets"]["Sun"]["degree_raw"]
|
||||
assert abs(chart_sun - solver_sun) * 3600 > 10 # the two frames really differ here
|
||||
# BUG-1275: the natal chart used to subtract the mean ayanamsa from an apparent
|
||||
# position, so it sat one nutation (> 10") away from the solver frame. Both now
|
||||
# use the true (FLG_SIDEREAL) frame and agree.
|
||||
assert abs(chart_sun - solver_sun) * 3600 < 1
|
||||
result = _chart(birth, target_year)
|
||||
assert abs(result["solar_return"]["sun_lon"] - solver_sun) * 3600 < 1
|
||||
|
||||
|
||||
@@ -131,12 +131,15 @@ def test_fixture_dasha_timeline_rejects_workbuddy_regression_claims() -> None:
|
||||
current["antardasha"]["end"],
|
||||
)
|
||||
|
||||
assert observed["2014-06-15"] == ("Jupiter", "Rahu", "2014-04-27", "2016-09-20")
|
||||
# BUG-1275: the sidereal Moon now includes nutation on both sides (FLG_SIDEREAL frame),
|
||||
# which moves every Vimshottari boundary of this fixture about two days earlier.
|
||||
# Saturn/Venus 2023-07-11 equals an independent Swiss Ephemeris FLG_SIDEREAL calculation.
|
||||
assert observed["2014-06-15"] == ("Jupiter", "Rahu", "2014-04-25", "2016-09-18")
|
||||
# BUG-1268 (upstream 4a807e7d): antardashas are laid from the parent
|
||||
# mahadasha's exact start instant, not its day-truncated date string, so
|
||||
# Saturn/Venus starts 2023-07-13T05:10:31 (was 2023-07-12 from midnight).
|
||||
assert observed["2024-03-01"] == ("Saturn", "Venus", "2023-07-13", "2026-09-11")
|
||||
assert observed["2027-03-01"] == ("Saturn", "Sun", "2026-09-11", "2027-08-24")
|
||||
assert observed["2024-03-01"] == ("Saturn", "Venus", "2023-07-11", "2026-09-09")
|
||||
assert observed["2027-03-01"] == ("Saturn", "Sun", "2026-09-09", "2027-08-22")
|
||||
|
||||
|
||||
def test_one_command_user_invocation_acceptance_check() -> None:
|
||||
|
||||
Reference in New Issue
Block a user