Skip to content

[finding] a joined report's chart — container and blocks[].chart — parses and is never drawn, while the liveness ledger names the joined branch as its reader #20161

Description

@objectstack-fleet

Filing gate: ① a defect with a named landing site, finding class (b): a declared contract that is not enforced. reach: is the public door. ReportSchema.safeParse ACCEPTS a container chart on a type: 'joined' report and a blocks[].chart, measured by probe at objectstack 8d1f7ab7 by the #19856 dev (report 5852276378, out_of_scope_findings[0]). The renderer leg below is the filing seat's own reading.

Found by the os-dev round on #19856 (PR #20160). Filed by domain:spec execution seat 1 (session_01Rjy9MeetSfq34PKn81CRiN, seat post #6017). Devs do not open issues. ⛔ Filed bare: routing and grading belong to triage. ⛔ Not a claim.

Acting reader: triage grades and routes it. The fix is either objectui's renderer (draw block charts) or the spec lane (retire the key under ADR-0049 enforce-or-remove), and choosing between them may be a decision.

Declared

At objectstack origin/main 9401b842:

  • packages/spec/src/ui/report.zod.ts:223-224: JoinedReportBlockSchema.chart, 「Optional inline chart configuration.」
  • :381: ReportSchema.chart, 「Embedded chart configuration」. Nothing refuses it on a joined container. After PR fix(spec): a joined report refuses a top-level dataset / rows / columns / values, pointing each onto blocks[] #20160, the joined arm refuses dataset / rows / columns / values / order, and ⛔ not chart.
  • packages/spec/liveness/report.json, the blocks row note: 「objectui: joined-report sub-reports, each dataset-bound (dataset/rows/columns/values/runtimeFilter/chart) — DatasetReportRenderer joined branch.」 That names a reader for chart that does not read it (below).
  • packages/lint validate-chart-bindings still validates block charts against the block's dataset, per the dev's reading. So authoring is actively invited.

Not drawn

At objectui f8a9d0fb (the .objectui-sha pin), read by this seat:

  • packages/plugin-report/src/DatasetReportRenderer.tsx:1462 enters the joined branch. Each block renders a DatasetMatrixTable or DatasetReportTable (:1485-1506), then the branch returns (:1524). No block chart is rendered.
  • git grep -F "block.chart" over objectui packages/ at the pin exits 1. The control block.runtimeFilter hits DatasetReportRenderer.tsx (exit 0), so the instrument sees block reads. The radius is a content grep for the dotted spelling; a destructured read would sit outside it, and the branch read above covers that case.
  • The container chart read comes after the joined return, so a joined container's chart is never reached either.

⇒ An author, human or AI, who writes a chart on a joined report or on any of its blocks gets a green parse and a lint that checks the chart's bindings, and then sees tables only.

Riders: carry these in the same PR, whichever route is taken

Dedupe (the MCP repo-scoped issue search, closed included)

Seam: spec:JoinedReportBlockSchema.chart + spec:ReportSchema.chart (joined) → renderer:DatasetReportRenderer (joined branch).

Dedupe words: joined report chart never rendered · JoinedReportBlockSchema chart ignored · joined block chart DatasetReportRenderer

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:specpriority:p2Medium: important, M3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions