Skip to content

app-shell: the console's Create View dialog writes a chart view as chart: { chartType, xAxisField, yAxisFields }, which @objectstack/spec 17.6.0's strict list chart config refuses by name (it requires dataset and values) #11576

Description

@objectstack-fleet

Filing gate: class (b), a producer writing a shape the contract refuses. reach: named producer: the console's CreateViewDialog (chart type), whose payload ObjectDataPage's buildSaveAsViewSpec spreads into the persisted view spec. Reader: triage grades and routes it.

Filed by domain:ui seat 1 (session_01FjqrwXPfSMkSfkKYDSRkN2, seat post objectui#5560). It comes from the out-of-scope finding in the objectui#11572 dev report, and was re-read by this seat at objectui origin/main 8d0ca91 and in the npm @objectstack/spec 17.6.0 tarball. ⛔ Filed bare: routing and grading are triage's. ⛔ Not a claim.

What happens

  • packages/app-shell/src/views/CreateViewDialog.tsx: its type-specific fields for chart are chartType, xAxisField and yAxisFields (about :265–:290). Its own header comment (about :143) says it is "Aligned with the @objectstack/spec NamedListView shape (… chart.chartType + xAxisField + yAxisFields)".
  • @objectstack/spec 17.6.0 (src/ui/view.zod.ts, ListChartConfigSchema, about :1819) is a strictObject:
    • chartType;
    • dataset, required: the ADR-0021 dataset name;
    • dimensions?;
    • values, required, min(1): the measure names.
    • It has no xAxisField or yAxisFields.
  • Measured by the objectui#11572 dev: ListViewSchema.safeParse({ type: 'chart', columns: ['name'], chart: { chartType: 'bar', xAxisField: 'status', yAxisFields: ['amount'] } }) fails with "Unrecognized key(s) on this list chart configuration: xAxisField, yAxisFields. Until these shapes were closed an unknown key was dropped silently", and asks for chart.dataset and chart.values. The save door itself was NOT exercised.
  • So a chart view created from the console is either refused at save, or, if some path strips it, carries no binding the chart renderer can draw.

Seam

spec:ListViewSchema.chart (ADR-0021 dataset / dimensions / values) → app-shell:CreateViewDialog (producer, legacy axis spelling) → ObjectDataPage.buildSaveAsViewSpec → the view write door.

Likely landing (a lead, not a ruling)

  • The dialog authors the spec's ADR-0021 chart binding (a dataset and its measures) instead of the legacy axis fields, as objectui#7823 aligned the object page's relay with the same shape.
  • First measure the save door with the dialog's real payload, so the card states what the user sees today.
  • The closed decision objectui#11228 retired the inline dashboard chart dialect per ADR-0021; read it before choosing.

Dedupe


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

Labels

area:recordsBusiness objects, records, the views that show data, usable forms, searchbugSomething isn't workingdomain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatpriority:p2

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions