From 954c3bd708f63bad27e7eb1e1dd8a8482cf28174 Mon Sep 17 00:00:00 2001 From: os-warren <318460043+os-warren@users.noreply.github.com> Date: Tue, 3 Nov 2026 04:40:07 +0000 Subject: [PATCH 1/2] docs(adr-0146): D8 item 2 names the pair's export, never the base's D8 item 2 listed "the export of X's app surface" among the reads that serve a declared override. Read as GET /packages/X/export it contradicts item 3, which keeps the base's export unchanged and puts the overriding item, with its overrides block, in the pair's export. The sentence now names the pair's export, GET /packages/X.custom/export, points at item 3, and says the base's own export is never that read. Wording only; no decision changes, so the Status line carries no amendment entry. Claude-Session: https://claude.ai/code/session_01JQwxbYeS2U1HKXS13SzfKe Co-authored-by: Claude --- ...dministers-one-editor-per-item-paired-customize-package.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/adr/0146-studio-designs-setup-administers-one-editor-per-item-paired-customize-package.md b/docs/adr/0146-studio-designs-setup-administers-one-editor-per-item-paired-customize-package.md index 78cac6def77..d2bd7fb03ce 100644 --- a/docs/adr/0146-studio-designs-setup-administers-one-editor-per-item-paired-customize-package.md +++ b/docs/adr/0146-studio-designs-setup-administers-one-editor-per-item-paired-customize-package.md @@ -421,7 +421,9 @@ from **one** resolution: 2. **Within X's address, a declared override is served over the base's document.** The read that serves X's name — the package-less read, the read naming X (`?package=X`), the layered read (`packages/metadata-protocol/src/protocol.ts#getMetaItemLayered`: `code` = the base's document, `override` = the `.custom` item, `effective` = the served one), the list (`GET /api/v1/meta/:type`, scoped - to X or not) and the export of X's app surface — serves the **one** document the declaration selects, the `.custom` item that declares it. An item of the pair that + to X or not) and the export that carries X's customizations, the **pair's** export `GET /packages/X.custom/export` + (item 3; ⛔ never `GET /packages/X/export`, the base's own export, which item 3 keeps unchanged) — serves the **one** + document the declaration selects, the `.custom` item that declares it. An item of the pair that bears X's name **without** the declaration, and an item of any other dependent that bears X's name — declared or not — have no place under this record: each is refused when its package publishes ([D2](#d2)); until N-09 lands, item 1 keeps the code package the owner of X's address, so such a row is not served as X's (N-03). A same-named item of a package From 71e8cc1774bc37bb5b942b3cb3d4469b31d5981d Mon Sep 17 00:00:00 2001 From: os-warren <318460043+os-warren@users.noreply.github.com> Date: Tue, 3 Nov 2026 05:15:18 +0000 Subject: [PATCH 2/2] docs(adr-0146): scope D8 item 2's lead and Decided-here #5 to the reads under X's address; record the edit in Refs Contract review of the first commit asked for three wording fixes, no new decision. D8 item 2's lead now says the override is served in every read under X's address but the base's own export (item 3), and the enumeration is "the reads that serve X's name or carry X's customizations", so the list is true with the pair's export in it. Decided-here #5 no longer claims all five read kinds: four reads under the base's address serve the override, the pair's export carries it, the base's export never does (items 2 and 3). Refs gains a dated entry naming the card and the PR beside the earlier wording-fix entry. Claude-Session: https://claude.ai/code/session_01JQwxbYeS2U1HKXS13SzfKe Co-authored-by: Claude --- ...e-editor-per-item-paired-customize-package.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/docs/adr/0146-studio-designs-setup-administers-one-editor-per-item-paired-customize-package.md b/docs/adr/0146-studio-designs-setup-administers-one-editor-per-item-paired-customize-package.md index d2bd7fb03ce..38cd3312c0f 100644 --- a/docs/adr/0146-studio-designs-setup-administers-one-editor-per-item-paired-customize-package.md +++ b/docs/adr/0146-studio-designs-setup-administers-one-editor-per-item-paired-customize-package.md @@ -418,11 +418,12 @@ from **one** resolution: code package is a candidate of `packagelessAddress`, and a stored row bound to another package never wins by being the only stored row (#28238, N-03). A stored row with **no** package — the row Setup writes today — keeps winning over the code package until [D11](#d11) migrates it; ⛔ that card does not break an existing customization. -2. **Within X's address, a declared override is served over the base's document.** The read that serves X's name — the +2. **Within X's address, a declared override is served over the base's document, in every read but the base's own + export (item 3).** The reads that serve X's name or carry X's customizations — the package-less read, the read naming X (`?package=X`), the layered read (`packages/metadata-protocol/src/protocol.ts#getMetaItemLayered`: `code` = the base's document, `override` = the `.custom` item, `effective` = the served one), the list (`GET /api/v1/meta/:type`, scoped to X or not) and the export that carries X's customizations, the **pair's** export `GET /packages/X.custom/export` - (item 3; ⛔ never `GET /packages/X/export`, the base's own export, which item 3 keeps unchanged) — serves the **one** + (item 3; ⛔ never `GET /packages/X/export`, the base's own export, which item 3 keeps unchanged) — serve the **one** document the declaration selects, the `.custom` item that declares it. An item of the pair that bears X's name **without** the declaration, and an item of any other dependent that bears X's name — declared or not — have no place under this record: each is refused when its package publishes ([D2](#d2)); until N-09 lands, item 1 keeps @@ -678,9 +679,10 @@ of Q1's refusal and `action` — were ruled by the maintainer on 2026-10-31 (dec against `FieldSchema` and publishes them as one closed constant — the whitelist the write gate reads, in the shape of [D2](#d2)'s type list; the maintainer's 2026-10-31 reading: the criterion stays, the whitelist is that constant. A list written here would be either stale or invented. -5. **A declared override is served within the base's address for all five read kinds, and the base's own document - stays reachable as the layered read's `code` layer** ([D8](#d8)) — so "Restore package original" needs no second - read path and the chip needs no computation. +5. **A declared override is served within the base's address for the four reads under it — package-less, named, + layered and list — and travels in the pair's export, never the base's ([D8](#d8) items 2 and 3); the base's own + document stays reachable as the layered read's `code` layer** ([D8](#d8)) — so "Restore package original" needs no + second read path and the chip needs no computation. 6. **The migration is an administrator's CLI ceremony, idempotent, per base** ([D11](#d11)), in ADR-0131 D10's shape — not a boot step: a boot that rewrites rows into a package it creates is the recorded-verdict defect AGENTS.md's *Startup registry reads* section names. @@ -702,7 +704,9 @@ of Q1's refusal and `action` — were ruled by the maintainer on 2026-10-31 (dec `basedOn` records the base package's version, ruling record 6549129352 on [#28404](https://github.com/objectstack-ai/objectstack/issues/28404)); PR [#28145](https://github.com/objectstack-ai/objectstack/pull/28145) (closed unmerged; its three wording fixes S13–S15 are folded into this rewrite); PR [#28045](https://github.com/objectstack-ai/objectstack/pull/28045) (the - Proposed draft this rewrite replaces, hand-merged 2026-10-30). + Proposed draft this rewrite replaces, hand-merged 2026-10-30); card [#29601](https://github.com/objectstack-ai/objectstack/issues/29601) + and PR [#29791](https://github.com/objectstack-ai/objectstack/pull/29791) (2026-11-03, wording only: [D8](#d8) item 2 names + the pair's export and scopes its lead; *Decided here* #5 scoped with it). - [#27356](https://github.com/objectstack-ai/objectstack/issues/27356) rows 12, 13, 14, 19, 20, 21 and their landed PRs #27376, #27927, #28076. - ADR-0005, ADR-0009, ADR-0010, ADR-0029, ADR-0048 (and its 2026-10-08 addendum), ADR-0070, ADR-0126, ADR-0131,