Skip to content

finding(plugin-dashboard): FieldMeta.decimals is written from the schema def but read by nothing #6625

Description

@os-sales

Found while landing objectui#6425's per-key ruling (the authored decimals override retire). Filed unassigned, finding label — observation, not a queued defect.

Measured (worktree at c63f691, base 2a23000)

packages/plugin-dashboard/src/recordFields.tsx:

  • FieldMeta declares decimals?: number and buildFieldMeta still writes it: decimals: meta?.decimals ?? meta?.scale (the schema-derived half; the overrides.decimals ?? head of that chain lost its only feeder when finding(plugin-dashboard): ObjectDataTable honours five undeclared authored column keys as field-meta overrides #6425's retire removed the authored read in ObjectDataTable.enrich()).
  • BuildFieldMetaParams.overrides still declares decimals?: number — now fed by no caller (ObjectDataTable.enrich() no longer passes it; RecordDetailDrawer never passed overrides at all).
  • Zero .decimals member reads across @object-ui/fields, @object-ui/i18n, @object-ui/components, @object-ui/core and plugin-dashboard itself — every other decimals occurrence in those packages is a local variable parsed from a format string. Positive control in the same query shape: .scale member reads hit (NumberField.tsx, GridField.tsx, index.tsx).

So FieldMeta.decimals is a written-never-read member: the value is computed from the object schema on every buildFieldMeta call and reaches nothing. Same declared != enforced family as the #6373/#6425 seam, one layer in.

Why it was not cleaned up in the #6425 PR

The dispatch fence for #6425 named ObjectDataTable.tsx (plus types + tests); recordFields.tsx is outside it, and the ruling adjudicated the AUTHORED column key, not FieldMeta's own member. Recorded here instead of riding an unrelated diff.

⚠️ One coupling for whoever picks this up: AuthoredColumnOverrides' refusal band in ObjectDataTable.tsx derives from keyof FieldMeta, and decimals' membership in that band is what enforces the #6425 retire at the read site (pinned by ObjectDataTable.overrideSource-6425.test.tsx). Removing FieldMeta.decimals therefore also removes it from the band — the follow-up must keep an explicit refusal (or update the pin deliberately), not drop it by accident.

Suggested disposition

Retire FieldMeta.decimals and the dead overrides.decimals param together in a small follow-up (grep-clean, behaviour-preserving — no reader exists to notice), minding the band coupling above. If a reader is ever intended, it should read scale like the rest of the family.

Related

  • objectui#6425 — the ruling that retired the authored override half
  • objectui#6373 — the write half of the same seam
  • objectui#6597 — referenceTo, the promised-but-not-kept sibling

Generated by Claude Code

Metadata

Metadata

Assignees

Labels

domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatpm:dispatched

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions