Found while implementing #5113 (plugin-view's three "Interactive Examples" used no object-view). Filed unassigned, not claiming.
Measured on the #5113 branch (claude/issue-5113-plugin-view-interactive-examples), walking every plugin-* catalog category and collecting the set of type values each entry authors:
== plugin-grid
plugin-grid/product-inventory-grid -> badge button card flex stack text
plugin-grid/team-members-grid -> badge button card flex stack text
Every other plugin-* category authors a type its own package registers — calendar-view, chart/bar-chart, chatbot, dashboard, code-editor, object-gantt, kanban, object-map, markdown, timeline, form (registered by plugin-form as an alias of ObjectFormRenderer, packages/plugin-form/src/index.tsx:184), and — as of #5113 — object-view. plugin-grid is the only category left whose entries are pictures of the component rather than the component.
Why it matters, and why it is not covered
Same mechanism as #5113: content/docs/plugins/plugin-grid.mdx mounts these under a PluginLoader for a plugin they do not use, so a reader sees a drawn table where the plugin's output is claimed. Nothing catches it — check-doc-component-types only asks whether each type is registered (card, flex, badge all are), and catalog-gallery-render.test.tsx only asks whether the tile draws (these do).
#5113's PR adds a pin for plugin-view only (objectui#5113 — the plugin-view entries render THROUGH object-view in examples/schema-catalog/test/catalog-gallery-render.test.tsx): every entry in the category authors an object-view node and the rendered tile shows a record that exists only in the gallery's data source. It is deliberately not generalized — the general rule needs a per-plugin map of which types each package registers, and this category was the reason it could not simply be turned on for all of plugin-*.
What a fix would involve
object-grid reaches its data the same way object-view does — dataSource is a prop the registered renderer pulls off SchemaRendererContext, not a schema key. #5113 gave the docs gallery's fixture (apps/site/app/components/galleryDataSource.ts) the object surface it needs (getObjectSchema / find / findOne / writes) and pointed InteractiveDemo at it, so the machinery a real object-grid example needs already exists after that PR lands; the work is authoring the entries and re-seating whatever of the two mock-ups is worth keeping.
⚠️ Note for whoever takes it: deleting a catalog entry moves three corpus-wide counters — layout-dom-leak-5574.test.tsx's NODE_CENSUS and two floors in layout-props-conversion.test.tsx (className-carrying layout nodes, stack nodes). #5113 re-seated its three mock-ups into honest categories rather than dropping them, precisely so no floor had to move.
Triage note
Severity left to PM. Read as a concrete defect it is #5113 one category over; read as an observation, the two entries render fine and mislead only by where they are mounted.
Found while implementing #5113 (plugin-view's three "Interactive Examples" used no
object-view). Filed unassigned, not claiming.Measured on the #5113 branch (
claude/issue-5113-plugin-view-interactive-examples), walking everyplugin-*catalog category and collecting the set oftypevalues each entry authors:Every other
plugin-*category authors a type its own package registers —calendar-view,chart/bar-chart,chatbot,dashboard,code-editor,object-gantt,kanban,object-map,markdown,timeline,form(registered byplugin-formas an alias ofObjectFormRenderer,packages/plugin-form/src/index.tsx:184), and — as of #5113 —object-view.plugin-gridis the only category left whose entries are pictures of the component rather than the component.Why it matters, and why it is not covered
Same mechanism as #5113:
content/docs/plugins/plugin-grid.mdxmounts these under aPluginLoaderfor a plugin they do not use, so a reader sees a drawn table where the plugin's output is claimed. Nothing catches it —check-doc-component-typesonly asks whether eachtypeis registered (card,flex,badgeall are), andcatalog-gallery-render.test.tsxonly asks whether the tile draws (these do).#5113's PR adds a pin for
plugin-viewonly (objectui#5113 — the plugin-view entries render THROUGH object-viewinexamples/schema-catalog/test/catalog-gallery-render.test.tsx): every entry in the category authors anobject-viewnode and the rendered tile shows a record that exists only in the gallery's data source. It is deliberately not generalized — the general rule needs a per-plugin map of which types each package registers, and this category was the reason it could not simply be turned on for all ofplugin-*.What a fix would involve
object-gridreaches its data the same wayobject-viewdoes —dataSourceis a prop the registered renderer pulls offSchemaRendererContext, not a schema key. #5113 gave the docs gallery's fixture (apps/site/app/components/galleryDataSource.ts) the object surface it needs (getObjectSchema/find/findOne/ writes) and pointedInteractiveDemoat it, so the machinery a realobject-gridexample needs already exists after that PR lands; the work is authoring the entries and re-seating whatever of the two mock-ups is worth keeping.layout-dom-leak-5574.test.tsx'sNODE_CENSUSand two floors inlayout-props-conversion.test.tsx(className-carrying layout nodes,stacknodes). #5113 re-seated its three mock-ups into honest categories rather than dropping them, precisely so no floor had to move.Triage note
Severity left to PM. Read as a concrete defect it is #5113 one category over; read as an observation, the two entries render fine and mislead only by where they are mounted.