Skip to content

Commit ea19793

Browse files
committed
docs(scripts): record the withdrawal of the vacuous byte-identity sentence
The #4580 changeset closed with "Core's entry surface is unchanged: `dist/index.d.ts` is byte-identical across the change". #5673 withdrew that sentence from the source docstring it was also written into, but the release tooling had already copied the changeset verbatim into five package CHANGELOGs, where it survives with no trace of the withdrawal. Per the 2026-08-24 ruling, the five released entries are not edited — compiled release artifacts stay on the changeset pipeline and the npm copies are immutable — so the correction is recorded once in this header, which is where this repository already keeps findings of this shape. The record states why the measurement is vacuous (core's entry `.d.ts` is emitted from a barrel that only forwards the symbol, so it cannot move for a re-exported declaration's shape change), and lists the five copies with the search that re-derives their line numbers as they drift. Comment-only: the gate's behaviour is unchanged. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CSoz9uGhaaSgiq3hshtN7L
1 parent 8d3a529 commit ea19793

1 file changed

Lines changed: 51 additions & 0 deletions

File tree

‎scripts/check-changeset-presence.mjs‎

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,57 @@
123123
* contract, and the same one this gate exists to close one level up. Note the
124124
* direction: for a filter deciding whether to RUN work, "cannot tell" means run;
125125
* here the work IS the decision, so "cannot tell" means fail.
126+
*
127+
* ## A withdrawn sentence that survives in five released CHANGELOGs (objectui#5913)
128+
*
129+
* Recorded here once, because the five copies cannot be corrected in place and
130+
* this header is where findings of this shape live. objectui#4580's changeset —
131+
* the `SchemaNode` de-duplication — closed with:
132+
*
133+
* Core's entry surface is unchanged: `dist/index.d.ts` is byte-identical
134+
* across the change.
135+
*
136+
* That sentence is a VACUOUS MEASUREMENT. objectui#5673 withdrew it from the
137+
* source docstring it was also written into
138+
* (`packages/core/src/types/index.ts`), which now carries the full account and
139+
* the calibration recipe; this is the pointer for anyone who arrives from a
140+
* CHANGELOG instead.
141+
*
142+
* It is vacuous because `core/dist/index.d.ts` is emitted from a barrel that
143+
* only FORWARDS the symbol, and forwarding never restates a shape — not
144+
* `export` of everything, and not the named `export type { SchemaNode, … } from
145+
* './types/index.js'` line either. Only the module that DECLARES the symbol can
146+
* move. So that file is byte-identical under ANY change to a re-exported
147+
* declaration's shape, including one that breaks every consumer, and a gauge
148+
* that cannot fail for the change class it is quoted against has discharged
149+
* nothing. #5673's PR measured exactly that: a probe key added to the declaring
150+
* module moved `@object-ui/types`' `dist/base.d.ts` and brought it back, while
151+
* `core/dist/index.d.ts` and `core/dist/types/index.d.ts` held one hash across
152+
* all three legs. The withdrawn sentence was watching the two files that cannot
153+
* move.
154+
*
155+
* The five copies are NOT edited, and that is a ruling (maintainer, 2026-08-24),
156+
* not an omission. The release tooling composes CHANGELOGs from `.changeset/*.md`
157+
* at release time, so hand-editing the compiled artifact leaves the pipeline
158+
* this gate exists to protect; and the same text is already published to npm on
159+
* five packages, where a repo-side edit recalls nothing and only makes the
160+
* repository disagree with what shipped. The withdrawal is therefore recorded
161+
* once, here.
162+
*
163+
* Where the copies are, verified at `8d3a5294a`:
164+
*
165+
* packages/components/CHANGELOG.md:1472
166+
* packages/core/CHANGELOG.md:1021
167+
* packages/plugin-dashboard/CHANGELOG.md:581
168+
* packages/react/CHANGELOG.md:450
169+
* packages/types/CHANGELOG.md:705
170+
*
171+
* CHANGELOGs are append-heavy and those line numbers move; the sentence does
172+
* not. Re-derive them with
173+
* `git grep -nI "is byte-identical across the change"`, which is a search and
174+
* its own control at once: the phrase is known-present, and it returned these
175+
* five plus one unrelated i18n test under `packages/fields`. Six files means the
176+
* search worked; zero means it broke, not that the copies are gone.
126177
*/
127178

128179
import { execFileSync } from 'node:child_process';

0 commit comments

Comments
 (0)