Part of #5704(批次 2)。维护者 2026-08-06 裁决 Q1=C / Q2=B(落档见 #5704 裁决评论)。
任务 1:24 个文件的本地替身改名(纯机械,零行为变更)
makeMemoryDriver() 是各文件自带的手写 stub(所在包连 @objectstack/driver-memory 依赖都没有),命名系统性误导度量与人(#5704 Phase 1 survey 的核心发现)。统一改名 makeStubDriver(),调用点与类型随之;注释里把 stub 描述成「memory driver」的散文一并改写为指涉 stub 本身(如「same shape driver-memory uses」→ 指涉 engine 期望的最小 stub 形状)。改名后文件内不得再有指涉 driver-memory 包的字样(确需描述真实语义分叉的散文除外,逐处判断)。
- packages/objectql(22 个测试文件):bulk-write-per-row-hooks、engine-audit-anchor-write、engine-autonumber-runtime-owned、engine-cascade-delete、engine-dangling-reference-audit、engine-data-events、engine-default-value-tokens、engine-filter-alias、engine-lookup-referential-integrity、hook-condition-bulk-previous、hook-condition-fail-loud、hook-condition-merged-record、hook-condition-previous-scope、hook-input-shape-contract、protocol-clone-real-engine、protocol-recorded-by-null、protocol-registry-shadow、protocol-save-meta-repo-path-real-engine、protocol-unknown-query-param、protocol-unregistered-object、query-expression-conformance、secret-fields
- packages/runtime(2 个):sandbox/nested-write.canary、sandbox/nested-write.integration
以 git grep -l "makeMemoryDriver" packages/objectql packages/runtime(对 origin/main)实测为准 — survey 基线 a58c0b5,先复核前提。
任务 2:Q2-B 落地(仅注释)
packages/runtime/**/undeclared-field-write-driver-split.integration.test.ts 文件头加注释块:本文件是仓内唯一刻意保留的 driver-memory 测试消费点 — 无 schema 语义参照臂,钉「写未声明字段:SQL 族整条拒绝 / 无 schema 族照单全收」的产品分歧;非迁移遗漏;#5499 冻结令冻的是缺陷修复投入、不禁止参照使用;引用 #5704 裁决评论。⛔ 不改测试逻辑。
边界(⛔)
- ⛔ 不动 rest / plugin-approvals / trigger-record-change 的 7 个
*.integration.test.ts — 并行批次 3 正在整体重写它们;
- ⛔ 不动任何 package.json(runtime 的 driver-memory devDep 因 Q2-B 长期保留);
- ⛔ 不动 A 类已迁文件(datasource-autoconnect、read-coercion-conformance)、域外剔除 7 文件、cli/serve-driver-banner、service-datasource/sqlite-driver-fallback、spec 两文件;
- 零运行时代码改动 — diff 只应有测试文件与注释。
验收
- 改名范围内
makeMemoryDriver 归零(全仓余量只允许在批次 3 的 7 个文件里,等它们自己清);
- packages/objectql、packages/runtime 受影响测试全绿,vitest 用例计数与改前一致;
- 测试行为不面向用户 →
skip-changeset 约定(label 由 PM 代打,报告说明即可)。
Part of #5704(批次 2)。维护者 2026-08-06 裁决 Q1=C / Q2=B(落档见 #5704 裁决评论)。
任务 1:24 个文件的本地替身改名(纯机械,零行为变更)
makeMemoryDriver()是各文件自带的手写 stub(所在包连@objectstack/driver-memory依赖都没有),命名系统性误导度量与人(#5704 Phase 1 survey 的核心发现)。统一改名makeStubDriver(),调用点与类型随之;注释里把 stub 描述成「memory driver」的散文一并改写为指涉 stub 本身(如「same shape driver-memory uses」→ 指涉 engine 期望的最小 stub 形状)。改名后文件内不得再有指涉 driver-memory 包的字样(确需描述真实语义分叉的散文除外,逐处判断)。以
git grep -l "makeMemoryDriver" packages/objectql packages/runtime(对 origin/main)实测为准 — survey 基线a58c0b5,先复核前提。任务 2:Q2-B 落地(仅注释)
packages/runtime/**/undeclared-field-write-driver-split.integration.test.ts文件头加注释块:本文件是仓内唯一刻意保留的 driver-memory 测试消费点 — 无 schema 语义参照臂,钉「写未声明字段:SQL 族整条拒绝 / 无 schema 族照单全收」的产品分歧;非迁移遗漏;#5499 冻结令冻的是缺陷修复投入、不禁止参照使用;引用 #5704 裁决评论。⛔ 不改测试逻辑。边界(⛔)
*.integration.test.ts— 并行批次 3 正在整体重写它们;验收
makeMemoryDriver归零(全仓余量只允许在批次 3 的 7 个文件里,等它们自己清);skip-changeset约定(label 由 PM 代打,报告说明即可)。