nyaKazuha
|
37d49c9793
|
fix(release): 完成官方发布身份与 legacy CAS 归属保护
bat-rust / Build and test Rust (push) Canceled after 0s
bat-rust / Build and test Go API (push) Canceled after 0s
|
2026-09-13 15:34:42 +08:00 |
|
nyaKazuha
|
5bae90cb14
|
fix(release): 完成分发身份与 CAS legacy ownership 收尾
bat-rust / Build and test Rust (push) Canceled after 0s
bat-rust / Build and test Go API (push) Canceled after 0s
|
2026-09-13 10:44:24 +08:00 |
|
nyaKazuha
|
786b739f99
|
fix(release): 收紧分发热路径与事务边界
bat-rust / Build and test Rust (push) Canceled after 0s
bat-rust / Build and test Go API (push) Canceled after 0s
|
2026-09-12 22:22:11 +08:00 |
|
nyaKazuha
|
f2c20367a6
|
fix(release): 完善发布事务和状态隔离
bat-rust / Build and test Rust (push) Canceled after 0s
bat-rust / Build and test Go API (push) Canceled after 0s
|
2026-09-12 17:50:09 +08:00 |
|
nyaKazuha
|
30d1cd77e8
|
fix(release): 修复发布一致性与并发边界
bat-rust / Build and test Rust (push) Canceled after 0s
bat-rust / Build and test Go API (push) Canceled after 0s
|
2026-09-12 16:35:55 +08:00 |
|
nyaKazuha
|
8d57a63697
|
feat(release):完成双 release 运维闭环
bat-rust / Build and test Rust (push) Canceled after 0s
bat-rust / Build and test Go API (push) Canceled after 0s
|
2026-09-12 11:08:04 +08:00 |
|
nyaKazuha
|
8a77502272
|
feat(patch):统一清单驱动汉化发布
bat-rust / Build and test Rust (push) Canceled after 0s
bat-rust / Build and test Go API (push) Canceled after 0s
|
2026-09-12 01:35:29 +08:00 |
|
nyaKazuha
|
69b6e36bf0
|
feat(assetbundle): 完成已验证结构的重建发布闭环
bat-rust / Build and test Rust (push) Canceled after 0s
bat-rust / Build and test Go API (push) Canceled after 0s
|
2026-09-10 00:46:48 +08:00 |
|
nyaKazuha
|
68c6c91b1e
|
fix(glossary): 绑定 QA identity 与人工 override
bat-rust / Build and test Rust (push) Canceled after 0s
bat-rust / Build and test Go API (push) Canceled after 0s
|
2026-09-09 00:25:49 +08:00 |
|
nyaKazuha
|
0275a890bc
|
fix(glossary): 补齐术语删除和审核门禁
bat-rust / Build and test Rust (push) Canceled after 0s
bat-rust / Build and test Go API (push) Canceled after 0s
|
2026-09-08 20:59:27 +08:00 |
|
nyaKazuha
|
94483ff14d
|
feat(glossary): 实现 Rust Glossary V1
|
2026-09-07 22:38:53 +08:00 |
|
nyaKazuha
|
7d6389806b
|
feat(translation): add Rust Translation Memory and config migration
|
2026-09-06 22:48:51 +08:00 |
|
nyaKazuha
|
34e2f0d907
|
refactor(cli): 模块化 Rust 前台输出
bat-rust / Build and test Rust (push) Canceled after 0s
bat-rust / Build and test Go API (push) Canceled after 0s
|
2026-09-02 17:42:16 +08:00 |
|
nyaKazuha
|
bd1e1a06f2
|
feat(resource): 增加历史 release 与 CAS 复用
bat-rust / Build and test Rust (push) Canceled after 0s
bat-rust / Build and test Go API (push) Canceled after 0s
Closes #47
|
2026-09-02 01:26:53 +08:00 |
|
nyaKazuha
|
fdd4075e7e
|
feat(resource): 增加 CAS 诊断与索引过滤优化
bat-rust / Build and test Rust (push) Canceled after 0s
bat-rust / Build and test Go API (push) Canceled after 0s
补充 doctor cas 只读诊断、校验 CAS 对象分片布局,并将常用 ResourceRepository metadata 查询下推到 SQLite。
Refs G-011
|
2026-09-01 00:41:41 +08:00 |
|
nyaKazuha
|
4ed81f0030
|
feat(bat-api): 实现内嵌 dashboard
bat-rust / Build and test Rust (push) Canceled after 0s
bat-rust / Build and test Go API (push) Canceled after 0s
Closes #46
|
2026-08-31 23:17:23 +08:00 |
|
nyaKazuha
|
ab21344773
|
feat(i18n): 完成 localized patch 发布回滚闭环
bat-rust / Build and test Rust (push) Canceled after 0s
bat-rust / Build and test Go API (push) Canceled after 0s
Closes #45
|
2026-08-31 00:02:55 +08:00 |
|
nyaKazuha
|
f441f1810e
|
feat(i18n): 接入翻译 provider worker
bat-rust / Build and test Rust (push) Canceled after 0s
bat-rust / Build and test Go API (push) Canceled after 0s
Closes #44
|
2026-08-30 21:13:31 +08:00 |
|
nyaKazuha
|
7f465523e1
|
fix(bat-api): 完成 issue #19 同机 live 联调
bat-rust / Build and test Go API (push) Canceled after 0s
bat-rust / Build and test Rust (push) Canceled after 0s
|
2026-08-29 22:58:01 +08:00 |
|
nyaKazuha
|
9d4f8d903c
|
feat(addressables): 补全 catalog 可校验字段
bat-rust / Build and test Rust (push) Canceled after 0s
bat-rust / Build and test Go API (push) Canceled after 0s
补充 JSON/compact catalog 的 provider ID、bundle name、资源类型、hash、size、CRC 和依赖字段,并贯通 ResourceEntry、SQLite 资源索引和回归 golden。对 compact extra data 与 resource type index 的损坏返回明确错误,不再把 bundle name 当作 hash fallback。\n\n验证:cargo fmt --check;cargo test -p bat-core --locked;cargo test -p bat-adapters --locked;cargo test -p bat-infrastructure --locked;git diff --check。\n\nClippy 仍受既有 core/src/domain/game_client.rs:141 的 needless-question-mark 和 items-after-test-module 基线问题影响,未混入本 issue 修复。\n\nFixes #2
|
2026-08-19 23:10:16 +08:00 |
|
nyaKazuha
|
72c1a879a3
|
feat(bat): 补全工作流命令与人工校对状态
bat-rust / Build and test Rust (push) Canceled after 0s
bat-rust / Build and test Go API (push) Canceled after 0s
Refs #43
|
2026-08-19 21:33:33 +08:00 |
|
nyaKazuha
|
550ee7fd9a
|
feat(bat): 补全翻译工作台编辑命令
bat-rust / Build and test Rust (push) Canceled after 0s
bat-rust / Build and test Go API (push) Canceled after 0s
Refs #43
|
2026-08-12 09:33:14 +08:00 |
|
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
|
7c863d10d1
|
fix: 稳定并发 worker 回归测试
bat-rust / Build and test Go API (push) Canceled after 0s
bat-rust / Build and test Rust (push) Canceled after 0s
|
2026-08-03 00:57:29 +08:00 |
|
nyaKazuha
|
9a5b3ba39b
|
fix: 拆分 bat 控制面
|
2026-08-03 00:43:11 +08:00 |
|
nyaKazuha
|
2b053e247d
|
fix: 抽象官方库存与 sidecar hash 策略
|
2026-08-02 23:12:25 +08:00 |
|
nyaKazuha
|
ba28e067c9
|
fix: 明确并发下载报告按计划顺序输出
|
2026-08-02 22:47:21 +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
|
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
|
1e466d3374
|
fix(sync): 规范 release flow 状态码解析
|
2026-07-31 17:45:50 +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
|
99e6b3a23a
|
fix(sync): 立即校验官方 hash sidecar
|
2026-07-31 13:12:21 +08:00 |
|
nyaKazuha
|
16e73327b4
|
fix(sync): 补齐发布清理与校验进度
|
2026-07-31 13:00:53 +08:00 |
|
nyaKazuha
|
2079c6a307
|
feat(sync): 接入解析缓存与汉化发布前置
补齐官方 release 解析缓存、TextUnit 明细索引、资源变更集、Crowdin handoff 预留、ResourceRepository 导入元数据和 localized release patch 前置链路。
同时开放文件级 patch.apply 与 UnityFS TextAsset/string/semantic field patch CLI/RPC 入口,并保留官方原版资源与汉化产物双目录发布状态。
验证:cargo test -p bat-assetbundle --locked;cargo clippy -p bat-assetbundle --all-targets --locked -- -D warnings;cargo test -p bat-infrastructure --locked。
|
2026-07-31 00:38:45 +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 |
|
 nyaKazuhaandClaude Fable 5
|
0ab3f3b953
|
feat(download): 多线程下载 + 重试指数退避(issue #17)
下载主循环由串行改为「并发下载 + 串行簿记」三段式:
- Phase A:无网络前置校验(官方性/目标路径/建目录)+ 判定跳过/需下载,
非官方 URL 在任何下载前 fail-fast
- Phase B:need-download 项经 scoped 线程池并发下载(默认并发 4,
可配 1..=256)。worker 只做只读 &self 的 pull_one(各 URL 独立
.part/目标文件),经 mpsc 把结果送回主线程;manifest/quarantine
簿记与进度回调全在主线程串行执行,无需加锁。首个失败或 should_cancel
置 cancel 标志,其余 worker 在任务边界停止
- Phase C:按 plan 顺序串行收尾——seed .hash 校验(顺序相关、可
fail-fast)+ 构建有序结果
fail-fast 与「不发布不完整资源」不变量保留;进度事件按 URL 配对但
顺序不再单调(并发下天然如此)。
curl 重试加指数退避(网络类 200ms→400ms→800ms…上限 5s;ETXTBSY 仍走
极短退避),并发下对官方 CDN 更礼貌;退避基值 cfg(test) 下为 0 不拖慢
单测。
并发度经 OfficialUpdateConfig.download_concurrency 贯通,CLI
--download-concurrency 与 BAT_DOWNLOAD_CONCURRENCY 可配,.env 模板
与 USERGUIDE/CURRENT_STATUS/CHANGELOG 同步。
验证:新增并发正确性测试(并发 8:每 URL 恰一次 started+finished、
全部落盘)、并发度钳制、退避时长计算、CLI/env 解析单测;progress
排序测试改为顺序无关不变量;workspace 全测试(20 套件) + fmt +
clippy --all-targets -D warnings 全绿。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-18 03:25:04 -07:00 |
|
 nyaKazuhaandClaude Fable 5
|
8efd8f36b4
|
feat(addressables): 提取 m_Crc 并提供 size/CRC 校验 API(issue #2)
Addressables catalog 里的 m_Crc(bundle IEEE CRC-32)此前从未解析;
声明的 size 也只作元数据、无校验能力。本次:
- ResourceEntry 新增 crc: Option<u32>(serde default 向后兼容),
compact 与 expanded 两种 catalog 形态均解析 m_Crc/m_Crc→crc
- core 新增 crc32_ieee(IEEE CRC-32,等价 zlib/Unity m_Crc)与
ResourceEntry::{declared_crc, verify_downloaded_bytes}:按声明的
size/crc 校验字节,0 视为「无 CRC」跳过
- SqliteResourceRepository 持久化 crc 列,旧库经幂等 ensure_column
迁移补列(pragma_table_info 判断后 ALTER)
- golden 投影与 fixture 补 crc 字段,验证真实形态 catalog 提取贯通
校验 API 暂不接入 import 覆盖路径(该路径按 CAS id 重写 hash/size 是
既定语义,且合成测试的声明值不匹配实际字节);接入下载/导入校验留
待 G-011。
验证:core crc32 标准向量 + verify 分支单测、expanded 形态非零 crc
提取单测、golden 端到端;core/adapters/infrastructure 全测试 + fmt +
clippy --all-targets -D warnings 全绿。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-18 02:41:41 -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
|
eac1edd455
|
feat(official-sync): 配置校验与 server-info/marker 拉取接入错误码
catalog.refresh 真机 e2e 暴露的缺口:任务配置校验失败落 900001,而
输入域码表(100xxx)早已定义却无使用点。本次接入:
- 配置校验四处类型化(经 anyhow::Error::new 保留 DownloadError,
task worker 现有 downcast 直接归类):
缺少应用版本 → MISSING_APP_VERSION(100001)、
缺少连接组 → MISSING_CONNECTION_GROUP(100002)、
缺少服务器信息来源 → MISSING_SERVER_INFO_SOURCE(100003)、
GameMainConfig 缺 ServerInfoDataUrl → LAUNCHER_RESPONSE_INVALID
(600004,launcher 链内容缺陷)。
- fetch_bytes 改返回 DownloadError:非官方 URL → NON_OFFICIAL_URL、
curl 失败保留准确网络域码。server-info / endpoint marker / 种子
catalog 拉取(5 处调用)由 anyhow::Error::msg 改 Error::new 保留
类型——发现阶段的网络失败此前全部落 internal,现携带 3xx 网络码。
测试:3 个配置校验错误码 downcast 断言 + fetch_bytes 双拒绝映射
(非官方 URL / 404)。真机 e2e:无 auto-discover 的 daemon 上
catalog.refresh → task.status 报 BAT-ERR-100001 missing_app_version
(domain=input),修复前为 900001。全量 fmt / clippy --workspace
--all-targets -D warnings / test --workspace 全绿。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-17 10:20:08 -07:00 |
|