fix(nakshatra): keep the first mahadasha's antardashas on the full clock

Upstream 8643bc9a. The nakshatra breakdown was restarting the nine antardashas from the birth remainder, so mid-Ashwini reported Ketu instead of Rahu. Reuse cmd_dasha and clip to birth. BUG-1380.

Co-Authored-By: Grok (agent loop)
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
jesse-ux
2026-10-18 16:08:31 +08:00
co-authored by Grok (agent loop) Cursor
parent e7bf60c1f2
commit 68762ccec5
3 changed files with 75 additions and 96 deletions
+15
View File
@@ -36488,3 +36488,18 @@
- 相关记录:BUG-1361、BUG-1362。
- 复发自:无。
- 修复版本:分支 `codex/beta-safety-net-20261014`。本机没有装到生产主机,也没有点生产按钮。
## BUG-1380 | 星宿拆解把第一大运剩余年数重新切成九段小运
- 状态:resolved
- 首次发现 / 最近更新:2026-10-17 / 2026-10-18
- 来源:issue #80,任务书 `docs/tasks/TASK-upstream-sync8-20261017.md` T1。上游 `8643bc9a`。检索「first_remaining」「antardasha_full」,没有更早的同类记录。BUG-1268 修了 `cmd_dasha` 的同一类错误,这条拆解函数当时没跟上。
- 现象:月亮在 Ashwini 中点时,出生当下的小运被报成 Ketu。按完整大运时钟应为 Rahu。
- 触发条件:`calc_nakshatra_dasha_breakdown` 把第一大运的剩余年数交给按整段比例切分的小运函数。完整报告的星宿拆解走这条路径。
- 根因:剩余段被当成一段新的完整大运,九段小运从大运主星重新起算。
- 修复:小运改走 `cmd_dasha` 已有时间线:从完整大运真实起点排,再裁到出生之后。缺本命经度的行星不再用 0° 填星宿。
- 验证:`tests/test_nakshatra_native_dasha_clock.py` 的 Ashwini 中点用例通过,当前小运为 Rahu,起点裁在出生日时。
- 防复发:上述测试。不得再把第一大运余额交给「按余额重切九段」的函数。
- 相关记录:BUG-1268。
- 复发自:无。
- 修复版本:分支 `codex/upstream-sync8-20261017`。上游提交 `8643bc9a`。