Skip to content

docs(spec): correct ReportChart xAxis/yAxis semantics; mark dead report surface (#1890)#3441

Merged
os-zhuang merged 1 commit into
mainfrom
claude/report-chart-disposition-1890
Jul 24, 2026
Merged

docs(spec): correct ReportChart xAxis/yAxis semantics; mark dead report surface (#1890)#3441
os-zhuang merged 1 commit into
mainfrom
claude/report-chart-disposition-1890

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

What

Closes the report residual of the ADR-0021 analytics migration (#1890,
umbrella #1878). Investigation overturned the audit's premise: the dataset-bound
report chart is not un-migrated — objectui's DatasetReportRenderer already
plots chart.xAxis/yAxis as the bound dataset's dimension/measure via
useDatasetRows, and the Studio ReportDefaultInspector sources them from the
dataset's dimension/measure catalogs. The old ReportViewer (legacy xAxisField/
yAxisFields) is only a fallback.

The genuine leftovers were spec-accuracy, not a renderer migration:

  • ReportChart.xAxis/yAxis.describe() still said raw "Grouping field" /
    "Summary field", which misleads an author/AI into naming object fields instead of
    the dataset dimension/measure names the renderer requires. Corrected.
  • ReportChart.groupBy — marked [EXPERIMENTAL — not enforced]: the
    dataset renderer plots a single xAxis×yAxis series and never reads it.
  • ReportColumnSchema / ReportGroupingSchema — marked @deprecated:
    unreferenced by the single-form report shape (columns/grouping are dataset
    measure/dimension name arrays). Left in place (breaking to remove — objectui
    re-exports them as SpecReportColumn/SpecReportGrouping); flagged for a
    future governed prune.

Testing

  • Report spec suite green (13); check:spec-changes green; tsc --noEmit green;
    gen:api-surface reproduces the checked-in snapshot (no export removed).
  • Docs regenerated (ui/report.mdx).

Note for maintainers

The deeper disposition — enrolling report in the liveness GOVERNED set (it's
registered/authorable but not yet governed, so no ledger), and pruning the
ReportColumn/ReportGrouping exports + retiring the legacy ReportViewer — is
left as a follow-up; this PR is the non-breaking accuracy fix.

Part of umbrella #1878.

🤖 Generated with Claude Code


Generated by Claude Code

…rt surface (#1890)

Closes the report residual of the ADR-0021 analytics migration. The
dataset-bound report chart already renders (objectui DatasetReportRenderer
plots chart.xAxis/yAxis as the bound dataset's dimension/measure via
useDatasetRows; Studio ReportDefaultInspector picks them from the dataset
catalogs), but the spec describe() still called them raw fields.

- ReportChart.xAxis/yAxis describe now states dataset dimension/measure names.
- ReportChart.groupBy marked [EXPERIMENTAL — not enforced] (dataset renderer
  never reads it; only the legacy ReportViewer fallback did).
- ReportColumnSchema/ReportGroupingSchema marked @deprecated — unreferenced by
  the single-form report shape; kept only as public type exports pending a
  governed prune.

Docs regenerated. No shape/parse-behavior change; no export removed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CMaDBhnZEUu1fcw8Rvo6Yq
@vercel

vercel Bot commented Jul 24, 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 24, 2026 2:52pm

Request Review

@github-actions github-actions Bot added documentation Improvements or additions to documentation protocol:ui tooling size/s and removed documentation Improvements or additions to documentation protocol:ui tooling labels Jul 24, 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 marked this pull request as ready for review July 24, 2026 15:07
@os-zhuang
os-zhuang merged commit 32ff033 into main Jul 24, 2026
17 checks passed
@os-zhuang
os-zhuang deleted the claude/report-chart-disposition-1890 branch July 24, 2026 15:07
os-zhuang added a commit that referenced this pull request Jul 25, 2026
…#3462) (#3474)

Closes the systemic anti-drift gap for two authorable UI types (umbrella
#1878). Both were registered but ungoverned, so their property liveness
wasn't CI-checked.

- Add liveness/report.json (20 live / 2 dead) and dashboard.json
  (18 live / 2 dead), each property classified with an objectui consumer.
- Re-verification corrected stale 2026-06 audit findings: report `chart`
  is live (DatasetReportChart via useDatasetRows, #1890/#3441); dashboard
  globalFilters/dateRange live (#2501); title↔label fixed (objectui#2806);
  ADR-0021 widget migration shipped (#3251). Only aria/performance dead.
- Add both to GOVERNED in check-liveness.mts; gate green; README table +
  rollout list updated.

webhook (third type in #3462) deferred — not a registered metadata type;
rides with the disconnect decision in #3461.

No spec shape/behavior change (ledger + gate config only).


Claude-Session: https://claude.ai/code/session_01CMaDBhnZEUu1fcw8Rvo6Yq

Co-authored-by: Claude <noreply@anthropic.com>
os-zhuang added a commit that referenced this pull request Jul 25, 2026
…ts + unread report chart groupBy (#3463) (#3488)

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: 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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants