diff --git a/docs/tasks/README.md b/docs/tasks/README.md index ba5a6d94..37932028 100644 --- a/docs/tasks/README.md +++ b/docs/tasks/README.md @@ -543,4 +543,4 @@ | — | `PROGRESS-chart-ui-114-20261027.md` | **#114 星盘页一页铺开**:南北印度可点盘、检视、深读四页、对话右栏完整盘面(直接执行) | 待推 staging | `codex/chart-ui-114-20261027` | | — | `PROGRESS-session-shell-116-20261028.md` | **#116 侧栏会话菜单搬进外壳**:每个页面都能「…」和拖动(直接执行,BUG-1467) | 已推 staging | `codex/session-shell-116-20261027` | | `TASK-home-crash-saved-people-20261027.md` | `PROGRESS-home-crash-saved-people-20261027.md` | **#115 首页崩溃**:存过别人的账户一进首页就「页面出错了」——人物列表的资料缺两个字段,启程引导一读就报错;入口补齐默认值(BUG-1464) | 待验收 | `codex/home-crash-saved-people-20261027` | -| `TASK-upstream-sync9-20261028.md` | `PROGRESS-upstream-sync9-20261028.md` | **#141 上游同步第九轮**:甲批九项已做完并推 `codex/upstream-sync9-20261028`;校正 20 条和 900 条与上一份回放逐条相同;乙批仍等 #137 | 待验收 | `codex/upstream-sync9-20261028` | +| `TASK-upstream-sync9-20261028.md` | `PROGRESS-upstream-sync9-20261028.md` | **第 1 次打回(快速门 1 败:Darakaraka 旧测试锁错值,见 `TASK-upstream-sync9-fix-20261028.md`)** · **#141 上游同步第九轮**:甲批九项已做完并推 `codex/upstream-sync9-20261028`;校正 20 条和 900 条与上一份回放逐条相同;乙批仍等 #137 | 待验收 | `codex/upstream-sync9-20261028` | diff --git a/docs/tasks/TASK-upstream-sync9-fix-20261028.md b/docs/tasks/TASK-upstream-sync9-fix-20261028.md new file mode 100644 index 00000000..0276e4f2 --- /dev/null +++ b/docs/tasks/TASK-upstream-sync9-fix-20261028.md @@ -0,0 +1,44 @@ +# TASK · 上游同步第九轮 · 第 1 次打回(2026-10-28) + +- 原任务书:`docs/tasks/TASK-upstream-sync9-20261028.md`(issue #141) +- 被验 SHA:`57867c94fe7fd08196a2cb5d0be4b7c1f2cdf5df`(分支 `codex/upstream-sync9-20261028`) +- 执行方:Grok,同一分支继续提交 +- BUG:不新开号,补在 BUG-1478 + +## 1. 验收结果 + +| 检查 | 结果 | +| --- | --- | +| 回报 SHA 是分支最新提交,基于当前 `origin/staging` 可快进 | 是 | +| 本轮 11 个上游测试文件(Linux) | 242 过;条数、数值、容差与上游原文件逐一相同 | +| 相关既有测试 39 个文件 | 527 过、1 败;那 1 败(`test_dasha_api_engine_parity.py::test_yogini_api_majors_match_pyjhora...`)在 staging 上同样失败,不算本单 | +| 生时校正 20 条 + 900 条(Linux 复跑) | 与第八轮记录逐条相同 | +| 冻结文件、`scripts/` 根目录、workflow、前端 | 未改 | +| Python 快速门 `run_quality_gate.py --profile quick` | **1 败**,见下 | + +## 2. 失败项 + +`tests/test_cli_smoke.py::test_full_reading_uses_d9_context_for_darakaraka_dignity`:staging 上过,本分支上 `dk_planet` 从 `Sun` 变成 `Moon`。 + +这是 A7(BUG-1478)**修对了**,旧测试锁的是错值: + +- 该测试盘 7 颗行星的星座内度数里月亮最低(3.09°,太阳 8.85°);8 星法罗睺逆数为 26.53°,月亮仍最低。 +- 同一次完整解读里我方主表 `modules.jaimini.chara_karaka_7.karaka_table.Darakaraka` 与 `chara_karaka_8.karaka_table_8.Darakaraka` 都是 **Moon**。 +- 旧 `darakaraka_reader._calculate_dk` 在 8 星法下取 `sorted_planets[6]`(第 7 高)而不是最低者,所以给出 Sun。上游 `45b3b66b` 修的正是「读取器与主表不一致」。 + +## 3. 要做的 + +1. 把该测试的期望改成 `Moon`,并加一条断言:读取器的 `dk_planet` 等于同一结果里 `chara_karaka_8.karaka_table_8.Darakaraka.planet`(锁住「与主表一致」,而不是再锁一个具体星名)。测试里其余断言(D9 星座、D9 宫位、D9 尊贵度)按新 DK 重新核对:若随 DK 改变,写清原值 / 新值 / 原因;**不得删除或放宽**。 +2. PROGRESS「断言三栏」加这一行:原值 `Sun`、新值 `Moon`、原因(同 §2)。 +3. BUG-1478 补一句:旧读取器 8 星法取第 7 高;`test_cli_smoke.py` 这条测试锁的是错值,所以一直没拦住。 +4. 全文检索 `tests/` 里其他写死 Darakaraka 星名或依赖 `darakaraka_reader` 的断言(`grep -rn "dk_planet\|Darakaraka" tests/`),逐条在本分支上跑;有同类锁错值的一并按第 1 条处理,并列进 PROGRESS。 + +## 4. 验收命令 + +| 检查 | Grok 自跑 | Claude 验收 | +| --- | --- | --- | +| `tests/test_cli_smoke.py -k darakaraka` 与第 4 条找到的测试 | 必跑 | 复验 | +| 本轮 11 个上游测试文件 | 必跑 | 复验 | +| Python 快速门 | 不跑 | 以 Claude 为准 | + +完成后照旧回报新的 head SHA。