feat(assetbundle): 完成已验证结构的重建发布闭环
bat-rust / Build and test Rust (push) Canceled after 0s
bat-rust / Build and test Go API (push) Canceled after 0s

This commit is contained in:
2026-09-10 00:46:48 +08:00
parent 68c6c91b1e
commit 69b6e36bf0
21 changed files with 1588 additions and 101 deletions
+14 -11
View File
@@ -1,6 +1,6 @@
# 当前实现缺口清单
- **更新时间**2026-09-04
- **更新时间**2026-09-10
- **文档角色**:只记录尚未完成、仍需验证或仍需设计的工作,不重复维护完整实现状态。
- **当前事实**:以源码、测试、稳定契约和 `CURRENT_STATUS.md` 为准。
- **Go 进度**`GO_STATUS.md`
@@ -10,25 +10,27 @@
## 1. 当前工程缺口
### G-005AssetBundle 复杂解析仍未完成
### G-005AssetBundle V1 已完成,完整兼容仍未完成
状态:**部分完成,继续推进**
状态:**V1 已完成(仅限已验证结构),继续推进真实版本和复杂结构**
当前已具备 UnityFS 容器校验、directory 文件提取、serialized file
object/type table/TypeTree 元数据、TextAsset、基础 MonoBehaviour 和
ScriptableObject 字段读取、TextUnit 提取,以及受支持字段的文件级重建。
ScriptableObject 字段读取、TextUnit 提取,以及受支持字段的文件级
parse→modify→rebuild→reparse。重建会保留已识别的 block 压缩、alignment、
directory 形态和未修改对象/字段,并明确拒绝未知压缩或无法证明保真的输入。
仍需完成:
- 用真实资源 fixture 覆盖更多 MonoBehaviour、ScriptableObject、Unity 版本差异、
复杂容器和 managed reference registry/map entry 变体。
- 为未知字段补充结构语义;不能把低保真猜测当作已支持格式。
- 完成发布级复杂对象重打包,并把 bundle、serialized file、path id、class id、
field path、offset 和 byte size 的定位信息贯通到稳定发布流程
- 扩大真实 Unity 版本、复杂容器、未知字段和 managed-reference/map 变体覆盖;
当前 V1 不等价于任意 AssetBundle 结构的通用重打包
现有证据:`crates/bat-assetbundle` 的单元/重建测试、隔离真实 UnityFS 回归和
`bat-infrastructure` 的解析缓存测试。新增格式覆盖必须同时补真实 fixture、回归测试
和文档。
现有证据:`crates/bat-assetbundle` 的单元/压缩/对齐/变长重建测试、隔离真实 UnityFS
回归和 `bat-infrastructure` 的解析缓存、ZIP 内 bundle 发布测试。新增格式覆盖必须
同时补真实 fixture、回归测试和文档。
### G-006:通用 Patch 发布仍未完成
@@ -42,7 +44,8 @@ string field、managed-reference string field 写入及 localized publish/rollba
仍需完成:
- 通用 manifest 驱动的跨类型 patch build/apply/publish/rollback。
- 复杂 AssetBundle 重打包和完整翻译文件集合构建
- 任意复杂 AssetBundle 重打包和完整翻译文件集合构建;当前 localized publish 已支持
可验证 ZIP 内 bundle 的外层 ZIP 重写,但不扩大 UnityFS 结构支持范围。
- 原版 release 与 localized release 双发布后的查询、分发和清理策略。
所有发布产物必须先进入独立 staging,通过完整性校验后再原子发布;失败不得改变
@@ -143,7 +146,7 @@ Rust `bat` 已提供独立项目级 `glossary.sqlite`term/alias/recommended/a
## 3. 后续推进顺序
1. 继续 G-005:真实 AssetBundle 样本、复杂字段解析和发布级重打包。
1. 继续 G-005更多真实 AssetBundle 样本、复杂字段解析、版本差异和任意结构重打包。
2. 继续 G-006/G-011D:通用 manifest Patch 和双 release 查询/清理策略。
3. 继续 G-011/G-012/G-013/G-014:资源查询、TM/Glossary 扩展和 Provider
扩展体系。