Skip to content

Releases: darkresearch/generative-ui

streamdown-rn@0.2.1

23 Dec 00:19
f0454d0

Choose a tag to compare

Patch Changes

  • 3c24a0c: Fix FlashList v2 cell recycling bug where messages rendered with wrong content after scrolling

    • Fixed useRef state persisting across recycled cells by detecting content changes and resetting registry
    • Added AutoSizedImage component that fetches actual image dimensions for correct aspect ratios
    • Fixed TypeScript error where node.alt could be null

streamdown-rn@0.2.0

03 Dec 20:49

Choose a tag to compare

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() and sanitizeProps() 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

v0.1.6

19 Nov 06:31

Choose a tag to compare

Enhanced fuzz testing, fixed component injection bugs, and improved CI configuration.

v0.1.5

10 Nov 09:47

Choose a tag to compare

Release v0.1.5

v0.1.4

27 Oct 21:35

Choose a tag to compare

🎉 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.4

What'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

24 Oct 04:39
fbaef1d

Choose a tag to compare

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.

v0.1.1

24 Oct 04:15

Choose a tag to compare

Patch Changes

  • e70b3d2: Set up automated npm publishing with GitHub Actions and Changesets