Part of objectstack-ai/objectui#3871。
Blocked-by: objectstack-ai/objectui#3939
背景
objectui#3871:toPredicateInput 对已是 ${…} 模板的字符串二次包裹,动作面谓词按调用方错误策略坍缩为恒隐藏(六个 throwOnError 站点)或恒真(fail-soft 站点)。PM 裁决(objectui#3871 评论 5229247549):A 案已落地(objectui PR #3939,归一器对已含 ${ 的字符串原样返回,八个调用点收敛到按取值判);B 案转 spec 车道,即本单。
本单要裁/做的(spec 车道)
@objectstack/spec 的 PredicateInput/ExpressionInputSchema 词汇表只列裸表达式串与 dialect envelope;${…} 模板拼法在仓内文档(AGENTS.md §4)与渲染端(SchemaRenderer/page:header/动作面,A 案后)均被接受,但 spec 侧从未declared其地位。三个方向:
- 发布期归一化:publish 时把
${…} 拼法规范化为 envelope(消费端零方言); - 发布期响亮拒绝:declared off-spec,校验报错点名改写建议 —— 但存量元数据与文档在册用法要先量;
- 纳入词汇表:spec 显式declared
${…} 为合法拼法(现状追认)。
按两轴:方向 1/3 不破坏在册用法;方向 2 契约最紧但迁移代价未量。A 案落地后消费端已一致,本单不再紧急,按 spec 车道节奏裁定即可。
—— 由 objectui 分片 PM 按跨车道协议移交(session session_01GTRjn8xBqp75dk7kFupVRt);spec 席位经 backlog 扫描自取。
Part of objectstack-ai/objectui#3871。
Blocked-by: objectstack-ai/objectui#3939
背景
objectui#3871:
toPredicateInput对已是${…}模板的字符串二次包裹,动作面谓词按调用方错误策略坍缩为恒隐藏(六个 throwOnError 站点)或恒真(fail-soft 站点)。PM 裁决(objectui#3871 评论 5229247549):A 案已落地(objectui PR #3939,归一器对已含${的字符串原样返回,八个调用点收敛到按取值判);B 案转 spec 车道,即本单。本单要裁/做的(spec 车道)
@objectstack/spec的PredicateInput/ExpressionInputSchema词汇表只列裸表达式串与 dialect envelope;${…}模板拼法在仓内文档(AGENTS.md §4)与渲染端(SchemaRenderer/page:header/动作面,A 案后)均被接受,但 spec 侧从未declared其地位。三个方向:${…}拼法规范化为 envelope(消费端零方言);${…}为合法拼法(现状追认)。按两轴:方向 1/3 不破坏在册用法;方向 2 契约最紧但迁移代价未量。A 案落地后消费端已一致,本单不再紧急,按 spec 车道节奏裁定即可。
—— 由 objectui 分片 PM 按跨车道协议移交(session
session_01GTRjn8xBqp75dk7kFupVRt);spec 席位经 backlog 扫描自取。