Symptom
The showcase account extension contributes 3 fields. Where they show up:
| Surface |
Extension fields present? |
GET /meta/object (list) |
yes |
GET /meta/object/showcase_account (by name) |
no |
GET /meta/object/showcase_account?layers=true |
no — absent from both layers |
GET /api/v1/data/... round-trip |
yes — they are real columns, values persist |
| Read-only record detail page |
yes — they render |
Expected: the by-name response composes the same contributors the list response does, so an object's resolved schema is identical whichever way it is fetched.
Consequence, and why this is not cosmetic: the edit and new forms derive from the by-name response, so the three overlay fields are absent from every writable form. They can be read, and they can be written through the data API, but they can never be set through the UI.
Root cause
Not located by the report. What the evidence constrains:
- The contribution is registered and is materialised — the columns exist and round-trip through
/api/v1/data, and the list route composes them.
- So the fault is on the by-name read path, not in registration: the by-name handler resolves the object from a source that omits extension contributors, and the
?layers=true projection omits them too (they are in neither layer, not merely folded into the wrong one).
Whether the omission sits in the REST /meta/object/:name handler or in the metadata read path it calls needs to be measured; the ?layers=true behaviour points at the layer-resolution side rather than at REST plumbing, which is why this card is filed domain:metadata — re-route if the fix turns out to land in packages/rest.
Timing note for whoever picks this up: #7306 (ADR-0029 D9, "register a tenant object overlay as its own contributor layer") merged 2026-08-10T09:34Z, around when this run's framework commit was cut, and it changes layer classification and the getArtifactItem read. It targets tenant (_provenance:'org') overlays rather than a code-declared extension, so it is not expected to fix this — but re-measure on current main before starting.
Reproduction
- Boot the showcase (it declares the account extension with its 3 extra fields).
GET /meta/object — the extension fields are in the listed showcase_account entry.
GET /meta/object/showcase_account — they are gone.
GET /meta/object/showcase_account?layers=true — still gone, in both layers.
- Open the record's edit/new form in the console — no inputs for those 3 fields; open the read-only detail page — they render, with values written through
/api/v1/data.
Source
Extracted from the QA run #7514 (framework a86db17, console 09987b68).
Symptom
The showcase account extension contributes 3 fields. Where they show up:
GET /meta/object(list)GET /meta/object/showcase_account(by name)GET /meta/object/showcase_account?layers=trueGET /api/v1/data/...round-tripExpected: the by-name response composes the same contributors the list response does, so an object's resolved schema is identical whichever way it is fetched.
Consequence, and why this is not cosmetic: the edit and new forms derive from the by-name response, so the three overlay fields are absent from every writable form. They can be read, and they can be written through the data API, but they can never be set through the UI.
Root cause
Not located by the report. What the evidence constrains:
/api/v1/data, and the list route composes them.?layers=trueprojection omits them too (they are in neither layer, not merely folded into the wrong one).Whether the omission sits in the REST
/meta/object/:namehandler or in the metadata read path it calls needs to be measured; the?layers=truebehaviour points at the layer-resolution side rather than at REST plumbing, which is why this card is fileddomain:metadata— re-route if the fix turns out to land inpackages/rest.Timing note for whoever picks this up: #7306 (ADR-0029 D9, "register a tenant object overlay as its own contributor layer") merged 2026-08-10T09:34Z, around when this run's framework commit was cut, and it changes layer classification and the
getArtifactItemread. It targets tenant (_provenance:'org') overlays rather than a code-declared extension, so it is not expected to fix this — but re-measure on currentmainbefore starting.Reproduction
GET /meta/object— the extension fields are in the listedshowcase_accountentry.GET /meta/object/showcase_account— they are gone.GET /meta/object/showcase_account?layers=true— still gone, in both layers./api/v1/data.Source
Extracted from the QA run #7514 (framework a86db17, console 09987b68).