Found while bumping the console pin (#15422, 00d3f09c500c to a472b07167a3); filed rather than fixed, because a pin bump takes no riders. ⛔ Unassigned, unlabeled — awaiting triage first-touch grading.
The measurement
packages/spec/liveness/field.json carries two status: "live" entries for displayField whose note describes objectui's reader as reading the snake_case spelling:
| entry |
note |
/props/displayField |
"objectui LookupField/RecordPickerDialog — candidate label field in the record picker (reads displayField || display_field)." |
/props/inlineColumns/children/displayField |
"objectui GridField.tsx lookup cells — LookupField display_field." |
objectui 351eb3181 (objectui#7155, maintainer ruling A' of 2026-09-03, merged upstream 2026-09-04 and inside the range this bump carries) removes display_field, description_field, lookup_filters and id_field from LookupFieldMetadata / UserFieldMetadata and makes the read chains read the spec spelling only — no deprecation window, no dual read.
So after the pin lands:
- the first note's parenthetical
reads displayField || display_field names a read chain that no longer exists;
- the second note names
display_field as the key that reader reads, which is now false outright.
Both entries' verdicts stay correct — displayField is live, and more exclusively so than before. What is stale is the evidence prose beneath them.
Why it is worth a card rather than a shrug
Liveness notes are the evidence an ADR-0049 enforce-or-remove decision is taken on: a note asserting a reader reads a key is exactly what stops that key being read as dead. A note naming the WRONG key can push a later census either way — toward crediting a retired spelling with a live reader, or toward doubting the entry that is genuinely live. The repo already treats this class as real: packages/spec/liveness/ exists so that a "who reads this" claim is written down rather than re-derived, and a written-down claim that has gone false is worse than none.
Dedup
Read 2026-09-04 over all 568 open issues of this repo (REST list endpoints, /search/issues is 403 on this seat), grepping title + body for display_field, liveness/field.json, lookup dialect, descriptionField, lookup_filters: the only two liveness/field.json mentions are #15161 (valueDomain write-path enforcement) and #6367 (a PM seat post), neither about these notes. Control leg on the same corpus: "liveness" appears in 32 open issues, so the term is present and the corpus is readable — the zero above is a measured absence.
Candidate fixes (⛔ not deciding here)
- Rewrite both notes to name the camelCase reader, dated to the pin that made it exclusive.
- Same, plus a gate that reads the note's key spelling back against the pinned objectui tree — the same shape as the other cross-repo provenance records, and the only version that cannot rot again silently.
- Leave the notes; record only that the parenthetical is historical.
Refs: #15422 (the pin bump that surfaced it) · objectui#7155 · ADR-0049.
Generated by Claude Code
Found while bumping the console pin (#15422,
00d3f09c500ctoa472b07167a3); filed rather than fixed, because a pin bump takes no riders. ⛔ Unassigned, unlabeled — awaiting triage first-touch grading.The measurement
packages/spec/liveness/field.jsoncarries twostatus: "live"entries fordisplayFieldwhosenotedescribes objectui's reader as reading the snake_case spelling:/props/displayField/props/inlineColumns/children/displayFieldobjectui
351eb3181(objectui#7155, maintainer ruling A' of 2026-09-03, merged upstream 2026-09-04 and inside the range this bump carries) removesdisplay_field,description_field,lookup_filtersandid_fieldfromLookupFieldMetadata/UserFieldMetadataand makes the read chains read the spec spelling only — no deprecation window, no dual read.So after the pin lands:
reads displayField || display_fieldnames a read chain that no longer exists;display_fieldas the key that reader reads, which is now false outright.Both entries' verdicts stay correct —
displayFieldis live, and more exclusively so than before. What is stale is the evidence prose beneath them.Why it is worth a card rather than a shrug
Liveness notes are the evidence an ADR-0049 enforce-or-remove decision is taken on: a note asserting a reader reads a key is exactly what stops that key being read as dead. A note naming the WRONG key can push a later census either way — toward crediting a retired spelling with a live reader, or toward doubting the entry that is genuinely live. The repo already treats this class as real:
packages/spec/liveness/exists so that a "who reads this" claim is written down rather than re-derived, and a written-down claim that has gone false is worse than none.Dedup
Read 2026-09-04 over all 568 open issues of this repo (REST list endpoints,
/search/issuesis 403 on this seat), grepping title + body fordisplay_field,liveness/field.json,lookup dialect,descriptionField,lookup_filters: the only twoliveness/field.jsonmentions are #15161 (valueDomain write-path enforcement) and #6367 (a PM seat post), neither about these notes. Control leg on the same corpus: "liveness" appears in 32 open issues, so the term is present and the corpus is readable — the zero above is a measured absence.Candidate fixes (⛔ not deciding here)
Refs: #15422 (the pin bump that surfaced it) · objectui#7155 · ADR-0049.
Generated by Claude Code