Skip to content

Commit 7cc0ca1

Browse files
committed
fix: drop the two non-resolving issue citations from added lines
check-issue-citations judged 12 citations this change adds; #8778 and #8707 are allocated-but-absent on the board. The rulings they named are cited in prose and by the cloud record that does resolve. Claude-Session: https://claude.ai/code/session_01AmH9bKvGoLjiY86Q4Z3og2 Co-authored-by: Claude <noreply@anthropic.com>
1 parent a5f0171 commit 7cc0ca1

6 files changed

Lines changed: 22 additions & 21 deletions

File tree

‎content/docs/references/automation/schedule-organization.mdx‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,8 @@ opened on, read from the other side.
8686
⚠️ With ONE stated exception, so the sentence above is not read as a promise
8787
it cannot keep. The two halves ask different questions and are answered by
8888
different faces of the shared resolver: the history row is STAMPED (`who is
89-
this row about` — the platform stamp column wins there, by the #8778 /
90-
cloud#1395 ruling), while the run's acting organization is a WALL reading
89+
this row about` — the platform stamp column wins there, by the cloud#1395
90+
ruling), while the run's acting organization is a WALL reading
9191
(`what is this row scoped by`, which never consults that column). They give
9292
the same answer on every object where the two coincide — every ordinary
9393
object, because a stamp column is what makes them differ and exactly one

‎packages/metadata-core/src/record-organization.ts‎

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@
2222
* > SUBJECT record's organization; actor context is the fallback, never the
2323
* > primary.
2424
*
25-
* ⛔ The stamp-only divergence this resolver reads stays scope-pinned (#8778,
26-
* widened by name on cloud#1395): exactly THREE consumers are sanctioned —
27-
* audit stamping, the approval-row writer, and the automation-run recorder —
28-
* and no others. A fourth consumer needs its own maintainer ruling, exactly as
29-
* #8778 required. Sharing the implementation here does not open it: it closes
30-
* the excuse for a fourth copy.
25+
* ⛔ The stamp-only divergence this resolver reads stays scope-pinned by the
26+
* ruling quoted above, widened by name on cloud#1395: exactly THREE consumers
27+
* are sanctioned — audit stamping, the approval-row writer, and the
28+
* automation-run recorder — and no others. A fourth consumer needs its own
29+
* maintainer ruling, exactly as the original scope-pin required. Sharing the
30+
* implementation here does not open it: it closes the excuse for a fourth copy.
3131
*
3232
* ⭐ [#19054] The divergence is no longer AUTHORABLE. It used to be declared by
3333
* the `tenancy.organizationField` spec key, which every application could write
@@ -77,7 +77,7 @@ import { SystemFieldName } from '@objectstack/spec/system';
7777
*
7878
* ⛔ Adding a row is a PROTOCOL decision, not a convenience. Each row is an
7979
* object whose platform rows are stamped from somewhere other than its wall,
80-
* which is exactly the divergence the #8778 / cloud#1395 rulings scope-pinned;
80+
* which is exactly the divergence the cloud#1395 ruling scope-pinned;
8181
* a new one needs its own ruling, the same bar a fourth consumer of the old key
8282
* needed. ⛔ And it is never a substitute for `tenancy.tenantField`: an object
8383
* whose tenant column genuinely is not `organization_id` declares that key,
@@ -191,7 +191,7 @@ export function createFieldPresenceProbe(
191191
*
192192
* 0. **A {@link PLATFORM_STAMP_ORGANIZATION_COLUMNS} row for this object,
193193
* when the object really has that column.** The stamp-only divergence
194-
* #8778's ruling introduced (option A; #8707's remaining half), carried
194+
* the stamp-only ruling introduced (option A), carried
195195
* since protocol 18 by the platform-internal table above instead of the
196196
* retired authorable `tenancy.organizationField` key. It answers "which
197197
* column says who this row is ABOUT" — a different question from "what is
@@ -237,9 +237,10 @@ export function createFieldPresenceProbe(
237237
* the same conclusion through a heuristic is the same mistake with no gate on
238238
* it.
239239
*
240-
* `sys_api_key.active_organization_id` is reachable through limb 0 since
241-
* #8778 (it was the object that motivated the divergence). Its column is still
242-
* not — and must never become — the object's tenant-scope column:
240+
* `sys_api_key.active_organization_id` is reachable through limb 0 since the
241+
* stamp-only ruling (it was the object that motivated the divergence). Its
242+
* column is still not — and must never become — the object's tenant-scope
243+
* column:
243244
* `tenancy.tenantField` feeds `applyTenantScope` / `injectTenantOnInsert`, so
244245
* declaring it there would wall the credential table on an equality that
245246
* excludes NULL — every pre-#8287 key would vanish from its own owner's
@@ -341,8 +342,8 @@ function resolveOrganizationField(
341342
{ objectName, readStampColumn }: { objectName: string | undefined; readStampColumn: boolean },
342343
): string | null {
343344
if (!objectDef || typeof objectDef !== 'object') return null;
344-
// Limb 0 — the platform's own stamp-only divergence (#8778, carried by
345-
// `PLATFORM_STAMP_ORGANIZATION_COLUMNS` since #19054) wins over everything,
345+
// Limb 0 — the platform's own stamp-only divergence, carried by
346+
// `PLATFORM_STAMP_ORGANIZATION_COLUMNS` since #19054, wins over everything,
346347
// the ADR-0066 opt-out below included: see the precedence doc above. Reached
347348
// by the three sanctioned platform-row writers and by nobody else.
348349
if (readStampColumn && objectName !== undefined) {

‎packages/platform-objects/src/identity/sys-api-key.object.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ export const SysApiKey = ObjectSchema.create({
4545
docsUrl: 'https://objectstack.ai/docs/references/shared/protection',
4646
},
4747
// [#19054] The stamp-only organization declaration that used to sit here
48-
// (`organizationField: 'active_organization_id'`, #8778 / #8707 remainder) is
48+
// (`organizationField: 'active_organization_id'`, the stamp-only ruling) is
4949
// GONE from the authorable surface in protocol 18 (ADR-0049 enforce-or-remove;
5050
// maintainer ruling 2026-09-18, verbatim and untranslated:
5151
// 「organizationField 撤出可授权面 同意你的建议」).

‎packages/spec/src/automation/schedule-organization.zod.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,8 @@ import { z } from 'zod';
8484
* ⚠️ With ONE stated exception, so the sentence above is not read as a promise
8585
* it cannot keep. The two halves ask different questions and are answered by
8686
* different faces of the shared resolver: the history row is STAMPED (`who is
87-
* this row about` — the platform stamp column wins there, by the #8778 /
88-
* cloud#1395 ruling), while the run's acting organization is a WALL reading
87+
* this row about` — the platform stamp column wins there, by the cloud#1395
88+
* ruling), while the run's acting organization is a WALL reading
8989
* (`what is this row scoped by`, which never consults that column). They give
9090
* the same answer on every object where the two coincide — every ordinary
9191
* object, because a stamp column is what makes them differ and exactly one

‎packages/spec/src/conversions/registry.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9969,8 +9969,8 @@ const dashboardWidgetChartConfigStructureRemoved: MetadataConversion = {
99699969
* repository declared it exactly once, on `sys_api_key`, a table this platform
99709970
* ships. An authorable key whose only real declaration is ours makes every
99719971
* future piece of organization logic ask "what if somebody set this?" for a
9972-
* divergence no sanctioned consumer would honour: the #8778 / cloud#1395
9973-
* scope-pin allows exactly three readers, all of them platform-row writers.
9972+
* divergence no sanctioned consumer would honour: the cloud#1395 scope-pin
9973+
* allows exactly three readers, all of them platform-row writers.
99749974
*
99759975
* The divergence itself is NOT retired — only its authorability. It moves to
99769976
* `@objectstack/metadata-core`'s `PLATFORM_STAMP_ORGANIZATION_COLUMNS`

‎packages/spec/src/data/object.zod.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -629,7 +629,7 @@ const TENANCY_MODES_EXPLAINER =
629629
* ⛔ What does NOT come back with a new spelling: an application-declared
630630
* "stamp column" of any name. The retirement is the ADR-0049 answer to a key
631631
* whose only real declaration was ours; re-opening it needs its own maintainer
632-
* ruling, exactly as the #8778 scope-pin required of a fourth consumer.
632+
* ruling, exactly as the original scope-pin required of a fourth consumer.
633633
*
634634
* @example Shared database, platform-default tenant column (organization_id)
635635
* {

0 commit comments

Comments
 (0)