fix(consult): project the running Narayana period and pratyantar dates to the model (BUG-1054)
timingKeys now admits current_dasha.md/ad/pd (sign, lord, years, start_age, end_age), remaining_years and pratyantar_dasha_timeline. Depth and item caps unchanged. Golden regression over three public AA engine captures asserts values, not key presence. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
c33701a4bd
commit
75a1844cdf
+6
-6
@@ -14189,15 +14189,15 @@
|
||||
|
||||
## BUG-1054 | 咨询投影把当前 Narayana 段和子运日期裁成空
|
||||
|
||||
- 状态:investigating
|
||||
- 状态:resolved(本地修复 `codex/consult-evidence-card-20260927`,待部署 staging;部署后补门禁 run 号)
|
||||
- 首次发现 / 最近更新:2026-09-27 / 2026-09-27
|
||||
- 影响面:`frontend/src/mastra/consultation-workflow.ts` 的 `toModelOutput` / `projectAllowlistedTree`;普通咨询写答案时看到的 timing 卡
|
||||
- 影响面:`frontend/src/mastra/consultation-workflow.ts` 的 `toModelOutput` / `projectAllowlistedTree`(`timingKeys`);普通咨询写答案时看到的 timing 卡
|
||||
- 现象:引擎已经算出当前 Narayana 段和 Vimshottari 子运(pratyantar)起止日期,投影给模型的 timing 卡里 `current_dasha` 是空对象,子运日期整段不在。
|
||||
- 触发条件:有出生分钟的本命咨询走 `toModelOutput`。2026-09-27 数据卡调研用 3 张公开 AA 盘 × 10 种问法,30/30 都是这个形状。
|
||||
- 根因:timing 投影只保留 allowlist 里的键。Narayana 当前段写在 `current_dasha.md` / `ad` / `pd` 下,`md` 不在 allowlist 里,于是对象被留成空。子运日期的键是 `pratyantar_dasha_timeline`,也不在 allowlist 里,整段被丢掉。大运和子运(antardasha)的日期键在 allowlist 里,所以那两段还在。
|
||||
- 修复:未修。本单是调研,不改投影。
|
||||
- 验证:调研脚本对 30 次投影做了结构化比对:上升、月亮星座与宫位、当前大运起止、D12 落点与引擎一致;Narayana 当前星座和子运起止在卡里是空。见 `docs/research/consult_evidence_card_research_2026_09_27.md`。
|
||||
- 防复发:实现单补投影时,要锁住「引擎当前 Narayana 星座和子运起止日期原样出现在模型 timing 卡里」,不能只断言 `narayana_dasha` 键存在。
|
||||
- 修复:`timingKeys` 放行 `md` / `ad` / `pd`、它们的嵌套标量 `years` / `start_age` / `end_age`、`remaining_years` 与 `pratyantar_dasha_timeline`;其余白名单、深度上限(4)与条数上限(24)不变。
|
||||
- 验证:新增 `frontend/tests/consult-projection-timing-20260927.test.ts`(4 条),fixture 是真实引擎对 3 张公开 AA 盘的 family 路由输出(`frontend/tests/fixtures/consult-evidence-card-golden.json`,由 `scripts/research/capture_consult_evidence_card_golden.py` 生成,只按键裁剪、不改值)。逐盘断言引擎的 Narayana 当前 md / ad / pd 的星座、主星、年数、起止年龄与 `remaining_years`,以及 pratyantar 当前段与下一段的主星和起止日期,原样出现在模型可见的 timing 卡里;大运、子运日期不变。修复前 2 / 4 条失败。
|
||||
- 防复发:timing 卡的回归断言值而不是键;数据卡(同一分支 T3)从这张投影复制当前 Narayana 段与 PD 起止,卡的逐字测试再锁一层。
|
||||
- 相关记录:BUG-287(同一条 allowlist 曾经把分盘和审计表整段挡住;这次是嵌套键还没放行,不是「没算」复发)
|
||||
- 复发自:无
|
||||
- 修复版本:无
|
||||
- 修复版本:`codex/consult-evidence-card-20260927`(本地提交,未推送)
|
||||
|
||||
Reference in New Issue
Block a user