mirror of
https://github.com/Yuyi-Oak/BlueArchiveToolkit.git
synced 2026-09-19 12:06:40 +08:00
fix(resource): 统一 ResourceQuery 路径匹配契约
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
> 基线:`experiment`
|
||||
>
|
||||
> 当前已知基线提交:`37d49c9793d25288fd2fcc60b95c1ba55bdf7623`
|
||||
> 当前已知基线提交:`045d598400f9435051bb9554e06e123d0d8a3704`
|
||||
>
|
||||
> 工程原则:不以“最小修复”为目标。所有修复与新功能优先考虑长期可维护性、可用性、安全性、明确契约、回归测试和后续扩展成本;避免无关重构,但一旦处理一个问题,应完整收口其工程边界。
|
||||
|
||||
@@ -168,7 +168,7 @@ transition、generation race、过期和失败失效回归,并验证现有 CDN
|
||||
# T02 — ResourceRepository 查询契约统一
|
||||
|
||||
**类型:** P2
|
||||
**状态:** Ready
|
||||
**状态:** Done
|
||||
|
||||
## 问题
|
||||
|
||||
@@ -179,7 +179,7 @@ transition、generation race、过期和失败失效回归,并验证现有 CDN
|
||||
```text
|
||||
* 不跨 /
|
||||
** 可以跨 /
|
||||
? 匹配一个字符
|
||||
? 匹配一个 Unicode scalar value
|
||||
```
|
||||
|
||||
当前 Rust matcher、SQLite LIKE 转换以及 `list()` / `count()` 的实际过滤语义并不完全一致。
|
||||
@@ -225,12 +225,23 @@ list(query).len() != count(query)
|
||||
|
||||
## 关系
|
||||
|
||||
**Hard Blocker:**
|
||||
**历史 Hard Blocker(已满足):**
|
||||
|
||||
```text
|
||||
T02 → T13
|
||||
```
|
||||
|
||||
## 完成记录
|
||||
|
||||
已将 `ResourceQuery.path_pattern` 收口为 `bat-core` 共享的 Unicode scalar
|
||||
matcher:`*` 与 `?` 不跨 `/`,`**` 支持跨 `/`,`**/` 可匹配根目录和任意深度目录,
|
||||
`/`、大小写、`%`、`_`、`\` 均按字面量处理,空路径/空模式和连续通配符都有确定语义;
|
||||
匹配使用有界动态规划,不再使用按字节递归回溯。InMemory 与 SQLite 共用同一最终判定,
|
||||
SQLite 仅下推安全候选过滤,不再把 SQL `LIKE` 当作正式 glob 语义;包含路径或 metadata
|
||||
后置过滤的 `count()` 会复用完整查询结果,保证与 `list()` 精确相等,无后置过滤时保留
|
||||
SQL COUNT 快速路径。已补齐 `*`、`**`、`?`、分隔符、Unicode、特殊字面量、无匹配、
|
||||
组合过滤、稳定 ID 顺序以及 InMemory/SQLite list/count parity 回归测试。
|
||||
|
||||
---
|
||||
|
||||
# T03 — SQLite Schema Migration 体系化
|
||||
@@ -828,7 +839,7 @@ T09/T10 ─→ T11 增加 AssetBundle/Patch 真实验证
|
||||
# T13 — G-011 ResourceRepository 查询扩展
|
||||
|
||||
**类型:** Feature
|
||||
**状态:** Blocked by T02
|
||||
**状态:** Ready
|
||||
|
||||
## 目标
|
||||
|
||||
@@ -844,9 +855,7 @@ T09/T10 ─→ T11 增加 AssetBundle/Patch 真实验证
|
||||
|
||||
## 依赖
|
||||
|
||||
**Hard Blocker:T02**
|
||||
|
||||
## 完成记录
|
||||
前置任务 T02 已完成,查询 contract 已满足。
|
||||
|
||||
# T14 — G-012 Translation Memory 后续扩展
|
||||
|
||||
@@ -1025,7 +1034,7 @@ resource bootstrap
|
||||
│ │ │
|
||||
▼ ▼ ▼
|
||||
|
||||
T02 ResourceRepository ──Hard──→ T13 G-011
|
||||
T02 ResourceRepository ──Hard──→ T13 G-011(历史前置关系,已满足)
|
||||
|
||||
T03 SQLite Migration ──Hard──→ T04 TM Trust ──Hard──→ T14 G-012
|
||||
│
|
||||
@@ -1069,12 +1078,12 @@ Stable Resource / Release / AssetBundle Platform
|
||||
## Ready
|
||||
|
||||
```text
|
||||
T02 — ResourceRepository 查询契约统一
|
||||
T05 — bat.sock 本地 IPC 安全与资源边界
|
||||
T06 — AssetBundle / ZIP Parser Resource Budget
|
||||
T07 — Durable Atomic State Write
|
||||
T11 — Official Smoke / 长期运行证据
|
||||
T14 — Translation Memory 后续扩展
|
||||
T13 — G-011 ResourceRepository 查询扩展
|
||||
```
|
||||
|
||||
T11 可以现在就开始采集,但 T01 后的数据才作为新的正式 distribution integrity evidence。
|
||||
@@ -1089,8 +1098,6 @@ T10 ← T09
|
||||
|
||||
T12 ← 推荐 T06/T08
|
||||
|
||||
T13 ← T02
|
||||
|
||||
T15 ← 推荐 T03
|
||||
T16 ← 推荐 T03
|
||||
|
||||
|
||||
Reference in New Issue
Block a user