Releases: BeamLabEU/phoenix_kit_boards
Release list
0.4.3 - 2026-08-11
Fixed
-
Live cursors, in-flight drags and stored preferences never arrived (#6). 0.4.1 fixed bundle delivery; this fixes what delivering late does to the join handshake.
A
push_eventfrom the connectedmountrides the join reply and is dispatched the moment it lands — safe only while hooks were registered on the host's LiveSocket at construction time. Under runtime-hook delivery the realBoardSync.mountedruns hundreds of milliseconds after the shim starts its ~40 KB fetch, so the channel token and the prefs both dispatched to nobody. The board rendered, edited and saved while the collaborative half silently never started.Both hooks now push
board:readyas the last thing theirmounteddoes and the LiveView answers;mount_connectedpushes nothing.
0.4.2 - 2026-08-11
Dependency refresh against phoenix_kit 2.2.0 and the transitive set it carries (phoenix 1.8.10, hackney 4.7.3). No source changes in this package; the gate was re-run against the new set.
0.4.1 - 2026-08-11
Fixes the 403 that made every hook-bundle load fail, so boards were never collaborative (#5). Failed loads are no longer memoized and now report the actual cause. See CHANGELOG.md.
v0.4.0 - 2026-08-10
⚠️ Requires phoenix_kit ~> 2.0
Core 2.0.0 refuses to migrate a database below its squashed V135 floor — check mix phoenix_kit.status before upgrading.
Added — collaboration works on any host, with no JS setup (#4)
Hooks were delivered only via js_sources/0, which only core's :phoenix_kit_js_sources compiler consumes. A host that bundles dependency JS its own way got nothing: window.PhoenixKitBoardsHooks was never defined while the board rendered phx-hook names the LiveSocket had never heard of.
The expensive part was the shape of the failure — the canvas renders and local edits persist, because only the inbound half needs the hook. So it presented as "collaboration is broken" rather than "the JS never loaded", with nothing in the console or the log.
The board page now delivers its own hooks as LiveView runtime hooks (since LiveView 1.1, getHookDefinition/1 resolves a name at element mount and falls back to script[data-phx-runtime-hook="Name"]), and serves the bundle from a module route with a content digest in the URL and immutable caching.