Files
Jyotisha/docs/tasks/PROGRESS-upstream-sync6-20261007.md
T

13 KiB
Raw Blame History

PROGRESS · 上游同步第六轮(2026-10-07)

工作树:G:\Ferti\Jyotisha\.worktrees\upstream-sync6-20261007,分支 codex/upstream-sync6-20261007,基线 5cc8e504(任务书写的是 0ed45a4b,本工作树实际从 5cc8e504 开工)。跟踪 origin/staging 未改。未推送。

基线

全量 pytest、npm、v5 评测在兄弟工作树 upstream-sync6-baseline-20261007 上跑。本单不另起第二轮全量 v5。

  • 全量 pytest 进程已结束。日志 D:\Users\74082\AppData\Local\Temp\sync6-pytest-baseline.txt 只有失败名单,PowerShell 重定向没有留下汇总行。本记录不把基线全量写成通过,也没有本分支的全量数字。
  • npm 数字不在本会话里。
  • v5 评测写这份记录时仍在跑(D:\Users\74082\AppData\Local\Temp\sync6-v5-baseline)。不把 v5 写成通过。

原书核对

  • D5 / D6 / D8 / D11 按 PVR《Integrated Approach》6.2.5、6.2.6、6.2.8、6.2.11 的起算规则改。只引用节号,不抄正文。
  • 6.2.8 例 15:按计数,双子 10° 是双宫的第 3 段,从狮子数第 3 段是天秤。书末那句把水星写成狮子,和它自己的计数矛盾。本轮按计数,水星在天秤,与上游 f32472b5 一致。
  • Yogini 对照 V.P. Goel 古典章 Table I。顺序与书一致:Mangala 月 1、Pingala 日 2、Dhanya 木 3、Bhramari 火 4、Bhadrika 水 5、Ulka 土 6、Siddha 金 7、Sankata 罗 8。种子是(月亮宿零基序号 + 3)mod 8。第一段是出生时剩余余额。Table II 是后出的研究改订,不用。U3 没有 blocked。

岁差 import 引导(U10 动手前实测)

有。进程里先 ayanamsa_utils.apply_ayanamsa('lahiri'),ACTIVE_AYANAMSA_NAME 为 lahiri;随后 import jyotish_engine,同一模块全局变成 raman。原因是 scripts/jyotish_engine.py 导入时无条件调用 apply_ayanamsa(DEFAULT_AYANAMSA_NAME)。产品默认仍是 raman。已加进程闩 AYANAMSA_APPLIED_IN_PROCESS。行运、Bhava Chalit、星宿命令改用请求的岁差和出生秒。六种模式(lahiri、raman、krishnamurti、fagan_bradley、true_citra、true_pushya)本命、行运、Bhava Chalit、星宿命令都是 requested == applied。

逐项

项 提交 改了什么
U1 BUG-1260 db68e908 D5 奇宫 (0,10,8,2,6)、偶宫 (1,5,11,9,7)。D6 奇宫从白羊、偶宫从天秤。D8 起点 (0, 8, 4)[si % 3]。D11 (-si + pi) % 12。divisional_charts_extended 的 5/6/8/11 走同一函数
U2 BUG-1261 ab9e3056 Shodasavarga D9 权重 3.5 → 3.0(合计 20)。Dasavarga D9 3.0 → 1.5(合计 20)。尊严分只保留星主关系;Debilitated / Neecha Bhanga 抛 ValueError。final_score = total_weighted_score / 20。档位 High / Moderate / Limited / Low,缺省 Unclassified。全入庙 Shodasavarga 得分等于 20。解释不把分数说成功能性吉凶
U3 BUG-1262 3adb2460 报告用的 Yogini 改 Goel Table I,第一段用出生余额,必须有月亮经度。jyotish_engine._calc_yogini_dasha 与 extended_dashas.calc_yogini_dasha 未改,API 服务器没有加处理函数
U4 BUG-1263 778cb638 planet_house 是相对年升的 1–12。星座另存 planet_sign_idx。相位和年主星座用星座序号。增加 year_lord_house。BUG-1214 只加了相关记录,没有改写旧史
U5 BUG-1264 5eb11e7c 展示层并列历史序列和来源对照。score_candidates 仍用原 Narayana。解释句写实际选中的起运规则。本仓没有 Ketu 第 12 表时返回 blocked,不编序列
U6 BUG-1265 4b9c0198 有经纬度时用 PyJHora、出生时刻、传入岁差。没有对应函数或岁差对不上时 status=blocked。Hora 与 Ghati 不再相同。Varnada、Pranapada 出现在全盘报告的 Standard Lagnas 表和明细行(Varnada_Lagna / Pranapada_Lagna)。校正打分仍用原 Hora / Ghati 公式。Arudha / Upapada 没有加回来
U7 BUG-1266 eb739d4e jupiter_upachaya_from_moon 改为月亮 3/6/10/11 宫的配置,中文名「木星位于月亮增长宫」,类别 configuration。不是名为 Shakata 的格局。generate_yoga_rules.py 里的车格局未动
U8 BUG-1267 f02d27a7 birth_second 传入太阳返照计算、完整报告和命令。虚构盘返照时刻与上游 23be1807 同为 2010-06-15 19:25:43。没有打开视位置、-5 秒或交点拟合。Shadbala 方法声明函数只在未移植的 evidence_labeled_reporting.py,本仓没有对应函数,措辞未改。API 年运那一行把 birth_second 加在原有参数上,行数不增
U9 BUG-1268 edeec413 Neecha Bhanga 的 conditions_checked 加上月方四正、上升四正,尊严上下文传入宫位。不把取消落陷标成 Raja Yoga。第一段大运的小运、更小运从完整母段起点排,显示时裁到出生日,保留 unclipped_start_datetime。Bhava 表用编号宫过滤,汇总行不当成第 13 宫。Karaka 表加 Ranking degree 列
U10 BUG-1269 4e134b9b 见上。产品默认仍是 raman
T9 BUG-1270 未改代码 见下。状态 investigating

三栏改过的断言

  • tests/test_varga_bphs.py:D11 例 varga_map 与 35° 的落座。原值 Aquarius / 新值 Aries / 原因 PVR 6.2.11。
  • tests/test_dasha.py、tests/test_cli_smoke.py:Vimsopaka 不再接受 Neecha Bhanga 尊严分。
  • tests/test_yogini_seed_profile.py:不再从上升兼容表起运。
  • tests/test_rectification_engine_memoization.py:当前身份 scoring-11;v3 golden 逐字节保留;新 golden 是 v4。
  • tests/test_dasha_transition_proximity_cross_midnight.py、tests/test_rectification_relative_support.py:算法字面量 scoring-10 → scoring-11。策略仍是 policy-v4。
  • frontend/tests/rectification-dated-algorithm-generation-20261002.test.ts:回执默认 scoring-11。另有一条:scoring-10 历史记录在 scoring-11 下只读打开并提供再比(BUG-621)。
  • frontend/tests/rectification-engine-version-cross-midnight.test.ts:LIVE_CURRENT 改为 scoring-11。复用缓存还要带上当前 golden 的 policyVersion(scoring-11 回执是 policy-v4,旧跨午夜 fixture 不是这一版)。
  • frontend/tests/rectification-midnight-date-anchor.test.ts:fixture 循环加上 scoring-11。
  • tests/test_sealed_holdout_contract_freshness.py:身份排除名单加上 upstream_sync6_2026_10_07 两份冻结路径。
  • frontend/tests/rectification-confirmation-gate.test.ts:当前冻结重跑路径从 batch1 改到 sync6(与合同一起提交)。

公开盘对照(Lahiri,mean node,与上游 23be1807)

