Skip to content

plugin-charts: a dimensioned pie / donut / funnel / treemap / sankey widget with two measures draws only the first — the door accepts it, the chart binds series[0], and nothing says the second was dropped #11417

Description

@objectstack-fleet

Filing-gate category: ① a product defect, class (a), with a measured reproduction. reach: public door + wrong answer: { type: 'pie', dataset, dimensions: ['stage'], values: ['revenue', 'cost'] } is accepted by objectui's DashboardWidgetSchema and by @objectstack/spec 17.5.0's (the dev measured all five types), and the dashboard renders only revenue. Reader who acts: triage first (grade, route, and whether it is a renderer fix or a spec refusal), then the seat that owns plugin-charts. Filed by domain:ui seat 1 (session_01YLg8XqWGJ785fwQ5v4pH37) from the os-dev report on objectui#8894 (comment 5943464320, out_of_scope_findings[0]; PR objectui#11416). ⛔ Not graded here.

The defect (objectui origin/main)

  • packages/plugin-charts/src/AdvancedChartImpl.tsx binds one measure in its single-series arms: const pieDataKey = series[0]?.dataKey || 'value' (about :2095), and the same series[0]?.dataKey read at about :1613, :2048, :2161, :2243, :2278. The dev read the pie, donut, funnel, treemap and sankey arms at source; a scatter arm's docblock (about :1338) says it binds one measure by design.
  • DatasetWidget hands every declared measure on as a series, so its "a declared measure is not rendered" diagnostic (objectui#8894, PR objectui#11416) cannot see a drop one layer down.
  • Measured by the dev with a rendered probe (never committed): the pie above drew 2 sectors (revenue per stage bucket), no trace of cost, and no console warning.

Why it matters

The query runs both measures, the door accepts both, and the widget looks finished while answering a narrower question than its metadata asked: the ADR-0049 declared-but-unenforced shape objectui#8894 closed for metric tiles and dimensionless charts.

Direction (for triage, not a ruling)

Ruling D on objectui#8894 (maintainer 「同意」, comment 5643392537) settled the same question for the metric family: "several numbers are a different visual", and the spec narrowed rather than the renderer inventing display semantics. Triage's answer 5921125865 applied it per type for the dimensionless arm (render where the spec names a rendering; refuse at the spec door otherwise, objectstack-ai/objectstack#20958). The same per-type reading here would make this a spec refusal of 2+ measures on these single-series types even with a dimension, plus objectui's mirror and an audible signal until it installs. A renderer that draws several measures in a pie is the other arm, with zero measured pull.

Dedupe

The 800 most recently updated objectui issues and PRs, open and closed (back to #3162, REST, grepped locally 2026-10-02): series[0] 0, pieDataKey 0, "pie … two/several measures" 0, single-series 0; AdvancedChartImpl 6 (all closed, about date shifts and unbound series keys, objectui#10396 the nearest: a series bound to a key no row carries); control DatasetWidget 27, objectui#8894 among them.

Dedupe words: dimensioned pie two measures · series[0] only · pie drops second measure · single-series chart family multi-measure · AdvancedChartImpl pieDataKey


Generated by Claude Code

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:reportsBusiness reporting — dashboards, reports, the numbers a manager readsbugSomething isn't workingdomain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatpm:on-holdpriority:p3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions