Files
BlueArchiveToolkit/docs/reports/current-status-handoff.md
T
nyaKazuha 4192d7ee4c fix: classify official download failures
Distinguish terminal HTTP errors from retryable CDN/network failures, record quarantined resources, and report failed download progress.

Fixes #7
2026-07-14 01:30:12 +08:00

3.4 KiB
Raw Blame History

当前进度交接

  • 更新时间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.shmake official-smokedocs/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 .hashxxHash32(seed=0) 规则做内容强校验。

3. 当前还没做完什么

仍待实现的主线工作:

  1. Go CLI 最小入口:bat doctorbat sync --helpbat 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.mdCURRENT_STATUS.mdPROJECT_PLAN.md
  2. 读取 docs/guides/official-resource-test-pull.mddocs/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