fix(dasha): judge antardasha sandhi from the unclipped start

Upstream 3c2dad95, rewritten for this tree. A birth-clipped antardasha start was reported as a transition. The first mahadasha start stays, because BUG-1268 already stores the real pre-birth boundary there. BUG-1382.

Co-Authored-By: Grok (agent loop)
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
jesse-ux
2026-10-18 16:17:47 +08:00
co-authored by Grok (agent loop) Cursor
parent d11ee6f0dd
commit 5be864a8e4
3 changed files with 82 additions and 3 deletions
+15
View File
@@ -36518,3 +36518,18 @@
- 相关记录:BUG-1268、BUG-1380。
- 复发自:无。
- 修复版本:分支 `codex/upstream-sync8-20261017`。上游提交 `3c2dad95`、`8643bc9a`、`9e04f0db`。
## BUG-1382 | 出生日被当成小运交接
- 状态:resolved
- 首次发现 / 最近更新:2026-10-17 / 2026-10-18
- 来源:issue #80,任务书 T3。上游 `3c2dad95` 的 Sandhi 部分,按我方数据改写。检索「dasha_sandhi」「unclipped_start」,没有更早的同类记录。
- 现象:出生后 30 天内的盘,Sandhi 表把出生日写成一次小运交接。那一天只是第一段小运被裁到出生日,不是两段小运的交界。
- 触发条件:`_calc_dasha_sandhi` 用裁剪后的 `start` 判断小运交接。默认参考时刻还带着当前的时分秒。
- 根因:第一段小运的可见起点被改成了出生日。BUG-1268 之后,第一大运自己的 `start` 已经是出生前的真实交接,不能连大运起点一起跳过。
- 修复:小运起点改用 `unclipped_start_datetime`。第一大运起点仍参与判断。没给参考日期时,参考时刻归零到当天 0 点。
- 验证:`tests/test_dasha_sandhi_birth_clip.py`。虚构盘在出生后 30 天不再把出生日算成小运交接;出生前的大运起点仍在容限内出现。
- 防复发:上述测试。
- 相关记录:BUG-1268、BUG-1380。
- 复发自:无。
- 修复版本:分支 `codex/upstream-sync8-20261017`。上游提交 `3c2dad95`。