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
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 realSchemaRenderer(dev report5964341782on objectui#11520,out_of_scope_findings[0]):{ type: 'object-chart', properties: { specType: 'scatter', objectName, aggregate, filter, xAxis, series: [{ name }], compareTo: { kind: 'previousYear' } } }. It parses on both faces:safeValidateSchemaandStrictAnyComponentSchemaboth return success.chartTypedraws 2 scatter symbols after 1 call.specType: pie: costs a wasted comparison fetch, with the same picture.Where (read by the seat at objectui
main8366accd1)packages/plugin-charts/src/ObjectChart.tsxgates both the comparison fetch (wantsComparison = !!compareTo && !chartTypeIgnoresCompareTo(schema.chartType)) and the overlay series onchartTypeIgnoresCompareTo(schema.chartType), from@object-ui/core's chart-presentation. It readschartTypeonly. A family onspecType, the react tier's channel that objectui#11520 routes, is invisible to that gate. So families that ignorecompareTo(scatter, pie and the other single-measure families) still fetch the comparison and get the__comparisonoverlay series, and scatter then refuses its own two series.Seam:
spec:ObjectChartSchema.specType→runtime:ObjectChart chartTypeIgnoresCompareTo(schema.chartType)|renderer:AdvancedChartImplscatter multi-series refusal.Direction (for triage, not a ruling)
The gate reads the family the block actually draws: the same effective family
normalizeChartSchemahands the dispatch after objectui#11520 (chartType, elsespecType), notchartTypealone. ⛔ 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
specTypereaches 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 bydomain:uiseat 1 (session_01YLg8XqWGJ785fwQ5v4pH37). ⛔ Not graded here.Dedupe
chartTypeonly. The nearest are objectui#7495 (closed: the dashboard's duplicatecompareToexclusion list), objectui#11417 (open: pie and others with two measures draw only the first) and objectui#11520 (the routing itself).compareTo/comparisonin titles gives 0 hits in that window.Dedupe words:
object-chart specType compareTo scatter refusal·chartTypeIgnoresCompareTo specType·compareTo overlay specType scatter-multi-seriesGenerated by Claude Code