From d23eafccf28632551a66e12dcac5dd03b2b35a14 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 22 Sep 2026 02:02:06 +0000 Subject: [PATCH] docs(changeset): drop the deleted api-surface-declarations family from four pending release notes The revert 2277d1fcd10 deleted packages/spec/api-surface-declarations/ (17 shards plus its build script), its two package scripts, and its entry in packages/spec's files[]. Four unreleased changesets still described that family in prose, and a release compiles changeset prose verbatim into CHANGELOG.md before deleting the consumed file -- so the next cut would publish sentences telling a reader the package ships a directory it does not. Five sentences, one per stale claim: - 17108: the projection clause named api-surface-declarations/ui.txt; the surviving generated projection named in the same sentence (content/docs/references/ui/component.mdx) is kept and verified to carry the widening. - 18605: api-surface-declarations dropped from the list of unchanged artifacts. - 19085: check:api-surface-declarations dropped; that script no longer exists in packages/spec's manifest. - 18991, two spots. The stated reason to publish rested on two files[] entries, one of which is gone. Re-measured: the surviving entry carries it alone. dist/ is in files[], and dist/data/index.d.ts reproduces BOTH corrected docblocks byte-for-byte against src/data/api-derivation.ts -- the ResolveApiOptions.userExportAllowed member block (sha256 fe70486a...) and the API_METHOD_DERIVATION leading block (sha256 2f78bac0...). So the publish decision stands and only the prose is repaired. The parenthetical about leading TSDoc being excluded was specific to the deleted artifact's recording rule and would be false of the emitted declaration, which carries leading docblocks too, so it goes with it. No new changeset and no label: correcting a pending release note is an edit to that note, not an erratum in a later entry. Claude-Session: https://claude.ai/code/session_01AmH9bKvGoLjiY86Q4Z3og2 Co-authored-by: Claude --- .changeset/17108-element-text-variant-published-nine.md | 2 +- .changeset/18605-enable-on-install-one-authority.md | 2 +- .changeset/18991-user-export-slot-is-a-real-optin-grant.md | 4 ++-- .changeset/19085-metadata-form-declared-rows.md | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.changeset/17108-element-text-variant-published-nine.md b/.changeset/17108-element-text-variant-published-nine.md index e9d090c5b9..70008c9eab 100644 --- a/.changeset/17108-element-text-variant-published-nine.md +++ b/.changeset/17108-element-text-variant-published-nine.md @@ -14,4 +14,4 @@ Measured on the 17.3.0 declaration, per value, through `ElementTextPropsSchema.s - **⛔ Nothing is retired.** `heading` and `subheading` become named refusals carrying migration hints in **release 2**, which is a separate card and is blocked on a value-level retirement mechanism that does not exist yet: `retiredKey()` and ADR-0087 D2 retire a *key*, not a *value*. Authors who want to move early can write `h2` for `heading` and `h3` for `subheading`; neither spelling stops working in this release. - **No renderer changes here.** `element:text`'s renderer, its designer inspector options and its i18n rows are objectui's, on the released pin, and land on objectui's side of the sequence. -Generated projections follow the declaration: `api-surface-declarations/ui.txt` gains the seven members on `ElementTextPropsSchema` and on `ComponentPropsMap['element:text']`, and the `content/docs/references/ui/component.mdx` property table widens. `check:api-surface` reports nothing removed or narrowed. +Generated projections follow the declaration: the `content/docs/references/ui/component.mdx` property table widens. `check:api-surface` reports nothing removed or narrowed. diff --git a/.changeset/18605-enable-on-install-one-authority.md b/.changeset/18605-enable-on-install-one-authority.md index 2bd6cbd7a2..7d8f6bb501 100644 --- a/.changeset/18605-enable-on-install-one-authority.md +++ b/.changeset/18605-enable-on-install-one-authority.md @@ -24,4 +24,4 @@ It stays, and its published description says what it is: the marketplace channel **What does not move** -No key is added, removed, renamed or retyped, and no default changes: the accept set of all three schemas is byte-for-byte what it was, and `api-surface`, `api-surface-declarations`, `authorable-surface` and `authorable-defaults` are all unchanged. What moves is the published description text of three keys and the reference pages generated from it. The `Clause-②` declaration is `yes` as the conservative arm, because three published declarations' stated meaning moves. +No key is added, removed, renamed or retyped, and no default changes: the accept set of all three schemas is byte-for-byte what it was, and `api-surface`, `authorable-surface` and `authorable-defaults` are all unchanged. What moves is the published description text of three keys and the reference pages generated from it. The `Clause-②` declaration is `yes` as the conservative arm, because three published declarations' stated meaning moves. diff --git a/.changeset/18991-user-export-slot-is-a-real-optin-grant.md b/.changeset/18991-user-export-slot-is-a-real-optin-grant.md index 084dc47715..344b524152 100644 --- a/.changeset/18991-user-export-slot-is-a-real-optin-grant.md +++ b/.changeset/18991-user-export-slot-is-a-real-optin-grant.md @@ -6,7 +6,7 @@ docs(data): `ResolveApiOptions.userExportAllowed` no longer documents itself as `Clause-②: no` -⛔ **No behaviour change.** `isLegacyDerivable`, `computeOperations` and `resolveEffectiveApiMethods` are byte-identical; the omitted-option default is still `true` (`opts?.userExportAllowed !== false`), and not one assertion in `api-derivation.test.ts` moved. What changes is two docblocks in `packages/spec/src/data/api-derivation.ts` that made a **false present-tense claim**, and the generated declaration baseline that reproduces one of them. +⛔ **No behaviour change.** `isLegacyDerivable`, `computeOperations` and `resolveEffectiveApiMethods` are byte-identical; the omitted-option default is still `true` (`opts?.userExportAllowed !== false`), and not one assertion in `api-derivation.test.ts` moved. What changes is two docblocks in `packages/spec/src/data/api-derivation.ts` that made a **false present-tense claim**. Both carriers said the same untrue thing, and they said it in a direction that invites reintroducing a defect: @@ -17,4 +17,4 @@ The bit exists. `PermissionSetSchema.allowExport` (`src/security/permission.zod. An author who trusted the old text would read the parameter as inert and could legitimately simplify it away as dead weight — which is the same defect one level upstream of where it was last found, with no consumer left to notice. Both docblocks now state the axis as it is, name `PermissionSetSchema`'s `allowExport` as the authority on its semantics, and keep the one thing that *is* still true distinct from the one that is not: omitting the option resolves to `true` because a resolve carrying no permission context must not narrow the object's own exposure — that is what lets `apiExposureDenialReason` remain a pure function of `enable` — while a caller holding permission context passes the resolved bit explicitly. -**Why this publishes rather than taking `skip-changeset`.** Two entries of this package's `files[]` move. `api-surface-declarations/` ships, and the member docblock sits *inside* the `ResolveApiOptions` interface body, so it is part of the declaration text that artifact records (leading TSDoc is excluded; an interior member's is not) — `check:api-surface-declarations` reported the shard stale as `~ ResolveApiOptions (interface) (declaration text changed)`, 0 removed, 0 added, 1 reshaped, and the regenerated `data.txt` carries the new text. `dist/` ships too, and the packed `dist/data/index.d.ts` carries it. A consumer reading either one reads different bytes after this change, so the corrected sentence is what reaches them. +**Why this publishes rather than taking `skip-changeset`.** One entry of this package's `files[]` moves. `dist/` ships, and the emitted declaration reproduces both corrected docblocks: the packed `dist/data/index.d.ts` carries the `ResolveApiOptions.userExportAllowed` member text and the `API_METHOD_DERIVATION` table text verbatim. A consumer reading it reads different bytes after this change, so the corrected sentence is what reaches them. diff --git a/.changeset/19085-metadata-form-declared-rows.md b/.changeset/19085-metadata-form-declared-rows.md index edba671e8a..ca7f963330 100644 --- a/.changeset/19085-metadata-form-declared-rows.md +++ b/.changeset/19085-metadata-form-declared-rows.md @@ -14,4 +14,4 @@ Measured on the tree before the change: zero rows for either key across every `* A new pin (`metadata-form-declared-rows.pin.test.ts`) keeps both rows and both faces, and adds a registry-wide assertion — every row of every form, at every depth — that **no** form routes a `FilterCondition`-typed key to the rule-array builder, with a lit control proving the walk reaches both keys before it reports an empty misrouted set. -⛔ **No wire byte moves and no export changes.** `check:api-surface` and `check:api-surface-declarations` are green with no regeneration: `METADATA_FORM_REGISTRY` is declared as an opaque `Readonly>`, so the row contents were never part of the declared surface. What changes is the **form payload** `getMetaTypes()` serves and the translation keys `os i18n extract` walks — hence the regenerated `platform-objects` metadata-form bundles (44 additive lines; the new `en` entries are source text, the translated locales still need translating). +⛔ **No wire byte moves and no export changes.** `check:api-surface` is green with no regeneration: `METADATA_FORM_REGISTRY` is declared as an opaque `Readonly>`, so the row contents were never part of the declared surface. What changes is the **form payload** `getMetaTypes()` serves and the translation keys `os i18n extract` walks — hence the regenerated `platform-objects` metadata-form bundles (44 additive lines; the new `en` entries are source text, the translated locales still need translating).