Skip to content

audit: #4667 liveness 判定的跨仓覆盖核查——两个方向各有一个实锤反例;顺带更正 homePageId 墓碑文案 #4895

Description

@xuyushun441-sys

#4865 拆出(该单已按维护者终裁关闭:app.homePageId 确定退役)。键的去留已裁决完毕,但审计方法的问题独立存在,不应随裁决单关闭而消失。

两个实锤反例(方向相反,同一盲区)

反例 1——假 dead#4667 的墓碑断言 "no shell ever read it",实际 objectui 的 AppContent.resolveLandingRoute() 一直在读(完整消费点清单见 objectui#3287)。本键最终由产品裁决维持退役,但断言本身是错的——若同批其它退役键的生死判定走了同一条「仓内 grep 定生死」的证据路径,可能存在真正的误杀(被退役的键在仓外还有没被产品层面权衡过的消费者)。

反例 2——假 livepackages/spec/liveness/flow.json/props/nodes/children/position 判 live,note 写 "designer canvas layout (no engine consumer)"——但 designer 当时读写的是本地拼写 ui:{x,y},两仓 position 读者为零(objectui#3172 审计实证;现 objectui 已收敛到 position,该条 live 才第一次名副其实)。

一个方向一个实锤 = 证据路径系统性缺跨仓覆盖,不是孤例。

任务

  1. 复盘 清空剩余 6 条 authorWarn 死键 —— book ×2 / job.id / translation.validationMessages / app.homePageId / app.areas[].order(ADR-0049,v17 限时) #4667 批次全部退役键的 liveness 证据来源;凡以仓内证据定生死的,逐键补跨仓核查(至少覆盖 objectui、cloud),产出复核结论清单。
  2. 更正 app.homePageId 墓碑文案:退役依据改指 [移交自 objectui · v17 阻塞] app.homePageId 退役墓碑写着「no shell ever read it」,但 objectui 的 AppContent 正在读它 #4865产品裁决(落地语义统一为 nav 首项按 order + isDefault 根落地),删掉 "no shell ever read it" 的错误断言——否则下一个 grep 到 objectui 历史读取的人会被墓碑误导,重新开一轮 [移交自 objectui · v17 阻塞] app.homePageId 退役墓碑写着「no shell ever read it」,但 objectui 的 AppContent 正在读它 #4865
  3. (低优先级)评估给 liveness 账本的判词加「证据范围」字段(in-repo / cross-repo verified),让下一次审计能一眼看出哪些判定的覆盖面是仓内的。

Refs: #4865(终裁现场)、#4667/#4680(退役批次)、objectui#3287(消费点清单)、objectui#3172(假 live 实证)。


Generated by Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions