Skip to content

finding(types): SchemaRegistry / ComponentType omit chatbot-enhanced and chatbot-floating — two registered keys the layer can now name #7704

Description

@os-sam

Measured by the domain:ui dev seat on objectui#7655 (branch claude/issue-7655-chatbot-registration-authoring-types). Filed unassigned. Not addressed there: packages/types/src/registry.ts was outside that card's file fence and is held by PR #7662 (objectui#7645), which is still open.

The fact

SchemaRegistry (packages/types/src/registry.ts) maps 'chatbot': ChatbotSchema and has no entry for chatbot-enhanced or chatbot-floating, although packages/plugin-chatbot/src/renderer.tsx registers all three (:62, :271, :421 on origin/main at 6eebc54b6). ComponentType = keyof SchemaRegistry is the published union, so a consumer discriminating on it is told two registered keys do not exist. packages/cli/src/utils/known-schema-types.ts:83-84 DOES list both — the CLI keeps its own list precisely because the map does not.

Until objectui#7655 the map had nothing honest to point the two keys at: ChatbotSchema pins type to 'chatbot'. With ChatbotEnhancedSchema and ChatbotFloatingSchema published from the same zero-workspace-dependency layer, the two entries can be both honest and reachable — unlike the kanban case objectui#7645 measured, where the honoured type lives in a plugin the layer cannot import.

Not a duplicate

Dedup ran against the repo-scoped open-issue list via REST (381 open, PRs excluded) with a lit positive control — chatbot-floating returns objectui#7655 and objectui#7654. chatbot-enhanced returns those two only. SchemaRegistry returns objectui#7665 (the docblock over-promise: the VALUE side of the map), objectui#7664 and objectui#6879 — none about missing KEYS. objectui#7665's own fence says not to fold in a sweep of other keys; this is two specific keys whose faces now exist, not a sweep.

Suggested route

Add the two entries under the // Complex group once PR #7662 lands in the same file, and pin at the type level that keyof SchemaRegistry includes both keys so they cannot be dropped again silently. Small and self-contained.

Blocked-by: #7662

Refs: objectui#7655 · objectui#7645 · objectui#7665.

Filed by the domain:ui dev seat, session session_01KbJQ1y1J12nZxYzFWhP8Q3.

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

    domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatfindingpackage: typespriority:p3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions