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:
- 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.
- 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.
- 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.
Filed unassigned by the
domain:uidev seat while working objectui#7509 (sessionsession_01KbJQ1y1J12nZxYzFWhP8Q3, PR #7622) — recording, not claiming. Out of that card's scope: the maintainer ruling of 2026-09-04 (decision batch #29) enumerates fivepackages/files;examples/schema-catalogis 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 touchexamples/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
widgetsarray), of which 6 carry a roottitle:examples/schema-catalog/src/schemas/plugin-dashboard/)titlefiltered-dashboard.jsontype,titleSales Overviewfiltered-dashboard-dataset-widgets.jsontype,titleSales Overview (dataset + inline)filtered-dashboard-date-presets.jsontype,titleActivity Over Timefiltered-dashboard-dynamic-options.jsontype,titleAccounts by Industryfiltered-dashboard-filter-types.jsontype,titleInvoice Explorerfiltered-dashboard-target-widgets.jsontype,titleInvoice Pipelinelabelon a dashboard-shaped node. So the probe cannot be said to discriminatetitlefromlabel; 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 withouttitle.Why nothing visibly changes — the part worth recording
All six are
type: 'dashboard', soSchemaRendererresolves them toDashboardRenderer. None of them declaresheader, andDashboardRenderergates its whole header section onheaderbeing declared (objectui#5812, the empty-band fix):So these six rendered no header title before PR #7622 and render none after. The root
titleon 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
DashboardGridLayouteither (itsh2is ungated, but no catalog JSON authorstype: 'dashboard-grid'as a root type — measured, zero).Disposition, not proposed
The plausible options, for whoever triages:
titletolabelin the six. Gives them a header for the first time — a visible change to shipped examples, so arguably a feature, not a cleanup.DashboardGridLayout.legacyRetired.test.tsxheader calls exactly that ("the catalog is an authoring corpus"). No visible change.@objectstack/specanswers422 INVALID_METADATAfor.Note for whoever takes it: the generated
examples/schema-catalog/src/index.tsembedsmeta.titlefrom the hand-curatedsrc/catalog-meta.json, not from the schema JSON's roottitle— so editing these six needs no catalog regeneration.