Skip to content

finding: four more private copies of the reference-bearing field family (kanban, detail x2, resolveActionParams) — each missing user/tree and each carrying the undeclarable reference #5874

Description

@claude

Measured while implementing #5692 (the two plugin-dashboard copies). Out of that card's fence, which is the two plugin-dashboard files plus their tests — filed rather than widened into a cross-package diff.

What is there

@object-ui/core's EXPANDABLE_FIELD_TYPES (packages/core/src/utils/expand-fields.ts) is the published reference-bearing field family. Four MORE faces restate it inline, none deriving from it and none pinned against it:

filethe restatement
packages/plugin-kanban/src/ObjectKanban.tsx:346def?.type === 'lookup' || def?.type === 'master_detail' || def?.type === 'reference'
packages/plugin-detail/src/RecordDetailDrawer.tsx:227def.type === 'lookup' || def.type === 'master_detail' || def.type === 'reference'
packages/plugin-detail/src/HeaderHighlight.tsx:147resolvedType === 'reference' || resolvedType === 'lookup' || resolvedType === 'master_detail' (inside a wider isWide disjunction)
packages/app-shell/src/utils/resolveActionParams.ts:489resolvedType === 'lookup' || resolvedType === 'reference'

Why it is not merely duplication — every one of them diverges in BOTH directions

corethese four
lookupyesyes
master_detailyesyes (3 of 4; resolveActionParams omits it)
useryesno
treeyesno
referencenoyes

Two concrete consequences, same shape #4790 recorded for the form layer:

Deliberately NOT this issue

Direction

Same treatment as #4770 / #4790 / #4815 / #5312 / #5692: read EXPANDABLE_FIELD_TYPES and carry an identity pin (a spy on its .has) so a member-identical private copy fails rather than quietly re-forking. Each face needs its own call on whether gaining user / tree is the intended behaviour there — on the four above it looks like restoration rather than widening, but that is a per-face judgement and this card does not pre-empt it. Do NOT copy the set.

Related: #4770, #4790, #4815, #5312, #5692, #5654, #4914.


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