Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HwMNZEzdzmrbPhuRNmZe3C
4.8 KiB
PROGRESS · 上游同步第八轮(2026-10-18)
十项计算修正都在分支 codex/upstream-sync8-20261017,每项一个提交。校正打分的 20 条封存回放和 900 条偏移回放,与改代码之前逐条相同。冻结身份测试有 3 项失败,因为任务书要求改的三个文件就在冻结清单里。没有重新冻结,也没有改冻结记录。这一项需要产品决定:按分数相同验收,还是把冻结身份失败当成未通过。
基线
任务书写的基线是 53608d8b。开工时 origin/staging 已到 e7bf60c1f(文档提交,给 #83 加状态板一行)。本分支从 e7bf60c1f 拉出。
上游参照是 codex/upstream-notice-20261016 的 caf1ed4e3。没有整文件覆盖。
提交
| 项 | 提交 | BUG | 上游 |
|---|---|---|---|
| T1 第一大运小运 | 68762ccec |
BUG-1380 | 8643bc9a |
| T2 星宿边界 | d11ee6f0d |
BUG-1381 | 3c2dad95、8643bc9a、9e04f0db 只取 lon_to_nakshatra |
| T3 Sandhi | 5be864a8e |
BUG-1382 | 3c2dad95 |
| T7 KP 边界 | b5eb72343 |
BUG-1383 | 8eec9a54 |
| T4 Pinda | e8a7f3ac2 |
BUG-1384 | 30b43643 |
| T5 Bhava Bala | 6cbae4ce2 |
BUG-1385 | a4d4a249 |
| T6 Argala | aa87c0f12 |
BUG-1386 | e7301feb、86935c0a、4f1536f2 |
| T9 Saham 例外弧 | 2f8263b6a |
BUG-1387 | ce9fed15 |
| T10 日出 | 0bd254cf1 |
BUG-1388 | 9f9f16b3 只取 gulika.py;872eaecf 只取 saham_daynight.py |
| T8 Avastha | 83c97a897 |
BUG-1389 | e628118d、7d545039、f75a6e77、ac565836 |
校正回放
改代码前的结果在本机临时目录,不入库。改完后跳过冻结哈希检查再跑同一套打分,只比 trials:
| 回放 | 条数 | 与改前 |
|---|---|---|
sealed_holdout_rerun.py |
20 | 相同 |
reported_offset_sweep.py |
900 | 相同 |
直接跑这两个脚本会在出结果前退出,原因是 frozen_record_mismatch。变了的冻结文件只有三个:scripts/ashtakavarga.py、scripts/dasha_analyzer.py、scripts/narayana_dasha.py。这三份正是 T2、T4、T6 要改的。没有写新的 freeze 文件。
tests/test_sealed_holdout_contract_freshness.py:3 失败,其余通过。失败的是 test_contract_tracks_actual_current_scorer_and_dataset_audit、test_frozen_record_matches_dataset_scorer_and_evaluator_bytes、test_changed_frozen_identity_fails_before_any_replay。隐私标记测试通过。
定向测试
| 检查 | 结果 |
|---|---|
| 星宿、Sandhi、KP、Pinda、Bhava、Argala、Saham、日出、Avastha 的新增与相关旧测试 | 通过 |
| KP 20 万随机经度 | 0 处不同 |
| 星宿非边界抽样 | 0 处不同 |
报告事实表 report-fact-tables.test.ts |
11 通过 |
全量 pytest、快速门、前端全量 npm test |
未跑,留给验收方 |
偏离
9e04f0db只移植了lon_to_nakshatra。dasha_analyzer的整段时钟改写没有搬,避免改校正打分。- Sandhi 没有照搬「跳过第一大运起点」。我方第一大运的起点本来就是出生前的真实交界。
- Argala 同数复用已有的
select_narayana_seed_sign,给它加了可选的对照星座。没有移植后面的强弱层。 determine_daytime默认仍是原来的视日出窗口。只有 Saham 昼夜、Gulika、Shayanadi 传入 Hindu rising。Panchanga 和校正调用点没有改。- 年运快照没有锁住这三条公式 Saham 的旧经度,所以没有改快照数字。
- 本机没有把
ruff装进这次用的虚拟环境,没有跑 ruff。
验收与收尾(Claude,2026-10-18)
验收基于 44e961ef9,基线 e7bf60c1f。产品同意按打分相同验收、重新冻结,并授权 Claude 直接收尾(分支 codex/upstream-sync8-finish-20261018,已合入当时的 origin/staging)。
| 检查 | 结果 |
|---|---|
| 封存回放 20 条(Claude 独立重跑) | 与基线逐项相同 |
| 偏移回放 900 条(Claude 独立重跑) | 与基线逐项相同 |
| 全量 pytest(两棵树并行,逐名对比) | 新增失败只有 8 条冻结身份;test_vedastro_gateway 一条并行偶发,单跑通过 |
| tsc / lint | 0 错 / 0 error(123 条存量 warning) |
收尾改动:
- BUG-1390:极昼极夜出生时整张 Avastha 表消失,改为只有 Shayanadi 标无法计算。
- BUG-1391:英文报告 Deeptadi 并存条件改用英文逗号。
- 重新冻结(ERR-110):标签
upstream_sync8_2026_10_18。两份研究脚本的FREEZE/REPORT、密封合同当前指针、tests/test_sealed_holdout_contract_freshness.py排除前缀、frontend/tests/rectification-confirmation-gate.test.ts冻结路径,均按三栏改。scoring_perf 四份旧记录逐字节保留。新报告与 scoring_perf 报告的 trials、metrics、summary、historical_comparison 相同(合同更新脚本里有断言)。