v9.8.0
The headline feature is that R3F is now compatible with React 19.3.0. We don't fully support all of the new APIs, but it will not longer conflict to run the latest and greatest React.
In addition we fixed some long standing bugs:
- React roots are configured synchronously and then gated on the renderer if it need async, for example with WebGPURenderer. This means that you won't get awkward out of sync issues.
- Strict Mode no longer causes problems for our canvas. This was related to the async support added a while ago as well.
Have fun!
- fix: corrected broken links by @dor-rondel in https://github.com/pmndrs/react-three-fiber/pull/3872
- feat: support React 19.3 by @cades in https://github.com/pmndrs/react-three-fiber/pull/3916
- fix(core): don't tear down a root remounted during the unmount grace period by @abernier in https://github.com/pmndrs/react-three-fiber/pull/3869
- feat(core): configure and render roots synchronously by @krispya in https://github.com/pmndrs/react-three-fiber/pull/3925
- @dor-rondel made their first contribution in https://github.com/pmndrs/react-three-fiber/pull/3872
- @cades made their first contribution in https://github.com/pmndrs/react-three-fiber/pull/3916
Full Changelog: https://github.com/pmndrs/react-three-fiber/compare/v9.7.0...v9.8.0
astro@7.3.4
-
#18063
40896acThanks @adamchal! - Fixes incremental builds repeatedly rendering unchanged pages when modules or compiled CSS reference bundled assets. -
#18053
cf5d72fThanks @Princesseuh! - Improves theastro checkerror shown for TypeScript 7. The command now explains that TypeScript 7 is not currently supported and provides instructions for experimentally type-checking Astro files with TypeScript 7.1 and@astrojs/ts-content-mapper. -
#18086
795a7e4Thanks @ump45nose! - Fix double-escaped ampersands in Markdown imagealtandtitleattributes. The__ASTRO_IMAGE_round-trip now decodes the numeric (&) and named (&) character references the Markdown processors emit, so an&in an alt or title is escaped exactly once in the final HTML instead of twice. -
#18074
0429805Thanks @SurefireStudios! - Fix three error names that did not match their documented reference.MissingLocale,MissingIndexForInternationalizationandNoManifestAvailablereported names ending inErrorin the dev overlay, while their error reference pages are published under the unsuffixed names, so the name shown to users could not be found in the docs. -
#18007
2245837Thanks @L4XB! - Fixes the dev server re-evaluating the whole server module graph on every request. Theastro:head-metadataplugin invalidated its component metadata virtual module from its owntransformhook, so each evaluation of that module scheduled the next one. Adapters that run requests outside Vite's module runner, such as@astrojs/cloudflare, paid for a full re-evaluation of the server graph on every request for the lifetime of the process. -
#18096
43657c4Thanks @matthewp! - Fixes domain-based i18n routing to respectsecurity.allowedDomainswhen selecting a locale from request host headers -
#18043
8a53a8bThanks @astro-factory! - Fixesimage.responsiveStylesemitting invalidobject-positionCSS values for same-axis keyword pairs (top bottom,left right, etc.) -
#18029
c08252dThanks @matthewp! - Runsastro devandastro previewin the foreground when an AI agent is detected on Windows, allowing the agent to manage the process lifetime. Pass--backgroundexplicitly to request an Astro-managed background process. Agent-inferred backgrounding remains enabled on other platforms. -
Updated dependencies [
3fd16ee,8358d59]:- @astrojs/markdown-satteri@0.4.2
@astrojs/cloudflare@14.3.3
-
#18059
30cb32eThanks @Princesseuh! - Fixes image transforms without a specified quality outputting an higher quality than expected on certain formats -
#18091
28d59a9Thanks @astro-factory! - FixesoptimizeDeps.includeglobastro/runtime/**matching.d.tsfiles, which caused 83 unnecessary optimizer entries and empty output chunks per environment during dev -
#18032
f7dbc6aThanks @adamchal! - Fixes image requests when usingimageService: 'compile'withpassthroughImageService(). -
Updated dependencies []:
- @astrojs/underscore-redirects@1.0.4
@astrojs/ts-content-mapper@0.2.0
- #18050
cea7da5Thanks @Princesseuh! - Adds the initial release of the TypeScript content mapper for Astro files.
@astrojs/react@7.0.0
-
#17951
e5b0ac4Thanks @hanford! - Migrates the React integration to@vitejs/plugin-reactv6, using Oxc for JSX and Fast Refresh. Removes thebabelintegration option; projects with custom Babel transforms must configure@rolldown/plugin-babelundervite.pluginsinstead.Adds an opt-in
compileroption for the Oxc-based React Compiler. Installoxc-transform-reactand enable it in your Astro config:import react from '@astrojs/react'; export default { integrations: [react({ compiler: true })], };
The compiler memoizes client components and hooks. Server rendering is not compiled. The target defaults to the installed React major version; React 17 and 18 projects also need
react-compiler-runtimeinstalled. Pass an options object to configure the compiler, for examplecompiler: { compilationMode: 'annotation' }. The integration'sincludeandexcludeoptions apply, and dependencies and Astro files are excluded.The integration uses
@vitejs/plugin-reactv6 and Oxc for JSX and Fast Refresh. Thebabelintegration option has been removed in this major release.If you use custom Babel transforms, install
@rolldown/plugin-babeland@babel/core, keeping your existing Babel plugins and presets installed:pnpm add -D @rolldown/plugin-babel @babel/core
Move your Babel plugins and presets from
react({ babel: ... })tobabel()invite.plugins. For example, migrate a project usingbabel-plugin-styled-componentsfrom:import react from '@astrojs/react'; import { defineConfig } from 'astro/config'; export default defineConfig({ integrations: [react({ babel: { plugins: ['babel-plugin-styled-components'] } })], });
To:
import react from '@astrojs/react'; import babel from '@rolldown/plugin-babel'; import { defineConfig } from 'astro/config'; export default defineConfig({ integrations: [react()], vite: { plugins: [ babel({ plugins: ['babel-plugin-styled-components'], }), ], }, });
This also works with
react({ compiler: true }). Babel runs before Oxc transforms TypeScript and JSX. The Babel plugin automatically enables parsing for.jsx,.ts, and.tsxfiles. It does not loadbabel.config.jsor.babelrcfiles; pass the options directly tobabel(). The oldbabelcallback is not supported; use the plugin'soverridesand preset hooks for conditional transforms.Do not enable
babel-plugin-react-compileron the same components as the Oxc compiler.
@astrojs/vercel@11.0.11
-
#18044
98c07e1Thanks @astro-factory! - Fixes a rare issue where ISR pages on Vercel could intermittently be served a cached redirect to a nonsense URL (such as/$0/) instead of the page itself. Pages now render correctly, and requests that can't be resolved to a valid path return a404instead of a redirect. -
#18008
a09b328Thanks @yanthomasdev! - Fixes the immutableCache-Controlrule for hashed assets (/_astro/*) being emitted after thefilesystemroute handle in.vercel/output/config.json.
@astrojs/markdown-satteri@0.4.2
-
#17946
3fd16eeThanks @odysseus0! - Fix syntax highlighting for fenced code blocks when raw HTML is enabled. -
#18046
8358d59Thanks @Princesseuh! - FixessatteriHeadingIdsPluginsharing Slugger state across documents when reused as a user hast plugin, which caused headings with the same text in different posts to receive incorrect numeric suffixes
@astrojs/mdx@8.0.2
- #18036
f4444ebThanks @astro-factory! - Fixes an incompatibility where@astrojs/mdxv8 could be installed withastroversions that bundle an older@astrojs/markdown-satterilacking MDX support. Also improves the error message when the processor is too old to suggest updatingastroitself. - Updated dependencies [
3fd16ee,8358d59]:- @astrojs/markdown-satteri@0.4.2