Skip to content

feat(spec)!: prune dead ReportColumnSchema/ReportGroupingSchema exports + unread report chart groupBy (#3463) - #3488

Merged
os-zhuang merged 1 commit into
mainfrom
chore/3463-prune-report-schemas
Jul 25, 2026
Merged

feat(spec)!: prune dead ReportColumnSchema/ReportGroupingSchema exports + unread report chart groupBy (#3463)#3488
os-zhuang merged 1 commit into
mainfrom
chore/3463-prune-report-schemas

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

Closes #3463 (item 1 — the spec-side prune).

Context

Deep-cleanup close-out of the report-chart disposition (follow-up to #3441, umbrella #1878/#1890). After the ADR-0021 single-form cutover a dataset-bound report expresses columns/grouping as dataset measure/dimension name arrays (values/rows/columns = z.array(z.string())), so ReportColumnSchema / ReportGroupingSchema were referenced by no schema body — they survived only as public type exports and were marked @deprecated in #3441.

What changed

  • Removed ReportColumnSchema / ReportGroupingSchema and their type exports (ReportColumn / ReportGrouping / ReportColumnInput / ReportGroupingInput) from @objectstack/spec/ui; dropped the now-orphan ResponsiveConfigSchema import.
  • Removed ReportChart.groupBy — the [EXPERIMENTAL — not enforced] series-split field flagged in docs(spec): correct ReportChart xAxis/yAxis semantics; mark dead report surface (#1890) #3441. The dataset-bound DatasetReportRenderer plots a single xAxis×yAxis series and never read it; only the retired legacy ReportViewer fallback consumed a top-level groupBy. ReportChartSchema is non-strict, so residual chart.groupBy in stored metadata is silently stripped on parse — no tombstone needed.
  • Dropped manifest ratchet keys ui/ReportColumn / ui/ReportGrouping; regenerated content/docs/references/ui/report.mdx and the spec API-surface snapshot.

Breaking → ships as minor per the launch-window breaking-as-minor policy (precedent: remove-enable-trash-mru). The changeset carries the FROM→TO migration.

Migration

Nothing an author writes changes — no first-party or example report authored ReportColumn / ReportGrouping objects or chart.groupBy. TypeScript consumers importing the removed types from @objectstack/spec/ui have no replacement: model report columns as the dataset's measure names and grouping as its dimension names. The objectui SpecReportColumn* / SpecReportGrouping* re-exports are removed in the companion PR (objectstack-ai/objectui#chore/3463-retire-reportviewer-fallback).

Verification

  • @objectstack/spec build + 6857 tests pass; tsc --noEmit clean.
  • check:api-surface (6 exports removed, snapshot regenerated) ✓
  • check:docs (report.mdx regenerated, in sync) ✓
  • check:skill-refs / check:react-blocks in sync ✓
  • downstream-consumer-contract tsc --noEmit clean (the spec-break guard) ✓
  • turbo build across the cli dependency closure clean.

🤖 Generated with Claude Code

…ts + unread report chart groupBy (#3463)

Deep-cleanup close-out of the report-chart disposition (follow-up to #3441,
umbrella #1878/#1890). After the ADR-0021 single-form cutover a dataset-bound
report expresses columns/grouping as dataset measure/dimension name arrays
(`values`/`rows`/`columns` = `z.array(z.string())`), so ReportColumnSchema /
ReportGroupingSchema were referenced by no schema body — they survived only as
public type exports and were marked @deprecated in #3441.

- Remove ReportColumnSchema / ReportGroupingSchema and their type exports
  (ReportColumn / ReportGrouping / ReportColumnInput / ReportGroupingInput)
  from @objectstack/spec/ui; drop the now-orphan ResponsiveConfigSchema import.
- Remove ReportChart.groupBy — the [EXPERIMENTAL — not enforced] series-split
  field from #3441. The dataset-bound DatasetReportRenderer plots a single
  xAxis×yAxis series and never read it; only the retired legacy ReportViewer
  fallback consumed a top-level groupBy. ReportChartSchema is non-strict, so
  residual chart.groupBy in stored metadata is silently stripped on parse.
- Drop manifest ratchet keys ui/ReportColumn, ui/ReportGrouping; regenerate
  content/docs/references/ui/report.mdx and the spec API-surface snapshot.

No first-party or example report authored these objects or chart.groupBy.
Ships as minor per the launch-window breaking-as-minor policy; changeset
carries the FROM→TO migration.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Jul 25, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
spec Ready Ready Preview, Comment Jul 25, 2026 3:20am

Request Review

@github-actions github-actions Bot added documentation Improvements or additions to documentation protocol:ui tooling size/m labels Jul 25, 2026
@github-actions

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

This PR changes 1 package(s): @objectstack/spec.

104 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:

  • content/docs/ai/agents.mdx (via @objectstack/spec)
  • content/docs/ai/skills-reference.mdx (via @objectstack/spec)
  • content/docs/ai/skills.mdx (via @objectstack/spec)
  • content/docs/api/client-sdk.mdx (via @objectstack/spec)
  • content/docs/api/environment-routing.mdx (via @objectstack/spec)
  • content/docs/api/error-catalog.mdx (via @objectstack/spec)
  • content/docs/api/error-handling-client.mdx (via @objectstack/spec)
  • content/docs/api/error-handling-server.mdx (via @objectstack/spec)
  • content/docs/api/index.mdx (via @objectstack/spec)
  • content/docs/automation/approvals.mdx (via packages/spec)
  • content/docs/automation/flows.mdx (via @objectstack/spec)
  • content/docs/automation/hook-bodies.mdx (via packages/spec)
  • content/docs/automation/hooks.mdx (via @objectstack/spec)
  • content/docs/automation/index.mdx (via @objectstack/spec)
  • content/docs/automation/webhooks.mdx (via @objectstack/spec)
  • content/docs/automation/workflows.mdx (via @objectstack/spec)
  • content/docs/concepts/architecture.mdx (via @objectstack/spec)
  • content/docs/concepts/design-principles.mdx (via packages/spec)
  • content/docs/concepts/index.mdx (via @objectstack/spec)
  • content/docs/concepts/metadata-driven.mdx (via @objectstack/spec)
  • content/docs/concepts/metadata-lifecycle.mdx (via packages/spec)
  • content/docs/concepts/north-star.mdx (via packages/spec)
  • content/docs/data-modeling/analytics.mdx (via @objectstack/spec)
  • content/docs/data-modeling/drivers.mdx (via @objectstack/spec)
  • content/docs/data-modeling/external-datasources.mdx (via @objectstack/spec)
  • content/docs/data-modeling/field-types.mdx (via @objectstack/spec)
  • content/docs/data-modeling/fields.mdx (via @objectstack/spec)
  • content/docs/data-modeling/formulas.mdx (via @objectstack/spec)
  • content/docs/data-modeling/index.mdx (via @objectstack/spec)
  • content/docs/data-modeling/objects.mdx (via @objectstack/spec)
  • content/docs/data-modeling/queries.mdx (via @objectstack/spec)
  • content/docs/data-modeling/schema-design.mdx (via @objectstack/spec)
  • content/docs/data-modeling/seed-data.mdx (via @objectstack/spec)
  • content/docs/data-modeling/validation-rules.mdx (via @objectstack/spec)
  • content/docs/data-modeling/validation.mdx (via @objectstack/spec)
  • content/docs/deployment/cli.mdx (via @objectstack/spec)
  • content/docs/deployment/troubleshooting.mdx (via @objectstack/spec)
  • content/docs/deployment/validating-metadata.mdx (via @objectstack/spec)
  • content/docs/getting-started/build-with-claude-code.mdx (via @objectstack/spec)
  • content/docs/getting-started/common-patterns.mdx (via @objectstack/spec)
  • content/docs/getting-started/examples.mdx (via @objectstack/spec)
  • content/docs/getting-started/quick-reference.mdx (via @objectstack/spec)
  • content/docs/getting-started/quick-start.mdx (via @objectstack/spec)
  • content/docs/getting-started/your-first-project.mdx (via @objectstack/spec)
  • content/docs/kernel/cluster.mdx (via @objectstack/spec)
  • content/docs/kernel/contracts/auth-service.mdx (via packages/spec)
  • content/docs/kernel/contracts/cache-service.mdx (via packages/spec)
  • content/docs/kernel/contracts/data-engine.mdx (via @objectstack/spec)
  • content/docs/kernel/contracts/index.mdx (via @objectstack/spec)
  • content/docs/kernel/contracts/metadata-service.mdx (via packages/spec)
  • content/docs/kernel/contracts/storage-service.mdx (via packages/spec)
  • content/docs/kernel/index.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/email-service.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/index.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/queue-service.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/sharing-service.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/sms-service.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/storage-service.mdx (via packages/spec)
  • content/docs/kernel/services-checklist.mdx (via @objectstack/spec)
  • content/docs/permissions/authorization.mdx (via @objectstack/spec)
  • content/docs/permissions/permission-sets.mdx (via @objectstack/spec)
  • content/docs/permissions/permissions-matrix.mdx (via @objectstack/spec)
  • content/docs/permissions/positions.mdx (via @objectstack/spec)
  • content/docs/permissions/rls.mdx (via @objectstack/spec)
  • content/docs/permissions/sharing-rules.mdx (via @objectstack/spec)
  • content/docs/plugins/adding-a-metadata-type.mdx (via @objectstack/spec)
  • content/docs/plugins/development.mdx (via @objectstack/spec)
  • content/docs/plugins/index.mdx (via @objectstack/spec)
  • content/docs/plugins/packages.mdx (via @objectstack/spec)
  • content/docs/protocol/backward-compatibility.mdx (via @objectstack/spec)
  • content/docs/protocol/diagram.mdx (via packages/spec)
  • content/docs/protocol/kernel/config-resolution.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/i18n-standard.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/index.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/lifecycle.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/plugin-spec.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/runtime-capabilities.mdx (via @objectstack/spec)
  • content/docs/protocol/knowledge.mdx (via @objectstack/spec)
  • content/docs/protocol/objectql/index.mdx (via @objectstack/spec)
  • content/docs/protocol/objectql/query-syntax.mdx (via @objectstack/spec)
  • content/docs/protocol/objectql/schema.mdx (via @objectstack/spec)
  • content/docs/protocol/objectql/security.mdx (via packages/spec)
  • content/docs/protocol/objectql/state-machine.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/actions.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/concept.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/index.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/layout-dsl.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/record-alert.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/widget-contract.mdx (via @objectstack/spec)
  • content/docs/releases/implementation-status.mdx (via @objectstack/spec)
  • content/docs/releases/index.mdx (via @objectstack/spec)
  • content/docs/releases/v12.mdx (via @objectstack/spec)
  • content/docs/releases/v13.mdx (via @objectstack/spec)
  • content/docs/releases/v16.mdx (via @objectstack/spec)
  • content/docs/releases/v9.mdx (via @objectstack/spec)
  • content/docs/ui/actions.mdx (via @objectstack/spec)
  • content/docs/ui/create-vs-edit-form.mdx (via @objectstack/spec)
  • content/docs/ui/dashboards.mdx (via @objectstack/spec)
  • content/docs/ui/forms.mdx (via @objectstack/spec)
  • content/docs/ui/index.mdx (via @objectstack/spec)
  • content/docs/ui/public-data-collection.mdx (via @objectstack/spec)
  • content/docs/ui/setup-app.mdx (via @objectstack/spec)
  • content/docs/ui/translations.mdx (via @objectstack/spec)
  • content/docs/ui/views.mdx (via @objectstack/spec)

Advisory only. To re-verify, run the docs-accuracy-audit workflow scoped to these files:
node scripts/docs-audit/affected-docs.mjs origin/main → pass the list as args.docs.

@os-zhuang
os-zhuang merged commit a6c35a2 into main Jul 25, 2026
17 checks passed
@os-zhuang
os-zhuang deleted the chore/3463-prune-report-schemas branch July 25, 2026 03:21
os-zhuang added a commit that referenced this pull request Jul 27, 2026
…drop re-exports — ADR-0076 Step 2 PR-C (#2462) (#3591)

- assembleMetadataProtocol() in metadata-protocol is now the ONE
  assembly (objects + protocol shim + D12 degraded analytics);
  createMetadataProtocolPlugin (cloud/delegated) and ObjectQLPlugin's
  registerProtocol convenience mode both mount it (~112 inline lines
  deleted from the engine plugin; the shim return feeds the engine's
  mutation-rebind subscription synchronously).
- objectql's six protocol re-exports removed (breaking-as-minor per
  launch-window, #3486/#3488 precedent). Five known importers
  repointed (rest x3 tests, runtime seed-loader re-export + its
  integration test); runtime gains the direct metadata-protocol dep.
- Recipe correction (recorded on #2462): the objectql→metadata-protocol
  DEPENDENCY stays — ./core was already protocol-free, and forcing ~20
  framework boot sites to mount two plugins is a pure boilerplate tax.
  Step 2's goal lands as "zero assembly ownership, single source".

Verified: full build; objectql 1086, rest 380, runtime 653, dogfood
60/61 in parallel (semantic-roles 10s-hook flake passes solo).

Co-authored-by: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation protocol:ui size/m tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[P3] Report: prune dangling ReportColumnSchema/ReportGroupingSchema exports + retire the legacy ReportViewer fallback

1 participant