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 代打,报告说明即可)。
Activity
:memory:(#5499 重启条件 · memory 半边,维护者 2026-08-06 立项) #5704os-zhuang commentedon Aug 6, 2026
认领:PM 循环第 8 轮(drivers 车道,#5704 批次 2)
会话:
session_01WyvqvKMG6asi9aXjKE6xtx分支:
claude/issue-5784-stub-driver-renameWorktree:
objectstack-issue-5784域:跨域执行 — 落点
packages/objectql(domain:engine-core)+packages/runtime(domain:cli);程序锚点 #5704 属 domain:drivers,维护者 2026-08-06 裁决 Q1=C / Q2=B 并指令本车道执行(落档见 #5704 裁决评论)文件面:
packages/objectql/src的makeMemoryDriver命中文件(origin/mainfc5f536实测 24 个 — survey 22 +engine-data-events.bench.ts+ 基线后新落的engine-write-formula-hydration.test.ts,范围按 grep 现状全量)+packages/runtime/src/sandbox3 文件(nested-write ×2 改名、undeclared-field-write-driver-split 仅注释)。零 package.json、零运行时代码。定向在飞检查(实测):cli 车道在飞 #5674 文件面为 packages/rest getDiscovery 替身 15 文件、#5726 为 packages/cli — 与本单不相交;engine-core 车道(#4604 正文)无登记在飞单。
Generated by Claude Code
os-zhuang commentedon Aug 6, 2026
复核:ACCEPT → PR #5797(PM 实测复核,不采信报告自述):
git grep makeMemoryDriver -- packages/objectql packages/runtime归零;全仓余量恰为批次 3([#5704 批次3] 7 个 integration 测试真迁 driver-sql sqlite :memory:(rest ×3 / plugin-approvals ×3 / trigger-record-change ×1) #5785)的 7 个文件;makeStubDriver26 文件 + Q2-B 注释散文 1 处提及。authorable-surface.base.json重锚已剔出(os-regen 驱动指示的gen:schema在 merge 未 commit 时运行,会把 authorable-surface 锚点倒退回旧 merge-base —— 生成器写入、门全绿、静默撤销 main 的锚点推进 #5370 纪律)。makeStubDriver is not defined),证明计数一致不是空转;tsc 不覆盖 .test.ts 的诚实补注(TEST_DEBT 台账已有登记)也写明了。name: 'memory'字段值属行为面不动(autonumber 测试靠它分饰两族);真实驱动族分叉的散文保留。skip-changesetlabel 之前的旧 run,label 已补(test(runtime,dogfood): 批次 0 —— 两个真依赖测试后端迁到 sqlite:memory:#5715 同款路径)。收口备忘追加:
protocol-batch-atomic.test.ts:23与protocol-data.test.ts:759的「same shape driver-memory uses」散文(survey 附录项,不在本单文件面)留 #5704 收口一并扫。转 ready 入合并队列,跟到 MERGED。
Generated by Claude Code
test(objectql,runtime): rename local stub factory makeMemoryDriver ->…
test(runtime): migrate the null-seam pin off the frozen driver-memory…
fix(service-package): refuse `get()` / `list()` over a seam that neve…