refactor(ffi): 降级 FFI 为可选兼容层并整理文档

将 bat-ffi 明确收敛为无状态 C ABI 兼容层,默认集成路径改为 bat --json 进程边界或未来稳定 SDK。

同步 README、当前状态、项目计划、架构文档、开发指南和缺口清单,移除 FFI 作为主集成边界的表述。

新增 AGENTS.md 和 CONTRIBUTING.md,压缩 CLAUDE.md 为兼容入口,并归档阶段性报告、同步 .gitignore 规则。
This commit is contained in:
2026-07-15 21:12:17 +08:00
parent 90307a3243
commit b4b4f25cb3
22 changed files with 420 additions and 772 deletions
+13 -6
View File
@@ -173,28 +173,35 @@ Rust 侧官方日服资源链路已经从实验验证推进到正式入口:
### `bat-ffi`
状态:**粗粒度 JSON API 可用,稳定边界仍需继续收敛**
状态:**可选无状态兼容层,非主集成边界**
已包含:
- `bat_version`
- `bat_manifest_inspect_json`:解析 Addressables manifest 并返回 JSON summary。
- `bat_sync_plan_json`:根据 current/previous snapshot 生成官方同步计划 JSON。
- `internal/ffi/ffi.go` 提供 Go 包装骨架。
- `internal/ffi/ffi.go` 提供可选 CGO 兼容包装骨架。
定位约束:
- `bat-ffi` 只暴露粗粒度、无状态、一次调用一次 JSON 输入输出的 C ABI helper。
- 它不持有 downloader、daemon、CAS handle、资源目录锁或长生命周期状态。
- Go CLI 和生产运维默认应调用 `bat --json` 进程边界;未来稳定 SDK 也优先于 FFI。
- FFI 仅用于需要嵌入 C ABI 的兼容场景,不能作为官方同步控制面或主集成边界。
待完成:
- Go CLI 调用链路。
- 错误码与结构化响应约定。
- 发布用头文件、构建脚本和跨平台产物。
- 如确有兼容需求,再补发布用头文件、构建脚本和跨平台产物。
### Go / API / Web
状态:**Go FFI 包骨架存在,CLI/API/Web 仍未实现**
状态:**CLI/API/Web 仍未实现,仅有可选 CGO 兼容包装**
当前情况:
- `internal/ffi/ffi.go` 已存在。
- Go CLI 默认集成方向是调用 Rust `bat --json` 并转发结构化 report,而不是依赖 FFI。
- `cmd/``pkg/``api/``web/` 仍无可用产品入口。
- `go test ./...` 在没有 Go package 时可能无测试可运行;Makefile 会清晰跳过空 Go 阶段。
@@ -256,7 +263,7 @@ cargo run -p bat-infrastructure --bin bat -- \
下一阶段必须优先完成:
1. Go CLI 最小可用入口:`bat doctor``bat sync --help`、Rust 官方同步命令包装
1. Go CLI 最小可用入口:`bat doctor``bat sync --help`通过 `bat --json` 包装 Rust 官方同步命令。
2. 官方同步结果接入 CAS + ResourceRepository 的用户级工作流。
3. AssetBundle UnityFS 基础解析。
4. Addressables parser 对更多官方 catalog 结构的覆盖。