Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions .changeset/spec-accessor-key-citations.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
"@objectstack/spec": patch
---

docs(spec): re-cite objectui's data-table column accessor as `accessorKey` only (#14166)

Two notes in this package described objectui's `data-table` accessor as
resolving two spellings, `accessorKey || name`:

- `liveness/field.json` — the `relatedListColumns` entry's `note`
- `src/conversions/registry.ts` — the `field-column-lists-canonicalized`
docblock

objectui#6963 retired the `name` alias, and the console pin this repo builds
against (`.objectui-sha` = `67dadd602a3a891666ea1513c5de677140784b6a`) contains
it: at that commit the adapter maps `accessorKey: col.accessorKey` with no
fallback (`packages/components/src/renderers/complex/data-table.tsx:872-876`),
while `columnIdentity` still resolves canonical `field` first
(`packages/core/src/utils/column-identity.ts:69`). Both notes described a
two-spelling resolution that no longer exists, and each carried a measurement
date that predated the retirement.

Citation accuracy only. Both notes reach the same conclusion they already did —
a spec-canonical `{ field }` object entry renders blank cells, so the
conversion folds an object entry to its identity string and the parse refuses
what has no resolvable identity. No verdict moves, no ledger state changes, no
accepted shape moves, and no code changes: the `relatedListColumns` entry keeps
its `live` status, its `verifiedAt`, its `evidence` and every count.

Why this publishes at all: `liveness/**` is in this package's `files`, and the
`registry.ts` docblock ships inside `dist/*.map` `sourcesContent`, so both
edited byte-ranges are in the tarball.
2 changes: 1 addition & 1 deletion packages/spec/liveness/field.json
Original file line number Diff line number Diff line change
Expand Up @@ -395,7 +395,7 @@
"verifiedAt": "2026-08-17",
"evidenceScope": "cross-repo",
"evidence": "objectui: packages/app-shell/src/utils/deriveRelatedLists.ts (columns override on the derived descriptor) → views/RecordDetailView.tsx → plugin-detail/RelatedList.tsx (normalizeColumn hydrates STRING entries: header from the child field label, type-aware cell via makeCell)",
"note": "LIVE via objectui renderer. #9227 narrowed the elements to child FIELD-NAME STRINGS — the only authored form in-repo (three showcase objects) and the only form the renderer hydrates fully; the page-block sibling record:related_list.columns (ui/component.zod.ts) is the same strings-only shape. Measured 2026-08-17 against objectui main: object entries span two vocabularies (RelatedList resolves identity via columnIdentity, canonical `field`; the data-table accessor resolves `accessorKey || name` only), so a spec-canonical {field} object renders BLANK cells — refused at parse instead."
"note": "LIVE via objectui renderer. #9227 narrowed the elements to child FIELD-NAME STRINGS — the only authored form in-repo (three showcase objects) and the only form the renderer hydrates fully; the page-block sibling record:related_list.columns (ui/component.zod.ts) is the same strings-only shape. RE-CITED 2026-09-03 (#14166): the 2026-08-17 reading against objectui main had the data-table accessor resolving `accessorKey || name`; objectui#6963 retired the `name` alias, and at the `.objectui-sha` pin `67dadd602a3a` object entries span two vocabularies (RelatedList resolves identity via columnIdentity, canonical `field`; the data-table accessor resolves `accessorKey` only), so a spec-canonical {field} object renders BLANK cells — refused at parse instead. Verdict unchanged: LIVE."
},
"relatedListFilter": {
"status": "planned",
Expand Down
7 changes: 4 additions & 3 deletions packages/spec/src/conversions/registry.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7264,9 +7264,10 @@ const translationComponentSubmitLabelRemoved: MetadataConversion = {
* - `relatedListColumns` entries are child FIELD-NAME STRINGS. The
* conversion folds an object entry to its identity string
* (`field` → `name` → `fieldName`, objectui's `columnIdentity` order) and
* drops the decoration keys: measured on objectui main, an object entry's
* display keys span two vocabularies (`columnIdentity` is
* canonical-`field`, the data-table accessor reads `accessorKey || name`),
* drops the decoration keys: re-measured at the `.objectui-sha` pin
* `67dadd602a3a`, an object entry's display keys span two vocabularies
* (`columnIdentity` is canonical-`field`, the data-table accessor reads
* `accessorKey` only — objectui#6963 retired the `name` alias),
* so no object spelling renders reliably — the derived-from-schema string
* is the one form that always has. An object with no resolvable identity
* is left for the parse to refuse; a conversion must not invent data.
Expand Down
Loading