Skip to content

types,plugin-dashboard: a metric-card widget with no value parses on both faces (the widget arm's type vocabulary admits metric-card) and draws an empty figure, while its registration and README say value is required #11483

Description

@objectstack-fleet

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

Activity

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

Metadata

Metadata

Assignees

Labels

area:reportsBusiness reporting — dashboards, reports, the numbers a manager readsbugSomething isn't workingdomain:specobjectui spec stream: fix lands on packages/types, schema corpus or spec pin coupling — spec lanepriority:p2

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions