mirror of
https://github.com/Yuyi-Oak/BlueArchiveToolkit.git
synced 2026-07-22 01:15:14 +08:00
docs: align project status with official sync pipeline
Update the authoritative docs, guides, architecture notes, gap list, deployment guidance, handoff notes, and changelog to reflect the current Rust official resource sync boundary.
This commit is contained in:
+60
-34
@@ -1,9 +1,9 @@
|
||||
# BlueArchiveToolkit 完整开发计划
|
||||
|
||||
**项目名称**:BlueArchiveToolkit
|
||||
**文档版本**:2026-06-28 重制版
|
||||
**权威状态**:以本文档和 `CURRENT_STATUS.md` 为准,旧阶段报告仅作历史参考。
|
||||
**最终目标**:构建一个可长期维护、可扩展、可审计的 Blue Archive 资源管理、文本提取、翻译和补丁平台。
|
||||
- **项目名称**:BlueArchiveToolkit
|
||||
- **文档版本**:2026-07-06 状态收口版
|
||||
- **权威状态**:以本文档和 `CURRENT_STATUS.md` 为准,旧阶段报告仅作历史参考。
|
||||
- **最终目标**:构建一个可长期维护、可扩展、可审计的 Blue Archive 资源管理、文本提取、翻译和补丁平台。
|
||||
|
||||
---
|
||||
|
||||
@@ -22,7 +22,7 @@ BlueArchiveToolkit 不是一次性脚本,也不是演示项目。最终交付
|
||||
|
||||
## 2. 当前真实状态
|
||||
|
||||
本节来自 2026-06-28 的工作区盘点和本地验证。
|
||||
本节来自 2026-07-06 的工作区盘点、本地验证和最新功能提交。
|
||||
|
||||
### 已具备
|
||||
|
||||
@@ -31,22 +31,30 @@ BlueArchiveToolkit 不是一次性脚本,也不是演示项目。最终交付
|
||||
3. `bat-adapters` 已实现 Unity、Manifest、Client 集成的框架和注册表。
|
||||
4. `bat-cas-engine` 已完成 CAS V1:原子写入、BLAKE3 Hash、SQLite 引用计数、GC、并发测试、损坏检测。
|
||||
5. `bat-infrastructure` 已改为 CAS 仓储适配层,不再重复实现对象存储。
|
||||
6. `bat-ffi` 已能引用 CAS、AssetBundle、Patch crates。
|
||||
7. 文档已整理:根目录保留入口文档,历史报告进入 `docs/reports/historical/`,误嵌套的 `docs/docs` 已合并。
|
||||
6. `bat-infrastructure` 已提供官方资源 pull/update 服务,正式入口是 `bat-official-sync`。
|
||||
7. `bat-official-sync` 支持 `--auto-discover`、`--watch`、默认 1 小时间隔、本地 manifest audit/repair、官方 seed `.hash` 校验和 snapshot/cache。
|
||||
8. `bat-ffi` 已提供 Manifest inspect 和官方 sync plan 的粗粒度 JSON API。
|
||||
9. 文档已整理:根目录保留入口文档,历史报告进入 `docs/reports/historical/`,误嵌套的 `docs/docs` 已合并。
|
||||
|
||||
### 仍是骨架或占位
|
||||
|
||||
1. AssetBundle 解析器仍是占位 trait,未解析 UnityFS、压缩块、TypeTree 或对象表。
|
||||
2. Patch 的 Binary/JSON 模块仍返回空结果,不具备真实补丁能力。
|
||||
3. Go CLI/API/SDK 目录目前没有实际 package。
|
||||
4. Manifest 真实复杂字段解析尚未完成。
|
||||
5. Web、数据库迁移、OpenAPI、插件加载机制尚未实现。
|
||||
6. 原 Git 历史未恢复;当前仓库以新初始化基线为准。
|
||||
3. Go CLI/API/SDK 仍没有产品级入口;只有 `internal/ffi` 的早期包装。
|
||||
4. Addressables parser 已覆盖当前真实形态 fixture/golden,但还不是完整 Unity Addressables/SBP catalog 兼容层。
|
||||
5. 官方同步结果尚未作为用户级流程自动导入 CAS + ResourceRepository。
|
||||
6. 真实官方网络全量下载 smoke test 尚未记录。
|
||||
7. Web、数据库迁移、OpenAPI、插件加载机制尚未实现。
|
||||
8. 原 Git 历史未恢复;当前仓库以新初始化基线为准。
|
||||
|
||||
### 已验证
|
||||
|
||||
1. `cargo test --workspace` 通过。
|
||||
2. `go test ./...` 当前无 Go package;`Makefile` 已调整为在 Go 未实现阶段明确跳过。
|
||||
1. `cargo test -p bat-adapters -- --nocapture` 通过。
|
||||
2. `cargo test -p bat-ffi -- --nocapture` 通过。
|
||||
3. `cargo test -p bat-infrastructure -- --nocapture` 通过。
|
||||
4. `cargo test -p bat-infrastructure --bin bat-official-sync -- --nocapture` 通过。
|
||||
5. `cargo run -p bat-infrastructure --bin bat-official-sync -- --help` 可用。
|
||||
6. `go test ./...` 当前无 Go 产品 package;`Makefile` 已调整为在 Go 未实现阶段明确跳过。
|
||||
|
||||
---
|
||||
|
||||
@@ -63,7 +71,7 @@ BlueArchiveToolkit 不是一次性脚本,也不是演示项目。最终交付
|
||||
### 3.2 技术决策
|
||||
|
||||
1. **Rust**:保留为核心引擎语言,用于 CAS、AssetBundle、Patch、完整资源拉取和更新检查核心逻辑,FFI 仅作为可选边界。
|
||||
2. **Go**:用于 CLI、同步器、API Server、任务编排、Provider 集成。
|
||||
2. **Go**:用于最小稳定 CLI、服务编排、API Server、任务编排、Provider 集成;不强制要求 Rust 核心能力必须写成库供 Go 调用。
|
||||
3. **PostgreSQL**:作为服务端主数据库,承载翻译记忆库、术语库、任务、审核和用户权限。
|
||||
4. **SQLite**:仅作为本地 CLI 可选元数据后端,必须通过仓储抽象隔离,不能绑定业务逻辑。
|
||||
5. **Redis**:用于服务端缓存、任务状态、限流和短期锁。
|
||||
@@ -158,15 +166,19 @@ BlueArchiveToolkit 不是一次性脚本,也不是演示项目。最终交付
|
||||
|
||||
**目标**:能够获取、解析和同步 Blue Archive 资源清单。
|
||||
|
||||
**当前状态**:部分完成。Rust 官方日服资源同步链路已经具备正式 one-shot 和 `--watch` 常驻入口;Go CLI、完整解析覆盖、CAS 导入编排和真实线上 smoke 仍待完成。
|
||||
|
||||
交付物:
|
||||
|
||||
1. 完成 Addressables Catalog 的真实字段解析。
|
||||
2. 定义资源版本、区域、渠道、远端 URL、Hash、大小、依赖关系模型。
|
||||
3. 实现 Go 下载器:并发、断点续传、限速、重试、校验、缓存。
|
||||
4. 实现 `sync`、`manifest inspect`、`cache status`。
|
||||
5. 将下载结果写入 CAS,并写入 Resource Repository。
|
||||
6. Linux 生产同步支持显式 `--auto-discover` 或已审计 metadata snapshot,不依赖已安装官方启动器。
|
||||
7. 实现自动更新检查:保存上次官方 snapshot,定期 discovery,对比变化后按需拉取。
|
||||
1. Addressables Catalog 真实字段解析:**部分完成**。当前已覆盖 path、hash、size、address、dependencies、metadata 和真实形态 fixture/golden;仍需继续覆盖更多官方 catalog 结构变体。
|
||||
2. 资源版本、区域、渠道、远端 URL、Hash、大小、依赖关系模型:**部分完成**。`Resource` 和官方 endpoint/snapshot 模型已扩展;仍需冻结 Go CLI/API 可见模型。
|
||||
3. Rust 官方下载器:**已完成当前生产入口需要的核心能力**。包含官方 URL 校验、`.part` 续传、重试、本地 manifest size+BLAKE3 校验、官方 seed `.hash` 校验和 repair。
|
||||
4. Rust 自动更新入口:**已完成当前生产入口**。`bat-official-sync` 支持 snapshot、marker diff、bootstrap cache、one-shot、`--watch` 和默认 1 小时间隔。
|
||||
5. Go CLI:**未完成**。需要实现 `bat doctor`、`bat sync --help`、Rust 官方同步命令包装和 JSON/human 输出。
|
||||
6. 用户级 `sync`、`manifest inspect`、`cache status`:**未完成**。Rust FFI 已提供 Manifest inspect 和 sync plan JSON 边界,但 Go CLI 尚未串联。
|
||||
7. 下载结果写入 CAS + ResourceRepository:**部分完成**。CAS 和 SQLite ResourceRepository 已存在,官方同步入口尚未把完整下载结果作为用户级流程自动导入。
|
||||
8. Linux 生产同步不依赖已安装官方启动器:**已完成当前 Rust 入口**。`--auto-discover` 只使用官方 HTTP metadata 和临时目录解析 `GameMainConfig`。
|
||||
9. 真实官方网络全量下载 smoke test:**未完成记录**。需要在隔离目录执行并记录 dry-run、首次下载、二次 up-to-date 和本地损坏 repair。
|
||||
|
||||
验收标准:
|
||||
|
||||
@@ -174,8 +186,10 @@ BlueArchiveToolkit 不是一次性脚本,也不是演示项目。最终交付
|
||||
2. 断点续传和失败重试有可重复测试。
|
||||
3. Manifest 解析失败时给出可定位的字段和偏移信息。
|
||||
4. 同一资源跨版本复用同一 CAS 对象。
|
||||
5. 生产同步入口必须显式选择 `--auto-discover` 或显式提供官方 `server-info` URL、`connection-group` 和 `app-version`,不得隐式启动 launcher/bootstrap 链路。
|
||||
5. 生产同步入口必须显式选择 `--auto-discover` 或显式提供官方 `server-info` URL、`connection-group` 和 `app-version`,不得安装或启动 launcher。
|
||||
6. 自动更新入口必须做到无变化不下载,有变化下载成功后才写入新 snapshot。
|
||||
7. `--watch` 模式必须在 Rust 内部保持持久检查能力,外部 supervisor 只负责进程守护。
|
||||
8. 真实官方网络 smoke 必须记录输出目录、命令、结果摘要和未纳入仓库的大文件位置。
|
||||
|
||||
---
|
||||
|
||||
@@ -352,11 +366,11 @@ BlueArchiveToolkit 不是一次性脚本,也不是演示项目。最终交付
|
||||
|
||||
## 5. 推荐执行顺序
|
||||
|
||||
近期不要直接跳到 Web 或 AI Provider。项目当前的真实瓶颈是基础存储和解析能力。
|
||||
近期不要直接跳到 Web 或 AI Provider。项目当前的真实瓶颈是 Go CLI 入口、资源解析、同步结果进入 CAS/ResourceRepository,以及真实端到端验证。
|
||||
|
||||
建议顺序:
|
||||
|
||||
1. 完成 Milestone 3 和 4,让资源能被同步和解析。
|
||||
1. 完成 Milestone 3 剩余项和 Milestone 4,让资源能被同步、索引和解析。
|
||||
2. 完成 Milestone 5,再开始翻译系统。
|
||||
3. 完成 Milestone 6 和 7,建立可审计翻译流程。
|
||||
4. 完成 Milestone 8,形成可交付补丁。
|
||||
@@ -366,12 +380,14 @@ BlueArchiveToolkit 不是一次性脚本,也不是演示项目。最终交付
|
||||
|
||||
## 6. 近期 10 个具体任务
|
||||
|
||||
1. 完成 Manifest 真实解析字段和资源模型映射。
|
||||
2. 落地 Go CLI 的最小生产入口:`bat doctor`、`bat sync --help`。
|
||||
3. 设计 Resource Repository 的持久化 schema 和迁移策略。
|
||||
4. 开始 AssetBundle UnityFS header/block/directory 解析。
|
||||
5. 为 CLI 和 CAS 增加 `doctor cas` 诊断入口。
|
||||
6. 更新开发指南,使安装、测试、当前限制一致。
|
||||
1. 落地 Go CLI 的最小生产入口:`bat doctor`、`bat sync --help`、`bat official sync --help`。
|
||||
2. 让 Go CLI 能调用 `bat-official-sync` 或 FFI/进程边界,并稳定转发 JSON report。
|
||||
3. 记录一次真实官方网络 smoke:dry-run、首次下载、二次 up-to-date、本地损坏 repair。
|
||||
4. 将官方同步下载结果接入 CAS + `SqliteResourceRepository` 的用户级流程。
|
||||
5. 继续扩展 Addressables parser 的真实 catalog 变体覆盖和错误诊断。
|
||||
6. 开始 AssetBundle UnityFS header/block/directory 解析。
|
||||
7. 为 CLI 和 CAS 增加 `doctor cas` 诊断入口。
|
||||
8. 为 `bat-official-sync --watch` 增加发布型构建、systemd service 示例和运维检查清单。
|
||||
|
||||
---
|
||||
|
||||
@@ -401,6 +417,16 @@ BlueArchiveToolkit 不是一次性脚本,也不是演示项目。最终交付
|
||||
1. Rust 提供稳定引擎能力,不承担 CLI 编排,但负责完整资源拉取和更新检查的核心逻辑。
|
||||
2. Go 负责用户命令、最小稳定 CLI、服务编排、网络和 Provider。
|
||||
3. 跨边界优先进程或 SDK,FFI 只作为可选的粗粒度、安全、可测试 API。
|
||||
4. Rust 不需要被强制写成 Go 调用库;当前 `bat-official-sync --watch` 是允许长期运行的 Rust 生产任务。
|
||||
|
||||
### 官方资源真实下载风险
|
||||
|
||||
处理策略:
|
||||
|
||||
1. 所有真实下载必须写入隔离输出目录。
|
||||
2. 不允许把 `/home/wanye/D/BlueArchive` 或已安装客户端目录当作开发输出目录。
|
||||
3. smoke test 只记录命令、状态和摘要,不把大体积官方资源纳入 Git。
|
||||
4. 下载成功后必须通过 `official-download-manifest.json` audit 和官方 seed `.hash` 校验报告确认。
|
||||
|
||||
### 过早做 Web
|
||||
|
||||
@@ -413,11 +439,11 @@ BlueArchiveToolkit 不是一次性脚本,也不是演示项目。最终交付
|
||||
|
||||
## 8. 当前完成度评估
|
||||
|
||||
按最终目标计算,当前总体完成度约为 **18%**。
|
||||
按最终目标计算,当前总体完成度约为 **22%**。
|
||||
|
||||
已完成的是稳定基线、架构骨架、部分接口和 CAS V1,不是完整产品能力。下一阶段的关键不是继续堆目录,而是把 Manifest、CLI 基础入口和 AssetBundle 解析链路做实。
|
||||
已完成的是稳定基线、架构骨架、部分接口、CAS V1 和 Rust 官方资源同步闭环,不是完整产品能力。下一阶段的关键不是继续堆目录,而是把 Go CLI 最小入口、官方同步端到端验证、CAS/ResourceRepository 编排和 AssetBundle 解析链路做实。
|
||||
|
||||
---
|
||||
|
||||
**下一份应更新文档**:`CURRENT_STATUS.md`
|
||||
**下一项工程任务**:完成 Manifest 真实解析和 Go CLI 基础入口。
|
||||
- **下一份应更新文档**:真实官方网络 smoke 记录
|
||||
- **下一项工程任务**:Go CLI 最小可用入口和官方同步端到端 smoke。
|
||||
|
||||
Reference in New Issue
Block a user