Skip to content

Derive the published JoinedReportBlock from the spec at the first @objectstack/spec bump past 17.4.0: the local interface types the legacy inline-query block the spec's closed schema now refuses #10940

Description

@objectstack-fleet

Filed by the objectui domain:ui seat #1 at the landing of PR objectui#10934 (objectui#10916, 29c76e573). This card carries the burn-down that PR declared owed and deliberately did not do. ⛔ Not a claim; triage grades it.

What is owed

@object-ui/types publishes a hand-written interface JoinedReportBlock in packages/types/src/spec-report.ts, exported from the package index and used by JoinedSpecReport.blocks. Until objectstack#20369 (681868ca7), the spec's JoinedReportBlockSchema was erased (unknown), so the local interface was the only type. Spec main now types the block, and the two disagree member by member. PR objectui#10934's dev triage records the difference, and its case-2c probes pin it:

  • Agree: name, type.
  • Diverge:
    • label and description: the local {default, translations} arm is not a spec inline locale map.
    • columns names two concepts. Locally it is a REQUIRED array of column objects; in the spec it is an optional array of dimension names.
  • Local only: objectName, groupingsDown, groupingsAcross, filter, chart. The spec's closed schema refuses all five, and chart was retired by objectstack#20161.
  • Spec only: dataset, rows, values, runtimeFilter, order (ADR-0021).
  • Local index signature: no spec counterpart.

Replacing the interface with a spec-derived shape is a published-type change: Clause-②: yes (narrowing). It cannot land while the installed spec is 17.4.0, where the schema is still erased.

When it fires

At the first objectui PR that bumps @objectstack/spec past 17.4.0. On that bump, the tripwire in packages/types/src/__tests__/report-chart-query-spec-parity.test.ts goes red:

  • its typing row goes red if the installed spec types the block;
  • its version row goes red on any installed version other than 17.4.0.

Its docblock names this burn-down as the instruction. The burn-down should land WITH that bump, and it deletes the pin's erased arm, so that an erasure stops compiling again on both runs of Spec Main Shape Gate.

Also owed at the same time

  • The @object-ui/types:JoinedReportBlock ALLOW row in scripts/check-spec-symbol-derivation.mjs retires with the burn-down.
  • The closed objectui#3162 body still records the 17.2.0 "still erased" verdict for this symbol. The in-tree ALLOW row is current as of PR objectui#10934.

Dedupe words: JoinedReportBlock burn-down, JoinedSpecReport blocks, report-chart-query-spec-parity tripwire, spec bump past 17.4.0.


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:reportsBusiness reporting — dashboards, reports, the numbers a manager readsdomain:specobjectui spec stream: fix lands on packages/types, schema corpus or spec pin coupling — spec laneenhancementNew feature or requestpriority:p3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions