fix(bat-api): 完成 issue #19 同机 live 联调
bat-rust / Build and test Go API (push) Canceled after 0s
bat-rust / Build and test Rust (push) Canceled after 0s

This commit is contained in:
2026-08-29 22:58:01 +08:00
parent 90083302a2
commit 7f465523e1
22 changed files with 819 additions and 115 deletions
@@ -1,6 +1,6 @@
# bat-api / Rust bat Contract Fixture Handoff
更新时间:2026-08-03
更新时间:2026-08-29
本文用于两个 Codex 窗口之间间接联调 `bat-api` 与 Rust `bat` 的跨语言 contract fixture。
仓库内归一化 fixture 已交付;本文保留生成、审核和后续扩展的协作协议。
@@ -18,8 +18,8 @@
- 联调不要求本地运行全量长期服务端 `bat`;允许 Rust 侧使用 fixture root 或临时目录走真实代码路径导出 JSON。
- fixture 审核前只能放在 `/tmp/bat-contract-fixture/`,不能直接提交到仓库。
- Go 侧已经实现 player-facing HTTP 鉴权、限流、访问日志、反代适配、OpenAPI 和
`/admin/` 控制入口;仓库内 contract fixture 已完成,剩余是 live daemon socket
和完整 release 切换联调。
`/admin/` 控制入口;仓库内 contract fixture 和同机 live daemon socket / 完整
fixture release 切换联调均已完成,命令为 `make bat-api-local-live-smoke`
- Go 侧当前相关代码入口:
- `internal/api/rpc_release.go`
- `internal/api/release_index.go`
@@ -206,6 +206,9 @@ contract fixture 工作只有在以下条件同时满足时才算完成:
- `internal/api/testdata/contract/catalog-status.unavailable.json`
- `internal/api/testdata/contract/resource-manifest.page0.json`
- `internal/api/testdata/contract/official-sync-snapshot.json`
- 原始交接产物仍位于 `/tmp/bat-contract-fixture/`当前受本地 sandbox 限制,live socket daemon 无法启动,原始 JSON 通过临时 Rust 测试调用同一 dispatch/report 代码路径生成。
- 原始交接产物仍位于 `/tmp/bat-contract-fixture/`仓库内归一化 fixture 用于 schema/mirror 回归,
同机 live socket 验证使用 `make bat-api-local-live-smoke`,不依赖该交接目录。
- Go contract 测试读取仓库内归一化 fixture,不依赖 `/tmp/bat-contract-fixture/`、开发机资源目录或远端长期运行的 `bat`
- 仍未覆盖真实长期 daemon socket 的端到端调用和完整发布切换;该项需要在允许 live daemon / smoke 的隔离环境中单独验证。
- 真实长期 daemon 的生产部署仍需由部署环境持续运行;仓库已在本地隔离环境通过真实
daemon socket 完成端到端调用、版本切换、无 release、RPC 断线和恢复验证。真实官方
网络全量下载仍由 `make official-smoke` 独立负责。