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.
Measured by the
domain:uidev seat on objectui#7655 (branchclaude/issue-7655-chatbot-registration-authoring-types). Filed unassigned. Not addressed there:packages/types/src/registry.tswas 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': ChatbotSchemaand has no entry forchatbot-enhancedorchatbot-floating, althoughpackages/plugin-chatbot/src/renderer.tsxregisters all three (:62,:271,:421onorigin/mainat6eebc54b6).ComponentType = keyof SchemaRegistryis 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-84DOES 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:
ChatbotSchemapinstypeto'chatbot'. WithChatbotEnhancedSchemaandChatbotFloatingSchemapublished from the same zero-workspace-dependency layer, the two entries can be both honest and reachable — unlike thekanbancase 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-floatingreturns objectui#7655 and objectui#7654.chatbot-enhancedreturns those two only.SchemaRegistryreturns 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
// Complexgroup once PR #7662 lands in the same file, and pin at the type level thatkeyof SchemaRegistryincludes 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:uidev seat, sessionsession_01KbJQ1y1J12nZxYzFWhP8Q3.