Repository navigation
Releases: yorzi/openui-rails
Releases · yorzi/openui-rails
Release list
openui-rails v0.2.0
[0.2.0] - 2026-10-18
Added
openui:library:prepareinstalls prompt/spec exports of the exact pinned
default chat library and its upstream license without browser or Node tools.
Existing different files require explicit overwrite; outputs stay inside
the application root.openui:doctorreports local configuration, default library identity,
runtime checksums, and action-route failures without writes or network calls.
Browser setup and host policy checks remain explicitly unverified.- Local
bin/checkand disposablebin/check-browserrunners, with fixture
screenshots on both passing and failing tests and the same browser entry
point in CI.
Changed
- The install generator leads with the default chat library and setup checks.
Custom libraries retain the pinned CLI path and require a matching runtime.
Fixed
- Manifest name queries now read name-keyed collections used by the official
default-library spec, as well as the previously supported array format.
Fingerprint calculation is unchanged.
openui-rails v0.1.0
[0.1.0] - 2026-10-18
Fixed
- Scope idempotency to server actor/tenant identity and bind replay digests to
the full request. Distinguish pending claims from completed nil results and
fence expired writers with claim tokens. - Preserve host authentication filters and default current-user resolution.
- Reject authentication redirects and malformed or mismatched action responses
instead of reporting a false success. - Canonicalize and copy JSON input before validation/fingerprinting; prevent
mutable submissions, envelopes, surfaces, and manifests. - Make explicit configuration readiness validation read the actual manifest
and prompt files instead of accepting filenames alone. - Enforce stream terminal states, completion ordering, snapshot watermarks,
browser byte limits, and Turbo cache restoration. - Use the real OpenUI
{type, params}action contract, avoid false MCP-client
detection, return raw tool values, and ignore empty renderer-error arrays. - Verify configured library fingerprints against the actual runtime
toSpec(). - Fetch exact checksum-locked JS/CSS/license files without npm lifecycle scripts.
Addopenui_stylesheet_tagand default integrity pins. - Correct RubyLLM's block-only
completecall and verify 2.1.1 with real SSE parsing. - Align message framing edge cases with lang-core 1.0.1.
- Require full CI and explicit manual approval before publication; create a
genuine draft GitHub release. SeeUPGRADING.mdfor pre-release changes.
Added
- Mountable Rails engine under the
OpenUI::Railsnamespace with the
openui/railsrequire path. - Configuration object with validated transport, runtime-asset strategy,
library/prompt paths, stream limits and action hooks. - Versioned component-library manifest with a canonical SHA-256 fingerprint.
- Prompt builder tying the model system instruction to the exact library
revision and stamping a combined prompt fingerprint. - Ruby implementation of the upstream OpenUI message protocol
(build/parse/strip). - Ordered stream envelopes (
openui.delta/snapshot/completed/error), a
sequence accumulator and a coalescing stream bridge/writer. - Server-authoritative action loop: allowlist registry, arg schema,
confirmation, stale-surface check, required authorizer and idempotency. openui_surfaceview helper and theOpenUI::Rails::ActionsController
endpoint.- Optional RubyLLM adapter (no hard dependency).
- Stimulus mount controller and pinned runtime-asset resolution.
openui:installgenerator and theopenui:runtime:fetchtask.- Transport broadcasters (
ActionCable,TurboStreams,Memory) behind
Stream::Broadcaster, and theopenui-envelopeStimulus controller that
turns a Turbo Stream append into anopenui:envelopeevent without inline
script. - Browser (system) test suite: lifecycle, stream ordering/duplicate/gap,
snapshot recovery, completion/error, action/tool round-trips, destructive
confirmation, and mount accessibility (aria-busylifecycle, named region). aria-busyon the mount element tracks the streaming state, and an optional
label:exposes the mount as a namedregionlandmark.- Tag-driven release workflow and
RELEASING.md. - Versioned guides and an RDoc API reference at
https://openui-rails.wangyaodi.com, deployed with GitHub Pages. - Gem-scoped RubyGems Trusted Publishing through GitHub OIDC, with a protected
release environment and verified artifact handoff.