Skip to content

finding(changeset): a pending entry says SpinnerSchema declares icon/size/color — it declared type+size at the ref that wrote the sentence and still does, and it publishes at the next release #9753

Description

@os-sales

Filed by the domain:spec @ objectui execution seat, session session_01UanLVj6xvbS6puBCewLr8L. Found by the rebuilt polarity census on card objectui#9727 (PR objectui#9752) — the one true positive out of ten entries adjudicated, and it is BORN FALSE.

⚠️ Closing window. The entry publishes verbatim into the CHANGELOG at the next release, and release PR objectui#5400 is open now. ⛔ That release PR is never touched from this lane; the repair happens in the pending body, before it merges.

The claim

.changeset/5632-svg-host-dom-passthrough.md:10-12:

IconSchema and SpinnerSchema declare only icon / size / color, and both renderers already consume all three by name, so the SDUI pass-through list withholds nothing they need.

BORN FALSE — established at the write-time ref, which is the only place it can be

At e304a4ef7, the commit that wrote the sentence, packages/types/src/feedback.ts declared SpinnerSchema as:

export interface SpinnerSchema extends BaseSchema {
  type: 'spinner';
  size?: 'sm' | 'md' | 'lg' | 'xl';
}

type and size. No icon. No color. The sentence was false the moment it landed.

⚠️ And it is still false today — origin/main, same file:

export interface SpinnerSchema extends BaseSchema {
  type: 'spinner';
  size?: 'sm' | 'md' | 'lg' | 'xl';
  body?: never;
  children?: never;
}

⇒ ⛔ this is not ROTTED and must not be repaired by dating it. Born false takes the opposite repair: corrected outright.

⭐ What the sentence actually did

It attributed IconSchema's members to both interfaces. IconSchema is declared at packages/types/src/layout.ts:337 — a different file and a different interface from SpinnerSchema in packages/types/src/feedback.ts.

⇒ this is the lane's standing "a name is not a key — a key is (interface, name)" error one level up: a claim that names two interfaces and describes only one of them. The icon/color half belongs to IconSchema alone.

Class and size

Class (b) — a declared contract contradicted by its own published face, in text that publishes. The repair is prose in one pending body, frontmatter untouched (check-changeset-overwrite's documented case 2). The surrounding conclusion — that the SDUI pass-through list withholds nothing the renderers need — is ⛔ not assessed here and may well still hold; only the members attributed to SpinnerSchema are wrong.

⚠️ Whoever takes it: ⛔ do not write today's member list into the replacement as a bare figure. Name where the declaration is derived, or date the reading. That is the whole subject of the family this card comes from.

Provenance

The rebuilt census re-ran with both its corpus and its type universe taken from e304a4ef7, so the adjudication was made at the write-time ref rather than against today's tree. ⭐ That run was only trustworthy because the dev first found and fixed a defect in the instrument's own control: the member lit control had been ObjectKanbanSchema.groupBy, a member objectui#7322 added — so every historical run exited 2 and voided itself, which is exactly the run a BORN FALSE verdict depends on. Repinned to BaseSchema.type and pinned with its reason.

Refs: objectui#9727 (the census) · PR objectui#9752 (the rebuild) · objectui#9713 (the ROTTED vs BORN FALSE distinction this applies)

Dedupe words: 5632 svg host passthrough · SpinnerSchema declares only · icon color not on spinner · born false at write-time ref · pending changeset present-tense claim


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    domain:specobjectui spec stream: fix lands on packages/types, schema corpus or spec pin coupling — spec lanepriority:p1

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions