mirror of
https://github.com/Yuyi-Oak/BlueArchiveToolkit.git
synced 2026-07-22 01:15:14 +08:00
阶段 1a 的协议地基(承接错误码模型):
- 统一 envelope:所有响应装入 JSON-RPC 2.0 result 的
{ ok, status, data, error, request_id };error 用 bat_core::ApiError
(含 BAT-ERR 码/kind/domain/location/retryable)。传输层解析失败仍走
JSON-RPC 顶层 error。request_id 为 req-<pid>-<seq>。
- 命名空间分发:方法改用国际惯例 <namespace>.<action>;daemon.* 为规范名,
bat.* 保留为兼容别名(canonical_rpc_method 解析)。未知方法 → 700001,
已规划未实现(resource.sync/verify、catalog.*/patch.*/unityfs.* 等)→ 700003。
- 只读方法:daemon.status/logs/stop/reload/refresh(迁移)、resource.state(新增,
返回资源发布根 + 版本状态 + 上次同步结果)、task.status/task.list(任务库暂空,
status → 700004,list → 空列表;执行器留待阶段 1b)。
- 客户端 daemon_rpc_call 解包 envelope(检查 ok、返回 data、把 error 转 Err),
CLI 调用方零改动。
验证:新增分发/别名/envelope 单测(60 bin 测试全过);真机起停 daemon 端到端确认
daemon.status/logs/resource.state/task.list 经 CLI 与裸 socket 均正确返回 envelope,
bat.* 别名生效,未知/未实现返回对应 BAT-ERR 码。
对应 issue #1(协议基础设施 + 最小只读方法集)。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>