Releases: darkresearch/generative-ui
Releases · darkresearch/generative-ui
streamdown-rn@0.2.1
Patch Changes
-
3c24a0c: Fix FlashList v2 cell recycling bug where messages rendered with wrong content after scrolling
- Fixed
useRefstate persisting across recycled cells by detecting content changes and resetting registry - Added
AutoSizedImagecomponent that fetches actual image dimensions for correct aspect ratios - Fixed TypeScript error where
node.altcould benull
- Fixed
streamdown-rn@0.2.0
Minor Changes
-
17a251a: ### Breaking Changes
- Component syntax changed:
[{c:"Name",p:{...}}]replaces the old{{component:"Name",props:{...}}}syntax - Layout components removed: Canvas, Grid, Stack, Card are no longer exported (planned for future galerie-rn package)
- Simplified public API: Only exports StreamdownRN, Skeleton primitives, and types
New Features
- Progressive prop streaming: Components render field-by-field as data streams, with skeleton placeholders for missing props
- Format-as-you-type UX: Bold, italic, code formatting appears immediately while typing
- Block-level memoization: Stable blocks are parsed once and never re-render
- Full GFM support: Tables, strikethrough, task lists, autolinks via remark-gfm
Security
- URL sanitization: All URLs in links, images, and component props are validated against an allowlist (
http:,https:,mailto:,tel:,sms:, relative URLs) - XSS protection: Blocks
javascript:,data:,vbscript:,file:and other dangerous protocols - Recursive prop sanitization: Component props are sanitized at all nesting levels
- HTML rendered as text: Raw HTML in markdown is displayed as escaped text, never executed
- Exported utilities:
sanitizeURL()andsanitizeProps()available for custom use
Improvements
- Compact component syntax:
[{c:...,p:...}]reduces token count by ~50% - Robust JSON parsing: Auto-repairs incomplete JSON during streaming
- Better streaming edge cases: Handles incomplete markdown gracefully
- Character-level parsing: Consistent block boundary detection regardless of chunk size
- Component syntax changed:
v0.1.6
Enhanced fuzz testing, fixed component injection bugs, and improved CI configuration.
v0.1.5
Release v0.1.5
v0.1.4
🎉 Stable Release: streamdown-rn v0.1.4
Changes
- Published to npm: Now available as stable release on npm registry
- Component Buffering: Improved handling of dynamic component injection and streaming
- Markdown Rendering: Enhanced parsing of incomplete markdown for real-time streaming
- Type Safety: Full TypeScript support with improved type definitions
Installation
npm install streamdown-rn@0.1.4
# or with bun
bun add streamdown-rn@0.1.4What's New
This is the first stable release of streamdown-rn v0.1.4. All beta versions have been tested and are ready for production use.
For more details, see the repository.
v0.1.2
Patch Changes
- fe32b8b: Clean up outdated monorepo references and unused code. Remove @ts-nocheck and @ts-ignore comments, fix unused variable warnings, and update documentation for standalone package workflow.