# 当前进度交接 - **更新时间**:2026-07-14 - **状态分支**:`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` 隔离目录。 ## 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 覆盖更多真实 catalog 结构。 5. AssetBundle UnityFS header/block/directory 解析。 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`