From f86b451373c080f5736ff2f4deba1e769fa8b1eb Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 8 Oct 2026 19:09:09 +0000 Subject: [PATCH] =?UTF-8?q?docs(adr-0048):=20N.3=20amended=20=E2=80=94=20t?= =?UTF-8?q?he=20post-hydration=20check=20judges=20a=20package's=20claim=20?= =?UTF-8?q?against=20the=20environment=20catalog?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Records the maintainer's ruling letter A (ruling record 6063176077): the hydration write stays unjudged as a write, and after sys_metadata hydration and before kernel:ready a package-held permission set or position name the environment catalog already holds fails the boot with the N.2 envelope. Additive; no existing line is edited. Claude-Session: https://claude.ai/code/session_01EUBvqtauTDmHi2ZgY759p2 Co-authored-by: Claude --- docs/adr/0048-cross-package-metadata-collision.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/adr/0048-cross-package-metadata-collision.md b/docs/adr/0048-cross-package-metadata-collision.md index 38b5b622af9..1c8adfdcac9 100644 --- a/docs/adr/0048-cross-package-metadata-collision.md +++ b/docs/adr/0048-cross-package-metadata-collision.md @@ -838,6 +838,13 @@ rename, or uninstall the other holder. - **No downgrade.** `OS_METADATA_COLLISION=warn` softens the §3.2 namespace gate only; no ruling extends it to this refusal. +> **Amended (2026-10-08) — the cold boot.** The hydration write stays unjudged as +> a write, and the post-hydration check judges the package's claim against it: +> after `sys_metadata` hydration and before `kernel:ready`, every package-held +> permission set and position name is checked against the environment catalog, +> and a name the environment already holds fails the boot with the N.2 envelope, +> naming both holders (ruling record 6063176077 on #22307, letter A). + ### N.4 Where it is implemented `@objectstack/objectql`: the rule and its holders in `security-catalog-namespace.ts`;