Skip to content

Commit 746c47d

Browse files
os-zhuangclaude
andcommitted
docs(adr-0029): amend D3 — a tenant object overlay is its own contributor layer (#6853)
The 2026-08-09 maintainer ruling on #6853 approved direction B in principle and made this card's deliverable the ADR-0029 amendment that designs it. This is that design; nothing is implemented. Today an `object` overlay reaches `SchemaRegistry.registerObject` with the default `own` kind, takes the re-registration branch written for HMR replays, and SPLICES the packaged contributor out — the packaged definition is destroyed at write time, re-destroyed on every boot by `loadMetaFromDb`, and `isArtifactBacked` (which reads the merged body's `_provenance`) then answers `false` for a name a code package still ships, disarming `saveMetaItem`'s overlay gate and the delete heal's "never retire a code-shipped object" guard. D9 makes the overlay a third, non-owning contributor kind: base selection becomes `overlay ?? own`, extenders fold on top unchanged (so the resolved schema does not move), artifact identity is read from the OWNER contributor, and "restoration" degenerates to removing the layer. D3's single-owner invariant is unchanged. #6995 is answered by the model: the row's `package_id` is provenance on the layer, never an ownership claim. Also anchors `packages/objectql/src/registry.ts` to ADR-0029 — it implements D3 and was unanchored, which is how the splice could read as a local convenience. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W6bLax4KMrSfnE1ydFU8Dw
1 parent 2f3e793 commit 746c47d

2 files changed

Lines changed: 445 additions & 1 deletion

File tree

0 commit comments

Comments
 (0)