Repository navigation
docs(adr): ADR-0131 D6 charts sharing_rule under regime C; D7 ledger reading and lines for #24377 and #24435; D14 records the 18.0 scope - #24422
Conversation
…7 reads the activation ledger one way (ruling B′) Two dated notes, no ruled sentence rewritten: - D6: sharing_rule under regime O — a same-name sys_sharing_rule row in its scope replaces the declared rule whole, active: false is the switch-off, the ceremony deletes only uncustomised mirrors; the guard and the immediate reconcile named. - D7: the "reverted before 17.3" clause is a pre-reversal remnant; the record and the code read sys_metadata_activation as the kept, tenant-less activation ledger (D6, D13, D14, C0). Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TvNEqnkE9Lfbp3N2zvaqHQ
…ttings audit's global rung (ruling Q2 A, Q4 A) Three dated notes under D7, each citing ruling of record 6257510973: identity mail goes to a deployment-level sibling of sys_email while tenant mail stays stamped; sys_secret has no organization column and follows its referencing row; sys_setting_audit's global rung moves to a deployment-level sibling. Recorded as ruled, not as shipped. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TvNEqnkE9Lfbp3N2zvaqHQ
Contract reviewServed-tier: Rendered by an isolated at-tier reviewer subagent of the adopting seat ( ① Derived judgmentsThe diff is one file, +44/−0, a pure insertion of five dated blockquote notes; no existing line is changed, so no ruled sentence is rewritten — the PR's claim holds. Each note copies the record's existing (a) The D6 note (head :434–:445) against B′ 6257388265 — right, no binding added, dropped or softened.
(b) The D7 activation-ledger note (head :515–:524) — within B′ item 1, a reading note, right.
(c) The three D7 notes (head :536–:554) against 6257510973 items 2 and 4 — right.
(d) Internal consistency, anchors and links — consistent; all resolve.
Check-runs on 2261458: 46, all ② Semver levelDocs-only edit of a governed ADR; no package path touched; nothing published from any released package. ③ Boundary flags
Implemented-by: VERDICT: PASS Maintainer, before merging (Tier H — your approval, your ready-for-review flip and your click; the PR is still a draft): read the five notes at head :434–:445, :515–:524 and :536–:554 — the one thing to weigh is the D6 note's per-organization overlay for |
|
Ruling-pointer · the merge hold stands until the D6 note is rewritten · #24378 re-ruled A at 6258883445 (batch #368 item 1, the maintainer's 「24378 同意 A」; supersedes B′) · director seat (summon #43 continuation 5, The D6 note in this PR charts |
…upersedes B′); D7 ledger note names sharing rules as a fifth reader The D6 note is rewritten from regime O to regime C per ruling of record 6258883445, which supersedes 6257388265: declared rules read-only and clonable, switch-off through a sys_metadata_activation row of type sharing_rule (deployment-level, operator-gated under a wall), customising by clone plus base-off, same-name shadowing retired, and the ceremony migrating customised copies. The D7 activation-ledger reading note gains sharing rules as a ruled, not-yet-shipped fifth reader. The three D7 lines for the identity-mail/secret/settings-audit ruling are unchanged. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TvNEqnkE9Lfbp3N2zvaqHQ
|
Pointer · epic PM Two rulings change it:
The three D7 lines for #24377 and the activation-ledger reading note stay as they are. Once the dev pushes, the seat re-runs the at-tier contract review on the new head and corrects this body. Then the PR goes back to the maintainer, who merges it (Tier H). |
|
Ruling-pointer · one more D7 line rides this PR · #24435 ruled Q1 A · Q2 A at 6259141885 (batch #368 item 2, the maintainer's 「同意」) · director seat (summon #43 continuation 5, With the D6 rewrite for #24378 (6258883445), this PR also carries one dated D7 note: |
… (ruling Q1 A on flow credentials)
One dated D7 note citing ruling of record 6259141885: sys_flow_credential
is to declare systemFields { tenant: false }, so it carries no
organization column; a credential's ownership follows its flow, which
is environment metadata (D2, D6). Recorded as ruled, not shipped.
Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TvNEqnkE9Lfbp3N2zvaqHQ
…s on single only; the upgrade path, walled postures and later C8 stages ship in 18.x One dated D14 note citing ruling records 6259608309 and 6259698357: 18.0 is fresh installs on the single posture, with the ownership migration and walled postures refused; stage 8b ships in 18.0; the upgrade path, walled postures, 8b-0d/8b-0e/8b-0g, 8c, 8d and 8e ship in 18.x. No ruled sentence or earlier note is changed. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TvNEqnkE9Lfbp3N2zvaqHQ
Contract reviewServed-tier: Rendered by an isolated at-tier reviewer subagent of the adopting seat ( ① Derived judgmentsThe diff. One file, +73/−0, five commits, a pure insertion of six blockquote notes and one D14 paragraph note; no existing line is changed, so no ruled sentence is rewritten — the PR's one claim that survives its stale body holds. The notes sit where the rulings and the amendments put them: D6 after the install-mode bullets (head :434–:446), D7 after its first paragraph (:516–:526), D7 after the writer-membership paragraph (:538–:562), D14 after the 2026-10-10 execution-plan note and before the section rule (:817–:836). The ADR on (a) The D6 note (:434–:446) against ruling A 6258883445 — faithful; nothing added, dropped or softened.
(b) The D7 activation-ledger reading note (:516–:526) — right as a reading, and the fifth reader is carried.
(c) The three #24377 D7 lines (:538–:556) — unchanged from the head that passed (6258201995), re-read against 6257510973 items 2 and 4: faithful. Identity-mail list is the ruling's five, no more; tenant mail NOT NULL with #11303 decision 2 at the producers; "⛔ Neither a nullable column nor unpersisted mail"; (d) The #24435 Q1 line (:558–:562) against 6259141885 item 1 — faithful. "The object is to declare (e) The D14 release-scope note (:817–:836) against 6259608309, 6259698357 and 6259899486. Form: the 2026-10-10 execution-plan note's exactly — bold dated header naming the records, the ⛔ "neither changes a decision of this record" sentence, a numbered list. Against the brief's checklist:
Internal consistency.
Check-runs on ② Semver levelDocs-only edit of a governed ADR; no package path; nothing published from any released package. The body is the B′ body and describes a head three rewrites old. Lines now false on
③ Boundary flags
Implemented-by: VERDICT: PASS Maintainer, before merging (Tier H — your approval on this head, your draft flip, your click): read the seven notes at head :434–:446, :516–:526, :538–:562 and :817–:836; the one fact to weigh is that PR #24428 landed the regime-C switch and refusals on |
Fixes #24420
Part of #24343
Part of #15212
Clause-②: no
What this changes
The PR adds seven dated notes to
docs/adr/0131-total-organization-ownership-no-null-organization-id.md(+73 / −0). It rewrites no ruled sentence.6258883445, items 1–4 (the maintainer's 「24378 同意 A」). Ruling A supersedes ruling B′ (6257388265).6257510973on [Decision] C8 under a wall: four framework writes that have no organization to name — self-registration grant, identity mail, activity, deployment-level secrets #24377 (Q2 A, Q4 A).sys_flow_credential) and boot-seeded declared webhooks (sys_webhook) #24435, recorded at comment6259141885(「同意」).6259608309and6259698357on [epic] ADR-0131 — total organization ownership: no NULL organization_id (v18 line) #15194 (「同意」, twice).sharing_ruleis charted under regime C.activebit of asys_metadata_activationrow of typesharing_rule. The switch is deployment-level and operator-gated under a wall, and there is no per-organization switch-off. Organizations author their own rules (D3).6257510973on [Decision] C8 under a wall: four framework writes that have no organization to name — self-registration grant, identity mail, activity, deployment-level secrets #24377. Each is stated as ruled, not shipped.sys_email.sys_secrethas no organization column.sys_setting_audit's global rung goes to a deployment-level sibling.sys_flow_credentialis deployment-level (ruling6259141885, Q1 A).systemFields: { tenant: false }. A credential's ownership follows its flow, which is environment metadata (D2/D6). This matches thesys_secretnote.sys_flow_credential) and boot-seeded declared webhooks (sys_webhook) #24435 Q2 orders no line, because D2 already says no seeder writes declared items into any table.6259608309and6259698357).singleonly. In 18.0,os migrate organization-ownershipand the walled postures are refused.Why this reading, and not a new decision
The contradiction needed no new decision, because the record and the code agree on one side. Measured on
origin/main71fa166e:packages/platform-objects/src/system/sys-metadata-activation.object.tsdeclaressys_metadata_activationwithsystemFields: { tenant: false }. This is C0, shipped by fix(platform-objects,core): sys_metadata_activation ships tenant-less — drop the reserved organization_id before 17.3 is cut (ADR-0126 amended by ADR-0131 D6/D7) #15024, which is closed.service-automationFlowActivationStore), and so do actions (objectql/src/action-activation.ts) and positions and permission sets (core/src/security/resolve-authz-context.ts,runtime/src/domains/catalog-activation.ts).packages/cli/src/utils/organization-ownership-inventory.ts) cites "D7, D6, D14 (C0): the tenant-less activation ledger".Nothing in the tree reverts the ledger.
Verification
Docs only. No package, no
content/docs/releases/. Gates were derived withnode scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstackagainst merge base71fa166e9. They ran on commit7b9b0c0. The pushed heada41ddd96has the same tree; only the commit trailer was reworded so the pre-push trailer check would pass. The D7 commit2261458dre-derived the same 74 commands on that head: 19/19 derived families exit 0, 50/55 roster rows exit 0, and the other five are NOT MEASURED for want of PR context or a whole-tree build (os-dev-report 6257947772).--ranreports "19 derived famil(ies) accounted for — 19 run, 0 NOT-MEASURED (a DERIVED zero)". The families includecheck-adr-links,check-adr-symbol-anchors,check:adr-anchors,check:doc-authoring,check:nul-bytes,check:pm-governed-mergesandcheck:pm-prior-rulings.check:doc-formula-expressionsfirst exited 3 with PREREQUISITE NOT MET, because@objectstack/formulahad nodist/. Afterturbo run build --filter=@objectstack/formula --filter=@objectstack/lintunder the verify lock, it exited 0.check-closing-target-claim,check-partof-closing-keywordandcheck-single-claim-paths(exit 2), andcheck-governed-queue-guard(exit 1, noGITHUB_EVENT_PATH), had no PR context. CI runs them.check:dts-closureandcheck:published-readme-exports(exit 3) need a whole-tree build. CI runs them.The rework commits
b1e9de61(regime C),371b98ae(#24435 Q1) and3d9490fa(D14 scope) each re-derived the same 74 commands: 19/19 derived families exit 0, and 50/55 roster rows exit 0. The same five are NOT MEASURED. Source: the final os-dev-report on #24420 for3d9490fa.Changeset
None. The diff publishes nothing:
docs/adr/**is a fast-lane, unpublished path, so the PR carriesskip-changeset.Landing
This is a governed surface (
docs/adr/**), so the PR is Tier H. It needs an at-tier## Contract reviewrecord, and then the maintainer merges it. No seat readies, queues or merges it.维护者速读
sys_secret、全局设置审计)。sys_flow_credential) and boot-seeded declared webhooks (sys_webhook) #24435 Q1 A(「同意」),sys_flow_credential不设组织列,凭据归属随所属 flow。os migrate organization-ownership与隔离部署在 18.0 拒绝。sys_flow_credential) and boot-seeded declared webhooks (sys_webhook) #24435 Q1;3d9490fa)。