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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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