You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ADR-0079 title: 19 objects that declare titleFormat and NO pointer get nameField: id stamped by the registry designation pass, so a renderer honouring the declared pointer (objectui#9436) shows the raw record id as the title #20044
Filing gate ① — a product defect with a named site and a measurement (class b: the served body presents a pointer the author never declared, contrary to the titleFormat / nameField contract).
⛔ This is not a claim. Filed bare: routing and grading are triage's. It spans lanes (engine and services packages).
Actionable reader: whichever lane triage names. If the remedy is the designation pass, that lane is the one owning packages/spec/src/data/display-name.ts and the registry's provisionPrimary.
The contract
@objectstack/spec's titleFormat describe (packages/spec/src/data/object.zod.ts, around :2149 on main) says 「an explicit nameField now takes precedence … Migrate a single-field title to nameField, a composite to a formula field designated as nameField」. ADR-0079 orders the title as nameField → displayNameField → derivation.
The defect (measured by the #20015 dev at a02c8673d7; ⛔ not re-run by this seat)
The dev registered each object declaration in a real ObjectQL registry. The designate-only pass (provisionPrimary(…, { synthesize: false })) stamps nameField: 'id' on objects that declare a titleFormat and no pointer, because it derives id as the first title-eligible field.
A body served by a /meta read carries that stamp as if it were explicit (packages/spec/src/data/display-name.ts:331: 「A body served by a /meta READ EXIT is already designated」).
Six more no-pointer objects get a non-id field designated, so their title moves to that field's value (noted, may be intended): sys_attachment → file_name, sys_report_schedule → name, sys_audience_binding_suggestion → permission_set_name, sys_record_share → object_name, sys_share_link → label, sys_notification_template → subject.
Two readings of the remedy (for triage to route; ⛔ not decided here)
The designation pass: it never stamps id as a primary title when the author declared a titleFormat and no pointer. This is one site in the spec / registry derivation, and it changes what every served body presents.
Reading 1 follows the describe's own migration instruction. Reading 2 prevents the class. Choosing between them may be triage's routing, or a decision if it moves the derivation contract.
Dedupe
One semantic issue search, open and closed, on 「objects declaring titleFormat without nameField get nameField id stamped by registry designation, record page title shows raw id after ADR-0079 order」: 8 hits.
None covers the designation pass stamping id on no-pointer titleFormat objects.
Dedupe words: titleFormat no nameField designated id · provisionPrimary designate id H1 · registry stamps nameField id titleFormat · ADR-0079 derived pointer served as explicit · sys_notification_delivery record title raw id
Filing gate ① — a product defect with a named site and a measurement (class b: the served body presents a pointer the author never declared, contrary to the
titleFormat/nameFieldcontract).domain:servicesseat (session_01Evb5jFDZGKQE9KG4jbMfMF, seat post [PM seat] domain:services — 🟢 os-justin #6021).nameField: idbeside atitleFormat— once objectui honours ADR-0079's order (objectui#9436), their record-page H1 becomes the raw record id #20015 dev on PR fix(plugin-approvals, service-automation, service-messaging): title five system objects with a text formula instead of the raw id #20042, as an out-of-scope finding.packages/spec/src/data/display-name.tsand the registry'sprovisionPrimary.The contract
@objectstack/spec'stitleFormatdescribe (packages/spec/src/data/object.zod.ts, around:2149onmain) says 「an explicit nameField now takes precedence … Migrate a single-field title to nameField, a composite to a formula field designated as nameField」. ADR-0079 orders the title asnameField→displayNameField→ derivation.titleFormatabove the ADR-0079 declared pointer,getRecordDisplayNameranks it below (option C of objectui#8351) objectui#9436 (ruling C1, maintainer 「同意」, in flight) makes the record page follow that order.The defect (measured by the #20015 dev at
a02c8673d7; ⛔ not re-run by this seat)ObjectQLregistry. The designate-only pass (provisionPrimary(…, { synthesize: false })) stampsnameField: 'id'on objects that declare atitleFormatand no pointer, because it derivesidas the first title-eligible field./metaread carries that stamp as if it were explicit (packages/spec/src/data/display-name.ts:331: 「A body served by a /meta READ EXIT is already designated」).nameField: idbeside atitleFormat— once objectui honours ADR-0079's order (objectui#9436), their record-page H1 becomes the raw record id #20015 fixes for five objects that declarednameField: 'id'explicitly.The 19 objects, by package:
platform-objects(domain:engine):sys_account,sys_business_unit_member,sys_invitation,sys_member,sys_scim_group_member,sys_scim_projection_grant,sys_scim_subject,sys_team_member,sys_two_factor,sys_verification;plugin-approvals:sys_approval_delegation;plugin-security:sys_position_permission_set,sys_user_permission_set,sys_user_position;service-messaging:sys_notification_delivery,sys_notification_preference,sys_notification_receipt,sys_notification_subscription;service-realtime:sys_presence.Six more no-pointer objects get a non-id field designated, so their title moves to that field's value (noted, may be intended):
sys_attachment→file_name,sys_report_schedule→name,sys_audience_binding_suggestion→permission_set_name,sys_record_share→object_name,sys_share_link→label,sys_notification_template→subject.Two readings of the remedy (for triage to route; ⛔ not decided here)
nameFieldreproducing itstitleFormat, as the describe prescribes and as PR fix(plugin-approvals, service-automation, service-messaging): title five system objects with a text formula instead of the raw id #20042 does for five objects. This is per-package work, split by lane.idas a primary title when the author declared atitleFormatand no pointer. This is one site in the spec / registry derivation, and it changes what every served body presents.Reading 1 follows the describe's own migration instruction. Reading 2 prevents the class. Choosing between them may be triage's routing, or a decision if it moves the derivation contract.
Dedupe
One semantic issue search, open and closed, on 「objects declaring titleFormat without nameField get nameField id stamped by registry designation, record page title shows raw id after ADR-0079 order」: 8 hits.
nameField: idbeside atitleFormat— once objectui honours ADR-0079's order (objectui#9436), their record-page H1 becomes the raw record id #20015 (the explicitnameField: 'id'five), A lowered hook body cannot name a record: no nameField accessor, no formula fields — so every message hand-composes the title, or falls back to the id #11293 (closed, hook bodies lacking a name accessor),searchAll's title rendering reads only the deprecateddisplayNameField, so a canonically-designated primary title never titles a ⌘K hit #8786 (closed,searchAllreadingdisplayNameField) and [finding]codecounts as a title face to lint's R9 but is not a name-ish key to spec's ADR-0079 derivation — two "name-like" sets, one undocumented gap #6734 (closed, the name-like set gap).idon no-pointertitleFormatobjects.Dedupe words:
titleFormat no nameField designated id·provisionPrimary designate id H1·registry stamps nameField id titleFormat·ADR-0079 derived pointer served as explicit·sys_notification_delivery record title raw idGenerated by Claude Code