You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[Decision] two rulings point opposite ways on requiredPermissions for the record blocks: the spec declares it (objectstack#18159) vs. the renderer stops reading it (objectui#10200) #10281
Filing-gate category: ② a decision only the maintainer can make (two of the maintainer's own rulings conflict). Reader: the maintainer; after the ruling, the domain:ui seat that holds PR objectui#10279 and the domain:spec seat that holds PR objectstack-ai/objectstack#19913.
Filed by the domain:ui#4 execution seat (session_01BP8CMtACxTdLjqR6rhd33C) while implementing objectui#10200.
objectui#10200 的裁决 5815200174 原话:「requiredPermissions: the protocol deliberately does not declare it on record:details, so the renderer stops reading it there … If the spec later declares it under ADR-0066, the renderer reads it then, following the contract.」
objectstack#18159:标签 pm:dispatched · domain:spec · priority:p2。PR objectstack#19913 标题原话:「feat(spec): declare requiredPermissions on record:details / highlights / related_list with one true describe …」,draft,open。
objectstack origin/main 上的协议现状(座位读于 2026-09-24):packages/spec/src/ui/component.zod.ts 的 RecordDetailsProps 族 docblock 写着 「requiredPermissions — is deliberately NOT declared here」,而 record:quick_actions 声明了它。
Ruled: 5823922380 · letter A · 2026-09-24T23:24Z
Filing-gate category: ② a decision only the maintainer can make (two of the maintainer's own rulings conflict). Reader: the maintainer; after the ruling, the
domain:uiseat that holds PR objectui#10279 and thedomain:specseat that holds PR objectstack-ai/objectstack#19913.Filed by the
domain:ui#4execution seat (session_01BP8CMtACxTdLjqR6rhd33C) while implementing objectui#10200.维护者速读
改了什么
暂时什么都没改,只是暂停一处落地。
objectui#10279 已按 objectui#10200 的裁决写好:
record:details不再读requiredPermissions。本卡落卡同时,座位不给它挂 auto-merge,留出异议窗口。为什么改
你的两条裁决方向相反:
record:details/record:highlights/record:related_list三个记录块声明requiredPermissions。协议 PR objectstack#19913 自 9-23 起是开着的草稿。record:details上停止读取它。objectui#10200 的裁决原话预见了「协议以后若声明,渲染器届时再读」,但没有提到这条声明裁决已经存在、而且正在执行。两条都照做,就是先删掉这道闸,等协议发版后再加回来:白干一轮,中间还有一段没有闸的窗口。
风险与代价(含回滚)
inputs上补声明。record:highlights/record:related_list)随后也停读,各需一张卡。席位意见
荐 A,回退 B。理由见下方四轴。
你要做的
回一个字母:A 或 B。
背景与 Governing text
5815200174原话:「requiredPermissions: the protocol deliberately does not declare it onrecord:details, so the renderer stops reading it there … If the spec later declares it under ADR-0066, the renderer reads it then, following the contract.」pm:dispatched·domain:spec·priority:p2。PR objectstack#19913 标题原话:「feat(spec): declare requiredPermissions on record:details / highlights / related_list with one true describe …」,draft,open。origin/main上的协议现状(座位读于 2026-09-24):packages/spec/src/ui/component.zod.ts的RecordDetailsProps族 docblock 写着 「requiredPermissions— is deliberately NOT declared here」,而record:quick_actions声明了它。inputs上声明该键。选项 × 真实代价
inputs声明业务含义直译:A = 「页面上的每个区块都可以挂一把能力锁,而且锁的写法写进了合同」;B = 「区块不挂锁,门禁只在数据层」。
四轴
action、app、field、bulkAction和record:quick_actions;A 让记录块与这个家族一致,并且写进合同(contract-first)。record:quick_actions成为唯一带能力闸的块,形成一个特例。os-decision-facets
record:quick_actions成为唯一带闸的块(保留特例)。Prior rulings read:
requiredPermissions·record:details·capability→ 11 hits via REST scan of the 1000 most recently updated objectui items (objectui#10200, objectui#10224, objectui#10155 closed, objectui#9965 closed, …); ADR-0066; thread: objectui5815200174, objectstack#18159 (ruling batch Fix null/undefined handling in ObjectGrid column normalization #197 item 2)推荐:A(回退 B)。只看①选 A;②③④ 是否翻转:否(零拉动只影响时序:A 下无需任何 objectui 改动,协议落地后再补
inputs)。置信缺口:座位没有读到 objectstack#18159 裁决原文的四轴分析,只看到了它的选项字母和 PR 标题;如果当时的理由里有「记录块不应带能力闸」的判断,①的读数要重看。
裁后执行
record:highlights/record:related_list各立一张停读卡,继承本裁决。Dedupe words:
requiredPermissions record blocks conflicting rulings·declare vs stop reading requiredPermissions·objectstack#18159 objectui#10200 conflictGenerated by Claude Code