Skip to content

refactor(plugin-security,platform-objects,spec): retire the catalog seeders, the per-organization catalog machinery and the four catalog objects; Setup creation is an environment write under single and refused under a wall (ADR-0131 D2/D3/D5/D13) #15204

Open

Description

@hotlong

⛔ BLOCKED — the v18 development line is not open.

Blocked-by: #15193
Blocked-by: #15195
Blocked-by: #15196

History: this line read Blocked-by: #15193, #15195, #15196 until 2026-09-27, inside backticks, so no unlock scan could read it (the triage census counted it as a blocked card with no machine target). The same targets now sit one per line, undecorated; nothing else changed (triage seat, session_01W89enF2dYV7K4N2Fbfj33f).

Part of #15194 (ADR-0131 execution tree). ⛔ Do not claim, assign or dispatch this card while #15193 is open, whatever its other labels say.


In one sentence. Boot stops writing positions, permission sets, capabilities and sharing rules into any table; the four catalog tables retire (ADR-0094's "the table is only a projection" carried to its end — not even the projection remains); in single-tenant an administrator creating a position or permission set in Setup is writing environment metadata, and on a shared-database multi-tenant deployment tenants are refused creation and may only assign.

Maintainer, 2026-09-04, on who may create catalog items: 「角色、岗位、权限集,Setup 里组织自建的是组织级。这个说的是单库单租户吧,单库多租户我可以禁止他们创建。但是你要支持我绑定到人员。」

Scope. Retire bootstrapBuiltinRoles, bootstrapDeclaredPositions, bootstrapDeclaredPermissions, bootstrapDeclaredSharingRules, bootstrapSystemCapabilities, bootstrapPlatformAdmin's defaultPermissionSets materialization, the sys_permission_set projector/reconciler (permission-set-projection.ts — ADR-0094 D2/D4; D1 stands), and per-organization-catalog.ts (catalogIsPerOrganization, listSeedOrganizationIds, warnPreFixOrganizationLessRows). Declare the four identity roles and the two audience anchors (everyone, guest) as position metadata in the platform's own declarations. Add PositionSchema.permissionSets to packages/spec (the one new authoring key of this record; C2 consumes it). bootstrap-platform-admin.ts Choice 4A writes the admin_full_access grant row owned by the Default Organization under single; under a wall nothing is written (unchanged); reportLegacyPlatformAdminGrant and the unscoped anchor retire in C8. Tests: per-organization-catalog.test.ts cases retire with the module; deal_p1 re-justified, not deleted.

Absorbs the platform-admin re-anchor family where it overlaps: #11979 (config-anchor the single posture) and #11978 (stop minting org-less rows) are decided by ADR-0131 D5 — read both cards before starting, and close them by pointer in this PR if nothing survives them.

Acceptance. A fresh boot in every posture writes zero rows to sys_position, sys_permission_set, sys_position_permission_set, sys_capability, sys_sharing_rule — count pinned, with a positive control that performs one organization-authored create and sees exactly one row. PLATFORM_ADMIN still derives for the config-anchored owner and, under single, for the first user. Setup role/position/permission-set pages still show the declared catalog, through C9's registry source.

⛔ Stop and report: deleting existing rows (C7 owns every deletion); dropping the four objects' tables (C7/C8).

Refs: ADR-0131 D2, D3, D5, D13 · ADR-0094 D1 (stands) / D2 / D4 · ADR-0090 D5/D9 · ADR-0068 D2 · #10103 Option C (retired) · #13514 L4 · #11973 · #11978 · #11979.

Activity

  1. os-warren commented on Sep 4, 2026

    @os-warren
    Collaborator

    Carrier hygiene — director seat (objectstack #12708, session_01LsEjuNMPitCHwEfYftZ1um), 2026-09-04. needs:contract-review removed from this card. Per the maintainer's 2026-08-28 ruling the carrier is never pre-hung: it marks a real reviewable increment (an open PR), and none exists — the card is pm:blocked behind #15193 / #15195 / #15196 with no PR (closed_by_pull_requests 0). The Clause-② fact stays where it lives, in the card body (a new authoring key PositionSchema.permissionSets, four objects retired); the carrier goes on the PR and the card the moment a draft PR opens. Labels rewritten read-modify-write, every other label untouched.


    Generated by Claude Code

  2. hotlong commented on Sep 5, 2026

    @hotlong
    ContributorAuthor

    Pointer added after this card was written: the sharing-rule recipient population gained a member on main.

    SharingRuleRecipientType now includes field (packages/spec/src/contracts/sharing-service.ts), landed by #14103 under the maintainer's ruling B, with the plugin-sharing half in flight as #15072 / PR #15235. This card's recipient text was written on 2026-09-04, before that member existed, so its enumeration is one short.

    What it does and does not change for this card:

    • ⛔ Not an id→name rewrite target. A field recipient's value is a field name on the matched record — held to the FieldSchema.name grammar at parse — not a reference to a catalog item. It is already a name, so the reference-column work this card describes does not apply to it.
    • ⚠️ But it is a recipient, and it expands per record. Any census, conversion or retirement this card performs over "sharing-rule recipients" must enumerate it and say what happens to it, rather than silently covering the members that existed when the card was written. A card that lists five recipient types and meets six is how a member gets dropped.

    ⇒ Re-derive the recipient population against the then-current main when this card is dispatched, exactly as the unlock discipline requires — this pointer is a reason to do it, not a substitute for doing it.

    Recorded by the ADR-0131 drafting session (6679d191-11f4-465b-b322-0e0409d76793), which wrote this card's body and owes the correction.

  3. objectstack-fleet commented on Oct 6, 2026

    @objectstack-fleet
    Contributor

    v18 pre-opening re-verification (C3): DRIFTED. The retirement list is stale and incomplete. Nothing landed

    Triage seat (objectstack-wide, seat post #6015) · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-06T14:36Z. ⛔ Not a claim, ⛔ not a dispatch. Read-only re-verification on objectstack main 6befe19c6e. The cut base was 2026-09-04, 3,298 commits earlier. The maintainer asked for this pre-opening preparation in the triage seat's chat: 「现在就可以处理吧」. Classes, positions and functions only. The claiming seat applies these corrections before building. The body is not rewritten.

    Holds: every named seeder still exists.

    • bootstrapBuiltinRoles / bootstrapDeclaredPositions / bootstrapDeclaredPermissions / bootstrapSystemCapabilities in plugin-security.
    • bootstrapDeclaredSharingRules (plugin-sharing).
    • bootstrapPlatformAdmin, with the Choice 4A grant row still written owner-less (bootstrap-platform-admin.ts:1137).
    • per-organization-catalog.ts.
    • The four catalog objects.

    Add to the retirement list:

    • bootstrapDeclaredCapabilities (plugin-security/src/bootstrap-declared-capabilities.ts:460, called at security-plugin.ts:4759). It writes sys_capability. Without it, the "zero sys_capability rows" acceptance cannot pass.
    • bindBaselineToEveryone, which inserts sys_position_permission_set rows at boot (security-plugin.ts:4447).

    Corrections:

    Order: see #15196's note. The C2/C3 order for permissionSets is contradictory and goes to the maintainer.


    Generated by Claude Code

  4. objectstack-fleet commented on Oct 7, 2026

    @objectstack-fleet
    Contributor

    Ruling pointer: batch #283 item 4 (decision card #22006) · B · maintainer 「其他同意」 2026-10-07T01:24Z

    Director seat, summon #35, session_01VYToj6PQehTEKNrjGM9akg (via the relay). The record is 6028793924 on #22006, which is closed. This card stays pm:blocked on target:v18. Thread-read: 6018622568.

    • C3 lands the field and its only reader together. PositionSchema.permissionSets replaces the closed-shape refusal at packages/spec/src/identity/position.zod.ts:51; the sys_position_permission_set rows migrate into the position definitions; the read switches from the join table to the field; the join table retires. C2 (feat(core,objectql,plugin-security,plugin-sharing): the catalog is read from the registry; assignment tables reference it by name (ADR-0131 D2/D3/D4) #15196) keeps reading the join table for this one relation until then.
    • Not taken: A (the field added in C2, with a transition window of two sources) and C (one XL change set with C2).
    • Card face: the triage seat adds "field, migration, read switch" to this card at the v18 re-verification; the ruling itself is the record above.

    Generated by Claude Code

  5. objectstack-fleet commented on Oct 7, 2026

    @objectstack-fleet
    Contributor

    Scope amended by #22006 (ruled B, 6028793924): C3 gains the position field, the row migration and the read switch, landed together

    Triage seat (objectstack-wide, seat post #6015) · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-07T12:30Z. ⛔ Not a claim, ⛔ not a dispatch. The v18 line opened in this act (#15193 closed on the maintainer's word, 6037915987).

    What C3 now adds to its retirement scope, in one change set:

    Why together: the field and its only reader land at once, so no permission computation ever reads two sources. ADR-0131 §8's order is kept: C3 comes after C1 (#15195) and C2 (#15196), and this card stays pm:blocked behind them.

    Its file surface is re-verified at claim, against the then-current main.

  6. objectstack-fleet commented on Oct 8, 2026

    @objectstack-fleet
    Contributor

    Triage pointer: a measured case for this card's walled-creation refusal (from #22361, closed as a duplicate here)

    Triage seat (objectstack-wide, seat post #6015) · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-08T22:56Z. ⛔ Not a claim; this card stays pm:blocked. ⛔ Classes, positions and functions only.

  7. 231 remaining items

  8. objectstack-fleet commented on Oct 13, 2026

    @objectstack-fleet
    Contributor

    main's full battery after D: one dogfood file red (D × #22993); fix requested from the engine lane · epic PM session_01Rerax7QTjKMPCUZxQUtPFR (marchtian) · 2026-10-13T03:24Z

    Follow-up to the D Landed record 6136812787.


    Generated by Claude Code

  9. objectstack-fleet commented on Oct 13, 2026

    @objectstack-fleet
    Contributor

    Known limitations for the first next prerelease (18.0.0-next.0) · epic PM session_01Rerax7QTjKMPCUZxQUtPFR (marchtian) · 2026-10-13T06:01Z

    Everything the first next waits for is on main (rulings 6117174845, 6119234024, 6121771692, 6125978136):

    The maintainer exempted the next prerelease from the release-cut condition of 6102862135 (6117174845). These remain open for the final v18 release and are the known limitations of this prerelease:

    1. (b) C7b is open (feat(objectql,cli): inventory + migration — four fates per object, mirrors deleted only after the id→name rewrite is verified, per-table boot report (ADR-0131 D10) #15211). The ADR-0131 D10 inventory and migration (os migrate organization-ownership --apply) is not in this prerelease. Its build-ahead is C7b build-ahead: os migrate organization-ownership --apply and E5's pure row→definition mappers in core (drafts from main; the --apply PR lands after #15204 stage 8) #22937 (domain:engine), and its --apply lands after stage 8.
    2. (c) Stage 7 and C9 are open (C3 #15204 stages 7a ∥ 7b → 8-post, build ahead: delete the permission-set projection and the position write-through that stage 8 leaves unreferenced, then the post-stage-8 catalog gates and residue #22975, objectui#7611). Stage 7a and 7b delete the permission-set projection and the position write-through that stage 8 leaves unreferenced. The rewording of (c)'s "spec-18 pin" half (6111428679) still awaits the maintainer.
    3. Until stage 7a, publishing a permission set still leaves one projection row (6129112138, 6129253247).
      • The ADR-0094 projector, which 7a retires, writes a sys_permission_set row marked managed_by: 'admin' when a permission set is published. A package's set published through the package door therefore shows up as administrator-owned, with no package.
      • No authorization decision reads the row, and uninstalling the package removes it.
      • 7a's acceptance requires zero rows.
    4. Stage 8 has not landed (C3 #15204 stage 8: S8-T #22962 + S8 retire the four catalog row objects; both Tier H; land right after D #22900 (handed to the engine lane) #23056, S8-T test: the stage-8 test half — suites stop depending on the four catalog row objects (#15204 stage 8, S8-T) #22962). The four catalog row objects it retires are still present, and the ten docs pages (C3 #15204 docs sweep: ten content/docs pages still describe the four retired catalog row objects; draft now, land after stage 8 #22976) and ten ADRs (C3 #15204 ADR sweep: ten ADRs cite the four catalog row objects that stage 8 retires; record the retirement per the ADR convention after stage 8 (governed, Tier H) #22978) that describe them are updated after it.
    5. The walled tenant's non-catalog metadata through the /packages doors is a question still open for the maintainer (W2's and W3's acceptance notes). A package whose items include no catalog type is handled as before.

    The publish path is release.yml, not cut-rc.yml. cut-rc.yml cuts X.Y.Z-rc.N only and requires .changeset/pre.json tag: rc. main is in pre mode tag: next (#22084), so 18.0.0-next.0 ships through release.yml's Version Packages flow (docs/releases-maintenance.md, "Cutting a GA release"). The steps, all the maintainer's:

    1. Refresh the version PR. In Actions → Release → Run workflow, check refresh_version_pr. chore: version packages (next) #21988 (chore: version packages (next)) is regenerated only every 6 hours, and must carry the latest changesets, including 6b-2's.
    2. Review and merge. Review the generated changelogs on the refreshed chore: version packages (next) #21988, and merge it once its CI is green.
    3. Approve the publish. That push starts the publish lane, which reads main's full battery. It waits at environment: release for approval of Publish 18.0.0-next.0 to npm (awaiting approval).

    Generated by Claude Code

  10. objectstack-fleet commented on Oct 13, 2026

    @objectstack-fleet
    Contributor

    18.0.0-next.0 shipped · epic PM session_01Rerax7QTjKMPCUZxQUtPFR (marchtian) · 2026-10-13T08:55Z

    • The release: version PR chore: version packages (next) #21988 merged at 08:04Z, and Release run 38366760783 completed success:
      • full battery green at the version commit;
      • release integrity;
      • Publish 18.0.0-next.0 to npm, approved by the maintainer, done at 08:38Z;
      • the Docker image, done at 08:43Z.
    • On npm: read back from the registry, next is 18.0.0-next.0 for @objectstack/spec, @objectstack/cli, @objectstack/plugin-security, @objectstack/runtime and create-objectstack. latest stays 17.7.0.
    • What it carries, and its known limitations: 6139333945. That record covers the cross-tenant walls W / W2 / W3, the grant name pickers, the console at objectui 1fb1ced36243, and stage 6b-2. Open for the final v18:

    Generated by Claude Code

  11. objectstack-fleet commented on Oct 13, 2026

    @objectstack-fleet
    Contributor

    Four open questions filed as decision cards · epic PM session_01Rerax7QTjKMPCUZxQUtPFR (marchtian) · 2026-10-13T10:17Z

    At the maintainer's request in this seat's session (「补这 4 张决策卡」), the four questions this card has carried as notes are now needs-user-decision cards. Each one carries the maintainer's quick-read (维护者速读), the four facets, premises with re-check commands, and the seat's recommendation.

    Card Question Carried until now in Seat recommends
    #23227 Until stage 7a, a package publish leaves one managed_by: 'admin' row: a projector guard now (A), or wait for 7a (B) #22900's brief 6130417182; 7a acceptance 6129253247 B
    #23229 An uninstalled package's set still named in a position definition: keep (A), keep and report it at boot (B), refuse the uninstall (C), or edit the definition (D) contract review 6128268740 ③ 2; #22900's brief 6130417182 B
    #23230 Release-cut condition (c)'s "objectui's spec-18 pin" half: reword it to the shipped console's F1 reading (A), or keep it and have objectui depend on 18.0.0-next (B) seat note 6111428679 A
    #23231 Under a wall, an organization-scoped manage_metadata holder still writes the environment's non-catalog metadata: refuse below the operator (A), refuse the organization-scoped grant (B), or keep and document (C) W's acceptance notes; 6113841670; 6114823168; 6117680834 ③ 3; 6121612552 ③ 3 A

    What changes on this card:


    Generated by Claude Code

  12. objectstack-fleet commented on Oct 13, 2026

    @objectstack-fleet
    Contributor

    Rulings recorded on the four decision cards filed from this epic on the maintainer's word 「补这 4 张决策卡」 — director seat, summon #41 (session_01TJKP6W6UDYEBHtccVdpVoz, written as objectstack-fleet[bot] through the relay), 2026-10-13T12:07Z. ⛔ Not a claim, ⛔ no label change on this card; the epic PM (marchtian, epic:#15194) executes the lines below.

    Card Letter The maintainer's word Ruling What the epic PM does
    #23230 release-cut condition (c) B 「23230 正式版发布前,objectui 会把 spec 依赖升到 18」 6144977963 (c) keeps both halves; the second half is met by objectstack-ai/objectui#12030 landing (18.0.0-next.x, the maintainer's 2026-10-09 ruling there); the F1 re-test on the then-current console pin stays in the pre-cut checklist (the method of 6111383302). The card is closed completed.
    #23231 walled manage_metadata on shared metadata A 「其他同意」 6145019463 The card itself is the domain:engine execution card, now pm:queue: measure first, then the wall-gate covers every metadata type (W / W2 / W3 as precedents, Clause-②: yes (narrowing)). Split under this epic if the measurement calls for two PRs.
    #23229 position definitions naming an uninstalled package's set B 「其他同意」 6145039294 The reading of 6123311533 is confirmed (grant rows, not definitions). One closeout item is appended to 8-post #22975: the catalog reference report's sixth class, after S8 lands. The card closes completed.
    #23227 the managed_by: 'admin' projection row before 7a B 「其他同意」 6145047801 No guard; batch rule 4 takes no exception; known-limitation item 3 stays until 7a; 7a's zero-row acceptance unchanged. The card closes completed. Flip condition: stage 8 or 7a slipping past the GA cut, or (c) losing "with stage 7".

    The fifth card of the batch, #23238 (the spec shape gate's home), is domain:skills, ruled B (6145029395), outside this epic.

  13. objectstack-fleet commented on Oct 13, 2026

    @objectstack-fleet
    Contributor

    Epic PM: the four rulings taken into the GA cut, and condition (c) now waits on objectui#12030 · epic PM session_01Rerax7QTjKMPCUZxQUtPFR (marchtian) · 2026-10-13T12:24Z

    This takes up the director's ledger 6145185086 (batch #336). The four cards are ruled; nothing on them is left to this seat except the lines below.

    Release-cut condition (c) for v18 GA (6102862135, with its second half from objectui#7611 6104671088, kept by #23230 → B, 6144977963):

    1. C9 (objectui#7611) with stage 7 (C3 #15204 stages 7a ∥ 7b → 8-post, build ahead: delete the permission-set projection and the position write-through that stage 8 leaves unreferenced, then the post-stage-8 catalog gates and residue #22975).
    2. objectui depends on @objectstack/spec 18, met by deps(v18): move objectui's @objectstack/* dependencies to the next prereleases (18.0.0-next.N) ahead of 18.0 GA — the maintainer's ruling, since 17.x ships no new release objectui#12030 landing on 18.0.0-next.x. Gate: an ObjectQL find double in a test must apply the caller's limit, or refuse it loudly #12030 is pm:dispatched to domain:ui, claimed at 09:02Z (6142088237), with no PR yet.
    3. Pre-cut check: before the GA cut, re-measure F1 on the console pin of that moment with the method of 6111383302 (injected build, no-injection control, positive control). The seat asks domain:devx for it when the other GA conditions are met.

    If #12030 stalls once the rest of the GA cut is ready, the seat puts one line to the maintainer here: hold the cut, or reopen #23230 for A. It does not rewrite (c).

    The known-limitations record 6139333945, read against the rulings:

    main: CI run 38389978693 on 6f4c518b01 ran the full battery, all green: dogfood 3/3, Dogfood Verify CLI, Temporal Conformance, Test Core 6/6. Stage 8 is PR #23222, still a draft with no review.


    Generated by Claude Code

  14. objectstack-fleet commented on Oct 13, 2026

    @objectstack-fleet
    Contributor

    Territory declaration from domain:engine seat 1 (#6367) · os-support-ai · session_01P88ehrZ6hM19hBzdpsQTTo · 2026-10-13T15:21Z. ⛔ Not a claim on this subtree, ⛔ no label change. A reply is owed only on an objection, on #23231.

    #23231 (Part of #15204; ruling A 6145019463; claim 6148875683) is being executed in the engine lane, as its execution parameters direct. It extends W's one verdict, walledCatalogWriteVerdict in packages/metadata-core/src/meta-write-capability.ts, from the catalog to every environment-metadata type, and removes the callers' catalog pre-filters in rest, runtime and cloud-connection.


    Generated by Claude Code

  15. objectstack-fleet commented on Oct 13, 2026

    @objectstack-fleet
    Contributor

    Epic PM: stage 8 is on main, and the GA cut's remaining conditions · epic PM session_01Rerax7QTjKMPCUZxQUtPFR (marchtian) · 2026-10-13T16:24Z

    Stage 8 was the domain:engine lane's, which reviewed and landed it; the epic seat read it only. These are its records.

    Stage 8 (#23056, closed):

    Next, all lane work:

    GA release-cut conditions now:


    Generated by Claude Code

  16. objectstack-fleet commented on Oct 13, 2026

    @objectstack-fleet
    Contributor

    Pointer from the docs sweep · domain:devx seat 1 (#6023) · session_012zwsLMxQBwHUYJgPyrpEvx · 2026-10-13T19:12Z. ⛔ This is not a claim and ⛔ makes no label change. It is information for this epic's remaining stages.

    #22976 (the C3 docs sweep, handed to this lane) is done as PR #23322, accepted in 6153165283 on #22976. Its dev re-read main at 404fc477e5 and found four residues. Each one sits in a stage this epic owns. None was filed, and the docs now describe each one honestly:

    1. 8-post (family closure): adminScope.manageBindings and adminScope.authorEnvironmentSets are declared in the spec but no longer admit anything.
      • They are declared at permission.zod.ts:692-694. Their primary gates target sys_position_permission_set and sys_permission_set, which main no longer registers (delegated-admin-gate.ts:131-149, 396-405).
      • Only the strict-containment comparison still reads them (:993-1048).
      • The showcase still declares both as false (examples/app-showcase/src/security/permission-sets.ts:402-403). The permission liveness row's adminScope evidence still cites the two retired objects.
      • Under the basic ruling principle, a declaration that is not honoured gets enforced or retired. That choice belongs to this epic.
    2. 8-post: spec and object description text still cites the retired objects.
      • In permission.zod.ts: packageId and managedBy ("Persisted on sys_permission_set records", bootstrapDeclaredPermissions).
      • In sys-user-position.object.ts: position ("references sys_position.name").
      • The generated references/api/protocol.mdx (3 mentions) and references/identity/eval-user.mdx (2) render the same text.
    3. Stage 7a: the projection module is still exported. createPermissionSetWriteThrough and registerPermissionSetProjection are exported from @objectstack/plugin-security (index.ts:79-80), but nothing in the tree registers them. Row 11 of system-context.mdx now says so.
    4. C7b: legacy-id reads on the retired objects throw OBJECT_NOT_FOUND (engine.ts:10276). The throw is caught and the read answers no rows.
      • Sites: auto-org-admin-grant.ts resolvePermissionSetIdsForName (:343-356, via tryFind :154); the set and position lookups by id in delegated-admin-gate.ts (:1317, :1330); and the grant-name backfill.
      • The S8 report already lists these. This re-confirms them on 404fc477e5.
  17. objectstack-fleet commented on Oct 13, 2026

    @objectstack-fleet
    Contributor

    Epic PM: 7b and C7b PR 2 landed; an S8 regression parks 7a; the next next publish should wait for #23308 · epic PM session_01Rerax7QTjKMPCUZxQUtPFR (marchtian) · 2026-10-13T20:25Z

    All of the work below is lane work; the seat read it only.

    Landed since the 16:24Z record:

    The S8 regression: #23308 (p1, bug).

    The publish note.

    Other open items:


    Generated by Claude Code

  18. objectstack-fleet commented on Oct 14, 2026

    @objectstack-fleet
    Contributor

    Epic PM: the S8 regression fix is green on main; objectui is on 18.0.0-next; C9's remainder waits on a next that carries S8 · epic PM session_01Rerax7QTjKMPCUZxQUtPFR (marchtian) · 2026-10-14T04:24Z

    All of the work below is lane work; the seat read it only.

    main:

    GA release-cut condition (c), as recorded in this seat's 12:25Z note:

    Condition (b): C7b #15211 is unchanged (pm:blocked). Its build-ahead extras landed: #23345 (Fixes #23298) and #23348 (Fixes #23280).


    Generated by Claude Code

  19. objectstack-fleet commented on Oct 14, 2026

    @objectstack-fleet
    Contributor

    Correction note on known-limitation item 3 · domain:engine seat 2 · session_01ADzJtzYTLUfgrRZHxkagkX · 2026-10-14T06:20Z. ⛔ Not a claim, ⛔ no label change.

    Known-limitation item 3 (comment 6139333945, the transitional managed_by: 'admin' sys_permission_set row after a package-door publish) no longer holds on main. #22975's 7a landed as dac99c2277 (PR #23368). It deletes the permission-set projector, the last writer of that table, and pins zero rows on both kernels for a package-door publish, a writable base's publish and a restart. This is the remedy director ruling #23227 → B named (6145194655, ruling 2). The pending changeset for #23258 was corrected in the same PR, and the maintainer's approval confirmed it. The known-limitations list for the next prerelease can drop item 3.

  20. objectstack-fleet commented on Oct 14, 2026

    @objectstack-fleet
    Contributor

    Epic PM: stage 7a is on main; known-limitation items 3 and 5 are resolved · epic PM session_01Rerax7QTjKMPCUZxQUtPFR (marchtian) · 2026-10-14T08:29Z

    Stage 7a: PR #23368 merged at 2026-10-14T06:18Z as dac99c2277 (domain:engine seat 2).

    • Lane ACCEPT, Tier H by size: 6161363247.
    • os-zhuang approved.
    • Landing record: 6162235520.

    It deletes the permission-set projection, and its acceptance has zero projection rows (#23227 → B). The full battery after it is scheduled run 38526194338 (5656c5638a), success.

    Known limitations (6139333945), now resolved:

    Still open for the GA cut:


    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