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
While implementing #11289 (which declared hideEmpty / collapsible / showBorder on RecordDetailsProps.sections under the maintainer's 2026-08-23 direction-1 ruling — that ruling names exactly those three keys, so these five are out of that card's scope and are deliberately NOT declared there), measurement of the same render path found five more keys in exactly the pre-#11289 position: honoured at runtime, rejected by the strict section schema, so objectstack validate warns they "did nothing" while they in fact do something.
Measured at the .objectui-sha pin (190fbd01) in objectui packages/plugin-detail:
RecordDetailsRenderer (renderers/record-details.tsx) spreads every authored section through to DetailSection ({ ...s, title, showBorder, hideEmpty, fields }), so any authored key reaches it.
title — read at record-details.tsx:190 as s.title ?? s.label: an authored title wins over label. A second spelling of the heading slot (the label describe() calls it the declared one), same shape as the retired page:cardbody-vs-children pair — convergence may be the right answer rather than declaration.
icon — read at DetailSection.tsx:516/546 (section.icon && <SectionIcon …>): renders a heading icon.
description — read at DetailSection.tsx:520-521/557-558: renders sub-heading text under the section title.
headerColor — read at DetailSection.tsx:513/542 (bg-${section.headerColor}): tints the card header. Note the template-literal Tailwind class is unsafe-by-construction (arbitrary values won't be in the compiled CSS), so "honoured" is only nominally true here — this one may be a renderer bug to fix rather than a key to declare.
Each key needs its own declare-vs-converge-vs-fix judgement (they are not one batch: title is an alias question, headerColor may be dead-in-practice, the middle three look like straightforward declarations), and any accept-set widening on this published face is a maintainer call — which is why this is filed rather than folded into #11289's PR. #11289 remains scoped to its ruled three keys.
Back-link: #11289 (context and the measurement method; NOT resolved here — this issue is additional scope beyond that ruling).
While implementing #11289 (which declared
hideEmpty/collapsible/showBorderonRecordDetailsProps.sectionsunder the maintainer's 2026-08-23 direction-1 ruling — that ruling names exactly those three keys, so these five are out of that card's scope and are deliberately NOT declared there), measurement of the same render path found five more keys in exactly the pre-#11289 position: honoured at runtime, rejected by the strict section schema, soobjectstack validatewarns they "did nothing" while they in fact do something.Measured at the
.objectui-shapin (190fbd01) in objectuipackages/plugin-detail:RecordDetailsRenderer(renderers/record-details.tsx) spreads every authored section through toDetailSection({ ...s, title, showBorder, hideEmpty, fields }), so any authored key reaches it.title— read atrecord-details.tsx:190ass.title ?? s.label: an authoredtitlewins overlabel. A second spelling of the heading slot (thelabeldescribe() calls it the declared one), same shape as the retiredpage:cardbody-vs-childrenpair — convergence may be the right answer rather than declaration.defaultCollapsed— read atDetailSection.tsx:139(React.useState(section.defaultCollapsed ?? false)): the initial collapsed state of acollapsible: truesection. Withcollapsiblenow declared by record:details sections cannot survive an empty record:hideEmpty/collapsible/showBorderare honoured by the renderer but undeclared by the strict section schema #11289, this is the one key of the five an author is most likely to reach for next — a collapsible section that should START folded has no legal spelling.icon— read atDetailSection.tsx:516/546(section.icon && <SectionIcon …>): renders a heading icon.description— read atDetailSection.tsx:520-521/557-558: renders sub-heading text under the section title.headerColor— read atDetailSection.tsx:513/542(bg-${section.headerColor}): tints the card header. Note the template-literal Tailwind class is unsafe-by-construction (arbitrary values won't be in the compiled CSS), so "honoured" is only nominally true here — this one may be a renderer bug to fix rather than a key to declare.Each key needs its own declare-vs-converge-vs-fix judgement (they are not one batch:
titleis an alias question,headerColormay be dead-in-practice, the middle three look like straightforward declarations), and any accept-set widening on this published face is a maintainer call — which is why this is filed rather than folded into #11289's PR. #11289 remains scoped to its ruled three keys.Back-link: #11289 (context and the measurement method; NOT resolved here — this issue is additional scope beyond that ruling).
Generated by Claude Code