Fixed
-
[Pro] Streamed
useIdhydration: Client components now hydrate with the server'suseIdprefix even when
they are not wrapped by the default RSC provider. This prevents hydration mismatches and keeps
generated IDs consistent with accessible references. Fixes #5146.
#5148 by justin808. -
[Pro] Node Renderer no longer drops multipart files that follow a large file over HTTP/1.1: With
fastifyServerOptions: { http2: false }, file parts uploaded after a large file part were silently discarded
while the request still returned200. With RSC enabled, a largeassets_to_copyfile such as
loadable-stats.jsoncaused the RSC manifests behind it to go missing, so the first RSC render failed with
ENOENT ... react-client-manifest.json. The renderer now keeps every file part, and requests over the
aggregate upload limit still return413. HTTP/2 (the default transport) was not affected. Fixes
#5144.
#5147 by justin808. -
Published JavaScript no longer ships dangling
sourceMappingURLpointers: Every publishedlib/**/*.jsfile
inreact-on-railsandreact-on-rails-proended with a//# sourceMappingURL=<name>.js.mapcomment, but the
packages never published the.mapfiles, so each pointer referenced a missing file. Besides devtools warnings,
the dangling pointers crashed RSC bundle builds (SyntaxError: ... is not valid JSONfrom
react-on-rails-rsc/WebpackLoader) whenever server-component code imported one of the Pro package's own
'use client'components such asreact-on-rails-pro/RSCRoute. The packages'tscbuilds no longer emit
JavaScript sourcemaps, removing the pointer comments without changing the emitted JavaScript. (TypeScript
declarationMappointers in published.d.tsfiles are unaffected — cosmetic, tracked as a follow-up.) Part of
#5079.
#5099 by
AbanoubGhadban. -
[Pro] RSC client-reference resolution now registers the Pro package's own
'use client'components:
Client-reference discovery only scans app source directories (node_modulesis excluded), so the'use client'
components thereact-on-rails-pronpm package itself ships —react-on-rails-pro/RSCRoute,
react-on-rails-pro/RSCProvider, andreact-on-rails-pro/registerDefaultRSCProvider/client— could never appear
inreact-client-manifest.json. A server component rendering one of them (for example a nested<RSCRoute>used
for section-level refetching) then failed the render-time manifest lookup even when the RSC bundle compiled. The
client-reference resolver emitted by thereact_on_rails:rscgenerator now appends these components as explicit
clientReferencesentries (viarequire.resolve) to every resolution branch, on both the client and server
manifest plugins. Action required for existing RSC apps: a resolver emitted by a previous generator version is
never rewritten — re-runningrails g react_on_rails:rscwarns and leaves it unchanged. Add therequire.resolve
entries for the three components to yourclientReferencesmanually, or remove the generated resolver block and
re-run the generator (see the
RSC setup docs). Part of
#5079.
#5100 by
AbanoubGhadban.