v0.3.0
This release is a full rewrite of pi-generative-ui: widgets now render as display-only native windows with faster streaming, cross-platform support, a typed host/runtime protocol, and a much cleaner extension structure.
Highlights
- Display-only widgets: no more long agent-side waits for callbacks; in-widget controls, animations, charts, and hover states still work normally.
- Cross-platform window support through
glimpseui@0.8.1and platform shims for macOS, Linux, and Windows. - SVG export menu: hover SVGs to copy or save styled SVG output.
- More reliable external scripts: Chart.js, D3, Mermaid, and similar CDN scripts are loaded in order before inline widget code runs.
- Runtime split: page-side code is now TypeScript bundled by esbuild instead of string-built IIFEs inside
index.ts. - Typed RPC/protocol layer between the Pi host and widget runtime.
- 34-test suite plus cross-platform CI matrix.
- npm release CI for future tagged releases.
Breaking changes
window.glimpse.send(data)from widgets is now a no-op. Widgets are intentionally display-only.- Pi peer dependencies moved from
@mariozechner/*to@earendil-works/*, and@sinclair/typeboxmoved totypebox. - The package now whitelists npm files with
"files": [".pi/"].
Thanks
Huge thanks to @philipbrembeck for PR #4, which added the original SVG export menu and kicked off this rewrite. The implementation landed in rewritten form as part of PR #5, but the idea and push came from Philip's contribution.
Changes
- #5 — refactor: rewrite generative-ui extension — display-only widgets, cross-platform, typed protocol
- #4 — Add SVG export menu to widgets, credited above; closed because the full rewrite superseded it
Full changelog: v0.2.1...v0.3.0