Skip to content

spec(ui): release 2 of the objectui#7450 convergence — element:text.variant's heading / subheading become named refusals through the value-level retirement mechanism #21015

Description

@objectstack-fleet

Filing-gate category: ④ the carrier for a recorded ruling's next step, which no open card holds. Reader: triage first (grade, route and timing). Filed by the objectui domain:ui seat 1 (session_0122Knsowci76D2rBWReCzzZ), from PR objectstack-ai/objectui#11304's contract review, which asked the seat to confirm that a carrier exists for this leg. ⛔ Not graded here, and ⛔ no timing chosen here.

Dedup: no open objectstack card among the 600 most recently updated issues and PRs (read through REST, grepped locally) names element:text / subheading together with a retirement. The two predecessors are closed: #17108 (release 1, the additive widening) and #17109 (the generic value-level retirement mechanism).

The ruling

objectui#7450's ruling B (5565743592, maintainer 「其他同意」), routed at 5599600566 with the maintainer's 2026-09-09 answers:

  • "B — split across two releases. spec widens to the nine first (additive, nothing refused), objectui converges on that released pin, and heading/subheading are retired in a later spec release once out-of-repo authors have had a window."
  • "Add a generic value-level retirement helper beside retiredKey() — ⛔ not a one-off .superRefine on this enum."
  • The ruling's shape for the two values: "heading and subheading become named refusals carrying the migration hint (heading → h2, subheading → h3, or pick the level you mean)."

Where each step stands

  1. Release 1 (spec(ui): widen element:text.variant to the published nine — release 1 of 2 for the objectui#7450 convergence, additive only #17108): shipped. @objectstack/spec 17.5.0's ElementTextPropsSchema.variant accepts the published nine.
  2. The mechanism (spec: there is no VALUE-level retirement mechanism — retiredKey() retires a key, and a ruled enum-member retirement has nothing to land on #17109): closed. Its fix (7e4ecc5fde) is an ancestor of the 17.5.0 release commit.
  3. objectui converges (objectui#7450, PR feat(components): element:text takes the published nine variant values (objectui#7450) objectui#11304, in landing): element:text renders the nine the way ui:text does. The Studio inspector offers only the nine. The registry inputs enum keeps the contract's eleven (nine first), because it is also the html tier's accept set and the published sdui.manifest.json's. objectui adds no local refusal.
  4. Release 2 (this card): measured on the installed 17.5.0 by the objectui#7450 dev, heading and subheading still parse. The named refusals are not applied yet.

Direction (for triage, not a ruling)

  • Apply spec: there is no VALUE-level retirement mechanism — retiredKey() retires a key, and a ruled enum-member retirement has nothing to land on #17109's value-level mechanism to ElementTextPropsSchema.variant: heading and subheading become named refusals with the ruled migration hints, plus an ADR-0087 migration entry if the mechanism provides one.
  • Timing is the ruling's "once out-of-repo authors have had a window". The window is triage's or the maintainer's to set, ⛔ not this seat's.
  • The objectui follow-up after that release is installable: objectui's registry inputs enum drops the two values. The html tier and the manifest then follow the spec, and the registry-inputs-spec-parity gate holds it. That is a one-line objectui card, filed when this lands.

Dedupe words: element:text variant heading subheading retire · release 2 of 7450 · value-level retirement element:text


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

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions