diff --git a/docs/phase-b-criteria.md b/docs/phase-b-criteria.md index d85d624..228828a 100644 --- a/docs/phase-b-criteria.md +++ b/docs/phase-b-criteria.md @@ -143,7 +143,7 @@ return "" | # | 断言 | 依据 | |---|---|---| -| A1 | `recallBlocks` 改为 `async` 后,phase A 的 26 个测试与 8 个 checkpoint **全部仍然通过**,一条不改语义 | 现在 `agent/pre-step` handler 已经是 `async`(`lib/index.js` 的 `toggle`),所以异步化不破坏调用方 | +| A1 | `recallBlocks` 保持同步,另新增异步 `recallBlocksHybrid`;phase A 的 26 个测试与 8 个 checkpoint **全部仍然通过**,一条不改语义 | 代码可核:`lib/recall.js:229` 是同步导出的 `recallBlocks`(函数体内 `await` 0 处),`lib/recall.js:613` 是 `async` 的 `recallBlocksHybrid` —— 异步只出现在新 wrapper | | A2 | 未配置 embedder 时,`recallBlocks` 的返回与 phase A **逐字节相同**(同序、同分、同 `why`) | 无向量是合法配置,不是降级 | **A1 变异**:把 `recallBlocks` 改回同步并在内部 await 一个 Promise ⇒ 测试红(语法/类型层面即失败)。 @@ -319,7 +319,7 @@ phase B 必须把向量放进 **[0..1) 带**,不得越到 exact 带。 | # | 断言 | |---|---| -| G1 | phase A 的 26 测试 + 8 checkpoint **全绿**,语义不变(A1/A2 已覆盖) | +| G1 | 整仓 `npm test` **225/225**、`npm run check` **12/12** 全绿(phase A 为其中的子集),语义不变(A1/A2 已覆盖) | 读数取自既有 V7 取证日志:`/tmp/v7-order-20261101-173334-t1..t3.log`(命令 `npm test`)各含 `# tests 225` / `# pass 225` / `# fail 0`;`/tmp/v7-order-20261101-173334-c1..c3.log`(命令 `npm run check`)各含 `12/12 checkpoints passed`。这些日志采集于提交 `591f340`,本提交不改数字口径 | | G2 | 未配置 embedder ⇒ 进程内无任何 HTTP 出站、无新依赖被加载 | | G3 | `stablemem_commit` 在 embedder 不可用时**仍能写入**(块入库、vector 留空,`no_vector` 计数 +1),不报错 | | G4 | 不引入 media/媒体块(`docs/feasibility.md` §5.4 的决定不变) |