Commit Graph
2470 Commits
Author SHA1 Message Date
jesse-uxandGrok (agent loop) 09a67aad5a fix(consult): 解读依据的格局行按卡上状态说话,不再写成成立 (#181, BUG-1824)
- 新增 yoga-status-words.ts:conditions_not_met → 不成立;candidate → 候选;
  computed → 未确认;其他 → 未标状态;结构观察不进这一行
- yogaLine 逐个名字到 card.base.natal.yogas_detail.rows 取状态词并按状态分组
  (候选:A、B;未确认:C),没有可列的写「本题没有检测到相关格局」
- 「格局」兜底文案改为「盘上检测到的格局已列出各自状态」(三栏注释)
- 数据卡、回执 schema、行状态判定、页面组件都不动

Tests: 新增 consult-basis-candidate-status-1824.test.ts(8 条);
consult-technique-evidence-1793 / consult-answer-basis-receipt-20261108 /
consult-answer-mode-ui-20261108 继续通过;tsc 0 错,lint 0 error。

Co-Authored-By: Grok (agent loop)
2026-11-09 14:33:47 +08:00
ClaudeandClaude Opus 5.5 21b1fe1aae docs(task): brief for basis-candidate-status (2026-11-09)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-09 14:03:27 +08:00
ClaudeandClaude Opus 5.5 afac4ea92f fix(accept): #179 module moves into scripts/ondemand_calc (scripts-root budget)
Independent Staging Quality Gate / validate-frontend (push) Successful in 6m51s
Independent Staging Quality Gate / validate-python (push) Successful in 8m26s
Independent Staging Quality Gate / publish (push) Successful in 3m1s
test_python_hygiene_budget forbids new root-level scripts/*.py; the brief named
scripts/muhurta_search_api.py. Same code at scripts/ondemand_calc/muhurta_search.py;
route, CLI import and tests follow.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-09 10:07:39 +08:00
Claude 8213aadad6 merge: codex/ondemand-transit-date-20261109 into acceptance batch 1109
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8

# Conflicts:
#	docs/BUG_HISTORY.md
#	scripts/jyotish_api_server.py
2026-11-09 09:58:55 +08:00
Claude 5967b394eb merge: codex/counterexamples-20261109 into acceptance batch 1109
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8

# Conflicts:
#	docs/BUG_HISTORY.md
2026-11-09 09:58:54 +08:00
Claude 1860b74e84 merge: codex/muhurta-20261109 into acceptance batch 1109
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8

# Conflicts:
#	docs/BUG_HISTORY.md
2026-11-09 09:58:54 +08:00
Claude 137b964d80 merge: codex/dasha-dates-engine-only-20261109 into acceptance batch 1109
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8

# Conflicts:
#	docs/BUG_HISTORY.md
2026-11-09 09:58:54 +08:00
Claude c723f7333d merge: codex/reports-no-web-wording-20261109 into acceptance batch 1109
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8

# Conflicts:
#	docs/BUG_HISTORY.md
2026-11-09 09:58:53 +08:00
jesse-uxandGrok (agent loop) 99273b8ec2 fix(muhurta): per-day windows, per-window verdicts, per-day offsets (#179 round 2, BUG-1822)
按 FIX-muhurta-1 改掉打回的四点:

- 候选日不再由「日出 + 6 小时」单点分数筛选:每天单独取当天报告,用
  _select_recommended_windows 取候选;单点分数只留在 legacy_reference(not_final)
- 每个时段在起止两端各调一次 check_activity_muhurta,写 verdict_at_start /
  verdict_at_end / window_verdict;两端不同写 mixed 并点名变化要素;每天写
  rejected_windows(不吉时段、判定不宜、被 time_window 裁掉)
- 跨夏令时:每天用自己的偏移取日出与当天报告;profile 改为 tz_policy=per_day
  + first_day_offset
- time_window 生效并校验格式;删掉死代码
- CLI 打印时区策略与每段判定

Tests: 20 条(+6),api_server_growth_contract 9 条;pytest -k muhurta 122 过
5 败(5 条为基线既有失败,已在基线 commit 复现)。

Co-Authored-By: Grok (agent loop)
2026-11-09 09:21:11 +08:00
ClaudeandClaude Opus 5.5 2726b96a1b docs(task): fix brief FIX-muhurta-1 for #179 (review fail on 28c719cb)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-09 09:09:35 +08:00
jesse-uxandGrok (agent loop) 8dcc6537af feat(ondemand): shared on-demand calculation skeleton + transit on a date (#173, BUG-1816)
产品 2026-11-09 拍板 C 方案:本单只做后端共用模块与信封,前端另开单。

- scripts/ondemand_calc/contract.py:信封 jyotish.ondemand_calc.v1;必填校验不猜
  默认值;节点/位置口径缺省用产品默认值 mean/apparent 并标 profile_source;
  输入指纹 sha256;失败只留缺口,不回显推断日期
- registry.py:TOOLS + ondemand_calc_api 分派;未知 tool 阻塞并点名
- transit_date.py:九曜黄经/星座/度数/星宿与 pada/逆行/日速度,按传入的本命
  参考算宫位,UTC 与当地时间都给;position_mode=mean 返回 blocked
- 薄路由 /api/ondemand_calc(_load_local_module,无新增类方法)

Tests: contract 8 条、transit 12 条、api_server_growth_contract 9 条全过。

Co-Authored-By: Grok (agent loop)
2026-11-09 09:09:16 +08:00
ClaudeandClaude Opus 5.5 53b0609846 docs(task): #173 decision — backend shared module only (option C), explicit product defaults, mean position blocked
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-09 09:03:41 +08:00
jesse-uxandGrok (agent loop) 28c719cbde feat(muhurta): location-exact on-demand muhurta search (BUG-1822)
原做法把参考时刻当 UT 12:00、不用地点、五要素只取「日出 + 6 小时」一个点。

- 新增 scripts/muhurta_search_api.py:必填 activity/日期/地点/tz 或 timezone_id/
  岁差/交点,缺一项报错;每天取实际日出日落,取不到整天 blocked;每个候选时段
  在起止两端各取一次五要素与 Hora,时段内变化标出变化时刻;现有单点评分放进
  legacy_reference 并标 not_final
- 薄路由 /api/muhurta_search(_load_local_module,无新增类方法)
- CLI 加 --lat --lon --tz --timezone-id --ayanamsa --node-mode;无地点时首行写明
  近似值、不给推荐时段,并去掉 int(hour_from_sunrise + 6) 冒充 UT
- 全局时区推断收紧为「lat/lon 都给了才推断」,否则择时不给地点会崩

Tests: tests/test_muhurta_search_api_20261109.py 14 条;
test_api_server_growth_contract 9 条通过;pytest -k muhurta 116 过 5 败,
5 条在基线 b453505d 上同样失败(无关)。

Co-Authored-By: Grok (agent loop)
2026-11-09 08:50:19 +08:00
jesse-uxandGrok (agent loop) 74a739b2dc feat(card): seven acceptance counterexamples end to end (BUG-1812)
- career layer gets the D1 longitudes, so the paksha has one source (Obama
  base vs career mismatch fixed)
- card carries movable_lagna_moon.reason, Narayana ad_status / ad_reason and
  the mahadasha cycle_index; running line says "sub-period undecided"
- engine keeps the MD when the AD is undecided; timingFollowing skips
  zero_duration rows explicitly
- timingKeys allowlist: adstatus / adreason / cycleindex / zeroduration
- fixtures + capture script, 16 engine tests, 7 card tests, PROGRESS, BUG-1812

Co-Authored-By: Grok (agent loop)
2026-11-09 08:38:56 +08:00
jesse-uxandGrok (agent loop) 152b298dd3 fix(chart): Chara dasha dates come from the engine, not the page (BUG-1811)
占星师 2026-11-08 第五轮裁定 5:所有大运日期必须由原生大运引擎生成,显示层
不得自己按年数比例重算。BUG-1752 只修了星盘页的 Vimshottari 轨;Chara 轨仍在
浏览器里按 365.25 天/年从出生日推大运、按年数比例切分运,与报告页的公历周年
口径最多差一天。

- 新增 scripts/chart_dasha/chara_dates.py:给 jaimini 的十二段与每段十二个
  分运写 start / end(本地日历日)与 start_ts / end_ts(UTC 秒);[start, end),
  末段终点钉在父段终点,0 年段保留 start == end,平年 2 月 29 日落 28 日。
- /api/dasha/chara 返回前写这些字段并带 date_basis。
- rashi_dashas_native._chara 改读同一模块(报告输出不变,已与旧版逐段对照)。
- 星盘页 charaTrack 只复制引擎日期;删掉 addYears;没有日期的行不显示。
- 文案 CHARA_ANTARDASHA_DATE_NOTE 改为「与大运同一套边界」。
- 两份真实引擎响应 fixture 的 chara 段用 _compute_chara_dasha 重抓。
- BUG_HISTORY BUG-1811;PROGRESS-dasha-dates-engine-only-20261109。

验证:pytest 新用例 6 passed,相关 63 passed;node --test 新用例 4 pass、
既有 105 pass;tsc exit 0;lint 0 error。

Co-Authored-By: Grok (agent loop)
2026-11-09 08:32:21 +08:00
jesse-uxandGrok (agent loop) 2e9ca2d73a fix(reports): drop web-verification wording from user-visible report text (BUG-1810)
产品负责人 2026-11-08:用户看到的报告文字不出现「联网 / 外部资料 / 外部核验 /
MEVG / 真实案例 / Real Case / Global Web」,后台记录保留。

- 个人报告写作提示词:依据与边界改为「没有用户经历可对照」,置信度封顶 B 不变
- 年报:技法执行情况跳过 MEVG / Real Case 两行;没有纳入的删掉对应条目
- 合盘:技法执行情况删掉「外部资料与真实案例核对:未进行」整行
- 产品导出审计章节:这两行不再渲染,证据边界同类一句删除,packet 原样保留
- 质量门:只要求 Functional Benefic/Malefic 渲染;新增后台检查,要求 packet
  仍带这两行且它们没有出现在 markdown 里

Tests: 新增 frontend/tests/report-no-web-wording-20261109.test.ts(4)与
tests/test_report_no_web_wording_20261109.py(3);更新年报、合盘、审计章节、
质量门既有断言(原值/新值/原因已注明)。

Co-Authored-By: Grok (agent loop)
2026-11-09 08:20:50 +08:00
ClaudeandClaude Opus 5.5 c032823f9e research(rectification): reseal round7_integration_2026_11_09 on staging b453505d (BUG-1809)
Independent Staging Quality Gate / validate-frontend (push) Successful in 5m18s
Independent Staging Quality Gate / validate-python (push) Successful in 6m37s
Independent Staging Quality Gate / publish (push) Successful in 2m27s
Product owner approved 2026-11-09 ("agree new result"). Same protocol as
BUG-1720 / BUG-1759: c1a69445^ replay tree + float_split + round5 overlays +
b453505d scripts/references + a small replay overlay (new tag paths, retired
scorer zero-row adapter, RuntimeError guards). Product default strength scope
seed_only_v0, comparability policy common_evidence_coverage_v1.

- sealed 20: top-1 0.35 -> 0.30, top-3 0.45 -> 0.45, mean error 6.80 -> 6.75
- offset 900: top-1 0.0156 -> 0.0100, coverage 0.900 -> 0.883 (164/900 vs
  round5 tag; 57/900 over 4 cases vs pre-integration staging)
- live v5 231: best = truth 8 -> 8; 124 changes vs round5 tag, 115 vs
  pre-integration staging
- leaders: sealed 40/40 comparable; offset 863 comparable / 35 provisional /
  2 no single leader; live 226 / 5

Trial-for-trial identical to the integration agent's seed_only runs.
Sensitivity only, not accuracy (event scoring near chance, BUG-1644).
Older tags unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-09 07:28:04 +08:00
ClaudeandClaude Opus 5.5 7cdf83106a docs: task brief for #179 muhurta (2026-11-09)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-09 07:18:34 +08:00
ClaudeandClaude Opus 5.5 f5356c62c1 docs: task brief for #173 ondemand-transit-date (2026-11-09)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-09 07:18:29 +08:00
ClaudeandClaude Opus 5.5 41862634f3 docs: task brief for #169 counterexamples (2026-11-09)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-09 07:18:12 +08:00
ClaudeandClaude Opus 5.5 ae714e0349 fix(narayana): default strength scope back to seed_only_v0 pending the astrologer (BUG-1784)
Owner 2026-11-09: the R2 widening is on hold until the astrologer rules on it.
STRENGTH_SCOPE_DEFAULT returns to seed_only_v0. All R2 code stays: local
propagation, the selected / equal / unresolved statuses, and
seed_ad_start_p43d_v1 as a named non-default profile. profile_config and the
cache keys record strength_scope = seed_only_v0. R1 and R3 are unchanged.
Tests that pinned the widened scope now pass it explicitly, with
原值 / 新值 / 原因 notes. Evidence-card golden recaptured (TTL=0; only the
profile labels changed).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-09 00:21:12 +08:00
ClaudeandClaude Opus 5.5 8feabcc588 docs(task): brief for dasha-dates-engine-only-20261109
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-09 00:14:47 +08:00
ClaudeandClaude Opus 5.5 9c7b35ef63 docs(task): brief for reports-no-web-wording-20261109
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-09 00:14:42 +08:00
ClaudeandClaude Opus 5.5 b7ba7f4e4f fix(consult): R3 witness fields and Narayana profile_config reach the real card (BUG-1786, BUG-1783)
Found in the round-7 cross-branch check: on public charts (Zidane, Obama)
the Neecha Bhanga row never reached yogas_detail. The compact detector entry
dropped formation_evidence, and the row sat past the 30-row cap. Keep the
witness fields when compacting and never cut a row that carries them (the
cap stays 30). The card's Narayana method_status also dropped the engine's
profile_config (timing key allowlist); carry it through.

Evidence-card golden recaptured with TTL=0 (Obama: row 30 is now Neecha
Bhanga); the load-dependent VedAstro closure reason is kept as before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-09 00:03:21 +08:00
ClaudeandClaude Opus 5.5 b1a83761b3 feat(consult): 解读依据 rows read the receipt's result_line / display_status (BUG-1793)
The 简明解读 list's grey line is the receipt row's result_line (fallback: what
the layer computed); firm → 已算, conditional → 有条件. One backstage filter
(isBackstageAuditRow: external / MEVG / real-case, plus provider, engine,
packet, calibration, Western) is shared by withTechniqueEvidence and the list.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-08 23:46:30 +08:00
ClaudeandClaude Opus 5.5 a9111fae20 merge: codex/chat-mode-ui-1108 into round7 integration (BUG-1795..1798)
Contract keeps BUG-1794 (no web / external / MEVG / real-case wording in either
mode) with BUG-1795's 深度解读 / 简明解读 names; the missing-audit-table repair
prompt keeps BUG-1794's "no verification rows" wording under the new name.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-08 23:43:49 +08:00
ClaudeandClaude Opus 5.5 8aa0d0cbcd merge: codex/round7-rect-kp-1108 into round7 integration (BUG-1801..1804)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-08 23:41:07 +08:00
ClaudeandClaude Opus 5.5 94d5bd8008 merge: codex/round7-evidence-1108 into round7 integration (BUG-1789..1794)
Evidence card independence keeps both the engine's R3 `self_reference_only`
name list and the evidence branch's `self_reference` notes map.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-08 23:40:37 +08:00
ClaudeandClaude Opus 5.5 5b0c206ee8 docs: BUG-1789..1794 history with r8 blind-eval results
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-08 23:31:06 +08:00
ClaudeandClaude Opus 5.5 fc319ab5ec docs: BUG-1801..1804 rectification comparability, API guard, lookup budget, KP note
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-08 22:41:31 +08:00
ClaudeandClaude Opus 5.5 f60e49c59f docs: BUG-1785 rectification sensitivity of round-6 R1 + R2, grouped by case
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-08 22:39:01 +08:00
ClaudeandClaude Opus 5.5 d784e99867 feat(narayana): round-6 R1 default AD direction, R2 strength scope and local propagation, R3 self-reference
- R1: default AD direction rath_p50_md_parity_v1 (start parity kept as a research
  profile); full profile config + algorithm version on every Narayana output, cache
  keys (consult, api chart, probes, long report, synastry) and the rectification run.
- R2: one strength profile at the seed, AD start and p.43 (d); selected / equal /
  unresolved kept apart; unresolved nodes block only what depends on them (seed
  candidates kept, dated MDs before an unresolved length kept, AD-only loss in
  rectification keeps the MD).
- R3: Neecha Bhanga witness fields (reference, relative_house, self_reference,
  independent_confirmation_allowed, self_reference_only) from the main detector to
  the evidence card yogas_detail rows; self-reference-only never counts as support.
- Sync her b54812c3 KP clock validation; port her round-5 / round-6 tests.
- BUG-1783..1787; golden recaptured with TTL 0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-08 22:38:00 +08:00
ClaudeandClaude Opus 5.5 d9306658fb docs: BUG-1798 capability-audit note
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-08 22:10:23 +08:00
ClaudeandClaude Opus 5.5 9795033da7 feat(consult): 解读方式 pill, 解读依据 list, no 联网 rows (BUG-1795..1798)
Owner-approved chat answer-mode UI (2026-11-08):
- Modes named 深度解读 (professional, default) / 简明解读 (plain) in the UI,
  the model-facing mode line and the runtime contract (names only).
- 解读方式 pill left of send (常用问题 pill look); menu reuses the preset
  popup rows; 功能吉凶口径 (PVR 表 30 / BPHS 例外表) under 深度解读 only;
  Drawer on phone. Remembered per user in localStorage; applies from the
  next question; 重新生成 uses the current choice.
- Mode resolution: this question's words -> pill -> 深度解读; history no
  longer sets the mode. Request carries answerMode (+ functionalProfile
  only under 深度解读); engine gets analysis_mode / functional_profile.
- Receipt records answerMode / functionalProfile; 简明解读 answers show a
  collapsed 解读依据 hairline list built from the receipt audit rows.
- External verification rows (联网 / MEVG / 真实案例) are dropped from the
  rendered 深度解读 audit table and never listed.
- Composer stacks when the single-row field would be under 64px (320px).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-08 22:07:21 +08:00
ClaudeandClaude Opus 5.5 04b4960933 docs: BUG-1773 / BUG-1774 history with r7 blind-eval results
Independent Staging Quality Gate / validate-frontend (push) Successful in 5m9s
Independent Staging Quality Gate / validate-python (push) Successful in 6m47s
Independent Staging Quality Gate / publish (push) Successful in 2m51s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-08 21:13:44 +08:00
ClaudeandClaude Opus 5.5 d889617f2a fix(consult): backstop audit section starts its own paragraph (BUG-1765)
Independent Staging Quality Gate / validate-frontend (push) Successful in 5m15s
Independent Staging Quality Gate / validate-python (push) Successful in 6m50s
Independent Staging Quality Gate / publish (push) Successful in 3m15s
The missing-section continuation shared the length-continuation splice, so a
table written after an answer that ended mid-line was glued to the last
sentence and its H2 did not render.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-08 18:41:35 +08:00
Claude 528eaefb6a Merge branch 'codex/round6-engine-1108' into codex/round6-fixes-1108
# Conflicts:
#	docs/BUG_HISTORY.md
#	frontend/tests/fixtures/consult-evidence-card-golden.json
2026-11-08 16:52:48 +08:00
ClaudeandClaude Opus 5.5 a1241cbfcd docs: r5 and plain-mode r1 blind-eval evidence for BUG-1758/1763/1764
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-08 16:52:14 +08:00
ClaudeandClaude Opus 5.5 473d3fe2f3 docs: BUG-1768..1772 for the round-5 item reply (N1-N5, K1-K3)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-08 15:22:11 +08:00
ClaudeandClaude Opus 5.5 d610756966 fix: chart dasha exact boundaries as UTC seconds (BUG-1752 privacy marker collision)
The first exact-boundary format printed local clock times; a generated
hour:minute collided with a private marker the repo scan forbids. Boundaries
are now start_ts / end_ts (UTC epoch seconds) beside the engine's local days;
no time string is printed. Goldens recaptured (evidence card TTL=0).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-08 15:11:10 +08:00
ClaudeandClaude Opus 5.5 d676292343 fix: astrologer acceptance for BUG-1758/1763/1752 (source ledger, audit acceptance, engine boundaries)
- BUG-1758: the card's affliction layer is a source ledger: one entry per fact
  with its input, effect (conflicts / not_executed) and every house it bears
  on; a fact shared by two houses is one source, never two votes.
- BUG-1763: output acceptance after the one repair: a professional answer
  without the Technique Audit Table, or any answer without the engine audit
  rows (plain mode's evidence entry), fails as incomplete (kept text, no charge).
- BUG-1752: engine rows carry exact local start/end with UTC offset, parent
  start, cycle, and a meta block (365.25-day years, zone, [start, end)); the
  chart page copies them. Tests: midnight crossing, birth balance, second
  cycle, zero-length rows and 0-year Narayana / Chara MDs never current.
- Goldens recaptured (evidence card TTL=0; chart-view dasha from the engine).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-08 14:59:50 +08:00
ClaudeandClaude Opus 5.5 dd2cd83c3e fix: affliction sources not counts, audit-table backstop, chart page engine AD/PD (BUG-1758, BUG-1763, BUG-1764, BUG-1752)
- BUG-1758: the model card drops affliction_evidence.houses.*.signal_count
  (backend field kept); S-09, the pressure basis line and the professional
  voice name the sources and never a count.
- BUG-1763: a professional answer that stopped on its own without the
  Technique Audit Table gets one table-only continuation.
- BUG-1764: the backtest harness passes the answer mode (agent context,
  user-turn shape, length continuation); CONSULT_BACKTEST_ANSWER_MODE=plain.
- BUG-1752: /api/chart carries dasha.antardasha_timeline from
  chart_dasha.birth_moment.sub_period_timeline; the chart page copies the
  engine AD/PD rows and no longer cuts periods by year proportions.
- Goldens: chart-view golden dasha recomputed from birth_moment; evidence-card
  golden recaptured with TTL=0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-08 14:43:50 +08:00
Claude 55d3396615 Merge branch 'codex/rect-r5-measure-1108' into codex/round5-integration-1108
Independent Staging Quality Gate / validate-frontend (push) Successful in 5m15s
Independent Staging Quality Gate / validate-python (push) Successful in 6m29s
Independent Staging Quality Gate / publish (push) Successful in 2m58s
# Conflicts:
#	docs/BUG_HISTORY.md
2026-11-08 13:50:07 +08:00
ClaudeandClaude Opus 5.5 742bdd214f docs: r4 evidence for BUG-1754
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-08 13:49:36 +08:00
ClaudeandClaude Opus 5.5 4f3a45e9ac docs: r4 blind-eval evidence for BUG-1753/1754; record BUG-1758
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-08 13:49:29 +08:00
ClaudeandClaude Opus 5.5 17d932a517 fix(rectification): PVR functional default + source-version Narayana, reseal round5_pvr_narayana_2026_11_08 (BUG-1759)
Product approved 2026-11-08 (astrologer round-5 rulings 1, 3; same basis as
the report and the chat card):
- functional roles: drop the bphs_exception_profile pin at the three scoring
  call sites (+ research mirror); default pvr_table_30 with Moon paksha.
- Narayana: narayana_rath.calc_narayana_rath (two cycles) / antardasha, ages
  via narayana_age from the candidate birth moment; probes date from the birth
  moment. A blocked source step makes the layer unavailable, never the old
  algorithm. Blocked count on all three datasets: 0.
- Reseal: sealed 20, offset 900, live v5 231 under the new tag; identical to
  measurement variant (c) trial by trial. float_split / 166d kept.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-08 13:12:03 +08:00
ClaudeandClaude Opus 5.5 312678dacc fix: astrologer round-5 rulings 6/7/8 (BUG-1753..1757)
- Ruling 7: audit rows carry calculation_status + interpretation_status
  (her interpretation_status_contract axes, plus product not_used);
  「Used(候选)」 becomes executed + conditional. Schema, parser (new
  five-column header, legacy single-value rows mapped), disclosure,
  annual appendix, professional voice and contract updated.
- Ruling 8: the four verification rows use her names (本地计算 /
  预置来源匹配 / 实时联网 / 真实案例校准) and values, no 「MEVG ·」 prefix.
- Ruling 6 (F section): no "max two bases", no ≥2-affliction threshold
  (pressure line shows sources beside support and gaps), plain mode
  states the verification gap in one line, limits sit next to the
  conclusion, technique names when methods disagree, conflict sources
  shown when needed. Both voices updated.

Changed expectations carry 原值/新值/原因 comments.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-08 12:37:15 +08:00
ClaudeandClaude Opus 5.5 d43be3152b Merge branch 'codex/chat-followups-1108' into codex/round5-integration-1108
BUG_HISTORY: both sides kept, ordered by number (1734..1739 before 1741).
Contract: round-5 Narayana five-profile wording kept; chat-followups
additions (steps_to_name, running, Used(候选) table, four MEVG rows)
kept. NARAYANA_STEP_ZH gains the round-5 `start` step.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-08 12:16:43 +08:00
ClaudeandClaude Opus 5.5 369283a100 docs(bug-history): BUG-1734..1738 r3 blind-eval results; MEVG local-compute row misread noted
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-08 12:14:40 +08:00
ClaudeandClaude Opus 5.5 00b5c92097 Merge branch 'codex/narayana-profiles-1108' into codex/functional-pvr-1108
Combines BUG-1741..1743 (Narayana named profiles) with BUG-1746..1752
(PVR functional table, Shadbala, KP first segment, Mudda wording).
BUG_HISTORY entries kept in number order; runtime contract keeps the
round-5 Mudda sentence and the profile-based Narayana rule; evidence-card
golden recaptured with TTL 0 / PYTHONHASHSEED=0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-08 12:00:41 +08:00