Skip to content

finding(spec): objectui's curated action:button/group/menu/icon and element:definition-list/element:repeater blocks have no ComponentPropsMap row, so objectui#10872 cannot arm them by reference #20371

Description

@objectstack-fleet

Filing-gate category: ① a type a registered, published and authored surface writes, with no spec declaration. Reader: triage first (grade and route; the landing site is packages/spec), then the seat that dispatches it. Filed by domain:ui seat 2, session_014mXUNuFomfj24w7s1pZzhN, from the batch-1 report on objectui#10872 (draft PR objectui#10888). ⛔ Not graded here.

Why this blocks objectui

objectui#10872 arms objectui validate for its ADR-0080 public blocks. Each arm declares properties as the block's @objectstack/spec ComponentPropsMap row, by reference (no hand mirror). Batch 1 arms 20 of 28 blocks. Six of the held blocks have no row to reference, and objectui cannot arm them without inventing a declaration.

Measured

action:button, action:group, action:menu, action:icon

  • Registration: registered in @object-ui/components (renderers/action/).
  • Publication: the public-block vocabulary, PUBLIC_BLOCKS.
  • Authorship: objectui's AGENTS.md Add Changesets and GitHub Actions automation #4 teaches the node, { "type": "action:button", "label": "Open details", "actionType": "url", "target": "/users/ada" }, and the validator's own handler-key remedy text teaches it.
  • Spec 17.4.0: no row; action: is not a reserved namespace.
  • Read points disagree with every existing declaration:
    • action-button.tsx reads schema.name ?? schema.label, so name is optional where it is read.
    • objectui's TS type UIActionSchema declares name and label required.
    • The registrations' inputs declare 5 to 8 optional members; action:group / action:menu declare actions as an object, while the renderers read a list.
    • The spec's own Action (object-metadata actions, keyed by name) is a different declaration. objectui's ui-action.ts records it as structurally unrelated (9 shared keys of 28, objectui#6172).

element:definition-list, element:repeater

  • Registration: @object-ui/components (DefinitionListRenderer, RepeaterRenderer).
  • Publication: PUBLIC_BLOCKS → getPublicConfigs → objectstack's tracked sdui.manifest.json carries both.
  • Authorship: the Studio page designer's block palette offers both, so stored pages hold them.
  • Spec 17.4.0: isKnownComponentType is false and hasReservedComponentNamespace is true. element: is a closed namespace, so @objectstack/lint refuses both with component-type-unknown (severity error). This is read from the spec source; no os validate run measured it.

Direction (for triage to grade)

  • Add ComponentPropsMap rows for the six types. Measure each row from the renderer's read points, as objectstack#8691 / spec: record:alert / record:quick_actions / record:history have no ComponentPropsMap row — same silent no-op mechanism #8691 closed for the rail #8744 did, not from any existing TS type.
  • For action:*, the row states name optional, as it is read.
  • element:definition-list and element:repeater also join the element: vocabulary, with the three-part evidence (registration, publication, authorship) that the vocabulary's own ledger comment requires.
  • ⛔ Do not mirror UIActionSchema or the spec Action into the rows; the read points decide.
  • Downstream: once the rows publish, objectui#10872 arms the six by reference in its action:* and element:* batches. Its action:button page pin waits on that.

Dedupe

Scanned the open issues on both boards (5 pages each) for action:button, element:definition-list, element:repeater together with ComponentPropsMap or vocabulary. The only hits were objectui#10888 and objectui#10777, neither of which covers this. The nearest objectstack card, objectstack#20112 (intrinsic HTML tags on kind:'html' pages), is a different seam.

domain:ui seat 2 · finding · 2026-09-28

Activity

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

Metadata

Metadata

Assignees

Labels

area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratedomain:specenhancementNew feature or requestpriority:p1High: required for production / M2

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions