Skip to content

[decision] after #22307 a cold boot refuses any environment row over a package-held permission set or position, so the 2026-08-24 legacy-overlay remedies (boot overlay reading, drift overlay_shadow, Discard Overlay) find nothing on v18: keep or retire? #22371

Closed

Description

@objectstack-fleet

Ruled: 6074838935 · letter B (item 1 of A′: Q1 B · Q2 i) · 2026-10-09T05:21Z
Ruled: 6073500921 · letter A′ · 2026-10-09T03:14Z

Filing gate: ② a decision only the maintainer can make. The 2026-08-24 packaged permission-set lock ruling created three remedies for legacy overlays. #22307 (ruled A by the maintainer, 6063176077; PR #22365) makes them unreachable on the v18 line for code-package sets, which the ruling's stated cost implies but does not name. Retiring ruled machinery is the maintainer's call. Carried from the contract review 6070947709 on PR #22365 and the dev report on #22307 (6070693740). Filed by domain:engine seat 1 (seat post #6367) · session_01EUBvqtauTDmHi2ZgY759p2. ⛔ Not graded or routed here; ⛔ not a claim.

Who acts on it: the maintainer answers one letter; triage grades it; the domain:engine seat (or domain:services, where the remedies live in plugin-security) carries it out. PR #22365 does not wait for it.

维护者速读

一句话问题

升级后永远找不到对象的补救工具,留着还是撤掉?

Background (from #22307's dev report and the contract review)

Governing text

选项 × 真实代价

选项 做什么 客户感受到的后果
A v18 撤掉三样补救里只为代码包权限集服务的分支;17.x 保留;发布说明写"升级前先丢弃覆盖" 升级路径清楚:17.x 上清理,v18 上不再有找不到对象的按钮和报告;代码更少
B 原样保留 什么也不坏,但 Setup 里留一个在 v18 上永远无事可做的按钮和两条永远为空的报告
C 新增一个离线 CLI 命令(如 os metadata discard-overlay),让升级后起不来的部署不用手写 SQL 也能清理 运维体验最好,但多一个公开命令(扩大公开面),只服务升级过渡期

业务含义直译:

  • A:搬家前清掉旧家具,新家不再留"清旧家具"的工具间。
  • B:新家里留着一间永远空着的工具间。
  • C:新家门口再放一台"进不了门也能清旧家具"的机器。

os-decision-facets

  • ① 项目长远合理性:两年后已无 17.x 遗留行,A 是终态(无无效机制);B 留永久死代码;C 为过渡期加永久公开面。
  • ② 实际业务拉动:从 17.x 升级、带锁前遗留覆盖行的部署;17.x 上的丢弃覆盖已覆盖它们(升级前)。升级后起不来的只能手写 SQL,C 才服务这部分,数量未测。
  • ③ 防 AI 犯错:A 让 v18 上不存在"按钮能点但永远无事可做"的误导;B 留误导面;C 多一个命令可误用。
  • ④ 创业阶段不扩散:A 删代码;B 不动;C 加命令(Clause-②: yes,转 spec/cli 车道)。

Prior rulings read: packaged permission-set lock 2026-08-24, overlay_shadow, Discard Overlay, #21860 → the 2026-08-24 ruling and #21860 (the remedies' pin); #22307 ruling A 6063176077; ADR-0049; thread: #22307 (6070693740), PR #22365 (6070947709).

推荐

A:v18 撤掉代码包分支,17.x 保留。

  • 终态句: 两年后,所有部署都已越过 v18,锁前遗留行不复存在。平台里不应有永远找不到对象的补救机制(ADR-0049)。主流平台在锁定类迁移里也这样做:在旧版本上提供清理工具和升级前检查,新版本不再携带。
  • 自检: 只看①选 A;②③④ 是否翻转:否(②只影响发布说明的措辞:必须写明"升级前清理")。
  • 回退: B(不动)。若实测发现升级后起不来的部署不少,再议 C。
  • 置信缺口:
    • 真实部署里还有多少锁前遗留覆盖行,测不到。
    • OS_METADATA_WRITABLE=position 在运行时造出的职位覆盖,是否仍需要一个运行时清理入口,未实测。

裁后执行

Dedupe: MCP search_issues, repo-scoped, open and closed: 「legacy overlay remedies Discard Overlay overlay_shadow packaged permission set lock retire unreachable」 → 11 results, all closed. The nearest:

None asks whether the remedies stay after the cold-boot refusal.

Dedupe words: legacy overlay remedies unreachable v18 · Discard Overlay population boot refused · overlay_shadow code-package


Generated by Claude Code

Activity

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

Metadata

Metadata

Assignees

Labels

area:accessPermissions that actually hold — RLS/FLS, sharing model, write-path guardsdomain:specpriority:p2Medium: important, M3target:v18

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions