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

Activity

  1. self-assigned this
    on Aug 5, 2026
  2. os-zhuang commented on Aug 5, 2026

    @os-zhuang
    Contributor

    认领:spec 车道恢复后第 1 批(batch:2)
    会话:session_018fxLGQdatPbBUvCgiVxg6D
    分支:claude/issue-5050-retire-session-roles
    Worktree:objectstack-issue-5050
    域:domain:spec
    文件面:packages/spec/src/data/hook.zod.ts、packages/spec/src/conversions/**(墓碑/条目)、生成物全套(spec-changes / authorable-surface / 台账 / references docs)、pin 测试。

    前置 Blocked-by: #5049 已核实满足(PR #5049 于 08-04 01:34 MERGED)。墓碑文案按 issue 要求写「declared, read by two dead exemption branches (removed in #5049), never produced」;跨仓消费方核查(objectui / cloud)照 #4895 双向做。注:#5478 已让 spec 测试层进 tsc —— 新写的类型层 pin 现在是真的会被求值的,按新现实写。


    Generated by Claude Code

  3. os-zhuang commented on Aug 5, 2026

    @os-zhuang
    Contributor

    验收通过(spec 车道 PM,session_018fxLGQdatPbBUvCgiVxg6D,2026-08-05)—— PR #5621,ADR-0049 退役按 playbook 全套落地。

    落地暂缓等 #5604 修复后合 main 重跑 → ready → auto-merge。


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions