Current section

19 Versions

Jump to

Compare versions

6 files changed
+119 additions
-11 deletions
  @@ -11,6 +11,29 @@ not in lockstep yet; entries note which surface they affect.
11 11
12 12 ## [Unreleased]
13 13
14 + ## [0.11.0] — 2026-06-24
15 +
16 + ### Fixed
17 +
18 + - **`@musubi/client`** — A hard WebSocket drop (iOS Safari backgrounded then
19 + resumed, network loss, server restart) no longer blanks downstream consumers.
20 + `handleConnectionDisconnect` now keeps the last-good root/index/streams/
21 + snapshots for live roots (only resetting `version` to 0) instead of wiping
22 + them and clearing the roots map, so mounted `proxy.snapshot()` keeps returning
23 + complete stale data through the reconnect window rather than collapsing to a
24 + missing-snapshot stub. On socket reopen, a new `onOpen` hook re-joins the
25 + connection channel and re-mounts each live root; the server's initial patch
26 + (whole-root `replace ""`) atomically swaps fresh state in, so consumers
27 + refresh automatically with no navigation or manual reload. Completes the
28 + reconnect story from 0.10.0, which only covered the version-mismatch recovery
29 + path (`The terminal disconnect path still resets`).
30 +
31 + ### Changed
32 +
33 + - **`@musubi/client`**`SocketLike` gains a required `onOpen(callback)` method,
34 + used to drive reconnect recovery. `Phoenix.Socket` already implements it;
35 + custom `SocketLike` implementations must add it.
36 +
14 37 ## [0.10.0] — 2026-06-24
15 38
16 39 ### Fixed
  @@ -346,7 +369,8 @@ Initial public release of the Musubi runtime (then `Arbor`):
346 369 - TypeScript client and React adapter that materialize the diff stream
347 370 into immutable snapshots.
348 371
349 - [Unreleased]: https://github.com/fahchen/musubi/compare/v0.10.0...HEAD
372 + [Unreleased]: https://github.com/fahchen/musubi/compare/v0.11.0...HEAD
373 + [0.11.0]: https://github.com/fahchen/musubi/compare/v0.10.0...v0.11.0
350 374 [0.10.0]: https://github.com/fahchen/musubi/compare/v0.9.2...v0.10.0
351 375 [0.9.2]: https://github.com/fahchen/musubi/compare/v0.9.1...v0.9.2
352 376 [0.9.1]: https://github.com/fahchen/musubi/compare/v0.9.0...v0.9.1
  @@ -34,7 +34,7 @@ Add Musubi to your Phoenix application:
34 34 ```elixir
35 35 def deps do
36 36 [
37 - {:musubi, "~> 0.10.0"}
37 + {:musubi, "~> 0.11.0"}
38 38 ]
39 39 end
40 40 ```
  @@ -10,7 +10,7 @@ In the Phoenix app:
10 10 ```elixir
11 11 def deps do
12 12 [
13 - {:musubi, "~> 0.10.0"}
13 + {:musubi, "~> 0.11.0"}
14 14 ]
15 15 end
16 16 ```
  @@ -1,6 +1,6 @@
1 1 {<<"links">>,[{<<"GitHub">>,<<"https://github.com/fahchen/musubi">>}]}.
2 2 {<<"name">>,<<"musubi">>}.
3 - {<<"version">>,<<"0.10.0">>}.
3 + {<<"version">>,<<"0.11.0">>}.
4 4 {<<"description">>,
5 5 <<"Server-authoritative, page-scoped runtime library for Elixir/Phoenix applications.">>}.
6 6 {<<"elixir">>,<<"~> 1.18">>}.
  @@ -1,7 +1,7 @@
1 1 defmodule Musubi.MixProject do
2 2 use Mix.Project
3 3
4 - @version "0.10.0"
4 + @version "0.11.0"
5 5 @source_url "https://github.com/fahchen/musubi"
6 6
7 7 def project do
Loading more files…