diff --git a/content/docs/guide/layout.md b/content/docs/guide/layout.md index 8b9fb21f0c..573d411c19 100644 --- a/content/docs/guide/layout.md +++ b/content/docs/guide/layout.md @@ -287,15 +287,23 @@ renders nothing here. > **Write `subtitle`. `description` is retired.** `@objectstack/spec/ui`'s > `PageHeaderProps` — the contract for the canonical `page:header` node — declares -> `title / subtitle / icon / breadcrumb / actions / aria` and has **no** `description`, -> and `page-header`'s registration declares only `title` and `subtitle` as authorable -> inputs. The renderer used to read `description` as well, as a legacy alias; objectui#3789 +> `title / subtitle / breadcrumb / actions / recordChrome / showStar / showCopyId / +> maxVisible / mobileMaxVisible / aria` and has **no** `description`, and +> `page-header`'s registration declares four authorable inputs — `title`, `subtitle`, +> `icon` and `actions`. `icon` sits on exactly one of those two lists on purpose: it is +> an ADR-0087 D2 tombstone on the spec shape, which rejects it by name — "`page:header` +> property `icon` was removed in @objectstack/spec 17.0.0 (#6946, ADR-0087 D2) — no +> renderer ever read it … Delete the key." — while remaining a live input of *this* +> component, whose `` does draw an icon beside the title (objectui#3829). On +> a canonical `page:header` node the key is gone; as a prop of this component it is +> live. The renderer used to read `description` as well, as a legacy alias; objectui#3789 > removed that read, so `subtitle` is now the only spelling this component draws. Stored > metadata written the old way is not stranded: protocol 17's ADR-0087 D2 conversion > `page-header-subtitle-alias` rewrites `description` to `subtitle` on header nodes as the > stack loads — at every position a header can occupy, regions and slots and containers > nested to any depth (objectstack#6775 / #6776) — and `os migrate meta` rewrites it at -> rest. See the [PageHeader reference](/docs/layout/page-header). +> rest. See the [PageHeader reference](/docs/layout/page-header) for the per-key +> reference face. > **There is no `breadcrumbs` array.** The component reads no breadcrumb property of any > kind, in either spelling. The spec's `breadcrumb` is singular and a **boolean** — a diff --git a/scripts/__tests__/doc-version-claims.test.ts b/scripts/__tests__/doc-version-claims.test.ts index b8f6fd272f..350e8eba9b 100644 --- a/scripts/__tests__/doc-version-claims.test.ts +++ b/scripts/__tests__/doc-version-claims.test.ts @@ -956,6 +956,12 @@ const KNOWN_CLAIMS: KnownClaim[] = [ workflowVersionKey: 'node-version', why: "The Node this repository's CI runs, anchored on the node-version declarations in .github/workflows and ASSERTED against them by the workflow-version assertion below (objectui#6400) rather than restated here. Both halves of the reason this replaces were false by the time anyone read them: it named a declaration count the tree had since doubled, in a spelling one lane does not use, and it credited this page's own pin test with covering the line - ci-cd-pipeline-doc.test.ts contains no node-version and no 22 at all (control, same file: 28 mentions of ci.yml). Nothing re-measured either half, which is the whole reason the count moved into a run.", }, + { + file: 'content/docs/guide/layout.md', + claim: '@objectstack/spec 17.0.0', + kind: 'unanchored', + why: 'A verbatim quotation of the icon tombstone\'s own refusal message — "`page:header` property `icon` was removed in @objectstack/spec 17.0.0 (#6946, ADR-0087 D2)" — kept verbatim on purpose (objectui#5923 / PR #6082): the page quotes what the canonical node actually tells an author holding the key, rather than inventing a rationale, so a reader learns why their schema is rejected in the words that reject it. The version names when a removal SHIPPED — a historical fact that cannot go stale the way a "current version" claim does — but nothing in this tree re-reads the installed spec\'s describe text, so if @objectstack/spec ever rewords the tombstone this quote drifts from the message while the fact underneath stays true. That drift risk is the price of quoting, accepted deliberately over paraphrase.', + }, { file: 'content/docs/guide/plugins.md', claim: 'react": "^18.0.0',