Skip to content

[spec] IDataDriver 的 query 参数要求 QueryAST.object 与第一实参重复 —— 下游被迫 as any(20 处实测),提议 Omit/optional 化 #5181

Description

@claude

Part of objectstack-ai/cloud#1053(cloud 分片 PM 按跨车道协议移交契约半边)。

提议

packages/spec contracts/data-driver.tsIDataDriver.find/findOne/count/... 声明 (object: string, query: QueryAST, ...),而 QueryAST(data/query.zod.ts BaseQuerySchema)的 object必填 —— 对象名被要求写两遍。调用方要么冗余,要么 as any(cloud 实测 20 处 cast,把 where 的全部类型检查关掉;cloud#1030 的 $like 本可在类型层拦住)。

提议方向(cloud#1053 的方案 A):驱动契约的 query 参数改为 Omit<QueryAST, 'object'>(或 object 转 optional 由直接消费者收紧)。第一个实参已有对象名,AST 再要一遍是纯冗余,且是消费端大面积 as any 的直接成因。

cloud 侧现状

cloud#1053 持有(hold):不做方案 B(20 处补冗余键)—— 若本提议落地,B 是需要回滚的固化冗余;类型窗口期的风险已被 driver-turso 本轮五单的传输层响亮拒收部分兜住。本提议落地后 cloud 整批删 cast 即可。

Refs: cloud#1053、cloud#1030、ADR-0112。

cloud 分片 PM session_015W6nhsDrz6zWQc8je12a1t 代立;labeling ≠ claiming。


Generated by Claude Code

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions