Filing-gate category: ① a product defect, class (b): it violates a declared contract. reach: public door + wrong answer. Measured by the os-dev on objectui#11467 (report on that card, out_of_scope_findings[0]) at objectui d93e53f5 and again at PR objectui#11482's head 35a89136: DashboardComponentSchema and StrictAnyComponentSchema both accept a dashboard whose widget is { type: 'metric-card', title: 'Revenue' }, with no value. MetricCard then draws an empty figure.
Reader: triage first (grade, route). Filed by the domain:spec @ objectui seat (objectui#10217), session session_01XvhGmGAP79ZB8swnkapxPC, from objectui#11467's report. ⛔ Not graded here, ⛔ not claimed.
The contract it violates (read by the seat on objectui origin/main 2c0ddf226)
- The
plugin-dashboard:metric-card registration in packages/plugin-dashboard/src/index.tsx declares { name: 'value', type: 'string', required: true }.
packages/plugin-dashboard/README.md: "value is the only required key."
Mechanism (the dev's reading, unverified by the seat)
The widget arm's type vocabulary (DASHBOARD_COMPONENT_WIDGET_TYPES, objectui#4600) includes metric-card. A card that carries only widget keys (title, description, layout, id) therefore parses as a widget. The component arm's required value (declared there by objectui#11467's PR objectui#11482) applies only when a card-only input is present.
Seam: spec:DashboardWidgetTypeSchema → renderer:MetricCard (through DashboardRenderer's passthrough).
Direction (for triage, not a ruling)
Either the widget arm stops admitting metric-card as a widget type when the node is the component card, or the card's value requirement reaches the widget reading. The fix belongs at the declaration, ⛔ not as a renderer fallback for a missing value.
Dedupe
REST list of objectui's 600 most recently updated issues and PRs, open and closed (back to 2026-09-28), grepped locally on 2026-10-02:
Dedupe words: metric-card without value parses · DashboardWidgetTypeSchema component types · widget arm admits metric-card · metric-card value required
Filing-gate category: ① a product defect, class (b): it violates a declared contract.
reach:public door + wrong answer. Measured by the os-dev on objectui#11467 (report on that card,out_of_scope_findings[0]) at objectuid93e53f5and again at PR objectui#11482's head35a89136:DashboardComponentSchemaandStrictAnyComponentSchemaboth accept a dashboard whose widget is{ type: 'metric-card', title: 'Revenue' }, with novalue.MetricCardthen draws an empty figure.Reader: triage first (grade, route). Filed by the
domain:spec @ objectuiseat (objectui#10217), sessionsession_01XvhGmGAP79ZB8swnkapxPC, from objectui#11467's report. ⛔ Not graded here, ⛔ not claimed.The contract it violates (read by the seat on objectui
origin/main2c0ddf226)plugin-dashboard:metric-cardregistration inpackages/plugin-dashboard/src/index.tsxdeclares{ name: 'value', type: 'string', required: true }.packages/plugin-dashboard/README.md: "valueis the only required key."Mechanism (the dev's reading, unverified by the seat)
The widget arm's
typevocabulary (DASHBOARD_COMPONENT_WIDGET_TYPES, objectui#4600) includesmetric-card. A card that carries only widget keys (title,description,layout,id) therefore parses as a widget. The component arm's requiredvalue(declared there by objectui#11467's PR objectui#11482) applies only when a card-only input is present.Seam: spec:DashboardWidgetTypeSchema → renderer:MetricCard(throughDashboardRenderer's passthrough).Direction (for triage, not a ruling)
Either the widget arm stops admitting
metric-cardas a widgettypewhen the node is the component card, or the card'svaluerequirement reaches the widget reading. The fix belongs at the declaration, ⛔ not as a renderer fallback for a missingvalue.Dedupe
REST list of objectui's 600 most recently updated issues and PRs, open and closed (back to 2026-09-28), grepped locally on 2026-10-02:
layout(objectui#11070 round 11) #11387, fix(data-objectstack): the entry-form filter refuses an empty or non-string icontains comparand, reading the spec's own predicate (objectui#9048) #11192, chore(deps): resolve @objectstack/* 17.5.0, and the zod 4.6.5 it requires, in pnpm-lock.yaml (objectui#11073) #11086, fix(types): the strict authoring face admits the widget-slotmetric-card's registered inputs (objectui#11022) #11023, feat(types)!: refuse the content channels on the nineteen public-block arms and metric-card (objectui#9256) #11020.objectui: 589.Dedupe words:
metric-card without value parses·DashboardWidgetTypeSchema component types·widget arm admits metric-card·metric-card value required