Commit Graph
58 Commits
Author SHA1 Message Date
nyaKazuha 974a6e18c3 feat(bat): 暴露翻译任务状态控制
Refs #43
2026-08-12 09:11:09 +08:00
nyaKazuha 1933d6acb0 feat(bat): 补全工作流校验与调度过滤
bat-rust / Build and test Rust (push) Canceled after 0s
bat-rust / Build and test Go API (push) Canceled after 0s
新增 parse clear-cache 和 i18n validate,补齐 schedule 的作用域过滤与单轮执行上限,并将列表过滤参数暴露给 bat-api dashboard。同步 RPC、OpenAPI、用户文档和回归测试。

Refs #43
2026-08-03 23:47:59 +08:00
nyaKazuha 0784d5b532 feat(bat): 完善工作流调度与 dashboard RPC
bat-rust / Build and test Rust (push) Canceled after 0s
bat-rust / Build and test Go API (push) Canceled after 0s
补全资源拉取、解析、翻译、重打包和本地化发布命令,支持单次、限定次数与周期调度。移除 TUI 计划并通过 schedule.* RPC 暴露给 bat-api dashboard。

Closes #43
2026-08-03 22:18:52 +08:00
nyaKazuha 3b103be8a9 docs: 对齐全部文档状态
bat-rust / Build and test Rust (push) Canceled after 0s
bat-rust / Build and test Go API (push) Canceled after 0s
2026-08-03 12:19:06 +08:00
nyaKazuha a2e2ae8ac5 docs: 对齐 RPC 接口文档
bat-rust / Build and test Rust (push) Canceled after 0s
bat-rust / Build and test Go API (push) Canceled after 0s
2026-08-03 11:47:51 +08:00
nyaKazuha 9a5b3ba39b fix: 拆分 bat 控制面 2026-08-03 00:43:11 +08:00
nyaKazuha 8b64cc94f3 fix: 完成下载并发与翻译交接链路 2026-08-02 22:34:23 +08:00
nyaKazuha 12c5d365ab feat(translation): 增加离线任务状态查询 2026-08-01 19:04:54 +08:00
nyaKazuha a05d3ee6af fix(repository): 扩展资源索引查询面 2026-08-01 12:11:35 +08:00
nyaKazuha 8d930bf4d7 chore(docs): 增加状态一致性门禁 2026-08-01 10:55:43 +08:00
nyaKazuha 80e6718e8a fix(sync): 对齐 localized 状态契约 2026-07-31 18:28:02 +08:00
nyaKazuha df361cff28 test(api): 固化 Rust-Go RPC 契约 2026-07-31 18:20:37 +08:00
nyaKazuha 6af7706190 fix(api): 补齐 bat-api 控制与后端 RPC 2026-07-31 17:01:03 +08:00
nyaKazuha 20ddd67947 fix(api): 统一 catalog GameMainConfig 字段 2026-07-31 16:05:17 +08:00
nyaKazuha 4cc143f66d fix(sync): 固化 release flow 状态码 2026-07-31 15:57:07 +08:00
nyaKazuha 03021ad649 docs(project): 同步维护冻结与运行文档
bat-rust / Build and test Rust (push) Canceled after 0s
补齐解析模块维护冻结规则,并同步 CURRENT_STATUS、CURRENT_GAPS、PROJECT_PLAN、RPC 参考、部署指南、用户指南和官方资源运行说明。

文档同时反映 bat-api 资源 bootstrap/分发边界、官方同步解析缓存、TextUnit 队列、双目录发布和 patch 入口的当前状态。

验证:未运行新命令;本轮已按要求停止重复构建/测试。
2026-07-31 00:45:46 +08:00
nyaKazuha 3f78f8f880 feat(api): 补齐资源分发服务入口
新增 bat-api 资源 bootstrap/分发 HTTP 服务、RPC release 发现、CDN path 分发、launcher 资源引导兼容、控制面中间件、OpenAPI 和 systemd 模板。

同步 Go 边界文档,明确 Rust bat 是资源生产者和同步运维入口,Go bat-api 是只读 bootstrap/分发服务,试验 Go CLI 产物为 bin/bat-go。

验证:未运行新命令;本轮已按要求停止重复构建/测试。
2026-07-31 00:41:48 +08:00
nyaKazuha 3e9bb20d79 feat(assetbundle): 完善官方资源解析与双目录发布 2026-07-25 20:51:01 +08:00
nyaKazuha 102b49b666 feat(rpc): 完成 issue #1 Go 调用边界
bat-rust / Build and test Rust (push) Failing after 3m17s
2026-07-24 17:58:34 +08:00
nyaKazuha ecda08ed97 feat(rpc): 补齐 issue #1 资源后端接口 2026-07-24 15:55:37 +08:00
nyaKazuha a729615a48 fix(sync): 移除多线程下载并补齐staging复用回归 2026-07-24 10:34:58 +08:00
nyaKazuha 3f5d2a8da7 fix(sync): 修复官方资源并发下载与媒体路径
bat-rust / Build and test Rust (push) Successful in 3m47s
daemon 子进程现会透传下载并发配置,下载进度按已完成数量单调上报。MediaCatalog 改为使用官方相对路径生成全局媒体 URL,覆盖 GameData、Prologue 等目录并补齐 jpg 资源,避免叶子文件名误拼媒体根目录导致 403。同步更新测试、smoke 断言和运行文档。
2026-07-23 11:56:34 +08:00
nyaKazuha 43e1a33b88 fix(ci): 移除 Gitea workflow 外部 action 依赖
bat-rust / Build and test Rust (push) Failing after 1s
改为在 linux runner 中手动 fetch 当前提交,避免自托管 runner 准备阶段通过 gh-proxy 克隆 actions/checkout 和 dtolnay/rust-toolchain 时被 403 拦截,并同步开发文档与缺口说明。
2026-07-21 11:53:39 +08:00
nyaKazuha 924cff5f51 ci(rust): 切换 Gitea runner 标签为 linux
bat-rust / Build and test Rust (push) Canceled after 14m5s
保留 .gitea/workflows/bat.yml 作为实际工作流入口,删除冗余副本,并同步项目计划与当前缺口文档。
2026-07-21 11:35:59 +08:00
nyaKazuha d76f6f1c88 ci(rust): 添加 Gitea host runner 工作流
补充自托管 Gitea host-runner workflow,并将项目状态、缺口、开发指南与路线图同步到当前实际情况。
2026-07-21 10:39:11 +08:00
nyaKazuhaandClaude Fable 5 d9332299ef docs: G-008 并入 G-009(bat-api 仿官方 API),调整关闭顺序
- G-008(Go CLI)关闭:用户命令入口由功能完整的 Rust bat 承担,
  Go 侧转向仿官方 API 的 bat-api(issue #19)
- G-009 重定义为 bat-api:仿 BlueArchive 官方 API 的 Go HTTP 服务,
  含鉴权/签名验签,经 daemon RPC + current/ 发布布局对接
- 关闭顺序改为先完善 Rust bat 后端(issue #2/#3/#17)再做 bat-api
- PROJECT_PLAN 近期任务同步为 Rust 后端优先

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 21:55:03 -07:00
nyaKazuhaandClaude Fable 5 3edbe7ccee feat(daemon): 任务历史文件态持久化与 .env 无参启动(issue #1)
任务持久化:
- 任务历史落 <state-dir>/bat-tasks.json(版本化、0600 原子写、不跟随
  symlink),生命周期转换时 write-through;seq 持久化避免 pid 复用撞 ID
- daemon 重启恢复历史,中断时仍 queued/running 的任务标记 failed,
  新增错误码 TASK_INTERRUPTED(BAT-ERR-700005)
- 损坏文件改名 .corrupt 留证后从空历史开始;无法识别的记录计数跳过
- core 新增 ErrorCode::ALL 公开码表与 from_id 反查(持久化错误码往返)

.env 配置:
- 首次启动在二进制所在目录释放 .env 模板(0600、create_new 防竞态),
  之后每次启动加载为进程环境变量(不覆盖已存在变量)
- 优先级:CLI > 进程环境变量 > .env > 内置默认;BAT_* 键映射到
  CliOptions 默认值,BAT_WATCH/BAT_DAEMON 仅对无子命令 Run 生效且
  CLI 显式模式/dry-run 时让位;Redis 键预留(未接入)
- 工具/代理"非默认"判断改按 env 应用后基线,status/stop/logs 在
  .env 存在时不误判;BAT_SKIP_ENV_FILE=1 整体禁用

验证:新增 10 个单测(env 解析/优先级/守卫回归/持久化往返/中断标记/
损坏恢复/未知类型跳过);真机 e2e:.env 释放加载、daemon 纯 .env 启动、
catalog.refresh 任务带类型化错误码落盘并跨 daemon 重启恢复(含日志);
fmt / clippy --workspace --all-targets -D warnings / test --workspace 全绿

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 21:15:47 -07:00
nyaKazuhaandClaude Fable 5 ec40ed4660 docs: 关闭 G-017(决策不引入托管 CI)并同步 CURRENT_GAPS
- G-017 按决策关闭:不加入 GitHub Workflows,质量门禁由本地
  fmt/clippy/test 与 Makefile/scripts 可重复脚本承担
- G-008 补记对接边界现状:issue #1 RPC Backend API 已就绪,
  实现 Go CLI 时应重写 cmd/bat 现有 cgo 骨架
- 关闭顺序移除已关闭的 G-018,更新时间与结语同步
- PROJECT_PLAN 里程碑 11 的 CI 交付物改为本地可重复验证,
  与 G-017 决策一致

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 20:44:01 -07:00
nyaKazuhaandClaude Fable 5 d22f9258ad docs: 补 RPC Backend API 与 Go/FFI 边界章节,同步 issue #1 进展
- 架构文档新增 §7「RPC Backend API 与 Go 调用边界」:协议契约
  (envelope、ApiError、任务模型、方法命名空间与实现状态,细节指向
  USERGUIDE §6)、Go 层职责边界(HTTP/鉴权/分发 + RPC client,不嵌
  FFI、不直接读 daemon 内部状态)、FFI 降级说明(bat-ffi 保留为可选
  历史兼容边界,新能力一律先落 RPC)。对应 issue #1 文档要求第 8 项。
- CURRENT_STATUS:issue #1 条目由"待实现"改为"主体已实现 + 剩余清单",
  下一步清单同步。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 10:27:44 -07:00
nyaKazuhaandClaude Fable 5 17b86ab9fa docs: 修正文档漂移,与当前实现和 G-018 状态对齐
- PROJECT_PLAN:"真实官方网络 smoke 尚未记录/未完成记录" 与 G-018 已关闭矛盾,
  改为"命令已固化(G-018 已关闭),真实运行处于长期运行测试阶段、报告待后续提供"。
- PROJECT_PLAN §6 标题"近期 10 个具体任务"实列 8 条,去掉误导性数字。
- official-resource-test-pull.md 重复的 "## 8" 编号(代码入口/验证)修正为 8/9。
- CURRENT_GAPS G-008 "cmd/bat 无 main.go" 已过时(main.go 存在但为 cgo 最小
  骨架、非产品入口),更正现象描述。

对应 issue #18 维护清单 4-1、4-2、4-3、4-4。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 10:04:09 -07:00
nyaKazuhaandClaude Fable 5 4c123b9560 docs(official-sync): 推荐环境变量配置代理并同步凭据处理说明
- official-resource-test-pull.md §0.1:新增"带凭据代理优先用 HTTPS_PROXY 环境
  变量"推荐(含 systemd EnvironmentFile 0600 用法),补充凭据处理说明——日志/
  status 脱敏、经 ALL_PROXY 环境变量传 curl、daemon 经环境变量下传、bat-proxy.secret
  复用与 clean-stable 清除;修正旧表述"代理参数写入后台子进程启动参数"。
- official-resource-backend.md 第 13 条:把"仅日志脱敏"扩写为全链路凭据不落
  世界可读位置。
- CURRENT_STATUS.md 第 7 条:同步上述凭据处理描述。
- deployments/systemd/official-sync.env.example:新增注释版 HTTPS_PROXY/NO_PROXY
  示例,并提示含凭据时按 0600 安装。
- CHANGELOG:新增"修复"(Unity 版本数值比较)与"安全"(代理凭据不落世界可读
  位置)条目。

对应 issue #18 维护清单 1-1 / 1-2。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 06:58:11 -07:00
nyaKazuha 060b7d73e5 fix(official-sync): 复用失败 staging 避免重复全量下载 2026-07-16 00:35:24 +08:00
nyaKazuha c123f6c0dc feat(official-sync): 支持本地代理下载官方资源 2026-07-16 00:12:27 +08:00
nyaKazuha 169822abaf fix(daemon): 区分当前下载与历史失败状态 2026-07-15 23:22:30 +08:00
nyaKazuha 7890b667d7 fix(daemon): 去重失败版本并优化状态输出 2026-07-15 22:32:27 +08:00
nyaKazuhaandClaude Fable 5 9e83bbea11 docs(docs): 按 issue 状态同步当前状态与缺口文档
G-018 已关闭并进入长期运行测试阶段,运行报告后续提供;阻塞项和下一步按
open issue #1/#2/#3 重排,明确 daemon JSON-RPC 扩展为 Rust Resource
Backend API 的优先级和最小方法集。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 06:51:46 -07:00
nyaKazuha 0d07b9f4ce docs(docs): 记录提交信息 scope 规则
要求提交标题统一使用 type(scope): 中文说明,并在开发指南和贡献指南中补充示例。
2026-07-15 21:28:22 +08:00
nyaKazuha b4b4f25cb3 refactor(ffi): 降级 FFI 为可选兼容层并整理文档
将 bat-ffi 明确收敛为无状态 C ABI 兼容层,默认集成路径改为 bat --json 进程边界或未来稳定 SDK。

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

新增 AGENTS.md 和 CONTRIBUTING.md,压缩 CLAUDE.md 为兼容入口,并归档阶段性报告、同步 .gitignore 规则。
2026-07-15 21:12:17 +08:00
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
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
nyaKazuha 25c2c4d40f feat: add official full pull smoke
Emit runtime download progress and validation summaries for official sync.

Add repeatable real-network full pull smoke runbook and script.

Fixes #4

Fixes #6
2026-07-14 00:48:59 +08:00
nyaKazuha 2ff99ae9e3 feat: publish official resources atomically
Fixes #9

Fixes #11
2026-07-14 00:10:39 +08:00
nyaKazuha 45aba2fb2b fix: harden official sync filesystem boundaries
Fixes #14
2026-07-13 23:17:52 +08:00
nyaKazuha 1bdbb47b52 docs: define production sync deployment
Fixes #15
2026-07-13 22:22:20 +08:00
nyaKazuha 599ead8391 fix: serialize daemon control commands
Fixes #10
2026-07-13 22:02:11 +08:00
nyaKazuha e5fcf26e19 feat: validate official zip structure 2026-07-12 23:37:47 +08:00
nyaKazuha bd9f50c85c docs: update bat runtime documentation 2026-07-12 23:04:26 +08:00
nyaKazuha 264e78c440 feat: harden official sync scheduling and integrity 2026-07-11 01:06:02 +08:00
nyaKazuha f704ec18c5 feat: add official sync startup banner 2026-07-07 23:00:02 +08:00
nyaKazuha ea0920e4e3 feat: add official sync progress logging 2026-07-07 22:13:07 +08:00