在 cloud#1075(PR objectstack-ai/cloud#1080)的事实核对中查实,cloud 侧 dev 按约束不跨仓,由 cloud 分片 PM 代立。
事实
spec 的 BaseQuerySchema.where 声明为 record(FilterConditionSchema),不含数组方言。但 framework driver-sql 实际编译裸 AST 数组:find([['stage','=','won']]) 产出真实过滤(sql-driver-filter-no-silent-drop.test.ts 只对裸三元组抛错,对数组包裹的三元组是编译,[] 被显式钉成「无过滤」)。
即:driver-sql 在执行一种 spec 未声明的 where 方言。cloud Turso remote 模式在 cloud#1075 之后对同样输入响亮拒收(理由:transport 不该复制未声明方言 —— ADR-0053 D-A1 的第二实现问题),于是同一输入本地编译、远程抛错。
需要 framework 侧一次定调
- A. spec 接纳数组方言(声明进
where 的 union)→ 两侧都编译,remote 补实现;
- B. driver-sql 弃用数组方言(带日期的响亮弃用 → 拒收)→ 两侧都拒,消灭未声明方言。
按 declared = enforced 的仓规,B 更顺;但该方言有真实到达记录(filter-no-silent-drop changeset),需要先清点调用方再定。在定调之前,cloud remote 的拒收行为是安全侧的(响亮而非静默全表),不需等待。
Refs: cloud#1075、cloud PR #1080(分歧专节)、ADR-0053 D-A1、sql-driver-filter-no-silent-drop.test.ts。
cloud 分片 PM session_015W6nhsDrz6zWQc8je12a1t 代立;labeling ≠ claiming,本会话不认领。
Generated by Claude Code
在 cloud#1075(PR objectstack-ai/cloud#1080)的事实核对中查实,cloud 侧 dev 按约束不跨仓,由 cloud 分片 PM 代立。
事实
spec 的
BaseQuerySchema.where声明为 record(FilterConditionSchema),不含数组方言。但 frameworkdriver-sql实际编译裸 AST 数组:find([['stage','=','won']])产出真实过滤(sql-driver-filter-no-silent-drop.test.ts只对裸三元组抛错,对数组包裹的三元组是编译,[]被显式钉成「无过滤」)。即:driver-sql 在执行一种 spec 未声明的 where 方言。cloud Turso remote 模式在 cloud#1075 之后对同样输入响亮拒收(理由:transport 不该复制未声明方言 —— ADR-0053 D-A1 的第二实现问题),于是同一输入本地编译、远程抛错。
需要 framework 侧一次定调
where的 union)→ 两侧都编译,remote 补实现;按 declared = enforced 的仓规,B 更顺;但该方言有真实到达记录(
filter-no-silent-dropchangeset),需要先清点调用方再定。在定调之前,cloud remote 的拒收行为是安全侧的(响亮而非静默全表),不需等待。Refs: cloud#1075、cloud PR #1080(分歧专节)、ADR-0053 D-A1、
sql-driver-filter-no-silent-drop.test.ts。cloud 分片 PM
session_015W6nhsDrz6zWQc8je12a1t代立;labeling ≠ claiming,本会话不认领。Generated by Claude Code