太阳 / 月亮星座。出生时刻已在仓库公开夹具里,这里不重复。

盘 D5 D6 D8 D11 Yogini 第一段
Steve Jobs Sagittarius / Pisces Gemini / Sagittarius Pisces / Scorpio Libra / Libra Mercury,Bhadrika,余额 0.8063 年,起点即出生时刻
Barack Obama Capricorn / Virgo Capricorn / Sagittarius Virgo / Aquarius Leo / Gemini Venus,Siddha,余额 6.9806 年
Elizabeth Taylor Sagittarius / Gemini Gemini / Leo Pisces / Libra Scorpio / Gemini Jupiter,Dhanya,余额 2.3624 年

特殊上升(Jobs,Lahiri):Bhava Leo 17.1198,Hora Aquarius 22.5752,Ghati Virgo 8.9414,Sree Cancer 0.871,Indu Aquarius 14.5117。Hora ≠ Ghati。三盘的 Bhava / Hora / Ghati / Sree / Indu 与上游一致,status 都是 computed。

Jobs 木星 Dig:本仓 80.59,上游 39.41。另外两盘 Dig 一致(54.27、20.64)。见 BUG-1270。

咨询卡(Raman,与上面的 Lahiri 表不是同一套岁差)

consult-evidence-card-golden.json 用采集脚本重跑。本机把 VedAstro 记成 foreground_optional_evidence_timeout,上一份 golden 里是已经采到的 official_verified。提交文件保留上一份官方云字段和经度的 1e-13 抖动,只换入引擎算出的 D5/D6/D8/D11,以及奥巴马木星状态由「落陷(Debilitated)」变为「落陷取消(Neecha Bhanga)」。没有手写星座。

家庭路由太阳 / 月亮,原值 → 新值:

盘 D5 学业 D6 健康 D8 健康 D11 财富
Steve Jobs Aries/Capricorn → Sagittarius/Pisces Aries/Sagittarius → Gemini/Capricorn Taurus/Pisces → Pisces/Sagittarius Cancer/Aries → Scorpio/Libra
Barack Obama Gemini/Aquarius → Capricorn/Virgo Taurus/Capricorn → Aquarius/Sagittarius Leo/Aries → Virgo/Pisces Libra/Taurus → Leo/Cancer
Elizabeth Taylor Aries/Aquarius → Sagittarius/Libra Taurus/Aquarius → Cancer/Leo Gemini/Aries → Aries/Libra Cancer/Gemini → Scorpio/Gemini

上升星座也变了(Raman):Jobs D6 Pisces→Libra、D8 Taurus→Leo、D11 Taurus→Scorpio;Obama D5 Capricorn→Scorpio、D6 Sagittarius→Pisces、D8 Pisces→Libra、D11 Gemini→Aries;Taylor D5 Libra→Capricorn、D6 Virgo→Aquarius、D8 Sagittarius→Taurus、D11 Aquarius→Aries。D5 上升 Jobs 仍是 Taurus。

打分身份

升到 rectification-v5-matrix-scoring-11(d46f9675)。同一输入的单案探测(Lahiri,mean node,公开事件,年份精度):

探测 基线 scoring-10 本分支 scoring-11
Jobs 真实事件 7.25 7.25(D5/D11 星座已不同)
Jobs 学业+财务年 4.7374 5.2687
Obama 真实事件 14.4917 14.6792
Obama 学业+财务年 2.7688 2.7688(内部构成不同)
Taylor 真实事件 13.9708 13.9708
Taylor 学业+财务年 5.0813 4.9875

记忆化 golden 新增 v4,v3 逐字节保留(sha256 7064f30bea3a7bcd8058fdcb6b52484a96a09767c0c289e0d71f3e2368fc8d45)。代数判断已接受 generation ≥ 9,没有新增 === "scoring-10"。历史 scoring-10 记录只读打开。

Shadbala 第 3 列

