Skip to content

docs(plugin-detail): README teaches a detail tab whose content.type is activity-timeline, which nothing registers — a reader gets the OBJUI-001 panel #8114

Description

@baozhoutao

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).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions