Found while implementing #5830 (out of scope there; recorded, not touched).
Measured on origin/main at da8db03a6
The designer surface carries its own dashboard aria pair, separate from the DashboardComponentSchema.aria member #5830 retires:
packages/types/src/designer.ts (~line 625): DashboardConfig.aria?: { label?: string; description?: string } — note the spellings are neither the spec's AriaProps (ariaLabel/ariaDescribedBy/role) nor anything a renderer maps.
packages/types/src/zod/complex.zod.ts (~line 541): DashboardConfigSchema's aria: z.object({ label, description }).optional() twin.
Three measurements:
- Zero non-test
.aria reads in packages/plugin-designer/src, packages/plugin-dashboard/src, and apps/console/src (control: the same grep family finds the live schema.aria reads in plugin-detail's record-quick-actions.tsx).
DashboardConfigSchema has zero non-test consumers — it is exported from zod/index.zod.ts and imported only by its own test (dashboard-config.test.ts). The comment on it says "Zod validator for DashboardConfigPanel data model", but packages/plugin-dashboard/src/DashboardConfigPanel.tsx imports neither DashboardConfig nor DashboardConfigSchema.
- The non-test consumers of the
DashboardConfig type are packages/types/src/index.ts (re-export) and designer.ts itself.
So at minimum the aria member of this pair is declared-but-dead (with home-grown spellings that never matched any contract), and possibly the whole DashboardConfig/DashboardConfigSchema surface is an unconsumed data model — the panel it documents grew its own typing instead. Sibling context: DashboardWidgetConfigSchema (same file) still declares actionUrl, which the widget-level retirement (objectstack#5010 / objectui WidgetConfigPanel.retiredActionKeys.test.tsx) refuses at the spec — same declared-vs-contract disagreement family as #4631/#5830.
Scope note: stored customer metadata is not reachable from this seat, so the read-side scan is "no reachable usage", not "no usage". The zod half never refused anything, so retiring it changes no validation outcome.
Generated by Claude Code
Found while implementing #5830 (out of scope there; recorded, not touched).
Measured on
origin/mainatda8db03a6The designer surface carries its own dashboard
ariapair, separate from theDashboardComponentSchema.ariamember #5830 retires:packages/types/src/designer.ts(~line 625):DashboardConfig.aria?: { label?: string; description?: string }— note the spellings are neither the spec'sAriaProps(ariaLabel/ariaDescribedBy/role) nor anything a renderer maps.packages/types/src/zod/complex.zod.ts(~line 541):DashboardConfigSchema'saria: z.object({ label, description }).optional()twin.Three measurements:
.ariareads inpackages/plugin-designer/src,packages/plugin-dashboard/src, andapps/console/src(control: the same grep family finds the liveschema.ariareads inplugin-detail'srecord-quick-actions.tsx).DashboardConfigSchemahas zero non-test consumers — it is exported fromzod/index.zod.tsand imported only by its own test (dashboard-config.test.ts). The comment on it says "Zod validator for DashboardConfigPanel data model", butpackages/plugin-dashboard/src/DashboardConfigPanel.tsximports neitherDashboardConfignorDashboardConfigSchema.DashboardConfigtype arepackages/types/src/index.ts(re-export) anddesigner.tsitself.So at minimum the
ariamember of this pair is declared-but-dead (with home-grown spellings that never matched any contract), and possibly the wholeDashboardConfig/DashboardConfigSchemasurface is an unconsumed data model — the panel it documents grew its own typing instead. Sibling context:DashboardWidgetConfigSchema(same file) still declaresactionUrl, which the widget-level retirement (objectstack#5010 / objectuiWidgetConfigPanel.retiredActionKeys.test.tsx) refuses at the spec — same declared-vs-contract disagreement family as #4631/#5830.Scope note: stored customer metadata is not reachable from this seat, so the read-side scan is "no reachable usage", not "no usage". The zod half never refused anything, so retiring it changes no validation outcome.
Generated by Claude Code