Skip to content

finding(examples): six catalog dashboards author a root title that no arm reads — and none rendered one even before #7509 #7624

Description

@os-sam

Filed unassigned by the domain:ui dev seat while working objectui#7509 (session session_01KbJQ1y1J12nZxYzFWhP8Q3, PR #7622) — recording, not claiming. Out of that card's scope: the maintainer ruling of 2026-09-04 (decision batch #29) enumerates five packages/ files; examples/schema-catalog is a different surface, and editing it was deliberately not done because the measurement below shows it moves no behaviour either way.

Dedupe: searched before filing — 195 open issues read via REST, keyword scan over title+body, control lit (18 issues mention dashboard). Several open cards touch examples/schema-catalog (#7581, #7565, #7561, #7548, #7444, #7101) but none names this key or these six files.

The measurement

Every tracked JSON file parsed structurally (not grepped): 627 files, 9 dashboard-shaped nodes (a node with a widgets array), of which 6 carry a root title:

file (all under examples/schema-catalog/src/schemas/plugin-dashboard/) root keys root title
filtered-dashboard.json type, title Sales Overview
filtered-dashboard-dataset-widgets.json type, title Sales Overview (dataset + inline)
filtered-dashboard-date-presets.json type, title Activity Over Time
filtered-dashboard-dynamic-options.json type, title Accounts by Industry
filtered-dashboard-filter-types.json type, title Invoice Explorer
filtered-dashboard-target-widgets.json type, title Invoice Pipeline

⚠️ The control on that sweep is dark in one direction and worth stating: zero of the 627 files author a root label on a dashboard-shaped node. So the probe cannot be said to discriminate title from label; what it does demonstrate is that it reaches these nodes at all — it enumerated all 9 and reported each one's key set, including the 3 without title.

Why nothing visibly changes — the part worth recording

All six are type: 'dashboard', so SchemaRenderer resolves them to DashboardRenderer. None of them declares header, and DashboardRenderer gates its whole header section on header being declared (objectui#5812, the empty-band fix):

const headerSection = header && (showHeaderTitle || showHeaderDescription || headerActions.length > 0) && (…)

So these six rendered no header title before PR #7622 and render none after. The root title on them was already inert; the retirement does not make them worse, it makes the inertness total. That is exactly why #7622 left them alone rather than migrating them under a "fixture triage" rationale it could not honestly claim — there was no verdict to preserve.

None of the six reaches DashboardGridLayout either (its h2 is ungated, but no catalog JSON authors type: 'dashboard-grid' as a root type — measured, zero).

Disposition, not proposed

The plausible options, for whoever triages:

  1. Rename title to label in the six. Gives them a header for the first time — a visible change to shipped examples, so arguably a feature, not a cleanup.
  2. Delete the key from the six. Removes a spelling the spec refuses by name from the authoring corpus, which the DashboardGridLayout.legacyRetired.test.tsx header calls exactly that ("the catalog is an authoring corpus"). No visible change.
  3. Leave them. They are harmless; the cost is that the corpus keeps demonstrating a key @objectstack/spec answers 422 INVALID_METADATA for.

Note for whoever takes it: the generated examples/schema-catalog/src/index.ts embeds meta.title from the hand-curated src/catalog-meta.json, not from the schema JSON's root title — so editing these six needs no catalog regeneration.

Activity

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

Metadata

Metadata

Assignees

Labels

domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatfinding

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions