mirror of
https://github.com/Yuyi-Oak/BlueArchiveToolkit.git
synced 2026-09-18 06:34:54 +08:00
fix(sqlite): 收口长期状态数据库版本化迁移契约
This commit is contained in:
@@ -179,7 +179,7 @@
|
||||
`resource.index` RPC / CLI 只读查询现有 SQLite 索引;索引不存在时返回
|
||||
`available=false`,不会因为查询创建空库。发布后的 TextUnit 队列还会在当前
|
||||
release 根目录写入 `translation-tasks.sqlite`,由版本化 `schema_migrations`
|
||||
管理 queued/running/failed/completed/skipped、provider run、lease、失败分类、
|
||||
管理 V2 queued/running/failed/completed/skipped、provider run、lease、失败分类、
|
||||
重试计划和 TextUnit 级译文结果。跨 release 的 Translation Memory V1 独立存储在
|
||||
`<output>/translation-memory.sqlite`,记录 raw source/hash、完整 context、candidate/
|
||||
trusted 和 release/TextUnit/provider/run provenance;`translation.tasks` 优先查询这份状态库,
|
||||
|
||||
@@ -165,18 +165,24 @@ count,任何一页不一致都会丢弃整个候选快照。
|
||||
- `translation-tasks.sqlite`:当前 release 的可变 worker 状态库,记录
|
||||
queued / running / failed / completed / skipped、attempt count、provider run
|
||||
ID、provider、TextUnit 级译文结果、lease、失败分类、可重试标记和
|
||||
next attempt;schema 由 `schema_migrations` 版本表管理。
|
||||
next attempt;当前 schema version 为 V2,schema 由 `schema_migrations` 版本表
|
||||
管理,并通过只读 fingerprint、`BEGIN IMMEDIATE` 和显式 V1 → V2 migration
|
||||
保证 future/未知 schema fail closed。
|
||||
- `translation-handoff.json`:当前 release 的版本化 job/unit/provider run 交接
|
||||
快照;worker 更新后的实时状态仍以 `translation-tasks.sqlite` 为准。
|
||||
- `translation-memory.sqlite`:跨 release 的项目级 Translation Memory,不位于
|
||||
`versions/<id>`,也不与 `translation-tasks.sqlite` 共用;记录 raw source/hash、完整
|
||||
TextUnit context、candidate/trusted、translation 和 release/TextUnit/provider/run
|
||||
provenance。默认路径为 `<output>/translation-memory.sqlite`,可由
|
||||
provenance;当前 schema version 为 V1,打开时先进行只读 fingerprint preflight,
|
||||
再在 writer transaction 内补齐 `schema_migrations` 版本记录。默认路径为
|
||||
`<output>/translation-memory.sqlite`,可由
|
||||
`BAT_TRANSLATION_MEMORY_PATH`、`[translation.worker].translation_memory_path` 或 CLI
|
||||
覆盖。
|
||||
- `glossary.sqlite`:跨 release 的项目级 Glossary,不位于 `versions/<id>`,也不与
|
||||
`translation-tasks.sqlite` 或 TM 共用;记录 term、alias、推荐/允许译法、scope、
|
||||
priority、review 状态、source provenance 和完整 source/review history。默认路径为
|
||||
priority、review 状态、source provenance 和完整 source/review history;当前
|
||||
schema version 为 V1,正式 schema evolution 不再通过 `ensure_column` 隐式修复。
|
||||
默认路径为
|
||||
`<output>/glossary.sqlite`,可由 `BAT_GLOSSARY_PATH`、`[translation.worker].glossary_path`
|
||||
或 CLI 覆盖。
|
||||
|
||||
|
||||
@@ -154,11 +154,26 @@ official/localized distribution 均被阻断,普通查询不会自动重建。
|
||||
|
||||
### G-012:Translation Memory V1 已实现,扩展能力仍缺失
|
||||
|
||||
Rust `bat` 已提供独立项目级 SQLite TM,记录 raw source/hash、完整 context、release/TextUnit/provider/run provenance,区分 candidate/trusted,只有显式 confirm 才能建立 trusted 记录;worker 只自动复用 trusted 的 raw source + 完整 context exact match,并在复用前执行已批准 Glossary 的确定性 QA。Go `bat-api` 已提供鉴权的 summary/query 只读接口和 confirm 转发,但 Go 不持有 TM 状态。仍缺少模糊匹配和更丰富的导入导出历史能力。
|
||||
Rust `bat` 已提供独立项目级 SQLite TM,当前 schema version 为 V1;schema 打开遵守
|
||||
只读 preflight、fingerprint、transaction rollback 和 future/unknown fail-closed
|
||||
契约。它记录 raw source/hash、完整 context、release/TextUnit/provider/run provenance,
|
||||
区分 candidate/trusted,只有显式 confirm 才能建立 trusted 记录;worker 只自动复用
|
||||
trusted 的 raw source + 完整 context exact match,并在复用前执行已批准 Glossary 的
|
||||
确定性 QA。Go `bat-api` 已提供鉴权的 summary/query 只读接口和 confirm 转发,但 Go
|
||||
不持有 TM 状态。仍缺少模糊匹配和更丰富的导入导出历史能力。
|
||||
|
||||
### G-013:Glossary V1 已实现,协作视图仍缺失
|
||||
|
||||
Rust `bat` 已提供独立项目级 `glossary.sqlite`:term/alias/recommended/allowed/category/priority、全局与 TextUnit scope、source history、approved review、冲突诊断、provider-neutral constraints 和确定性 QA 均由 Rust 持有。trusted TM 复用会先经过 Glossary QA;provider、TM、人工 task/workbench 结果都记录 QA,blocking deviation 必须显式提交与当前 QA 精确绑定的 `qa_identity` 及 reviewer/reason/provenance。localized publish 会把发布时重算的 QA 写入 manifest。`translation.glossary.*` 已通过 `bat.sock` 暴露,Go 仅提供鉴权后的 typed forwarding。剩余缺口是完整 Web 术语协作视图和更丰富的导入/搜索能力。
|
||||
Rust `bat` 已提供独立项目级 `glossary.sqlite`,当前 schema version 为 V1;打开
|
||||
遵守只读 fingerprint preflight、writer transaction、rollback 和 future/unknown
|
||||
fail-closed 契约,不再使用隐式 `ensure_column` 修复结构。term/alias/recommended/
|
||||
allowed/category/priority、全局与 TextUnit scope、source history、approved review、
|
||||
冲突诊断、provider-neutral constraints 和确定性 QA 均由 Rust 持有。trusted TM 复用会
|
||||
先经过 Glossary QA;provider、TM、人工 task/workbench 结果都记录 QA,blocking
|
||||
deviation 必须显式提交与当前 QA 精确绑定的 `qa_identity` 及 reviewer/reason/provenance。
|
||||
localized publish 会把发布时重算的 QA 写入 manifest。`translation.glossary.*` 已通过
|
||||
`bat.sock` 暴露,Go 仅提供鉴权后的 typed forwarding。剩余缺口是完整 Web 术语协作视图
|
||||
和更丰富的导入/搜索能力。
|
||||
|
||||
### G-014:完整 Provider 扩展体系未实现
|
||||
|
||||
|
||||
Reference in New Issue
Block a user