读者表第 3 列是 Dig。差距来自 calc_dig_bala_precise 没有把大于 180° 的弧折回。上游的短弧函数在 f32472b5 的父提交里已经存在,f32472b5^..23be1807 的 scripts/shadbala.py 无差异。这五个提交不解释成「本轮要改公式」。未改公式。校正打分的 calc_shadbala 不传 context,不走这条精确路径。

ERR-110

冻结身份里字节变了的文件:scripts/varga.py、scripts/divisional_charts_extended.py、scripts/narayana_dasha.py、scripts/rectification/scoring_service.py。旧的 batch1 冻结与报告原文件保留。冻结提交 3b84a3b0。咨询卡 golden 7b837d3b。新路径:

  • docs/research/sealed_holdout_rerun_upstream_sync6_2026_10_07.freeze.json
  • docs/research/sealed_holdout_rerun_upstream_sync6_2026_10_07.json
  • docs/research/reported_offset_upstream_sync6_2026_10_07.freeze.json
  • docs/research/reported_offset_upstream_sync6_2026_10_07.json

影子 20 例重放:evaluated_on 2026-10-07。top_1_rate 0.45,top_3_rate 0.5,mean_absolute_minute_error 6.45,false_confirmation_rate 0.0,confirmation_coverage_rate 0.0,metric_gates_passed false。相对 2026-09-20 历史报告 changed_trial_count 0。这不是独立盲测,不能当发布指标。

reported-offset:900 例,exit 0,约 804 秒。相对 2026-09-20 历史报告 changed_trial_count 235(batch1 那次是 230)。相对 batch1 重放,900 例里 5 例不同:4 例 delivery_width_minutes,1 例 top_1_minute_error。名次和是否命中没有变。

身份测试:tests/test_sealed_holdout_contract_freshness.py、tests/test_reported_offset_research.py、tests/test_rectification_validation_integrity_gate.py 共 45 passed,exit 0。前端 rectification-confirmation-gate.test.ts 8 pass,0 fail。确认门阈值没有放宽。

定向测试(本工作树,不是全量)

命令形如 C:\Users\74082\anaconda3\python.exe -m pytest <files> -q --tb=line --override-ini="console_output_style=classic" -rA --no-header。

  • U1 tests/test_varga_bphs.py 及相关:75 passed。
  • U2 Vimsopaka:16 passed。
  • U4 Tajika:20 passed。
  • U6 特殊上升:4 passed。
  • U10 岁差:10 passed。
  • 太阳返照 + Upachaya:4 passed,exit 0。
  • U9 尊严证据、Neecha 条件、Bhava、Karaka 与 tests/test_dasha.py:43 passed,exit 0,174.82s。
  • Narayana 对照:3 passed,exit 0。
  • scoring-11:tests/test_rectification_engine_memoization.py、tests/test_rectification_relative_support.py、tests/test_dasha_transition_proximity_cross_midnight.py:37 passed,0 failed,exit 0,33.61s。
  • 前端跨午夜三文件第一次 44 pass、1 fail(复用缓存还要 policyVersion)。补上 policyVersion 后,rectification-engine-version-cross-midnight.test.ts 22 passed,exit 0。
  • 更早一轮混合未提交树:164 passed,0 failed,exit 0,252.32s。当时太阳返照测试尚未按正确参数重跑;修正后 2 passed,已含在 U8 提交里。
  • 没有改 scripts/jyotish_api_server.py 的行数,未跑增长合同。ruff 对改过的脚本有大量既有风格问题,没有为凑绿去改。

未做

  • 未推送。未改 .gitea/workflows。未把书里的段落抄进仓库。
  • 未把产品默认岁差改成别的系统。
  • 未打开视位置或交点拟合。
  • Shadbala Dig 短弧未改(BUG-1270 investigating)。
  • 全量 pytest、npm、v5 不在本记录里宣称通过。