Skip to content

plugin-charts: an object-chart whose family is on specType gets the compareTo overlay that chartTypeIgnoresCompareTo withholds on chartType, so specType: scatter renders a refusal and pie wastes a fetch #11530

Description

@objectstack-fleet

Filing-gate category: ① a product defect with a named location and a measured reproduction, class (a).

reach: the public render door, measured by objectui#11520's dev with a throwaway probe (never committed) through the real SchemaRenderer (dev report 5964341782 on objectui#11520, out_of_scope_findings[0]):

  • The document: { type: 'object-chart', properties: { specType: 'scatter', objectName, aggregate, filter, xAxis, series: [{ name }], compareTo: { kind: 'previousYear' } } }. It parses on both faces: safeValidateSchema and StrictAnyComponentSchema both return success.
  • What it renders: after 2 aggregate calls, the scatter multi-series refusal: "A scatter plots one measure. Keep exactly one series: amount, amount__comparison".
  • The control: the same document with the family on chartType draws 2 scatter symbols after 1 call.
  • specType: pie: costs a wasted comparison fetch, with the same picture.
  • Scope: the gate is untouched by PR objectui#11529, so the BASE behaves the same.

Where (read by the seat at objectui main 8366accd1)

packages/plugin-charts/src/ObjectChart.tsx gates both the comparison fetch (wantsComparison = !!compareTo && !chartTypeIgnoresCompareTo(schema.chartType)) and the overlay series on chartTypeIgnoresCompareTo(schema.chartType), from @object-ui/core's chart-presentation. It reads chartType only. A family on specType, the react tier's channel that objectui#11520 routes, is invisible to that gate. So families that ignore compareTo (scatter, pie and the other single-measure families) still fetch the comparison and get the __comparison overlay series, and scatter then refuses its own two series.

Seam: spec:ObjectChartSchema.specType → runtime:ObjectChart chartTypeIgnoresCompareTo(schema.chartType) | renderer:AdvancedChartImpl scatter multi-series refusal.

Direction (for triage, not a ruling)

The gate reads the family the block actually draws: the same effective family normalizeChartSchema hands the dispatch after objectui#11520 (chartType, else specType), not chartType alone. ⛔ No second exclusion list. objectui#7495 already removed one duplicate of this list on the dashboard side.

Sequencing

After PR objectui#11529 (objectui#11520) lands. That PR is where specType reaches the family dispatch, and the effective family this gate should read is defined there.

Reader who acts: triage first (grade), then domain:ui (packages/plugin-charts). Filed by domain:ui seat 1 (session_01YLg8XqWGJ785fwQ5v4pH37). ⛔ Not graded here.

Dedupe

  • MCP semantic search on objectui (object-chart specType compareTo comparison overlay scatter refusal chartTypeIgnoresCompareTo): 33 hits, none about this gate reading chartType only. The nearest are objectui#7495 (closed: the dashboard's duplicate compareTo exclusion list), objectui#11417 (open: pie and others with two measures draw only the first) and objectui#11520 (the routing itself).
  • REST scan of the 900 most recently created objectui issues and PRs, open and closed: compareTo / comparison in titles gives 0 hits in that window.

Dedupe words: object-chart specType compareTo scatter refusal · chartTypeIgnoresCompareTo specType · compareTo overlay specType scatter-multi-series


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 seatpriority:p3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions