You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -39,6 +39,7 @@ After a release, run `/update-changelog` in Claude Code to analyze commits, writ
39
39
#### Fixed
40
40
41
41
-**Client-only Vite setups no longer fail Rails boot on Shakapacker's `packageManager` guard**: React on Rails now installs an engine initializer that runs before `shakapacker.manager_checker` and no-ops Shakapacker's `error_unless_package_manager_is_obvious!` when the host app has no Shakapacker config (`config/shakapacker.yml` or `SHAKAPACKER_CONFIG`). This unblocks apps that use the `react-on-rails/client` npm package from an existing Vite entrypoint and do not use the Ruby render helpers. The Ruby helpers that resolve bundle paths still require Shakapacker configuration. Apps with Shakapacker config keep Shakapacker's guard unchanged. Fixes [Issue 3145](https://github.com/shakacode/react_on_rails/issues/3145).
42
+
-**[Pro]****Rspack RSC manifests generated without webpack-only plugin APIs**: RSC-enabled Rspack generator output now includes `rscManifestPlugin.js`, which scans Shakapacker source paths for `'use client'` modules, adds them to the client/server bundle graphs, and emits `react-client-manifest.json` plus `react-server-client-manifest.json` without applying `react-on-rails-rsc/WebpackPlugin` to the Rspack compiler. This avoids the Rspack crash on webpack-only compilation APIs and prevents the Pro Node Renderer from uploading missing RSC manifests. Fixes [Issue 1828](https://github.com/shakacode/react_on_rails/issues/1828).
42
43
-**[Pro]** Streaming server-render responses now raise `ReactOnRailsPro::Error` when the stream response status is unavailable or the renderer delivers a readable HTTP error status as a streaming body, instead of silently returning no chunks. This is a user-visible behavior change for callers that do not already rescue `ReactOnRailsPro::Error` from `each_chunk`. [PR 3383](https://github.com/shakacode/react_on_rails/pull/3383).
43
44
-**[Pro]****TanStack Router hydration now supports the current router stores API**: `react-on-rails-pro/tanstack-router` client hydration now uses TanStack Router's current `router.stores.setMatches()` API when `router.__store.setState()` is unavailable, so SSR hydration works with newer `@tanstack/react-router` releases without app-level compatibility shims. Fixes [Issue 3375](https://github.com/shakacode/react_on_rails/issues/3375). [PR 3376](https://github.com/shakacode/react_on_rails/pull/3376) by [justin808](https://github.com/justin808).
44
45
-**[Pro]****TanStack Router hydration no longer double-calls `loadRouteChunk` under React 18 StrictMode**: React 18's StrictMode double-renders components with fresh hook state on each pass, so the `routerRef.current === null` guard in `clientHydrate.ts` fired twice when `options.createRouter` returned the same router instance, re-running `loadRouteChunk`, `__store.setState`, and the user-defined `hydrate` callback. The render-phase init is now memoized via a module-level `WeakMap` keyed on the router instance, dedup'ing per-router side effects across mount cycles. Production behavior is unchanged because each mount creates a fresh router. Fixes [Issue 3405](https://github.com/shakacode/react_on_rails/issues/3405). [PR 3410](https://github.com/shakacode/react_on_rails/pull/3410) by [justin808](https://github.com/justin808).
0 commit comments