From 61a165be7c2481541c89c3e029eaae81b0a8eede Mon Sep 17 00:00:00 2001 From: thzxx Date: Tue, 15 Sep 2026 08:06:40 +0800 Subject: [PATCH] =?UTF-8?q?docs(G6):=20=E8=A1=A5=E5=BD=95=E9=99=84?= =?UTF-8?q?=E5=BD=95=20G=20=E2=80=94=E2=80=94=20G1~G6=20=E7=A1=AC=E9=97=A8?= =?UTF-8?q?=E7=A6=81=E9=AA=8C=E6=94=B6=E8=AE=B0=E5=BD=95=EF=BC=88=E5=90=AB?= =?UTF-8?q?=E5=8F=AF=E5=A4=8D=E7=8E=B0=E5=91=BD=E4=BB=A4=E4=B8=8E=E5=AE=9E?= =?UTF-8?q?=E6=B5=8B=E7=BB=93=E6=9E=9C=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PLAN-v0.7.5.md | 17 +++++++++++++++++ README.md | 4 ++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/PLAN-v0.7.5.md b/PLAN-v0.7.5.md index cca2bf4..445c23d 100644 --- a/PLAN-v0.7.5.md +++ b/PLAN-v0.7.5.md @@ -823,3 +823,20 @@ connection-manager/integrations/migration)两份完整报告,以及测试质 这是"测试真能拦住回归"与"测试只是陪跑"的分界线。 - 测试介质的两处**忠实性**缺陷已被修正(`SharedMemoryBackend` 跨实例可见性、 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 93;CI 常规 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 剥离类型掩盖的类型错误。 ✅ diff --git a/README.md b/README.md index cfd89b1..d7faa63 100644 --- a/README.md +++ b/README.md @@ -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 │ │ MemTable │ LRU (256页) │ 分片文件 │ @@ -353,7 +353,7 @@ const rows = await db.query('SELECT * FROM users'); │ (4KB 页面) │ │ +空洞检测 │ ├────────────────┼───────────────┼────────────┤ │ 事务/版本管理 │ Bloom Filter │ LZ4 压缩 │ -│ 快照隔离 │ 二级索引 LSM │ +大小头 │ +│ 快照回滚 │ 二级索引 LSM │ +大小头 │ │ +Savepoint │ (每列独立) │ │ ├────────────────┴───────────────┴────────────┤ │ EncryptedBackend (AES-256-GCM 全库透明加密) │