Current section
19 Versions
Jump to
Current section
19 Versions
Compare versions
6
files changed
+84
additions
-43
deletions
| @@ -11,6 +11,24 @@ not in lockstep yet; entries note which surface they affect. | |
| 11 11 | |
| 12 12 | ## [Unreleased] |
| 13 13 | |
| 14 | + ## [0.7.2] — 2026-06-05 |
| 15 | + |
| 16 | + ### Fixed |
| 17 | + |
| 18 | + - **`@musubi/react`** — `useMusubiRootSuspense` no longer double-mounts a |
| 19 | + root over the wire on react-router v7 SPA navigation. When the last |
| 20 | + render-phase claimer dropped while the mount was still in flight, the |
| 21 | + orphan sweep chained teardown inline on the mount promise; that `.then` |
| 22 | + ran in the same microtask flush as the mount settle — ahead of React's |
| 23 | + MessageChannel-scheduled resumed Suspense render — so the resumed render |
| 24 | + found no shared entry and allocated a fresh mount, producing a spurious |
| 25 | + `unmount` + `mount` burst right after the first patch. Teardown is now |
| 26 | + deferred two macrotask hops past the settle (React's render-phase then |
| 27 | + commit-phase) so the resumed render re-claims the entry first and the |
| 28 | + existing ref / claimer guards bail. Also tidied the shared-mount |
| 29 | + bookkeeping (`key` as a real `SharedRootMount` field, `cancelCleanupTimer` |
| 30 | + / `buildMountOptions` helpers) with no behavior change (#70). |
| 31 | + |
| 14 32 | ## [0.7.1] — 2026-05-31 |
| 15 33 | |
| 16 34 | ### Fixed |
| @@ -233,7 +251,8 @@ Initial public release of the Musubi runtime (then `Arbor`): | |
| 233 251 | - TypeScript client and React adapter that materialize the diff stream |
| 234 252 | into immutable snapshots. |
| 235 253 | |
| 236 | - [Unreleased]: https://github.com/fahchen/musubi/compare/v0.7.1...HEAD |
| 254 | + [Unreleased]: https://github.com/fahchen/musubi/compare/v0.7.2...HEAD |
| 255 | + [0.7.2]: https://github.com/fahchen/musubi/compare/v0.7.1...v0.7.2 |
| 237 256 | [0.7.1]: https://github.com/fahchen/musubi/compare/v0.7.0...v0.7.1 |
| 238 257 | [0.7.0]: https://github.com/fahchen/musubi/compare/v0.6.1...v0.7.0 |
| 239 258 | [0.6.1]: https://github.com/fahchen/musubi/compare/v0.6.0...v0.6.1 |
| @@ -34,7 +34,7 @@ Add Musubi to your Phoenix application: | |
| 34 34 | ```elixir |
| 35 35 | def deps do |
| 36 36 | [ |
| 37 | - {:musubi, "~> 0.7.1"} |
| 37 | + {:musubi, "~> 0.7.2"} |
| 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.7.1"} |
| 13 | + {:musubi, "~> 0.7.2"} |
| 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.7.1">>}. |
| 3 | + {<<"version">>,<<"0.7.2">>}. |
| 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.7.1" |
| 4 | + @version "0.7.2" |
| 5 5 | @source_url "https://github.com/fahchen/musubi" |
| 6 6 | |
| 7 7 | def project do |
Loading more files…