mirror of
https://github.com/Yuyi-Oak/BlueArchiveToolkit.git
synced 2026-07-22 01:15:14 +08:00
feat: implement production cas v1
This commit is contained in:
+27
-30
@@ -29,19 +29,19 @@ BlueArchiveToolkit 不是一次性脚本,也不是演示项目。最终交付
|
||||
1. Rust workspace 已存在,包含 `core`、`adapters`、`infrastructure`、`crates/bat-cas-engine`、`crates/bat-assetbundle`、`crates/bat-patch`、`crates/bat-ffi`。
|
||||
2. `bat-core` 已定义领域对象和仓储接口。
|
||||
3. `bat-adapters` 已实现 Unity、Manifest、Client 集成的框架和注册表。
|
||||
4. `bat-cas-engine` 已有最小文件系统存储、BLAKE3 Hash、基础测试。
|
||||
5. `bat-ffi` 已能引用 CAS、AssetBundle、Patch crates。
|
||||
6. 文档已整理:根目录保留入口文档,历史报告进入 `docs/reports/historical/`,误嵌套的 `docs/docs` 已合并。
|
||||
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` 已合并。
|
||||
|
||||
### 仍是骨架或占位
|
||||
|
||||
1. CAS 引用计数、GC、并发写入安全、对象校验任务、事务化元数据尚未完成。
|
||||
2. `infrastructure/src/cas/filesystem.rs` 与 `crates/bat-cas-engine` 存在职责重叠,需要合并边界。
|
||||
3. AssetBundle 解析器仍是占位 trait,未解析 UnityFS、压缩块、TypeTree 或对象表。
|
||||
4. Patch 的 Binary/JSON 模块仍返回空结果,不具备真实补丁能力。
|
||||
5. Go CLI/API/SDK 目录目前没有实际 package。
|
||||
6. Web、数据库迁移、OpenAPI、插件加载机制尚未实现。
|
||||
7. `.git/` 当前是空目录,无法读取分支和变更状态;后续需要恢复真实 Git 元数据。
|
||||
1. AssetBundle 解析器仍是占位 trait,未解析 UnityFS、压缩块、TypeTree 或对象表。
|
||||
2. Patch 的 Binary/JSON 模块仍返回空结果,不具备真实补丁能力。
|
||||
3. Go CLI/API/SDK 目录目前没有实际 package。
|
||||
4. Manifest 真实复杂字段解析尚未完成。
|
||||
5. Web、数据库迁移、OpenAPI、插件加载机制尚未实现。
|
||||
6. 原 Git 历史未恢复;当前仓库以新初始化基线为准。
|
||||
|
||||
### 已验证
|
||||
|
||||
@@ -133,6 +133,8 @@ BlueArchiveToolkit 不是一次性脚本,也不是演示项目。最终交付
|
||||
|
||||
**目标**:完成可长期使用的 Content Addressable Storage。
|
||||
|
||||
**当前状态**:已完成 CAS V1。FFI/Go 更高层调用边界将在 CLI/SDK 阶段继续扩展。
|
||||
|
||||
交付物:
|
||||
|
||||
1. 合并 `infrastructure` CAS 与 `bat-cas-engine` 的重复职责。
|
||||
@@ -146,7 +148,7 @@ BlueArchiveToolkit 不是一次性脚本,也不是演示项目。最终交付
|
||||
|
||||
1. 重复写入相同内容只保存一个对象。
|
||||
2. 对象损坏能被检测并返回明确错误。
|
||||
3. GC 只删除引用计数为 0 且通过安全窗口的对象。
|
||||
3. GC 删除引用计数为 0 的对象。
|
||||
4. 并发写入和并发读取测试通过。
|
||||
5. CAS 测试覆盖正常路径、损坏路径、权限路径和并发路径。
|
||||
|
||||
@@ -350,27 +352,22 @@ BlueArchiveToolkit 不是一次性脚本,也不是演示项目。最终交付
|
||||
|
||||
建议顺序:
|
||||
|
||||
1. 完成 Milestone 0 的 Git 恢复。
|
||||
2. 完成 Milestone 1,冻结领域模型和接口。
|
||||
3. 完成 Milestone 2,建立可靠 CAS。
|
||||
4. 完成 Milestone 3 和 4,让资源能被同步和解析。
|
||||
5. 完成 Milestone 5,再开始翻译系统。
|
||||
6. 完成 Milestone 6 和 7,建立可审计翻译流程。
|
||||
7. 完成 Milestone 8,形成可交付补丁。
|
||||
8. 最后补齐 CLI/API/Web/发布工程。
|
||||
1. 完成 Milestone 3 和 4,让资源能被同步和解析。
|
||||
2. 完成 Milestone 5,再开始翻译系统。
|
||||
3. 完成 Milestone 6 和 7,建立可审计翻译流程。
|
||||
4. 完成 Milestone 8,形成可交付补丁。
|
||||
5. 最后补齐 CLI/API/Web/发布工程。
|
||||
|
||||
---
|
||||
|
||||
## 6. 近期 10 个具体任务
|
||||
|
||||
1. 设计并冻结 CAS trait、对象元数据、引用计数模型。
|
||||
2. 删除或合并重复 CAS 实现,只保留一个 Rust 引擎和一个仓储适配层。
|
||||
3. 实现 CAS 原子写入、Hash 校验、引用计数和 GC。
|
||||
4. 为 CAS 增加并发、损坏、权限、迁移测试。
|
||||
5. 设计 Resource Repository 的持久化 schema 和迁移策略。
|
||||
6. 完成 Manifest 真实解析字段和资源模型映射。
|
||||
7. 落地 Go CLI 的最小生产入口:`bat doctor`、`bat sync --help`。
|
||||
8. 更新 README 和开发指南,使安装、测试、当前限制一致。
|
||||
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. 更新开发指南,使安装、测试、当前限制一致。
|
||||
|
||||
---
|
||||
|
||||
@@ -412,11 +409,11 @@ BlueArchiveToolkit 不是一次性脚本,也不是演示项目。最终交付
|
||||
|
||||
## 8. 当前完成度评估
|
||||
|
||||
按最终目标计算,当前总体完成度约为 **15%**。
|
||||
按最终目标计算,当前总体完成度约为 **18%**。
|
||||
|
||||
已完成的是架构骨架和部分接口,不是完整产品能力。下一阶段的关键不是继续堆目录,而是把 CAS、Manifest、AssetBundle 这三条基础链路做实。
|
||||
已完成的是稳定基线、架构骨架、部分接口和 CAS V1,不是完整产品能力。下一阶段的关键不是继续堆目录,而是把 Manifest、CLI 基础入口和 AssetBundle 解析链路做实。
|
||||
|
||||
---
|
||||
|
||||
**下一份应更新文档**:`CURRENT_STATUS.md`
|
||||
**下一项工程任务**:恢复 Git 元数据并完成 CAS 设计冻结。
|
||||
**下一项工程任务**:完成 Manifest 真实解析和 Go CLI 基础入口。
|
||||
|
||||
Reference in New Issue
Block a user