Open
Conversation
Add nova_arizona bridge module enabling Arizona LiveView routes in Nova.
Routes defined with `#{protocol => liveview}` render Arizona views through
Nova's full middleware chain (plugins, security) and auto-register the
/live WebSocket endpoint for Arizona's client-side reactivity.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add broadcast/subscribe/unsubscribe functions that delegate to arizona_pubsub, letting Nova controllers push real-time updates to Arizona views without importing Arizona modules directly. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move PubSub to nova_pubsub with broadcast/2, subscribe/1,2, unsubscribe/1,2
using Arizona's {pubsub_message, Topic, Data} format on nova_scope.
Simplify nova_arizona: remove PubSub wrappers, add resolve_view/1 for
WebSocket view resolution, set Arizona's pubsub scope to nova_scope.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Nova's liveview routing now uses arizona_nova_websocket (from the arizona_nova integration package) instead of directly referencing arizona_websocket. Removes arizona_pubsub:set_scope/1 from nova_arizona since arizona_nova_sup handles scope setup during startup. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Extend handle_ws/2 to support multi-frame replies ({reply, [Frame], CD})
so Arizona LiveView can send initial renders, diffs, and action responses
in a single callback. LiveView WebSocket connections now go through
nova_ws_handler with plugin pipeline support instead of bypassing Nova
as a raw cowboy_websocket handler.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
`fun Module:Variable/1` syntax doesn't work with variable atoms in Erlang — it produces undefined. Use `erlang:make_fun/3` to construct the callback dynamically. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
nova_arizonabridge module for rendering Arizona LiveView views through Nova's request pipeline#{protocol => liveview}— views go through the full plugin/security middleware chain/liveWebSocket endpoint (configurable viaarizona_live_pathapp env) when liveview routes are presentRoute syntax
How it works
nova_arizona:render_view/3for HTTP renderingregister_view/3finalize/1builds Arizona's Cowboy dispatch table (persistent_term:put(arizona_dispatch, ...)) soarizona_websocketcan resolve views for client-side reactivity/liveWebSocket endpoint is added as a raw Cowboy handler (#cowboy_handler_value{})Test plan
🤖 Generated with Claude Code