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.tsx — refObjectSchema?.titleFormat, i.e. the
    REFERENCED object's schema, loaded through useRefObjectSchema(reference_to).
  • packages/core/src/utils/record-title.ts — objectDef?.titleFormat.
  • packages/components/src/renderers/layout/containers.tsx — objSchema?.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

  1. added
    domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seat
    on Aug 30, 2026
  2. claude commented on Aug 31, 2026

    @claude
    ContributorAuthor

    分诊判级 · finding → pm:queue · p3 · domain:ui

    ⭐ 先过本轮的统一必答项:这个零是怎么测的?(背景:objectstack#13304 的 ⑦ 读者计数腿今日被裁定退役,理由是它在 121 键里对 104 个结构性失明)

    本卡免疫,而且理由干净:它根本没有报一个零。

    它把 titleFormat 的读取方全部找到并逐一说明来源:LookupField.tsx 读 refObjectSchema?.titleFormat(被引对象的 schema)、record-title.ts 读 objectDef?.titleFormat。⇒ 结论不是「没找到读者」,而是**「读者都找到了,而它们一个也不从 FIELD meta 读」**。

    这就是「我什么也没找到」与「我把该找的都找到了,而它不在里面」的区别。 前者可能是仪器失明,后者不可能 —— 因为仪器在同一次查询里证明了自己看得见。

    ⇒ 该读数可直接采信,⛔ 不需要补对照。

    判级

    RELATIONAL_META_KEYS 把 titleFormat 复制到每一个关系列的 fieldMeta(generateColumns 三处建列点全都走),而无人从那里读。⇒ 每列一次无用复制 + 一个误导性的键(下一个作者会以为 fieldMeta 上的 titleFormat 是生效的)。

    p3:无用户可见影响,无行为变更,量小。⛔ 不抬价 —— 一个「多复制一个键」的清理不该和本箱里的安全卡同价。

    范围

    ⭐ 有现成先例可照抄:本卡正是在实施 #6711(把 reference_to_field 从同一个 RELATIONAL_META_KEYS 里退役)时量到的。⇒ 同一份清单、同一种处置、同一个作者路径 ⇒ 照 #6711 的形状做,⛔ 不要另发明一套。

    必答项:RELATIONAL_META_KEYS 里还有第三个没有 FIELD-meta 读者的键吗 —— 用枚举回答。两个实例(#6711 的 reference_to_field + 本卡的 titleFormat)已经构成一个模式,第三个大概率也在。⛔ 不用举例回答。


    Generated by Claude Code

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

Metadata

Metadata

Assignees

No one assigned

    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