docs(G6): 补录附录 G —— G1~G6 硬门禁验收记录(含可复现命令与实测结果)

This commit is contained in:
thzxx
2026-09-15 08:06:40 +08:00
parent 799560ea05
commit 61a165be7c
2 changed files with 19 additions and 2 deletions
+17
View File
@@ -823,3 +823,20 @@ connection-manager/integrations/migration)两份完整报告,以及测试质
这是"测试真能拦住回归"与"测试只是陪跑"的分界线。 这是"测试真能拦住回归"与"测试只是陪跑"的分界线。
- 测试介质的两处**忠实性**缺陷已被修正(`SharedMemoryBackend` 跨实例可见性、 - 测试介质的两处**忠实性**缺陷已被修正(`SharedMemoryBackend` 跨实例可见性、
OPFS mock 的目录语义)—— 它们此前让"多实例/多库"的验证跑在错误语义上。 OPFS mock 的目录语义)—— 它们此前让"多实例/多库"的验证跑在错误语义上。
---
## 附录 G · G1~G6 硬门禁验收记录(v0.8.0
> 每条门禁给出**可机器验证的命令与实测结果**。发版前必须全绿。
| 门禁 | 内容 | 验证方式与实测结果 | 状态 |
|---|---|---|---|
| **G1** | 事故级缺陷全部修复,且每项有**值级**回归测试(非行数断言) | 12 项事故级(A1~A10、A15)+ 全部 P1 已修;每项均有独立回归套件,断言值/结构而非行数:`v080-sql-three-valued`(26 条 SQL 语义矩阵 × 4 引擎)、`v080-query-layer`8 项 × 4 引擎)、`v080-column-resolution``v080-foreign-key``v080-aria-ddl-atomicity``v080-unified-validation``v080-case-expression`54 项)、`v080-output-ordinals`68 项)、`v080-kvstore-commit-point``v080-single-pipeline``v080-savepoint``v080-atomicity``v080-subscribe``v080-correlated` | ✅ |
| **G2** | 入口等价性:同一 SQL 经 `query`/`queryStream`/`QueryBuilder`/事务内四条入口**逐值相等** | `v080-single-pipeline`TABLE API 与 SQL API 逐值等价,4 引擎 × 12 项 + 跨引擎 1 项,共 57 断言);`queryStream``query` 在 16 形态 × 4 引擎逐值相等(`752bdea`);事务内入口经同一 Executor(`b20d47b` | ✅ |
| **G3** | 跨引擎一致性:同 schema + 同操作在 memory/disk/hybrid/aria 行为一致(含错误码) | 全部新增套件均按 `describe.each(ENGINES)` 参数化到四引擎:`v080-unified-validation`41)、`v080-sql-three-valued`104)、`v080-query-layer`111)、`v080-single-pipeline`57)、`v080-column-resolution`32)、`v080-foreign-key`32)、`v080-output-ordinals`64)、`v080-case-expression` 等;错误码断言用 `rejects.toMatchObject({ code })` | ✅ |
| **G4** | 故障注入下崩溃不变量恒成立:已确认写入零丢失 + 索引与主表一致 + 唯一约束仍生效 | 单元层:`FaultyBackend`(撕裂写 / bit-flip / 掉电丢弃 / 写失败)+ `TransactionalFileStore`pending/commit/crash 语义)+ `CrashableStoreBackend``v080-kvstore-commit-point`(19 项,含三处 P0 的变异验证);`v080-atomicity``v080-savepoint`。e2e 层:CDP `Page.crash` 真崩溃 + OPFS `createWritable` 的 write/commit 两个窗口(`tests/e2e/opfs.spec.ts`14 项) | ✅ |
| **G5** | 覆盖率真实且不倒退:`collectCoverageFrom` 无实现文件被排除;CI 有 `coverageThreshold`README 数字与产出一致 | `jest.config.cjs` 仅排除两个**纯类型**文件(`engine/interface.ts``query/ast.ts`);阈值 statements 90 / branches 82 / functions 94 / lines 93CI 常规 job 带 `--coverage`;README 写明产出命令与四个实测数字(90.43 / 82.21 / 94.27 / 93.44),且本轮经历"阈值真的失败 → 补测/删死代码"的闭环(见 `d14663e` | ✅ |
| **G6** | 文档与实现一致:README/CHANGELOG/site 中每一条能力宣称都有对应测试或已删除 | §8 的 **12 条**全部收口:订阅(已接线)、LZ4 页面压缩(A38 已修)、`./migration` 导出、react/vue 产物+d.ts+peerDeps、`disconnect` 进类型、priority(改为实现符合文档)、MVCC 快照隔离(改为如实描述)、backup 一致性快照(改为如实描述并列入已知限制)、"5 种引擎"(改为 4 模式 + 3 后端)、`diskEngine` 生效范围(改为仅 aria)、"在线一致性快照"(改为全库导出)、钩子契约(CONTRIBUTING 写明返回值语义) | ✅ |
**额外要求**CI lint 已去掉 `continue-on-error`(真正阻断);`tsconfig.test.json``tests/` 做类型检查并修复了 **103 个**被 babel 剥离类型掩盖的类型错误。 ✅
+2 -2
View File
@@ -345,7 +345,7 @@ const rows = await db.query('SELECT * FROM users');
``` ```
┌──────────────────────────────────────────────┐ ┌──────────────────────────────────────────────┐
│ AriaEngine v0.6.1 │ AriaEngine v0.8.0
├──────────────────────────────────────────────┤ ├──────────────────────────────────────────────┤
│ LSM-Tree │ Buffer Pool │ WAL │ │ LSM-Tree │ Buffer Pool │ WAL │
│ MemTable │ LRU (256页) │ 分片文件 │ │ MemTable │ LRU (256页) │ 分片文件 │
@@ -353,7 +353,7 @@ const rows = await db.query('SELECT * FROM users');
│ (4KB 页面) │ │ +空洞检测 │ │ (4KB 页面) │ │ +空洞检测 │
├────────────────┼───────────────┼────────────┤ ├────────────────┼───────────────┼────────────┤
│ 事务/版本管理 │ Bloom Filter │ LZ4 压缩 │ │ 事务/版本管理 │ Bloom Filter │ LZ4 压缩 │
│ 快照隔离 │ 二级索引 LSM │ +大小头 │ │ 快照回滚 │ 二级索引 LSM │ +大小头 │
│ +Savepoint │ (每列独立) │ │ │ +Savepoint │ (每列独立) │ │
├────────────────┴───────────────┴────────────┤ ├────────────────┴───────────────┴────────────┤
│ EncryptedBackend (AES-256-GCM 全库透明加密) │ │ EncryptedBackend (AES-256-GCM 全库透明加密) │