Files
BlueArchiveToolkit/docs/reports/CURRENT_GAPS.md
T

6.2 KiB
Raw Blame History

当前实现缺口清单

更新时间2026-06-28
用途:集中跟踪当前代码中的占位实现、设计缺口和下一步验收项。
权威计划../../PROJECT_PLAN.md


1. 基线缺口

G-001Git 元数据不可用

状态:已关闭,采用新初始化基线

原现象:

  • .git/ 是空目录。
  • git statusnot a git repository

处理结果:

  • 已执行 git init
  • 已将初始分支调整为 main
  • 已配置当前路径为 Git safe directory。
  • git status --short --branch 已可用。
  • 本轮创建首次基线提交。

限制:

  • 原项目历史未恢复。
  • 需要创建首次基线提交。

验收:

  • git log --oneline -1 能看到基线提交。

G-002CAS 有两套实现边界

现象:

  • crates/bat-cas-engine/src/storage.rs 有文件系统存储。
  • infrastructure/src/cas/filesystem.rs 也实现了文件系统 CAS repository。

影响:

  • 后续引用计数、GC、元数据会重复实现。
  • FFI/Go/领域仓储边界容易混乱。

建议:

  • bat-cas-engine 负责核心 CAS 引擎。
  • infrastructure 只负责把核心引擎适配到 bat-core::repositories::CasRepository

验收:

  • 文件写入、读取、引用计数、GC 只在一个核心实现中维护。

G-003CAS 引用计数和 GC 未实现

现象:

  • FileSystemCasRepository::add_reference 返回固定 1
  • remove_reference 返回固定 0
  • get_reference_count 返回固定 1
  • gc 返回固定 0
  • crates/bat-cas-engine/src/refcount.rs 是占位。

影响:

  • 无法安全删除对象。
  • 无法支持多版本共享和垃圾回收。
  • 不符合项目最终目标。

建议:

  • 设计 ObjectMetadataReferenceRecordGcPolicy
  • 使用事务化元数据后端。
  • GC 必须包含安全窗口和 dry-run。

验收:

  • 引用计数增减有持久化测试。
  • GC 不删除仍被引用对象。
  • 并发引用更新测试通过。

2. 核心功能缺口

G-004:CAS 写入不是生产级原子流程

现象:

  • 当前写入直接写目标路径。
  • 缺少临时文件、fsync、原子 rename、并发冲突处理。

影响:

  • 写入中断可能留下损坏对象。
  • 多进程/多任务并发写入存在竞态。

验收:

  • 写入失败不会留下可见半成品对象。
  • 并发写入相同内容只产生一个对象。
  • 读取时 Hash 不匹配会返回明确错误。

G-005AssetBundle 解析器仍是占位

现象:

  • crates/bat-assetbundle/src/parser.rs 只有 Parser::name
  • types.rs 只有 AssetType::TextAsset

影响:

  • 无法解析真实 UnityFS。
  • 无法提取 TextAsset 或配置文本。

验收:

  • 能解析结构化测试样本。
  • 支持 UnityFS header、blocks、directory、metadata。
  • 错误包含偏移和字段上下文。

G-006Patch 引擎仍是占位

现象:

  • binary::apply_patch 返回空 Vec
  • json::apply_json_patch 返回空字符串。

影响:

  • 无法生成或应用补丁。
  • 回滚和完整性校验无法落地。

验收:

  • Binary patch 能完成 diff/apply 往返。
  • JSON patch 能应用 RFC 6902 patch。
  • Patch manifest 包含 hash、版本和回滚信息。

G-007Addressables Catalog 解析不完整

现象:

  • 复杂压缩字段解析仍标记 TODO。

影响:

  • 真实 Manifest 解析可能只能覆盖简单样本。

验收:

  • 能解析项目目标版本的真实 Catalog 样本。
  • 解析结果包含资源 key、provider、dependency、hash、size、path。

3. 应用层缺口

G-008Go CLI 尚未实现

现象:

  • cmd/bat 目录存在,但无 main.go
  • go test ./... 当前无 package。

影响:

  • 用户没有统一入口。
  • 同步、提取、补丁流程无法从命令行串联。

验收:

  • bat doctor 可运行。
  • bat --help 命令结构稳定。
  • 命令支持配置文件和 JSON 输出。

G-009API Server 和 OpenAPI 尚未实现

现象:

  • api/ 只有目录结构。
  • 无 handler、service、OpenAPI schema。

影响:

  • Web 和第三方集成无服务端入口。

验收:

  • /api/v1/health 可用。
  • 统一错误结构落地。
  • OpenAPI 与实际路由同步。

G-010Web 管理后台尚未实现

现象:

  • web/ 只有目录结构。

影响:

  • 翻译审核、术语管理、Dashboard 无 UI。

验收:

  • 登录、权限、翻译审核、术语管理基础流程可用。

4. 数据与翻译缺口

G-011Resource Repository 未持久化

影响:

  • 无法可靠记录资源版本、资源路径、依赖和 CAS hash 映射。

验收:

  • schema 和迁移可重复执行。
  • 可按版本、类型、hash、路径查询资源。

G-012Translation Memory 未实现

影响:

  • 无法复用人工翻译和 AI 翻译历史。

验收:

  • 精确匹配、模糊匹配、上下文匹配可用。
  • 记录 Provider、模型、审核状态和历史版本。

G-013Glossary 未实现

影响:

  • 无法保证术语一致性。
  • AI 翻译无法强制遵守术语。

验收:

  • 术语优先级高于 AI。
  • 支持别名、分类、冲突检测、审核。

G-014AI Provider 抽象未实现

影响:

  • 无法接入 DeepL/OpenAI/Anthropic/Google/Azure。

验收:

  • Provider 可替换。
  • 支持批处理、限流、重试、成本统计和质量检查。

5. 文档与发布缺口

G-015:README 与当前真实状态不完全一致

现象:

  • README 描述了最终架构,但部分功能尚未实现。

验收:

  • README 明确区分已实现、开发中、规划中。

G-016:架构文档需要更新为当前路线图

现象:

  • docs/architecture/README.md 仍描述理想架构,缺少当前状态和边界冻结记录。

验收:

  • 增加 ADR 或架构决策记录。
  • 明确 Rust/Go/DB/Plugin 边界。

G-017CI 未落地

影响:

  • 无自动验证质量门槛。

验收:

  • GitHub Actions 或等价 CI 执行 format、lint、test、build。

6. 当前关闭顺序建议

  1. G-002
  2. G-003
  3. G-004
  4. G-007
  5. G-008
  6. G-005
  7. G-011
  8. G-012
  9. G-006

这个顺序优先建立可信工作区和基础存储,再推进资源同步、解析、翻译和补丁。