The natal /api/chart request from the chart page now sends skip_vedastro_main_entry_overview, matching the ephemeris page. Mapper and contract never read that evidence. BUG-718 recurs from BUG-161. Tests lock both foreground natal paths.
2.6 KiB
2.6 KiB
PROGRESS · 星盘页与 VedAstro 外网调用脱钩(2026-09-15)
工作树:.worktrees/chart-vedastro-decouple-20260915
分支:codex/chart-vedastro-decouple-20260915
基线:origin/staging @ ce1939b0(任务书;代码基线 69ede436)
本机 Windows。
未改 scripts/**、page.tsx、超时、限流、HEAVY_COMPUTE_PATHS。未回退 BUG-715/716/717。Skill 未 bump。
任务状态
| 任务 | 状态 | 说明 |
|---|---|---|
| 1 首屏 skip VedAstro | 完成 | birthPayload() 增加 skip_vedastro_main_entry_overview: true。followUp 展开同一 payload,四个后续 layer 自动带上该字段 |
| 2 合同测试 | 完成 | 星盘 BFF 请求体 + 星历两处源码/桩 |
| 3 BUG-718 | 完成 | 复发自 BUG-161 |
| 4 文档 | 完成 | CHANGELOG、真人走查第 16 条 |
反向验证
把 birthPayload() 里 skip_vedastro_main_entry_overview: true 删掉后,foreground chart-view natal requests skip VedAstro overview 失败(undefined !== true);恢复后通过。
耗时对比
本机未起引擎(无 Docker / 未跑 jyotish_api_server.py)。任务书基线:不带 skip 0.40–0.66 s(其中 VedAstro 空转 0.36 s),带 skip 的星历路径 5 ms / 58 KB,不带 skip 163 KB。本单与星历页同一标志,mapper 不读 modules,五个 Tab 合同仍走原 golden。真人走查见 docs/testing/chart-page-20260915.md 第 16 条。
既有断言改动
| 文件 | 原值 | 新值 | 原因 |
|---|---|---|---|
chart-view-route.test.ts 的 engine() |
只记 path |
同时记 path + body |
要锁住请求体里的 skip 标志;既有路径断言未改 |
未弱化其它既有断言。
测试
| 命令 | 结果 |
|---|---|
npx tsx --test tests/chart-view-route.test.ts tests/ephemeris-route.test.ts tests/chart-page-view.test.tsx |
29 pass / 0 fail(上一单同三文件 27;本单 +2:星盘 skip、星历两处 skip) |
node node_modules/typescript/bin/tsc --noEmit |
0 错 |
npm run lint |
0 error / 119 条既有 warning;本单未新增 |
npx next build |
本机未重跑。上一单 compile + tsc 过后死在既有 SkillPackageRegistryError(EPERM symlink /api/birth-time-guide)。源码未改 page.tsx / 路由类型。 |
环境缺口
- 无登录态、无 Chrome:真人走查见
docs/testing/chart-page-20260915.md第 16 条,不得写成通过。 - 无本机引擎:耗时/字节对比沿用任务书实测,未在本轮复测。
next build收集页面数据时 symlink EPERM,无法在本机核对路由表。