feat: streaming UI — generative UI engine, MCP tooling, playground#184
Open
geoquant wants to merge 353 commits intocloudflare:mainfrom
Open
feat: streaming UI — generative UI engine, MCP tooling, playground#184geoquant wants to merge 353 commits intocloudflare:mainfrom
geoquant wants to merge 353 commits intocloudflare:mainfrom
Conversation
commit: |
Contributor
Docs PreviewCommit: |
Contributor
Visual Regression ReportNo visual changes detected. |
ea424f0 to
0734eae
Compare
…ponent-docs implementation
…module - generative-map-generator.ts generates component-manifest.ts (pure data) - stateful-wrappers.tsx: Select, Checkbox, Switch, Tabs, Collapsible - generative-wrappers.tsx: Surface, Input, InputArea, CloudflareLogo, Select - component-map.ts assembles COMPONENT_MAP (40 entries) + KNOWN_TYPES - wired into codegen:registry pipeline (atomic with registry/schemas)
…flare/kumo/generative
…component map, and action system docs
…oesn't block custom examples
…Is fill panel width
…romptTextView in panel B
…ration history, and patch op summary
The canonical system prompt from getSystemPrompt() is ~75k chars. The previous 50k limit silently dropped the override in parseChatRequest, causing regenerateWithPrompt to send no system prompt at all — producing invalid HTML/CSS output instead of JSONL.
0734eae to
f97357b
Compare
startWorkspaceComparison ignored editedSystemPrompt — only regenerateWithPrompt sent skipSystemPrompt + systemPromptOverride. Chat submissions now forward the edited prompt for both panels.
…t false drops LLMs sometimes emit multi-line indented JSON instead of compact JSONL. The verifier's line-by-line parsing counted each fragment as a dropped line, exceeding maxDroppedLines=0 and blocking render. Add reassembleJsonObjects() that buffers lines by tracking brace depth and joins them before parsing. Compact JSONL gets a fast-path (no regression). Leftover unclosed fragments still count as dropped.
LLMs frequently emit pretty-printed JSON. maxDroppedLines=0 caused constant false-positive failures. Dropped lines are informational — the tree still renders whatever ops parsed successfully.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
@cloudflare/kumo/streaming— JSONL + RFC 6902 patch engine,useUITreehook, action system (handler registry, URL policy, processors)@cloudflare/kumo/generative—UITreeRenderer, element validator with enum coercion, component map codegen,gradeCompositionquality rules,uiTreeToJsxconverter@cloudflare/kumo/loadable— UMD bundle entry point for cross-boundary / iframe embedding@cloudflare/kumo/catalog— system prompt builder with prop scoring/filtering, custom component support, few-shot examplescreate_worker/execute_create_workertools, iframe postMessage bridge/streamingpage with live demo,/playgroundwith auth-gated chat, custom components docs288 files changed, ~54k insertions