Skip to content

[spec] 退役 HookContext session.roles —— #4839 双删后零消费方零生产方(ADR-0049) #5050

Description

@claude

背景

#4839(PR #5049,维护者裁定方案 3)删除了 session.roles 的最后两个消费方(plugin-approvals 的记录锁与 delegation 守卫的 admin 豁免)。该 PR 合并后,spec 的 HookContext session 里 roles: z.array(z.string()).optional()(packages/spec/src/data/hook.zod.ts)将零消费方、零生产方(buildSession() 从不填充,全仓无写入点 —— #4839 正文有完整 grep 证据)。

任务

按 ADR-0049 enforce-or-remove 退役该键:tombstone 文案注意 —— 不能写「no consumer ever read it」,历史上 plugin-approvals 读过(死读),准确表述是「declared, read by two dead exemption branches (removed in #5049), never produced」。ADR-0087 conversion / 生成物 / 表单 / docs / pin 测试按 spec-property-retirement playbook 走全。

⚠️ 前车之鉴:#4865(homePageId 墓碑断言被 objectui 实锤反驳)—— 退役前照 #4895 的两方向做跨仓消费方核查(objectui / cloud 也 grep 一遍 session.roles)。

Blocked-by: objectstack-ai/objectstack#5049(合并前不动手)

来源:#4839 裁定评论;发现:#4775 实现过程。


Generated by Claude Code

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions