From 39e2851ad65d82831ada2cba0bc39e2ca22c4ce8 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 13 Sep 2026 08:27:09 +0000 Subject: [PATCH] docs(adr): record that the spec superseded ADR-0055 item 5's target precedence Item 5 of `docs/adr/0055-parameterized-bare-data-surface.md` states "Precedence within `type:'object'`: `recordId` -> `filters` -> `viewName`". No implementation applies that precedence, and since objectui#8563 this repository's own door refuses the shape it teaches: `NavigationItemSchema` chains `@objectstack/spec`'s `objectNavTargetExclusivity` (spec 17.4.0, `packages/types/src/zod/app.zod.ts`), which refuses `filters` with `recordId` or `viewName`, and `runAction` with `recordId`, while tolerating `recordId` + `viewName`. An accepted ADR binds until something supersedes it, so the item was still in force as a false rule. Add a dated amendment note as its own paragraph under item 5. The item's own text is kept byte-for-byte: the ADR records what was decided in 2026-07, and the note records that the protocol has since decided otherwise. Rewriting the item would erase the history; leaving it alone would leave a binding rule the platform refuses. The diff is six added lines and no deleted line. The ADR corpus had no prior dated amendment-note form (only the header-level `Amends` / `Supersedes` metadata rows), so this note follows the wording the decision record carries rather than a house precedent. Decision-record prose only; empty-frontmatter changeset declares no release. Claude-Session: https://claude.ai/code/session_01DAcomhvR9kKizeYgg89Vo8 Co-authored-by: Claude --- .changeset/9223-adr-0055-item-5-amendment.md | 8 ++++++++ docs/adr/0055-parameterized-bare-data-surface.md | 6 ++++++ 2 files changed, 14 insertions(+) create mode 100644 .changeset/9223-adr-0055-item-5-amendment.md diff --git a/.changeset/9223-adr-0055-item-5-amendment.md b/.changeset/9223-adr-0055-item-5-amendment.md new file mode 100644 index 0000000000..ea34f949dd --- /dev/null +++ b/.changeset/9223-adr-0055-item-5-amendment.md @@ -0,0 +1,8 @@ +--- +--- + +Record under item 5 of `docs/adr/0055-parameterized-bare-data-surface.md` that +`@objectstack/spec`'s `objectNavTargetExclusivity` superseded the +`recordId` -> `filters` -> `viewName` precedence the item states; the item's own +text is kept byte-for-byte (objectui#9223). Decision-record prose only; no +package is released by this change. diff --git a/docs/adr/0055-parameterized-bare-data-surface.md b/docs/adr/0055-parameterized-bare-data-surface.md index 0814f3f023..eeaf0d0a00 100644 --- a/docs/adr/0055-parameterized-bare-data-surface.md +++ b/docs/adr/0055-parameterized-bare-data-surface.md @@ -54,6 +54,12 @@ routes untouched: graduates to a named view only when curated and reused (see the app-composition guide). + **Amended 2026-09-13:** superseded by `@objectstack/spec`'s + `objectNavTargetExclusivity` (17.4.0; objectui#8563 chains it on + `NavigationItemSchema`): `filters` is refused with `recordId` or + `viewName`, `runAction` with `recordId`; `recordId` + `viewName` is + tolerated. The precedence above no longer applies. + ## Security model A view was never a security boundary, and neither is this surface. It shows