docs: 校正文档分类与当前边界
bat-rust / Build and test Rust (push) Canceled after 0s
bat-rust / Build and test Go API (push) Canceled after 0s

This commit is contained in:
2026-09-04 19:58:07 +08:00
parent 34e2f0d907
commit d21c01a697
25 changed files with 727 additions and 985 deletions
+17 -19
View File
@@ -1,6 +1,6 @@
# 稳定工程基线指南
- **更新时间**2026-08-03
- **更新时间**2026-09-04
- **目标**:让工作区处于可继续开发核心功能的可信状态。
---
@@ -37,28 +37,26 @@ make lint
cargo test --workspace
cargo check --workspace
cargo clippy --workspace --all-targets -- -D warnings
go test ./...
go test ./internal/api/... ./internal/backendrpc/...
go vet ./...
```
说明:
1. 当前已有 `internal/backendrpc` fake socket 单测、`cmd/bat` 试验骨架和 `internal/ffi` 兼容包装;这些不代表 CLI/API 产品入口已完成
2. 后续新增 Go 产品 package,必须让 `go test ./...``go vet ./...` 纳入硬性验证
3. 当前 `golangci-lint` 可选;当 Go 代码进入主要开发阶段后,应纳入本地门禁
1. 默认 Go 测试只覆盖正式 `bat-api` 依赖的纯 Go 包:`internal/api``internal/backendrpc``make test-go-ffi` / `make test-go-all` 才会包含 FFI 和试验 CLI
2. `make check` 当前直接执行 `go vet ./...`,因此会检查所有已存在的 Go 包;新增 Go 产品 package 后,必须同时纳入默认测试门禁
3. `golangci-lint` 当前仍是可选补充门禁;Go 的硬性验证是默认 API 测试、全量 `go vet``bat-api` 构建
4. 官方同步相关修改必须额外运行 `cargo test -p bat-infrastructure --bin bat -- --nocapture`
如果构建环境的默认 Go cache 不可写,可将 `GOCACHE` 指向工作区外的临时目录,例如
`GOCACHE=/tmp/bat-go-cache`
---
## 3. Git 基线
当前工作区`.git/` 是空目录,无法恢复原历史。本基线采用新初始化仓库,并以首次提交作为后续开发起点。
首次提交信息:
```text
chore: establish development baseline
```
当前工作区以现有 Git 分支和提交为基线;原项目历史未恢复。提交前应确认工作区
只包含本次有意修改,并核对文档、源码和测试状态。
提交前检查:
@@ -86,15 +84,15 @@ git check-ignore -v Cargo.lock CLAUDE.md AGENTS.md CONTRIBUTING.md
---
## 5. 下一阶段入口
## 5. 当前开发入口
CAS V1 和 Rust 官方同步闭环完成后,下一阶段优先推进:
当前开发优先推进:
1. 继续联调 Go `bat-api` 与 Rust daemon 的资源分发路径;Go 同步 CLI 不再作为产品目标
2. `docs/guides/official-full-pull-smoke.md` 在隔离目录执行真实官方网络全量下载 smoke,并保留运行报告
3. 基于 `translation.worker.run` 推进翻译记忆和通用 manifest Patch 构建
4. 扩展 ResourceRepository 查询面:更丰富的 TextUnit 查询、翻译记忆查询和通用 Patch 发布所需资源视图
5. 继续完善 AssetBundle 复杂对象解析、复杂对象重打包和通用 Patch 发布流程统一;通用 Binary/JSON/Text Patch 基础与受支持 localized patch 发布/rollback 链路已可用
1. 继续 AssetBundle 复杂对象解析、真实 fixture 和发布级重打包
2. 基于 `translation.worker.run` 推进翻译记忆和通用 manifest Patch 构建
3. 扩展 ResourceRepository 查询面:更丰富的 TextUnit 查询、翻译记忆查询和通用 Patch 发布所需资源视图
4. `docs/guides/official-full-pull-smoke.md` 在隔离目录执行真实官方网络全量下载 smoke,并保留运行报告
5. 在资源和翻译契约稳定后推进完整 Web 协作后台和完整游戏业务 API
优先阅读:
+1 -1
View File
@@ -339,4 +339,4 @@ release。Go 只做鉴权、参数校验和转发,状态与产物仍由 Rust
## 边界
解析器新增类型覆盖和新的解析格式仍受 `docs/reports/PARSER_FREEZE.md` 约束。本次 issue 43 的例外只开放已有解析输出的手动编排、缓存刷新、工作台编辑、既有 patch 实现的重打包和独立汉化发布,不扩展 UnityFS/AssetBundle/Addressables/TypeTree 的解析类型覆盖
解析器新增类型覆盖和新的解析格式当前按路线图推进;新增覆盖仍需通过真实 fixture、回归测试和文档同步验收,不要只靠合成样本宣称能力
+8 -7
View File
@@ -8,7 +8,7 @@
#### Go
```bash
# 安装 Go 1.22+
# 安装 Go 1.26.4+
# 参考:https://golang.org/doc/install
go version # 验证安装
@@ -118,9 +118,9 @@ git push origin feature/your-feature-name
禁止使用 demo、临时实现、硬编码路径或只为当前测试通过的伪实现。确实未完成的能力应写入当前缺口文档,而不是用 `TODO``FIXME` 隐藏。
### 解析模块冻结
### 解析模块状态
UnityFS / AssetBundle / Addressables / TypeTree 解析当前处于维护冻结。冻结期不得新增解析类型、扩大解析覆盖、开放新的写入型解析 RPC/CLI,或用合成 fixture 宣称新增能力。允许变更仅限编译、测试、clippy、真实运行回归、诊断和文档一致性修复。细则见 `docs/reports/PARSER_FREEZE.md`
UnityFS / AssetBundle / Addressables / TypeTree 解析当前按路线图继续推进。新增解析类型、扩大解析覆盖写入型解析 RPC/CLI 仍需遵守现有接口边界、真实 fixture 和回归验收要求
### Go
- 遵循 [Effective Go](https://golang.org/doc/effective_go)
@@ -143,7 +143,7 @@ UnityFS / AssetBundle / Addressables / TypeTree 解析当前处于维护冻结
### 合并前通用门禁
```bash
cargo fmt --check
cargo fmt --all -- --check
cargo test --workspace
cargo clippy --workspace --all-targets -- -D warnings
make test-go-api
@@ -192,7 +192,7 @@ cargo clippy -p bat-core -p bat-adapters -p bat-infrastructure --all-targets --
`bat-ffi` 只是可选无状态 C ABI 兼容层。修改 FFI 时必须运行 `cargo test -p bat-ffi -- --nocapture`。Go 服务层默认经 `internal/backendrpc` 调 daemon;同步任务由 Rust `bat` 执行,不由 Go 试验 CLI 承担。
Rust `bat` 的资源拉取、解析、翻译工作流、重打包、汉化发布和持久化调度命令见 [`docs/guides/bat-workflows.md`](bat-workflows.md)。推荐使用 `res``parse``i18n` 三个一级命令;该工作流当前对应 issue `#43`
Rust `bat` 的资源拉取、解析、翻译工作流、重打包、汉化发布和持久化调度命令见 [`docs/guides/bat-workflows.md`](bat-workflows.md)。推荐使用 `res``parse``i18n` 三个一级命令。
### 集成测试
@@ -273,7 +273,7 @@ cargo run -p bat-infrastructure --bin bat -- resource-index --limit 50
cargo run -p bat-infrastructure --bin bat -- resource-index --release-id <ID> --platform windows --archive-entry <PATH> --format json --limit 50
```
issue 47 的隔离回归测试:
历史 release/CAS 复用的隔离回归测试:
```bash
cargo test -p bat-infrastructure official_download::tests::reuses_verified_historical_release_when_cdn_root_changes -- --nocapture
@@ -416,7 +416,8 @@ cargo fetch
`bat-ffi` 不是主集成边界,只用于需要 C ABI 的兼容场景。当前 Go 正式产品入口是
`bat-api` 资源 bootstrap/分发服务,默认通过 `internal/backendrpc` 调用 daemon RPC
`cmd/bat` 仍是试验 CLI。未来新增 Go 集成优先使用 Rust `bat --json` 进程边界或稳定 RPC/SDK
`cmd/bat` 仍是试验 CLI。新的 Go 集成优先使用 Rust `bat.sock` RPC 或稳定 SDK
`bat --json` 仅是 Rust CLI 的机器输出形态。
重新构建兼容库:
```bash
+1 -1
View File
@@ -343,7 +343,7 @@ make official-smoke
默认输出在 `/tmp/bat-official-smoke-<UTC timestamp>/`,脚本会执行 dry-run plan、首次全量拉取、二次 `up_to_date`、本地文件破坏后的 `repair`、repair 后 `verify`,并检查 stderr progress log 中存在下载已完成计数、单文件进度和校验结果摘要。完整说明见 `docs/guides/official-full-pull-smoke.md`
## 7. 例外输入
## 7. 输入模式
可接受的 `server-info` 输入是: