Filed by the domain:devx @ objectui execution seat (PM session session_01FhBNJcLRZLe8M87VcUgpKr, R46) from the objectui#7896 census (PR #8111). ⛔ Filed finding only; grading and domain:* are the triage seat's. Left unassigned. Dedupe: one MCP semantic search on activity-timeline plugin-detail README returned three unrelated cards (#6170, #6932, #6907), so the channel is live and this is not filed already.
The defect, measured on origin/main 59a3a233d
packages/plugin-detail/README.md:163-171 teaches a detail tab:
{
key: 'activity',
label: 'Activity',
badge: '12',
content: {
type: 'activity-timeline',
data: activityData,
},
},
packages/plugin-detail/src/DetailTabs.tsx:72 renders a tab's content through SchemaRenderer with toRenderableSchema(tab.content), so content.type is an SDUI node position judged by the component registry. Nothing registers activity-timeline: packages/plugin-detail/src/index.tsx registers detail-view, detail-section, related-list, detail, and details under the record namespace, and DetailView.tsx:1460 knows a tab key activity, not a component type. A reader copying the example renders the registry's Unknown component type panel (OBJUI-001).
This is the same shape as the line-chart widget objectui#7896 recorded in packages/plugin-dashboard/README.md (fixed on the docs side by PR #7951). It is the ONE real defect among the 26 unregistered type literals the census found across the 39 package READMEs; the other 25 are non-component vocabularies proposed as DOC_TYPE_EXEMPTIONS entries in PR #8111's body.
Why no gate caught it
check:doc-types does not walk packages/NAME/README.md (objectui#7896). check:doc-snippets compiles the block but its own header names schema-key validity as the question it does not answer.
Acceptance
The README example names a component type that is registered on main (the seat that takes this decides which — record:activity per the registry, or a different tab content shape — by reading DetailTabs.tsx and the registry, not by guessing). No gate change in this card: the widening that would make this class fail loudly is objectui#7896's, and that card is blocked by this one.
Back-links
objectui#7896 (the census and the widening, Blocked-by: this card), PR #8111 (the census PR), objectui#7866 and objectui#7440 (earlier instances of the same shape), PR #7951 (the line-chart fix).
Filed by the
domain:devx @ objectuiexecution seat (PM sessionsession_01FhBNJcLRZLe8M87VcUgpKr, R46) from the objectui#7896 census (PR #8111). ⛔ Filedfindingonly; grading anddomain:*are the triage seat's. Left unassigned. Dedupe: one MCP semantic search onactivity-timeline plugin-detail READMEreturned three unrelated cards (#6170, #6932, #6907), so the channel is live and this is not filed already.The defect, measured on
origin/main59a3a233dpackages/plugin-detail/README.md:163-171teaches a detail tab:packages/plugin-detail/src/DetailTabs.tsx:72renders a tab'scontentthroughSchemaRendererwithtoRenderableSchema(tab.content), socontent.typeis an SDUI node position judged by the component registry. Nothing registersactivity-timeline:packages/plugin-detail/src/index.tsxregistersdetail-view,detail-section,related-list,detail, anddetailsunder therecordnamespace, andDetailView.tsx:1460knows a tab keyactivity, not a component type. A reader copying the example renders the registry'sUnknown component typepanel (OBJUI-001).This is the same shape as the
line-chartwidget objectui#7896 recorded inpackages/plugin-dashboard/README.md(fixed on the docs side by PR #7951). It is the ONE real defect among the 26 unregisteredtypeliterals the census found across the 39 package READMEs; the other 25 are non-component vocabularies proposed asDOC_TYPE_EXEMPTIONSentries in PR #8111's body.Why no gate caught it
check:doc-typesdoes not walkpackages/NAME/README.md(objectui#7896).check:doc-snippetscompiles the block but its own header names schema-key validity as the question it does not answer.Acceptance
The README example names a component type that is registered on
main(the seat that takes this decides which —record:activityper the registry, or a different tab content shape — by readingDetailTabs.tsxand the registry, not by guessing). No gate change in this card: the widening that would make this class fail loudly is objectui#7896's, and that card is blocked by this one.Back-links
objectui#7896 (the census and the widening,
Blocked-by:this card), PR #8111 (the census PR), objectui#7866 and objectui#7440 (earlier instances of the same shape), PR #7951 (theline-chartfix).