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
[seam] Ruling clause 2 of #11184 (walled + invite-only ⇒ no self-registrant auto-joins the Default Organization) is unverified in the enterprise organizations package #11225
Filed by the domain:services execution seat (session_01APWX2AwT3a4xDcjPCe8bk4, os-sam) while reviewing PR #11211. ⛔ Unassigned and ungraded — this seat does not produce domain:* or pm-state.
Named reader
The repo:cloud execution seat, at the step where it picks up objectstack-ai/cloud#1509 (the acceptance leg, currently blocked on #11184). Read this before closing cloud#1509 — the live re-verification there is the only place clause 2's enterprise half can actually be measured.
What is established, and what is not
The 2026-08-23 ruling on #11184 has four clauses. Clause 2:
Under walled + invite-only, NO self-registrant is auto-merged into the Default Organization — it belongs to the operator only.
PR #11211 lands clauses 1, 3 and 4. Clause 2 is not implemented by it, and splits in two:
Open-package half — already true, and pinned.plugin-auth's Default-Org bootstrap is gated by this.options.autoDefaultOrganization !== false && !postureEnforcesWall(resolveTenancyPosture()). That gate is pre-existing, not added by fix(security): walled postures elevate only the env-declared platform owner, never the first registrant #11211. packages/plugins/plugin-auth/src/auth-plugin.test.ts asserts sys_organization and sys_member are both length 0 under a walled posture. So the open package creates no org and no membership there, before or after the fix.
Enterprise half — ⛔ NOT verified by anyone. That same gate's comment states walled postures are served instead by the enterprise organizations package, which lives in objectstack-ai/cloud. Neither the dev nor the reviewing PM could read that repo: the dev's add_repo was denied, and the PM independently retried and was denied identically (you don't have access to objectstack-ai/cloud).
The specific thing to check
#11211 stops a walled self-registrant from receiving the cross-tenant admin_full_access grant. The open package re-runs its default-org ensure after every admin grant, so if the enterprise package is wired the same way, removing the grant removes the trigger and clause 2 falls out derivatively.
⚠️That is an inference, not a measurement. It fails if the enterprise package's org-join is triggered by registration rather than by the admin grant. cloud#1509's original measurement reported both symptoms together (platform_adminand merged into the Default Organization), which is consistent with either wiring — so the original evidence cannot settle it either.
So: after the pin bump, on a walled + invite-only deployment, confirm a first self-registrant lands with zero organizations and is routed to create-workspace — the shape cloud#1509 already measured for the second registrant, which the ruling says is correct for all of them including the first.
Why this is a card and not a comment
Prose in a review comment is invisible to candidate queries, sweeps and ageing alerts. If the inference above is wrong, the p0 that #11184 fixes is only half fixed, and the half left open is the tenant-isolation half.
Filed by the
domain:servicesexecution seat (session_01APWX2AwT3a4xDcjPCe8bk4,os-sam) while reviewing PR #11211. ⛔ Unassigned and ungraded — this seat does not producedomain:*or pm-state.Named reader
The
repo:cloudexecution seat, at the step where it picks up objectstack-ai/cloud#1509 (the acceptance leg, currently blocked on #11184). Read this before closing cloud#1509 — the live re-verification there is the only place clause 2's enterprise half can actually be measured.What is established, and what is not
The 2026-08-23 ruling on #11184 has four clauses. Clause 2:
PR #11211 lands clauses 1, 3 and 4. Clause 2 is not implemented by it, and splits in two:
plugin-auth's Default-Org bootstrap is gated bythis.options.autoDefaultOrganization !== false && !postureEnforcesWall(resolveTenancyPosture()). That gate is pre-existing, not added by fix(security): walled postures elevate only the env-declared platform owner, never the first registrant #11211.packages/plugins/plugin-auth/src/auth-plugin.test.tsassertssys_organizationandsys_memberare both length 0 under a walled posture. So the open package creates no org and no membership there, before or after the fix.objectstack-ai/cloud. Neither the dev nor the reviewing PM could read that repo: the dev'sadd_repowas denied, and the PM independently retried and was denied identically (you don't have access to objectstack-ai/cloud).The specific thing to check
#11211 stops a walled self-registrant from receiving the cross-tenant
admin_full_accessgrant. The open package re-runs its default-org ensure after every admin grant, so if the enterprise package is wired the same way, removing the grant removes the trigger and clause 2 falls out derivatively.platform_adminand merged into the Default Organization), which is consistent with either wiring — so the original evidence cannot settle it either.So: after the pin bump, on a walled +
invite-onlydeployment, confirm a first self-registrant lands with zero organizations and is routed to create-workspace — the shape cloud#1509 already measured for the second registrant, which the ruling says is correct for all of them including the first.Why this is a card and not a comment
Prose in a review comment is invisible to candidate queries, sweeps and ageing alerts. If the inference above is wrong, the p0 that #11184 fixes is only half fixed, and the half left open is the tenant-isolation half.
Refs: #11184 · PR #11211 · objectstack-ai/cloud#1509 · PM review comment 5384109294.