Skip to content
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
This repository was archived by the owner on Nov 4, 2026. It is now read-only.

Docs gallery: components-disclosure-toggle-group/with-labels names root type "single", which no package registers #4624

Closed

Description

@yinlianghui

Measured while implementing #4616 (the gallery registration widening). Filed unassigned; not fixed there — that PR registers plugin packages, and this entry's red tile is an authoring defect in the entry, not a missing registration. Duplicate-searched (keyword + the toggle-group / single type names): no open issue covers it.

The defect

examples/schema-catalog/src/schemas/components-disclosure-toggle-group/with-labels.json opens with:

{
  "type": "single",
  "items": [
    { "value": "list", "icon": "list", "label": "List" },
    ...
  ]
}

No package in the workspace registers a single component type, so /docs/guide/schema-catalog paints the registry's red panel for this tile:

Unknown component type: single (OBJUI-001)

Its two siblings in the same category spell the same idea correctly — the selection mode is a property, not the type:

  • single-selection.json — "type": "toggle-group", "selectionType": "single"
  • multiple-selection.json — "type": "toggle-group", "selectionType": "multiple"

So the value that belongs in selectionType ended up in type.

Measured

Rendering all 423 catalog entries the way SchemaThumbnail renders them, against the full registration set #4616 lands, exactly two entries still show OBJUI-001: this one, and core-schema-renderer/unknown-component-type (which demonstrates the panel on purpose). This is the only unintentional one.

Why it was left out of #4616

That card's ruling scopes it to registration and says entry-shape defects are censused and filed rather than rewritten. This entry is named as an explicit exclusion, with this issue number, in examples/schema-catalog/test/catalog-gallery-render.test.tsx — so the pin stays honest about what it does not cover, and removing the exclusion is the natural last step of fixing this.

Fix shape (not prescriptive)

The one-key correction is "type": "toggle-group" plus "selectionType": "single", matching the siblings. Worth confirming first that with-labels is meant to demo the icon+label variant of a single-select toggle group rather than something else, since its items carry icon where the siblings' do not.

Refs #4616, PR #4615.

Activity

  1. self-assigned this
    on Aug 14, 2026
  2. yinlianghui commented on Aug 14, 2026

    @yinlianghui
    ContributorAuthor

    CLAIM (combined seat: #4624 + #4626 + #4625) — session session_017Qqyix2QcnpUC9XeYVDzx3, branch claude/issue-4624-catalog-authoring-truth. Three catalog-authoring defects, one surface (examples/schema-catalog/src + the #4616 render pin's exclusion list), one seat.

    PM ruling (delegated, veto window open):

    1. Docs gallery: components-disclosure-toggle-group/with-labels names root type "single", which no package registers #4624: components-disclosure-toggle-group/with-labels — root type single becomes the spelling its two siblings use (toggle-group + selectionType: 'single'), preserving what the entry demonstrates.
    2. Docs gallery: the basic-tooltip and basic-hover-card entries render a completely blank tile — each authors a key its renderer never reads #4626: basic-tooltip authors its trigger under the key the renderer reads (trigger/body per the renderer's declaration — read it first); basic-hover-card's value becomes content. Entry meaning unchanged, keys corrected. The CLASS question the filing raises (nothing rejects an undeclared key — the silent-failure mode for AI-authored metadata) is NOT this seat's to solve: leave it recorded on Docs gallery: the basic-tooltip and basic-hover-card entries render a completely blank tile — each authors a key its renderer never reads #4626 for triage; the card stays open for that half if the class discussion deserves its own instrument, else close-with-fix and re-file the class question — seat reports which fits after reading the filing.
    3. Docs gallery: the six components-form-calendar entries author the bare "calendar" keyword, which belongs to plugin-calendar's ObjectCalendar #4625 (product ruling): the components-form-calendar category EXISTS to demo the form-calendar primitive, so the six entries should reach the PRIMITIVE, not ObjectCalendar. Verify-first: can a catalog entry address the namespaced registration (ui:calendar) directly as its type? If yes ⇒ re-author the six entries to it (minimal diff, demos preserved) and they leave the pin's DATASOURCE_REQUIRED exemption. If the namespaced type is NOT addressable from schema ⇒ STOP that piece, report the measured options (e.g. a distinct demo-able type name vs registry change — both are contract decisions), and ship pieces 1–2.
    4. The Docs gallery: 35 catalog entries render the red "Unknown component type" panel because their plugin package is never loaded on that page #4616 pin's exclusion list shrinks accordingly (its existence-guard case forces the update): fixed entries move from excluded/exempted to fully asserted. Do not touch the pin's other exclusions (Monaco/maplibre environment abstentions stay; the deliberate OBJUI-001 demo stays).

    Standard playbook: worktree, red-first per entry (the pin's diagnostics red on the current entries — capture verbatim — green after), reverse verification (no git stash), repo-root vitest (scripts/ examples/schema-catalog), gate battery, no changeset expected (examples ignored — measure; skip-changeset label per #4615/#4628 precedent — labels via union write), DRAFT PR (Fixes #4624, Fixes #4626; #4625 per piece-3 outcome), CI via MCP only (get_check_runs snapshots can be ~60min stale — run-level conclusions via list_workflow_runs are authoritative), no flip/arm.

    Mutual exclusion: no other seat in flight. ⛔ content/docs/releases/**; ⛔ apps/site registration (landed, not this card); ⛔ renderer-side changes (key-rejection class = future instrument).


    Generated by Claude Code


    Generated by Claude Code

  3. yinlianghui commented on Aug 14, 2026

    @yinlianghui
    ContributorAuthor

    PM step-7 复核: ACCEPT — both deviations ruled in the seat's favor. (1) The hover-card substitution stands: the ruled value→content swap was measured a render-time no-op that would also author a key TextSchema does not declare — the trigger-element fix is what achieves the ruling's intent (the hover card can actually open). (2) #4626 closes with this fix; its class question lives on as #4631 with strictly stronger specimens (a REQUIRED children the renderer never reads). PR #4630 flipped and armed. #4631/#4632/#4633 stand as filed for the next PM pass.


    Generated by Claude Code


    Generated by Claude Code

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions