# 当前实现缺口清单 - **更新时间**:2026-09-04 - **文档角色**:只记录尚未完成、仍需验证或仍需设计的工作,不重复维护完整实现状态。 - **当前事实**:以源码、测试、稳定契约和 `CURRENT_STATUS.md` 为准。 - **Go 进度**:`GO_STATUS.md` - **资源布局契约**:`../architecture/resource-release-layout.md` - **权威计划**:`../../PROJECT_PLAN.md` - **历史资料**:`docs/archive/` 和 `docs/reports/historical/` 只用于追溯。 ## 1. 当前工程缺口 ### G-005:AssetBundle 复杂解析仍未完成 状态:**部分完成,继续推进** 当前已具备 UnityFS 容器校验、directory 文件提取、serialized file object/type table/TypeTree 元数据、TextAsset、基础 MonoBehaviour 和 ScriptableObject 字段读取、TextUnit 提取,以及受支持字段的文件级重建。 仍需完成: - 用真实资源 fixture 覆盖更多 MonoBehaviour、ScriptableObject、Unity 版本差异、 复杂容器和 managed reference registry/map entry 变体。 - 为未知字段补充结构语义;不能把低保真猜测当作已支持格式。 - 完成发布级复杂对象重打包,并把 bundle、serialized file、path id、class id、 field path、offset 和 byte size 的定位信息贯通到稳定发布流程。 现有证据:`crates/bat-assetbundle` 的单元/重建测试、隔离真实 UnityFS 回归和 `bat-infrastructure` 的解析缓存测试。新增格式覆盖必须同时补真实 fixture、回归测试 和文档。 ### G-006:通用 Patch 发布仍未完成 状态:**基础完成,发布流程部分完成** `bat-patch` 已提供 Binary/JSON/Text Patch、manifest、BLAKE3/size 校验和 rollback 元数据;文件级 `patch.apply` 与受支持的 UnityFS TextAsset、TypeTree string field、managed-reference string field 写入及 localized publish/rollback 已可用。 仍需完成: - 通用 manifest 驱动的跨类型 patch build/apply/publish/rollback。 - 复杂 AssetBundle 重打包和完整翻译文件集合构建。 - 原版 release 与 localized release 双发布后的查询、分发和清理策略。 所有发布产物必须先进入独立 staging,通过完整性校验后再原子发布;失败不得改变 已发布的 `bat-resources/current` 或 `bat-localized/current`。 ### G-007:Addressables 完整兼容仍未完成 状态:**当前 JSON/compact 目标字段完成,独立二进制格式待后续** 当前 JSON/compact catalog 已覆盖 path、hash、size、address、dependencies、 provider、bundle name、resource type 和 CRC,并有 fixture/golden 回归。 仍需完成: - 更多 Windows/Android 真实 catalog 形态和失败诊断。 - 独立二进制 catalog 入口;在未支持前必须明确拒绝,不得静默丢字段。 ### G-009:`bat-api` 仍是资源服务,不是完整官方游戏 API 状态:**资源 bootstrap/分发和管理控制面已可用,业务 API 未完成** 当前 `cmd/bat-api` 通过 `bat.sock` 读取 Rust 已发布 release,提供 bootstrap、 launcher 资源引导兼容、只读 CDN path、readiness、OpenAPI、鉴权管理入口和内嵌 dashboard;翻译任务和 Rust-owned TM 的 summary/query/confirm 也通过 typed RPC 转发。Rust `bat` 继续拥有资源发现、下载、校验、staging、发布、任务和长期状态。 仍需完成: - 完整游戏业务 API、账号/登录/网关链和完整 launcher 安装包更新链。 - 更丰富的 Resource/TextUnit/翻译记忆查询面。 - 真实官方网络长期运行报告;运行使用 `make official-smoke`,产物留在隔离目录。 `bat-api` 不得复制 Rust 下载器、CAS、AssetBundle 解析、Patch 核心算法或同步状态机。 ### G-010:完整 Web 协作后台仍未完成 状态:**内嵌 dashboard MVP 已完成,完整后台未开始** 当前页面可以调用已有资源、调度、任务、解析、翻译和 localized 控制接口。 仍需完成: - 独立登录、角色权限和协作式翻译审核。 - Glossary/术语管理、批量审核、搜索和完整历史版本视图。 - 构建型前端工程、浏览器 E2E 和完整错误态交互门禁。 ### G-011:ResourceRepository 查询面仍不完整 状态:**部分完成** 当前已支持 CAS + SQLite 导入、资源类型/release/平台/path/parse status/TextUnit format 等资源级过滤,`parse.text_units` / `parse.errors` 和翻译任务查询也已可用。 仍需完成: - 更丰富的 TextUnit、翻译记忆和 Patch 发布资源视图。 - 从同一 manifest fingerprint 追溯资源、解析缓存、翻译任务和发布产物。 - 更多 schema 迁移、权限、并发和损坏恢复场景验证。 ### G-011D:双 release 的完整查询与发布策略仍未完成 状态:**受支持范围完成,通用范围部分完成** 官方原版和 localized release 已分离,受支持 patch 可独立 staging、校验、发布和 rollback,`localized.status` 能校验当前官方 release 与 patch manifest 的一致性。 仍需完成通用 patch 发布、复杂重打包、双 release 查询/分发视图和清理策略。 ### G-012:Translation Memory V1 已实现,扩展能力仍缺失 Rust `bat` 已提供独立项目级 SQLite TM,记录 raw source/hash、完整 context、release/TextUnit/provider/run provenance,区分 candidate/trusted,只有显式 confirm 才能建立 trusted 记录;worker 只自动复用 trusted 的 raw source + 完整 context exact match,并在复用前执行已批准 Glossary 的确定性 QA。Go `bat-api` 已提供鉴权的 summary/query 只读接口和 confirm 转发,但 Go 不持有 TM 状态。仍缺少模糊匹配和更丰富的导入导出历史能力。 ### G-013:Glossary V1 已实现,协作视图仍缺失 Rust `bat` 已提供独立项目级 `glossary.sqlite`:term/alias/recommended/allowed/category/priority、全局与 TextUnit scope、source history、approved review、冲突诊断、provider-neutral constraints 和确定性 QA 均由 Rust 持有。trusted TM 复用会先经过 Glossary QA;provider、TM、人工 task/workbench 结果都记录 QA,blocking deviation 必须显式提交与当前 QA 精确绑定的 `qa_identity` 及 reviewer/reason/provenance。localized publish 会把发布时重算的 QA 写入 manifest。`translation.glossary.*` 已通过 `bat.sock` 暴露,Go 仅提供鉴权后的 typed forwarding。剩余缺口是完整 Web 术语协作视图和更丰富的导入/搜索能力。 ### G-014:完整 Provider 扩展体系未实现 当前已有 mock/Crowdin provider worker、lease、重试和 TextUnit 结果落库;仍需建立 可替换的 Provider 扩展体系,以及批处理、限流、成本统计和质量检查。 ## 2. 已确定的架构边界 以下内容不是待实现的重复任务: 1. 正式资源同步和运维命令行是 Rust `bat`;不另做产品级 Go 同步 CLI。 2. Rust `bat` / daemon 是资源生产者和状态拥有者;Go `bat-api` 只读取已发布资源, 通过 `bat.sock` 提供 bootstrap、分发和受限管理入口。 3. `bat-api` 是资源 bootstrap/分发服务,**不是完整官方游戏 API**。 4. `bat-ffi` 只保留无状态兼容 helper,不承载 daemon、下载器、CAS handle 或主控制面。 5. 官方原版 release 和 localized release 使用独立目录、staging、manifest、current 和 rollback 生命周期。 6. `daemon.clean-stable` 是 CLI 生命周期清理入口,不在 live RPC 内执行在线清理; `task.create` 也不作为通用 RPC 入口开放。 7. `status` / `status_code` 描述生命周期,`BAT-ERR-*` 描述错误;两者不混用。 详细阶段报告仍保留在 `docs/reports/historical/`,不作为当前实现依据。 ## 3. 后续推进顺序 1. 继续 G-005:真实 AssetBundle 样本、复杂字段解析和发布级重打包。 2. 继续 G-006/G-011D:通用 manifest Patch 和双 release 查询/清理策略。 3. 继续 G-011/G-012/G-013/G-014:资源查询、TM/Glossary 扩展和 Provider 扩展体系。 4. 在隔离环境执行 `make official-smoke`,补充真实网络长期运行报告。 5. 最后推进完整 Web 协作后台和完整游戏业务 API。