# PROGRESS · 上游能力接入(任务 3–7,2026-09-03) 工作树 / 分支同 `PROGRESS-upstream-sync-20260903.md`。任务 4 不依赖任务 2,按并行规则与任务 0 一起做。任务 3 / 5 / 6 / 7 **未开**(等任务 1–2,且 7b 在整备之后;整备 0–3 已在 staging)。 | 任务 | 状态 | 说明 | | --- | --- | --- | | 3 health 三窗 + 个人报告 | 未开 | 会改 `personal-report-generation.ts` 与编排器,须在任务 2 之后 | | 4 VedAstro REST 桥 | 完成(未提交) | 文件集与整备无交集 | | 5 专业报告导出 | 未开 | 依赖任务 2 的 `pl9-export` | | 6 新字段透传 | 未开 | 任务 6 先于任务 3 与 7c | | 7 校正三项 | 未开 | 7b 岁差/交点按请求:整备已交付 `resolveAyanamsa`,仍等任务 2 后做 Python + 前端接线 | ## 任务 4 ### 做了什么 1. 引入 `scripts/vedastro_rest_bridge.py`(对齐上游 `a6f47abd` 的 REST Calculate 调用)。**去掉 yn-1993 / Handan / 1993-04-17 14:49 默认值。** 默认改为虚构 smoke:Beijing `39.9042, 116.4074`,`12:00 01/01/1990 +08:00`,`LAHIRI`。 2. 本地 5 次/分钟限流。HTTP 429 与本地令牌耗尽均降为 `official_blocked`,不抛给调用方当硬错误。`match` 子命令返回 `official_blocked` / `match_subcommand_not_implemented`,不伪造合盘。 3. `scripts/vedastro_gateway.py`:官方健康改为打 `/api/Calculate` 的 `Status: Pass`;status 输出 `transport=rest`、`rate_limit_per_minute=5`、`mcp_bridge_role=protocol_probe_only`。`JYOTISH_SKIP_LOCAL_ENV=1` 时探测为 `not_probed`。 4. `scripts/vedastro_parity_matrix.py` 与 fast-path checklist:MCP/API Surface 的 `fastest_path_lane` 改为 `rest_adapter`;MCP 桥文件保留,只作协议探测。 5. `scripts/diagnose_vedastro_mode.py`、`scripts/vedastro_official_mcp_bridge.py` 文档、`docs/engine/README.md` 同步。 ### 测试(无网络) 未设置 `VEDASTRO_ENABLE_NETWORK=0` 污染进程时: ``` tests/test_vedastro_rest_bridge.py tests/test_vedastro_parity_matrix.py tests/test_vedastro_gateway.py tests/test_vedastro_runtime_mode_diagnostics.py tests/test_vedastro_fast_path_checklist.py tests/test_vedastro_official_mcp_bridge.py ``` **67 passed**(含任务 0 的 `test_import_yinduzhanxing.py`)。REST 桥测试用录制响应,不打真网。曾有一次 `active_backend=local_fallback` 失败是 pytest 进程被 `VEDASTRO_ENABLE_NETWORK=0` 污染,不是产品回归。 `tests/test_vedastro_rest_bridge.py` 断言默认 payload **不含** `14:49`。 ### 有网络手工跑 ``` .venv/bin/python -B scripts/vedastro_rest_bridge.py horoscope ``` 虚构 Beijing smoke。**`Status: Pass`,耗时 1.566 s。** 未打到 429。限流路径由单测覆盖:gateway 降 `official_blocked`。 ### 未做 未改 `jyotish_api_server.py` 的咨询路由。`/api/vedastro_gateway/status` 字段已在 gateway 模块与 `tests/test_vedastro_gateway.py` 锁住;本轮未起 Docker 打 staging 该端点。