Files
Jyotisha/docs/tasks/PROGRESS-upstream-sync8-20261017.md
T
Jesse_ChenandClaude Opus 5.5 0d92f586b6
Independent Staging Quality Gate / validate (push) Successful in 15m2s
Independent Staging Quality Gate / publish (push) Successful in 4m10s
docs: record sync8 acceptance, BUG-1390/1391 and the ERR-110 refreeze
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HwMNZEzdzmrbPhuRNmZe3C
2026-10-18 18:57:02 +08:00

74 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 相同(合同更新脚本里有断言)。