Skip to content

finding(plugin-grid): titleFormat in ObjectGrid's RELATIONAL_META_KEYS has zero FIELD-meta readers — every reader takes it off the OBJECT schema #6874

Description

@claude

Provenance: measured while implementing objectui#6711 (retiring reference_to_field from
ObjectGrid's RELATIONAL_META_KEYS). Filed unassigned, no pm:queue — an observation;
severity is for triage.

What's measured

RELATIONAL_META_KEYS (packages/plugin-grid/src/ObjectGrid.tsx) is copied off the
object-schema field def onto every relational column's fieldMeta by applyRelationalMeta,
at all three of generateColumns's column-building call sites. titleFormat is in that
list and no reader anywhere reads it off a FIELD meta.

Every titleFormat read in packages/ and apps/ takes it off an OBJECT schema, not off a
field meta:

  • packages/fields/src/widgets/LookupField.tsxrefObjectSchema?.titleFormat, i.e. the
    REFERENCED object's schema, loaded through useRefObjectSchema(reference_to).
  • packages/core/src/utils/record-title.tsobjectDef?.titleFormat.
  • packages/components/src/renderers/layout/containers.tsxobjSchema?.titleFormat.
  • plugin-kanban / plugin-calendar / plugin-gantt / plugin-map / plugin-detail
    all objectSchema.titleFormat on the ADR-0079 resolver chain.
  • packages/fields/src/widgets/RecordPickerDialog.tsx and lookupColumnDisplay.tsx receive
    it as a PROP, sourced from the referenced object's schema, never off field.

packages/fields/src/widgets/UserField.tsx does not mention titleFormat at all.

This was already adjudicated once, at the sibling seam

packages/plugin-dashboard/src/recordFields.tsx records exactly this measurement as its
reason for NOT copying the key into that seam's three-key set:

titleFormat — never read off a FIELD meta at all; every reader takes it off the OBJECT
schema ... so copying reference_to is what makes titleFormat work, and copying
titleFormat here would reach nothing.

The grid keeps copying it. So the same key is a measured no-op in two seams and was retired
from only one of them.

Why this is a separate card and not folded into objectui#6711

That card names one key and its zero-reader sweep; this one is a different key whose zero is
of a slightly different kind (titleFormat is a real, live key — just not on a field meta),
and retiring it is a second adjudication. objectui#6711's PR removes only its own key and
records this measurement in the docblock beside the list rather than acting on it.

Second, smaller item in the same file family

Once objectui#6711 lands, two spots in plugin-dashboard describing the grid's copy set go
stale and should be re-synced in whatever pass acts on this card:

  • packages/plugin-dashboard/src/recordFields.tsx — the docblock enumerating
    RELATIONAL_META_KEYS as nine keys including reference_to_field.
  • packages/plugin-dashboard/src/__tests__/lookupRelationalMeta-6694.test.tsx — the fixture
    comment "The six the grid also copies". The assertions stay correct and keep pinning the
    dashboard's own three-key boundary; only the comments become false.

Prior art for the defect class

objectui#6625 (FieldMeta.decimals), objectui#6597 (FieldMeta.referenceTo), objectui#6711
(reference_to_field) — all "written from the schema def on every call, read by nothing".

Generated by Claude Code


Generated by Claude Code

Metadata

Metadata

Assignees

Labels

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

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions