按 #5149 维护者裁决(2026-08-06 08:29Z 裁决评论 + 10:39Z 半裁落地评论「诉求 3 拆 devx 另立单——已放行」)代立。本单未认领,标签交分诊(预判落点 packages/lint → devx 车道)。
要求(裁决原文口径)
把裸标识符解析校验扩到 view/page 的谓词表达式(visibleWhen / visibleOn 及同族):谓词里引用的标识符必须能在绑定约定下解析(值绑定在 record. / previous. 等命名空间下),裸字段名(如 status == 'active' 而非 record.status == 'active')在构建期报 error 级或 gating——坏谓词根本发不出去。
为什么现有两道闸都放行(#5149 Repro 1 实测)
- ADR-0032 的标识符闸不遍历 views;
- ADR-0089 D3b 只查别名/错根,不查裸标识符。
两闸之间正好漏掉「作者按文档示例写了裸字段名 → 谓词永远解析失败 → 控制台 fail-open 静默显示」这条链。运行时半边(每谓词 warn 一次)由 #5149 已放行诉求 2 落地中;本单是构建期半边,两半边独立可落。
验收建议
Refs:#5149(来源单与裁决)、ADR-0032、ADR-0089 D3b、#4953(相邻非重复)。
按 #5149 维护者裁决(2026-08-06 08:29Z 裁决评论 + 10:39Z 半裁落地评论「诉求 3 拆 devx 另立单——已放行」)代立。本单未认领,标签交分诊(预判落点
packages/lint→ devx 车道)。要求(裁决原文口径)
把裸标识符解析校验扩到 view/page 的谓词表达式(
visibleWhen/visibleOn及同族):谓词里引用的标识符必须能在绑定约定下解析(值绑定在record./previous.等命名空间下),裸字段名(如status == 'active'而非record.status == 'active')在构建期报 error 级或 gating——坏谓词根本发不出去。为什么现有两道闸都放行(#5149 Repro 1 实测)
两闸之间正好漏掉「作者按文档示例写了裸字段名 → 谓词永远解析失败 → 控制台 fail-open 静默显示」这条链。运行时半边(每谓词 warn 一次)由 #5149 已放行诉求 2 落地中;本单是构建期半边,两半边独立可落。
验收建议
visibleWhen/visibleOn) fail OPEN and silently — a broken predicate is indistinguishable from no predicate #5149 Repro 1 的谓词形状(裸字段名)在 lint 下必红;record.前缀的正确写法必绿;Refs:#5149(来源单与裁决)、ADR-0032、ADR-0089 D3b、#4953(相邻非重复)。