mirror of
https://github.com/Yuyi-Oak/BlueArchiveToolkit.git
synced 2026-07-22 01:15:14 +08:00
feat: track official versions and import resources
Persist official version-state, extend CAS/ResourceRepository import classification, and add offline catalog and failure regression fixtures. Fixes #13 Fixes #12 Fixes #8
This commit is contained in:
@@ -228,7 +228,8 @@
|
||||
影响:
|
||||
|
||||
- `SqliteResourceRepository` 已存在,可按领域 repository 接口保存资源元数据。
|
||||
- 官方同步下载结果尚未作为用户级流程自动写入 CAS + ResourceRepository。
|
||||
- `ResourceImportService` 已能把 manifest 中有数据的资源写入 CAS + `ResourceRepository`,AssetBundle 会记录 UnityFS 摘要,TextAsset/Table/Media 会分类索引。
|
||||
- 官方同步下载结果尚未作为用户级流程自动触发导入 CAS + ResourceRepository。
|
||||
- 迁移、版本化 schema 和 CLI 查询入口仍需补齐。
|
||||
|
||||
验收:
|
||||
@@ -237,6 +238,75 @@
|
||||
- 可按版本、类型、hash、路径查询资源。
|
||||
- 官方同步后的资源可通过 CLI 查询并能追溯到 CAS 对象。
|
||||
|
||||
### G-011A:资源导入链路基础能力不足
|
||||
|
||||
状态:**已关闭**
|
||||
|
||||
历史现象:
|
||||
|
||||
- 资源导入链路只导入 AssetBundle。
|
||||
- 非 AssetBundle manifest 条目只会被跳过。
|
||||
- 导入报告只包含 UnityFS 基础摘要,不包含稳定分类统计。
|
||||
|
||||
处理结果:
|
||||
|
||||
- `ResourceImportService` 会把有数据的 manifest 条目导入 CAS 并写入 `ResourceRepository`。
|
||||
- AssetBundle 仍执行 UnityFS header/block/directory 摘要解析。
|
||||
- TextAsset、TableBundle、Media 会按资源类型分类,缺少数据时记录为 skipped,便于渐进导入。
|
||||
- `ResourceImportReport` 增加 `category_counts`,`ImportedResource` 增加 `resource_type`、`category` 和可选 UnityFS 摘要。
|
||||
|
||||
验收:
|
||||
|
||||
- `cargo test -p bat-infrastructure import::tests::`
|
||||
- `cargo test -p bat-infrastructure --test synthetic_phase2_import`
|
||||
|
||||
### G-011B:官方版本状态管理不明确
|
||||
|
||||
状态:**已关闭**
|
||||
|
||||
历史现象:
|
||||
|
||||
- 当前可用版本主要靠 `current` symlink 和 release 内 snapshot 推断。
|
||||
- 未显式保存“正在拉取版本”和“失败版本”。
|
||||
- 上一个可用版本需要从目录状态间接判断。
|
||||
|
||||
处理结果:
|
||||
|
||||
- 新增 `<output>/official-version-state.json`。
|
||||
- 开始下载后写入 `in_progress_version`。
|
||||
- 发布成功后写入 `current_completed_version` 和 `previous_available_version`。
|
||||
- 失败或中断后写入 `failed_versions` 并清空 in-progress。
|
||||
- `bat status` 会读取并展示版本状态摘要。
|
||||
|
||||
验收:
|
||||
|
||||
- `cargo test -p bat-infrastructure version_state`
|
||||
- `cargo test -p bat-infrastructure --test official_game_main_config_bootstrap`
|
||||
|
||||
### G-011C:真实 fixture 与回归样本不足
|
||||
|
||||
状态:**已关闭当前阶段**
|
||||
|
||||
历史现象:
|
||||
|
||||
- 已有 Addressables real-shape fixture/golden,但缺少按问题类型命名的当前/上一版本/结构变化样本。
|
||||
- 403/404 和 hash mismatch 主要依赖单测内联构造,不便于后续回归扩展。
|
||||
|
||||
处理结果:
|
||||
|
||||
- 新增 `adapters/tests/fixtures/addressables_regression/current_catalog.json`。
|
||||
- 新增 `adapters/tests/fixtures/addressables_regression/previous_catalog.json`。
|
||||
- 新增 `adapters/tests/fixtures/addressables_regression/structure_changed_catalog.json`。
|
||||
- 新增 `infrastructure/tests/fixtures/official_regression/http_403.json`。
|
||||
- 新增 `infrastructure/tests/fixtures/official_regression/http_404.json`。
|
||||
- 新增 `infrastructure/tests/fixtures/official_regression/hash_mismatch_catalog.json`。
|
||||
- 对应测试会解析这些 fixture,防止样本只存在但不参与验证。
|
||||
|
||||
验收:
|
||||
|
||||
- `cargo test -p bat-adapters --test addressables_regression`
|
||||
- `cargo test -p bat-infrastructure regression_fixture`
|
||||
|
||||
### G-012:Translation Memory 未实现
|
||||
|
||||
影响:
|
||||
|
||||
Reference in New Issue
Block a user