发现于:#4645 Phase A(把 @objectstack/driver-turso 从 cloud 迁回 packages/drivers/driver-turso)。迁入落盘的那一刻 scripts/check-driver-conformance.mjs 就把它收进矩阵,实测 3 个格子 MISSING。Phase A 的 PR 按 gate 规则记了 3 条 measured DEBT 条目让 CI 绿,这个单是清掉那 3 条 DEBT 的工作项。
实测(objectstack 81087877e + #4645 Phase A 分支)
driver conformance matrix (5 drivers x 5 case-sets)
driver FILTER_LOGIC TEMPORAL TEMPORAL_TIME PAGINATION PAGINATION_UNORDERED
driver-memory ok ok ok ok ok
driver-mongodb ok ok ok ok ok
driver-sql ok ok ok ok ok
driver-sqlite-wasm ok ok ok ok ok
driver-turso MISSING ok ok MISSING MISSING
TEMPORAL / TEMPORAL_TIME 两格是真绿:turso-temporal-conformance.test.ts 与 turso-remote-temporal-conformance.test.ts 双面(local 与 remote)都驱动了共享 case-set。
为什么这三格不是"继承 SqlDriver 所以没问题"
TursoDriver 是双传输的。local / replica 面确实继承 SqlDriver,但 remote 面完全不走 Knex:packages/drivers/driver-turso/src/remote-transport.ts(1,726 行)自带
这正是 #3774(filter 组合语义)和 #4363 / objectui#3106(有序与无序分页读都是一个 partition)设这两组共享 case-set 要压住的东西:独立实现的第 N 个后端。"继承所以没问题"恰恰是这些套件存在来证伪的假设 —— driver-sqlite-wasm 当初也是按这个理由记的 DEBT,最后是用套件清掉的,不是用理由清掉的。
完成标准
在 packages/drivers/driver-turso/src/ 下补套件,从 @objectstack/spec/data 导入并驱动:
FILTER_LOGIC_CASES
PAGINATION_CASES
PAGINATION_UNORDERED_CASES
双面覆盖(参照同包 temporal 两个套件的形状):local 面走 :memory:,remote 面走 libsql-sqlite-stub.testkit.ts 的 sqlite stub —— 两面都 hermetic,默认 CI 可跑,不需要网络或凭据。套件落地后,在同一个 PR 里删掉 scripts/check-driver-conformance.mjs 里对应的 3 条 LEDGER 条目(留着会判 RECONCILED 红)。
边界
- ⛔ 不在这个单里改 gate 的判定逻辑。
- ⛔ 不顺手修 remote transport 的语义缺陷:套件如果跑红,说明是真分叉,另开单,不要在这个单里边写套件边改实现(那样等于自己给自己发准考证)。
Blocked-by:#4645 Phase A 的 PR(packages/drivers/driver-turso 落盘)。
发现于:#4645 Phase A(把
@objectstack/driver-turso从 cloud 迁回packages/drivers/driver-turso)。迁入落盘的那一刻scripts/check-driver-conformance.mjs就把它收进矩阵,实测 3 个格子MISSING。Phase A 的 PR 按 gate 规则记了 3 条 measured DEBT 条目让 CI 绿,这个单是清掉那 3 条 DEBT 的工作项。实测(objectstack
81087877e+ #4645 Phase A 分支)TEMPORAL / TEMPORAL_TIME 两格是真绿:
turso-temporal-conformance.test.ts与turso-remote-temporal-conformance.test.ts双面(local 与 remote)都驱动了共享 case-set。为什么这三格不是"继承 SqlDriver 所以没问题"
TursoDriver是双传输的。local / replica 面确实继承SqlDriver,但 remote 面完全不走 Knex:packages/drivers/driver-turso/src/remote-transport.ts(1,726 行)自带buildWhereSQL(:1019)—— 一套独立的过滤器编译器,$and/$or/$not嵌套、算子词表、比较值拒收全部自己实现(cloud 侧 Fix @libsql/client native dependency resolution for Vercel deployment #1116/Fix broken pnpm lockfile causing CI failures #1117/fix(studio): Route Code tab to CodeExporter instead of always rendering preview #1080/fix: AI agent routes never registered — kernel pre-injects core service fallbacks before plugin starts #1078/chore(deps)(deps): bump the production-dependencies group across 1 directory with 14 updates #1074/Addressing PR comments #1071 六个语义修复都落在这里,说明这条缝会真的分叉);ORDER BY/LIMIT/OFFSET拼装(:960-977)。这正是 #3774(filter 组合语义)和 #4363 / objectui#3106(有序与无序分页读都是一个 partition)设这两组共享 case-set 要压住的东西:独立实现的第 N 个后端。"继承所以没问题"恰恰是这些套件存在来证伪的假设 —— driver-sqlite-wasm 当初也是按这个理由记的 DEBT,最后是用套件清掉的,不是用理由清掉的。
完成标准
在
packages/drivers/driver-turso/src/下补套件,从@objectstack/spec/data导入并驱动:FILTER_LOGIC_CASESPAGINATION_CASESPAGINATION_UNORDERED_CASES双面覆盖(参照同包 temporal 两个套件的形状):local 面走
:memory:,remote 面走libsql-sqlite-stub.testkit.ts的 sqlite stub —— 两面都 hermetic,默认 CI 可跑,不需要网络或凭据。套件落地后,在同一个 PR 里删掉scripts/check-driver-conformance.mjs里对应的 3 条 LEDGER 条目(留着会判 RECONCILED 红)。边界
Blocked-by:#4645 Phase A 的 PR(
packages/drivers/driver-turso落盘)。