feat: add official resource sync pipeline

Add the production-facing official update service and bat-official-sync watch CLI for unattended resource synchronization.

Support launcher-resource discovery without installing the launcher, remote marker snapshots, local manifest audit and repair, official seed hash validation, bootstrap caching, richer Addressables coverage, SQLite resource persistence, and FFI JSON helpers.
This commit is contained in:
2026-07-05 23:49:56 +08:00
parent 99e66a48d7
commit 789402c887
35 changed files with 6262 additions and 177 deletions
@@ -35,7 +35,7 @@ BlueArchiveToolkit 的最终目标覆盖资源同步、CAS、AssetBundle 解析
3. **Go 应用层**
- 负责 CLI、资源同步、下载器、API Server、任务调度、配置、日志、Provider 编排。
- 通过 FFI、进程边界或稳定 SDK 调用 Rust 引擎能力。
- 通过稳定 SDK、进程边界,必要时再通过 FFI 调用 Rust 引擎能力。
- 不重复实现 AssetBundle 解析、Patch 算法或 CAS 对象存储核心逻辑。
4. **Web 层**
@@ -48,8 +48,8 @@ BlueArchiveToolkit 的最终目标覆盖资源同步、CAS、AssetBundle 解析
1. Rust 引擎 API 必须保持业务无关,不出现 CLI 命令、HTTP 状态码、Web 页面状态。
2. Go 应用层不得复制 Rust 引擎中的 Hash、Patch、AssetBundle 核心算法。
3. FFI 边界必须避免暴露大量细粒度内部结构,优先暴露批量和事务语义。
4. 所有跨语言错误必须能映射到统一错误码和可读诊断信息。
3. 跨边界优先级应是进程边界或稳定 SDK,其次才是 FFI;若使用 FFI,必须只暴露粗粒度批量和事务语义。
4. 所有跨边界错误必须能映射到统一错误码和可读诊断信息。
---
@@ -45,6 +45,6 @@ CAS V1 对外领域接口继续使用 `bat_core::repositories::cas_repository::C
## 后果
1. 后续 Go CLI/API 只能通过领域仓储接口稳定 FFI 调用 CAS,不直接依赖对象目录结构。
1. 后续 Go CLI/API 只能通过领域仓储接口稳定 SDK 或进程边界调用 CAS,不直接依赖对象目录结构FFI 仅作为可选实现方式
2. CAS V1 后续可以替换元数据后端,但不能改变领域接口语义。
3. 如果以后需要 dry-run GC、批量引用更新或流式存储,应作为新接口扩展,不破坏当前 trait。