jesse-ux
84cea04b56
Merge current staging for #217 verification
2026-11-12 22:57:03 +08:00
jesse-ux
ac4bf94db5
fix(report): isolate runtime sources and show recorded verification ( #217 )
2026-11-12 22:56:19 +08:00
jesse-ux
2fc768fd7c
fix(report): split participation status and Badhaka placement ( #216 )
Independent Staging Quality Gate / validate-python (pull_request) Successful in 7m17s
Independent Staging Quality Gate / validate-frontend (pull_request) Successful in 7m14s
Independent Staging Quality Gate / publish (pull_request) Skipped
2026-11-12 22:31:21 +08:00
jesse-ux
24152df0b4
Merge remote-tracking branch 'origin/staging' into codex/purpose-stability-20261112
...
# Conflicts:
# docs/BUG_HISTORY.md
2026-11-12 21:29:07 +08:00
jesse-ux
292f248125
fix(report): separate purpose stability from minute boundaries ( #215 )
2026-11-12 21:28:55 +08:00
Claude
2f374fff28
Merge annual-narayana-conditional-20261112 into staging (accepted by Claude)
...
Independent Staging Quality Gate / validate-frontend (push) Successful in 5m12s
Independent Staging Quality Gate / validate-python (push) Successful in 6m56s
Independent Staging Quality Gate / publish (push) Successful in 3m10s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
# Conflicts:
# CHANGELOG.md
# docs/BUG_HISTORY.md
2026-11-12 21:04:55 +08:00
jesse-ux
44288d7eb0
fix(annual): keep Narayana branches as conditional references ( #209 )
2026-11-12 20:27:43 +08:00
jesse-ux
20ac83a5fe
merge: refresh #204 against current staging
2026-11-12 19:05:06 +08:00
Claude and Claude Opus 5.5
1ba0364a7a
fix(report): move Badhaka out of her engine into an announced product module ( #192 , BUG-1853)
...
Independent Staging Quality Gate / validate-frontend (push) Successful in 5m7s
Independent Staging Quality Gate / validate-python (push) Successful in 6m55s
Independent Staging Quality Gate / publish (push) Successful in 2m45s
23e5e6c0 put badhaka_facts into yoga_engine.py and a hook into
jyotish_engine.py. Owner rule 2026-11-07: her skill runs as-is; product
differences live in separate, announced product files. Both engine files are
back to 6f1b9ac3 . scripts/report_render/badhaka_facts.py computes the record
from D1 positions (only calls yoga_engine.badhaka_house), marked
product_computation_pending_astrologer_review, and is announced in
product_runtime_contract.md section G. Results are unchanged on both public charts.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01DbBXozsiu43ob7B8UZCmDM
2026-11-12 18:50:31 +08:00
jesse-ux
2ff142b337
fix(report): preserve readable audit statuses in ordinary reports ( #204 )
2026-11-12 18:43:13 +08:00
Claude
23e5e6c02e
Merge remote-tracking branch 'origin/staging' into claude/report-reading-grade-20261112
...
Independent Staging Quality Gate / validate-frontend (push) Successful in 5m10s
Independent Staging Quality Gate / validate-python (push) Successful in 6m40s
Independent Staging Quality Gate / publish (push) Canceled after 2m42s
# Conflicts:
# docs/BUG_HISTORY.md
2026-11-12 18:33:45 +08:00
Claude and Claude Opus 5.5
4c7abd7187
fix(report): computed points are not "unsourced"; compute Badhaka ( #192 , BUG-1852, BUG-1853)
...
- Indu, Vighati, Gulika, Mandi, Pranapada, 64th navamsa, D5: citations name the
route that leaves them out instead of "references 未找到"; state renamed
not_in_domain_route; prompt says computed layers are "已算出,不据此下结论".
- Post-check false_missing_layer withholds a section that calls a computed point
unsourced or uncomputed (astrologer 8aaf6099 §6 P1).
- yoga_engine.badhaka_facts: Badhaka house/sign/lord/placement/occupants per
badhaka-obstacle-planet-guide.md §二, on modules and advanced_systems; the
report facts carry it so health_obstruction is no longer capped at D.
- Dignity check: a word right before the next planet belongs to that planet.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01DbBXozsiu43ob7B8UZCmDM
2026-11-12 18:33:31 +08:00
jesse-ux
a5fa320c44
merge: refresh #204 against staging
2026-11-12 18:22:17 +08:00
jesse-ux
203d7bae21
fix(report): clarify Mudda, strength and audit wording ( #204 )
2026-11-12 18:22:16 +08:00
jesse-ux
06d242bae8
merge: refresh #205 against staging
2026-11-12 17:34:44 +08:00
jesse-ux
b3a938dafb
fix(tests): make lookup timing and preset source checks deterministic ( #205 )
2026-11-12 17:34:15 +08:00
Claude and Claude Opus 5.5
44f181770d
wip(report): per-claim evidence grades, skill-loaded reading prompt, per-section post-check ( #192 )
...
UI part pending owner review of the prototype.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-12 16:51:57 +08:00
Claude
017e650fda
Merge #180 preset library gates into staging with #201
...
Independent Staging Quality Gate / validate-frontend (push) Successful in 4m58s
Independent Staging Quality Gate / validate-python (push) Successful in 6m39s
Independent Staging Quality Gate / publish (push) Successful in 3m7s
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-12 15:59:32 +08:00
jesse-ux
45fa4b8c05
refactor(preset): move reviewed evidence into scripts package
2026-11-12 14:46:18 +08:00
jesse-ux
ab5372372b
fix(preset): reject reserved states throughout entries
2026-11-12 13:59:57 +08:00
jesse-ux
e1cb2efcbe
fix(preset): verify reviewed evidence and match executed branches
2026-11-12 13:55:26 +08:00
jesse-ux
c86a7e84ab
fix(report): scope v3 reading facts to computed evidence
...
Independent Staging Quality Gate / validate-frontend (pull_request) Failing after 3m12s
Independent Staging Quality Gate / validate-python (pull_request) Successful in 6m40s
Independent Staging Quality Gate / publish (pull_request) Skipped
Verify both public report packets and privacy checks. Record the legacy date assertion and front-end schema fixture that require scope approval.
2026-11-12 13:44:52 +08:00
Claude and Claude Opus 5.5
209b8ca4b4
chore(preset): import the 2026-11-08 preset library draft unchanged ( #180 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-12 13:12:33 +08:00
jesse-ux
2523dcdc64
test(report): verify Mudda intervals in both report editions
2026-11-12 11:49:45 +08:00
jesse-ux
c4d0b379b7
Merge origin/staging into #191 delivery branch
2026-11-12 11:43:00 +08:00
jesse-ux
54b75988dd
fix(report): show native Mudda intervals and export saved readings
2026-11-12 11:42:59 +08:00
jesse-ux
d78c6e6784
fix(report): strip internal issue refs from reading facts ( #198 )
Independent Staging Quality Gate / validate-frontend (push) Successful in 5m9s
Independent Staging Quality Gate / validate-python (push) Successful in 6m31s
Independent Staging Quality Gate / publish (push) Successful in 2m37s
2026-11-12 11:02:08 +08:00
jesse-ux
380bb8830d
fix(report): show Narayana branches and per-planet Shadbala
Independent Staging Quality Gate / validate-frontend (pull_request) Failing after 3m59s
Independent Staging Quality Gate / validate-python (pull_request) Successful in 7m18s
Independent Staging Quality Gate / publish (pull_request) Skipped
Independent Staging Quality Gate / validate-python (push) Successful in 7m34s
Independent Staging Quality Gate / validate-frontend (push) Successful in 5m2s
Independent Staging Quality Gate / publish (push) Successful in 2m38s
2026-11-12 09:47:04 +08:00
jesse-ux
19475120f9
fix(report): preserve wording and evidence across the new tables
Independent Staging Quality Gate / validate-python (pull_request) Successful in 6m37s
Independent Staging Quality Gate / validate-frontend (pull_request) Successful in 7m1s
Independent Staging Quality Gate / publish (pull_request) Skipped
2026-11-12 02:06:31 +08:00
jesse-ux
ff0acddf2b
merge: align #189 with current staging
2026-11-12 01:50:10 +08:00
jesse-ux
651d0eeed8
fix(report): keep candidate and audit statuses in both editions
2026-11-12 01:49:43 +08:00
jesse-ux
6c2027d337
merge: update #178 to current staging
Independent Staging Quality Gate / validate-frontend (pull_request) Successful in 7m19s
Independent Staging Quality Gate / validate-python (pull_request) Successful in 7m30s
Independent Staging Quality Gate / publish (pull_request) Skipped
2026-11-11 22:37:16 +08:00
jesse-ux
a044c04e17
feat(ondemand): add explicit Prashna chart calculation
2026-11-11 22:35:47 +08:00
jesse-ux
8d9e77ca2f
fix(report): preserve status and field meaning in both cleanup passes
Independent Staging Quality Gate / validate-python (pull_request) Successful in 6m46s
Independent Staging Quality Gate / validate-frontend (pull_request) Successful in 7m23s
Independent Staging Quality Gate / publish (pull_request) Skipped
2026-11-11 18:56:47 +08:00
jesse-ux
a604f4da36
merge: update #188 to current staging
2026-11-11 18:24:23 +08:00
jesse-ux
e491b7b054
fix(report): filter audit wording and show verification limits
2026-11-11 16:50:14 +08:00
jesse-ux
d92cad065e
feat(ondemand): add native dasha calculation for a requested date
Independent Staging Quality Gate / validate-frontend (pull_request) Failing after 3m18s
Independent Staging Quality Gate / validate-python (pull_request) Successful in 6m54s
Independent Staging Quality Gate / publish (pull_request) Skipped
2026-11-11 15:14:06 +08:00
Claude and Claude Opus 5.5
8196387efa
fix(ondemand): varga echoes parashara for D2/D3, labels from VARGA_META, no 0-degree fallback ( #176 acceptance, BUG-1819)
...
Independent Staging Quality Gate / validate-frontend (push) Successful in 5m6s
Independent Staging Quality Gate / validate-python (push) Successful in 6m36s
Independent Staging Quality Gate / publish (push) Successful in 2m57s
- D2/D3 without a variant reported classical_local; the brief asks for
parashara (identical at 3600 sampled points, echo only).
- usage_labels were a hand-written list that disagreed with VARGA_META.area
for D9 and D11; now taken from VARGA_META.
- a missing engine longitude silently became 0 deg Aries; now blocked.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-11 14:11:30 +08:00
Claude and Claude Opus 5.5
0a984d6f8c
merge: #176 ondemand-varga into batch5 acceptance
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-11 14:05:55 +08:00
Claude
a641bc32ee
merge: #rect-layer-alias into batch5 acceptance
...
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-11 14:05:36 +08:00
jesse-ux and Grok (agent loop)
243eeb7ac9
feat(ondemand): varga tool with explicit variants ( #176 , BUG-1819)
...
只做后端:
- scripts/ondemand_calc/varga.py:出生资料与岁差必填;divisions 1–6 个、不重复、
必须在 VARGA_META 里;variants 只允许请求里的 D2/D3 且必须是真实变体名,
否则 blocked 并在 reason 里列出可用变体
- 标准分盘走 calc_all_vargas、变体走 calc_varga_with_variant;每盘回显实际方法名与
part_size(取自引擎 _meta,不手写)
- 用途标签只放 usage_labels 并带 tradition_note;raw 里没有把用途当唯一含义的键
- 引擎抛错一律 blocked 且 raw 为空
- registry 加两行注册
Tests: tests/test_ondemand_varga_20261109.py 17 条;连同 solar_return /
transit_window / transit_date / contract / api growth 共 92 条全过。
Co-Authored-By: Grok (agent loop)
2026-11-09 21:32:11 +08:00
Claude and Claude Opus 5.5
c9f2f76f6a
fix(ondemand): beyond_next_return compares UTC with UTC ( #175 acceptance, BUG-1818)
...
Independent Staging Quality Gate / validate-frontend (push) Successful in 5m19s
Independent Staging Quality Gate / validate-python (push) Successful in 6m44s
Independent Staging Quality Gate / publish (push) Successful in 3m6s
Round 2 read coverage.end.local, but _parse_moment cannot parse the
+hh:mm suffix, so that branch never ran and the comparison always fell
back to utc + profile.tz. Convert each Mudda end to UTC with the
solar-return instant's own offset (tajika_mudda.TIME_BASIS) and compare
it with coverage.end.utc. Adds tests for a UTC+8 birth and a New York
birth (±3 h around the next return, plus real rows).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-09 19:33:24 +08:00
Claude and Claude Opus 5.5
d46df6a42a
refactor(rect): move purpose gate into scripts/rectification_purpose_gate/ ( #186 )
...
Keeps the scripts/ root at the 476-file budget; the import path
rectification_purpose_gate is unchanged and no test is edited.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-09 19:33:24 +08:00
Claude and Claude Opus 5.5
97a8636f26
merge: accept codex/purpose-gate-contract-20261109 ( #186 , batch 4)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-09 19:33:24 +08:00
Claude and Claude Opus 5.5
f089ab4d56
merge: accept codex/explicit-profile-20261109 ( #185 , batch 4)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-09 19:33:24 +08:00
jesse-ux and Grok (agent loop)
52b19d7a82
fix(rect): after excluding the indivisible MD/AD unit, compare on the rest ( #184 round 3, BUG-1827)
...
打回:单元拿掉了,但 Narayana_AD 仍算 unexplained,又落回 not_reducible,
且那个分支不输出 excluded_contributions。
- 新增 _explained_by_exclusion:差异层被「所有带它的候选的不可拆 MD/AD 项」
覆盖且没有别的缺失层时,视为已由排除解释
- not_reducible 分支也输出 excluded_contributions(非空时)
- 旧形状行(无 contributions)不受影响
Tests: 新增 4 条真实形状用例(只缺小运→common_coverage、再加一个缺失层→
not_reducible 但仍报排除、旧形状行不报、负分照计);本文件 20 条 + 既有四套
合计 56 条全过。
Co-Authored-By: Grok (agent loop)
2026-11-09 19:31:41 +08:00
Claude
b6f470d25c
merge: accept codex/ondemand-solar-return-20261109 (batch 4)
...
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 19:21:34 +08:00
jesse-ux
915d719a64
fix(rect): reject stale purpose bindings before payload validation ( #186 )
...
Verified 16 purpose-gate tests, 38 reference comparisons and 62 privacy checks.
2026-11-09 19:11:15 +08:00
jesse-ux and Grok (agent loop)
446420d720
feat(rect): per-contribution evidence, consistent MD/AD exclusion, real missing fields ( #184 round 2, BUG-1827)
...
按占星师第七轮 P1 与 FIX-rect-layer-alias-2:
- 引擎行追加 contributions(event_id / layer / dependency / profile / points /
decomposable / missing_reason);整件不计分的事也记一项,points 为 null
- 任一候选的 dasha_varga_core 贡献 decomposable 为假时,对所有候选一致排除该
单元并写 excluded_contributions(缺的不当 0、全的也不计)
- 新增顶层 missing_mandatory_layers([{candidate_time, layer, event_ids}],
排序、永不为 null,旧形状行标 legacy_row_without_contributions);
reasons 里那一条当且仅当列表非空
- 层名对照 ASTROLOGER_EVENT_LAYER_ALIASES(只在整件事缺失且无其他门控层时套用),
记 layer_aliases_applied;产品的 Narayana_AD(只缺小运)仍 not_reducible
- 三个计数(top_candidate_count / top_segment_count / unique_time)保留
Tests: 测试文件 17 条(含真实引擎行:贡献分值之和等于 score、layer_points 与
contributions 一一对应),连同 1801/active_events/1802/technique_contract 共 52 条全过。
Co-Authored-By: Grok (agent loop)
2026-11-09 18:03:35 +08:00
jesse-ux and Grok (agent loop)
b8a56c48ed
fix(ondemand): beyond_next_return compares on one time basis ( #175 round 2, BUG-1818)
...
打回:Mudda 原始段是返照地点的本地时刻,覆盖区间终点却拿 utc 去比,差一个时区偏移。
- 比较两边都改用 coverage.end.local(没有 local 时退回 utc + 返照地点偏移)
- 新增 4 条测试(北京 +08 与纽约 −05 各 ±3 小时);旧代码上 2 条失败
- 未改 scripts/solar_return.py 或任何冻结文件;既有 16 条未动
Tests: 本文件 20 条,连同 transit_window/transit_date/contract/api growth 共 70 条全过。
Co-Authored-By: Grok (agent loop)
2026-11-09 17:47:07 +08:00