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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions