Files
BlueArchiveToolkit/docs/reports/current-status-handoff.md
T
nyaKazuha 90307a3243 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
2026-07-15 19:53:10 +08:00

69 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 当前进度交接
- **更新时间**2026-07-15
- **状态分支**`experiment`
- **最新功能提交**:以当前 `git log --oneline -1` 为准
- **用途**:给下一次对话快速恢复上下文,优先以当前工作区和已验证结果为准。
## 1. 现在处在什么阶段
项目已经完成基础整理、CAS V1、Rust 官方资源同步闭环,以及真实官方网络 smoke 的可重复命令固化。下一阶段重点是 Go CLI 最小可用、同步结果进入 CAS/ResourceRepository,以及 AssetBundle 解析起步。
已确认的事实:
- 当前分支为 `experiment`
- `bat-cas-engine` 的 CAS V1 已完成。
- `bat` 是当前官方资源同步正式入口。
- Linux 生产链路不安装、不启动、不依赖官方启动器。
- `--auto-discover` 通过官方 HTTP metadata 和临时目录解析 `GameMainConfig`
- 默认平台是 `Windows + Android`
- 真实下载会维护 `official-download-manifest.json`,并使用 size + BLAKE3、本地 audit/repair 和官方 seed `.hash` 校验。
- 下载失败会按 403/404/5xx/网络类型分类;最终失败写入 `official-download-quarantine.json` 并阻止发布不完整资源。
- 旧 launcher 包或 `resources.assets` 下载使用官方 primary/backup CDN 切换。
- `--watch` 是 Rust 内部常驻检查模式,正常检查默认 1 小时,失败重试默认 60 秒;外部 systemd/container 只负责守护进程。
- `bat` progress log 会输出总体下载进度、单文件进度和校验结果摘要。
- 真实官方网络 smoke 已固化为 `scripts/official-full-pull-smoke.sh``make official-smoke``docs/guides/official-full-pull-smoke.md`,默认写入 `/tmp` 隔离目录。
- `official-version-state.json` 已持久化当前完成、正在拉取、上一个可用和失败版本,`bat status` 会显示版本状态摘要。
- 资源导入链路已支持 CAS + `ResourceRepository` 写入,AssetBundle UnityFS 摘要,以及 TextAsset/Table/Media 分类索引。
- 当前 catalog、上一个版本 catalog、结构变化 catalog、403、404、hash mismatch 已有离线回归 fixture。
## 2. 现在不要误解的点
- `cargo test` 不会自动开始真实全量下载。
- 仓库里的本地实样本测试仍应显式启用,不应默认读取 `/home/wanye/D/BlueArchive`
- `bluearchive.cafe` 不是官方资源域名,不能当成官方链路使用。
- 生产输出目录必须独立,不要指向已有客户端目录、官方启动器安装目录或开发资源目录。
- Go CLI 尚未实现;当前可运行同步入口是 Rust binary。
- `catalog_*.hash` 当前作为 Addressables marker,不按官方 seed `.hash``xxHash32(seed=0)` 规则做内容强校验。
## 3. 当前还没做完什么
仍待实现的主线工作:
1. Go CLI 最小入口:`bat doctor``bat sync --help``bat official sync --help`
2. 按 smoke runbook 在具备网络和磁盘窗口的环境中执行真实官方网络 smoke,并保留隔离目录报告。
3. 官方同步下载结果自动触发 CAS + `SqliteResourceRepository` 的用户级导入流程。
4. Addressables parser 覆盖二进制/压缩字段组合和更细失败诊断。
5. AssetBundle 对象表、TypeTree 和 TextAsset 提取链路继续推进。
6. Patch、翻译库、API Server、Web。
## 4. 下一次对话最合适的起点
建议从 Go CLI 最小可用开始:
1. 读取 `README.md``CURRENT_STATUS.md``PROJECT_PLAN.md`
2. 读取 `docs/guides/official-resource-test-pull.md``docs/architecture/official-resource-backend.md`
3. 实现 `cmd/bat` 和最小命令树。
4. Go CLI 调用 `bat` 时显式传 `--json`,把该结构化 report 作为稳定机器输出来源。
## 5. 相关入口
- `README.md`
- `PROJECT_PLAN.md`
- `CURRENT_STATUS.md`
- `DOCS_INDEX.md`
- `docs/reports/CURRENT_GAPS.md`
- `docs/guides/official-resource-test-pull.md`
- `docs/guides/official-full-pull-smoke.md`
- `docs/architecture/official-resource-backend.md`