Releases: dannote/live_render
Releases · dannote/live_render
v0.5.0
YAML wire format and merge edit mode
Features
LiveRender.Format.YAML— YAML wire format with progressive streaming. The LLM outputs YAML inside a```specor```yamlfence, and the streaming parser incrementally re-parses on each newline. Requires{:yaml_elixir, "~> 2.12"}(optional dep).- Merge edit mode — multi-turn spec refinement via RFC 7396 JSON Merge Patch. Pass
:current_spectoGenerate.stream_spec/3and the LLM outputs only changed keys, deep-merged into the existing spec. Works with JSONPatch, JSONObject, and YAML. LiveRender.SpecMerge— RFC 7396 deep merge (nildeletes, arrays replace, maps recurse).- Shared fence extraction —
Shared.extract_fence/2replaces duplicated regex across all five formats withString.split.
Fixes
- YAML streaming validation — only emit specs with valid structure (string root, map elements with string types and map props)
- Renderer defensive guards — non-map elements, non-list children, non-map props all handled gracefully
- List prop sanitization — filters non-map items from
{:list, :map}schema props (Tabs, Timeline, Accordion, Table) - Component nil guards for all list props during streaming
- Both
```specand```yamlfence detection
Full changelog: https://github.com/dannote/live_render/blob/master/CHANGELOG.md