Skip to content

lint(devx): view/page 谓词(visibleWhen/visibleOn 等)的裸标识符构建期静态校验 —— #5149 裁决拆单 #6128

Description

@hotlong

#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(相邻非重复)。

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions