AstroEco is Releasing…
Display your GitHub releases using astro-loader-github-releases
Patch Changes
-
#4252
40a2584Thanks @olafur-andri! - Adds Icelandic language support -
#4229
e4a3d82Thanks @HiDeoo! - Fixes a potential issue with icons being cut off in Firefox when pinch-zooming. -
#4226
fb562ddThanks @HiDeoo! - Fixes an issue where pages not importing components from@astrojs/starlight/componentsincluded styles of Starlight components used on other pages. -
#4250
531af7dThanks @HiDeoo! - FixesFailed to resolve dependencywarnings logged when running the development server in projects using the Cloudflare adapter. -
#4229
e4a3d82Thanks @HiDeoo! - Fixes thecodePenandnodeicons slightly extending beyond their bounding box.

Patch Changes
- #18263
882dd98Thanks @florian-lefebvre! - Refactors internal bundling and code transforms to use Vite's Oxc-basedtransformWithOxcand Rolldown instead of esbuild. These packages no longer depend on esbuild directly.

Patch Changes
- #18263
882dd98Thanks @florian-lefebvre! - Refactors internal bundling and code transforms to use Vite's Oxc-basedtransformWithOxcand Rolldown instead of esbuild. These packages no longer depend on esbuild directly. - Updated dependencies []:
- @astrojs/underscore-redirects@1.0.4

Patch Changes
- #18263
882dd98Thanks @florian-lefebvre! - Refactors internal bundling and code transforms to use Vite's Oxc-basedtransformWithOxcand Rolldown instead of esbuild. These packages no longer depend on esbuild directly.

Patch Changes
- #18263
882dd98Thanks @florian-lefebvre! - Refactors internal bundling and code transforms to use Vite's Oxc-basedtransformWithOxcand Rolldown instead of esbuild. These packages no longer depend on esbuild directly.

Patch Changes
- #18263
882dd98Thanks @florian-lefebvre! - Removes the automaticallowScriptsandallowBuildspre-approval from generated projects. Astro's dependencies no longer run install scripts, so the workaround is no longer needed.

Patch Changes
-
#18293
28e7410Thanks @astro-factory! - FixesAstro.cachebeingundefinedwhen a custom 404 or 500 page is rendered by the error handler, for example after a request to an API route with an HTTP method the route doesn't export -
#18298
0e9e857Thanks @matthewp! - Fixesastro addremoving existingallowBuildsapprovals frompnpm-workspace.yamlwith pnpm v11.0–v11.22 -
#18263
882dd98Thanks @florian-lefebvre! - Refactors internal bundling and code transforms to use Vite's Oxc-basedtransformWithOxcand Rolldown instead of esbuild. These packages no longer depend on esbuild directly. -
#18290
31f13c3Thanks @astro-factory! - Fixes theglob()loader not reloading changed files in dev when the pattern starts with an extglob such as!(drafts)/**/*.md

Patch Changes
- #18180
6fb83daThanks @matthewp! - Fixes Netlify Image CDN patterns generated fromimage.remotePatternspathnames ending in/**so they only match paths below that directory, consistent with Astro's own pattern matching. Previously, a pattern like/public/**also matched sibling paths sharing the prefix, such as/public-assets/. - Updated dependencies []:
- @astrojs/underscore-redirects@1.0.4

Patch Changes
- #18110
ffdf774Thanks @Princesseuh! - Fix organize imports for Astro files whose frontmatter ends with imports.

Patch Changes
-
#18266
cba76ccThanks @astro-factory! - Fixes a build error when a Markdown content collection entry loaded withglob({ deferRender: true })has alayoutfrontmatter property.layoutis now ignored for content collection entries, as documented. -
#18287
38f6793Thanks @astro-factory! - Fixesastro add cloudflarefailing to install dependencies with pnpm v11+ by approving theworkerdbuild script, and shows the package manager's error output whenastro addfails to install dependencies -
#18222
fcf6ed6Thanks @mingjunlu! - Fixes an issue where AVIF images were served asimage/heifinstead ofimage/avifin the dev server. -
#18240
de4df06Thanks @astro-factory! - Fixes thecache()handler fromastro/honoandastro/fetchthrowing aTypeErrorwhen a cache provider is configured. It now registers the cache provider before rendering, soAstro.cacheis available to downstream handlers likepages(). -
#18268
547b572Thanks @astro-factory! - Fixessecurity.checkOriginrejecting cross-origin requests with non-form content types such asapplication/json. As documented, the check only applies to unsafe requests that have nocontent-typeheader or one ofapplication/x-www-form-urlencoded,multipart/form-data, ortext/plain.

Patch Changes
- #18254
36f3a0cThanks @astro-factory! - Fixes middleware rewrites returning 404 instead of 200 when the 404 page is server-rendered - Updated dependencies [
6987261,62b13ba]:- @astrojs/internal-helpers@0.12.0





Patch Changes
-
#18213
1e5523dThanks @astro-factory! - Fixes theglobalThis.processshim being prepended to client-side scripts. The shim is now only added to the server output. -
#18253
78dca00Thanks @astro-factory! - Fixes the@astrojs/cloudflare/honousage example soi18n()is mounted beforepages(). In the old order,i18n()never ran, so locale redirects and fallbacks were skipped. -
#18145
02246c9Thanks @astro-factory! - Fixes dev dependency scan failing when a frontmatter line starts withimport.metaorimport( -
#17677
4f85749Thanks @andreialba! - Fixes remote images without a file extension failing with400 Unsupported format: nullwhen using thecloudflare-bindingimage serviceAstro only adds the
f(format) parameter to/_imageURLs when it can infer a format from the source, and otherwise leaves it off so the image service resolves the format from the source itself. Extensionless remote images, such as GitHub avatars likehttps://avatars.githubusercontent.com/u/1234, take that path. The image transform endpoint now falls back to the source's media type whenfis absent, passing SVG sources through unchanged and encoding everything else as WebP. This also fixes SVG images, which are requested asf=svgand previously failed the same way. -
#18057
8db3024Thanks @asqar! - Fixesastro buildfailing withfetch failed/connect ECONNREFUSED 127.0.0.1:<port>during prerendering on hosts wherelocalhostresolves to IPv6The prerenderer started its Vite preview server with
host: 'localhost'and then built the fetch URL by re-stating that same hostname.localhostwas therefore resolved twice, independently — once bylisten()to pick a bind address and once byfetch()to pick a connect address — with nothing making the two agree. On hosts where those resolutions land on different families, the preview server listens on::1whilefetchdials127.0.0.1, and every prerender request is refused. The URL is now derived from the address actually bound, so bind and connect agree by construction. -
Updated dependencies [
6987261,62b13ba]:- @astrojs/internal-helpers@0.12.0
- @astrojs/underscore-redirects@1.0.4

Patch Changes
-
#18166
5134d0fThanks @astro-factory! - Fixes an intermittent dev server crash when usingastro:actionsinside a server island with adapters that use a pre-bundled SSR environment (e.g.@astrojs/cloudflare) -
#18076
8a2df66Thanks @astro-factory! - Fixes stale scoped styles during HMR when both markup and<style>are changed in a single save -
#18252
2d29e7eThanks @astro-factory! - Fixes CSS from other pages leaking into a page's<head>in dev when the page imports a module such asastro:config/server. -
#18000
6724575Thanks @barclayd! - Fixes a bug where server islands containing framework components rendered empty in the dev server when using a customsrc/fetch.ts -
#18241
7c5fd6fThanks @astro-factory! - Fixes the composablei18n()handler fromastro/fetchandastro/honoreturning an empty 404 for paths without a locale prefix. It now renders the custom 404 page, matchingastro(). -
#18164
1a6997fThanks @astro-factory! - Fixes CSS Module HMR in dev when a component is rendered both with and without hydration on the same page. Astro now uses path-based class name hashing in dev mode so that editing CSS declarations no longer changes the generated selectors, allowing Vite's CSS HMR to update styles without a full page reload. -
#18243
dd29d62Thanks @astro-factory! - Fixescontext.propsbeingnullin middleware and endpoints when the composableastro/honoorastro/fetchactions()handler runs beforemiddleware(), or whenpages()runs withoutmiddleware() -
#18193
95d5d16Thanks @astro-factory! - Fixesastro buildfailing on Windows with Node.js 25+ withERR_INVALID_ARG_VALUEwhen clearing the output directory hits a transientEPERMerror -
#18220
d6c13a4Thanks @astro-factory! - Fixes type errors reported in Astro's built-in<Picture />and<Font />components when type-checking a project withtscand@astrojs/ts-content-mapper -
#18133
faac481Thanks @astro-factory! - Fixes lost request state when Vite discovers server dependencies during a request in Cloudflare dev mode -
#18146
2af4516Thanks @astro-factory! - Fixes CSS imported from aninjectScript('page')script being dropped during build -
#18159
e5f8fe0Thanks @astro-factory! - Fixes a hang when aserver:defercomponent is inside a slot of another component in an MDX content collection entry -
#18246
c3b42adThanks @astro-factory! - Fixes theglob()loader skipping content files whose paths contain#or? -
#18248
b97184eThanks @astro-factory! - Fixes a bug where page routes added withinjectRoute()returned a 404 wheni18n.routing.prefixDefaultLocalewastrueand the route path had no locale prefix -
#18251
3415263Thanks @astro-factory! - Fixes content collection changes being ignored inastro devafter the dev server restarts because of a config change -
#18226
ad54af0Thanks @imharjot! - FixesAstro.cookies.get()returningundefinedfor request cookies with empty values -
#18155
37ab0e4Thanks @astro-factory! - Fixes nondeterministic ordering of the server manifest'sassetsarray, ensuring builds with identical inputs produce byte-identical output -
#18099
6987261Thanks @renovate! - Adds YAML parsing with timestamp and merge key support, and formats YAML errors consistently across Astro, Markdown, MDX, and Markdoc. -
#15595
64e4039Thanks @qzio! - Improves CSRF protection by taking modern browsers headers into account -
#18215
941bd5eThanks @ump45nose! - Fixes a runtimeReferenceErrorfor inlined scripts that import a URL with/* @vite-ignore */.Astro now inlines scripts after Vite replaces its preload markers, so ignored dynamic imports can remain inline without shipping an unresolved
__VITE_PRELOAD__reference. -
#18179
6caa659Thanks @matthewp! - Fixes custom View Transition direction names that are not valid CSS identifiers, such as names starting with a digit or containing spaces. These directions now match their animations correctly. -
#18250
7eae39bThanks @astro-factory! - Fixes a 404 for a CSS file that a dynamic import preloads when the imported module uses a component that is also a hydrated island on the same page -
#18176
7c9d00dThanks @astro-factory! - Fixes duplicate CSS in production builds when a component is both server-rendered and used withclient:onlyon the same page -
#18245
492e95fThanks @astro-factory! - Fixes the composableastro/fetchandastro/honohandlers (trailingSlash(),redirects(),actions(),middleware(), andpages()) so they reject over-encoded request paths with a400 Bad Request, matchingastro(). For these requests,redirects()andactions()return the400response instead ofundefined, so no redirect is issued and no action runs. -
#18078
0a2ab10Thanks @manuelgruber! - FixesAstro.rewrite()andcontext.rewrite()selecting the wrong route inastro devwhen two dynamic routes match the same path -
#18210
62b13baThanks @edmundhung! - Allows Astro CLI commands to install tagged package versions -
#18069
d39eb97Thanks @astro-factory! - Fixes a dev server dependency scan failure when an.astrofile contains a literal<scriptin frontmatter or a template expression -
#18114
c17d920Thanks @matthewp! - Fixes Astro on StackBlitz and other WebContainer environments -
#18088
cb767f9Thanks @astro-factory! - Fixes aMODULE_LEVEL_DIRECTIVEwarning during build caused by a stale"use astro:head-inject"directive in content collection propagated asset modules -
#18247
2b3f73dThanks @astro-factory! - Fixes actions returning 500 for malformed JSON request bodies and undecodable action names. ASyntaxErrorfrom invalid JSON now returns 400 (BAD_REQUEST), and aURIErrorfrom a malformed percent-encoded action name now returns 404 (NOT_FOUND). -
1d9e910Thanks @matthewp! - Validates theHostheader againstsecurity.allowedDomainswhen using the Node adapter -
#18249
c7799a4Thanks @astro-factory! - Fixes thefontsourcefont provider to resolve variable fonts when using the "Variable" suffix in the font name (e.g."Inter Variable") -
#18163
e48da9dThanks @astro-factory! - Fixes<video muted>losing its muted state after a ClientRouter navigation in Chrome -
#18244
f67e7f7Thanks @astro-factory! - Fixes localized error pages such assrc/pages/pt/404.astroreturning a200status when rendered through thepages()handler fromastro/fetchorastro/hono -
#18242
c5275e3Thanks @astro-factory! - Fixesexperimental_AstroContaineroutput including dev toolbardata-astro-source-fileanddata-astro-source-locattributes when rendering components under Vitest -
Updated dependencies [
6987261,62b13ba]:- @astrojs/internal-helpers@0.12.0
- @astrojs/markdown-satteri@0.4.3


Patch Changes
-
#18099
6987261Thanks @renovate! - Adds YAML parsing with timestamp and merge key support, and formats YAML errors consistently across Astro, Markdown, MDX, and Markdoc. -
#18139
d047b5cThanks @breken-ai! - Fixes Markdown code blocks with languages ending in a symbol, such asc#,c++, andf#, being highlighted ascorf -
Updated dependencies [
6987261,62b13ba]:- @astrojs/internal-helpers@0.12.0





Patch Changes
- #18210
62b13baThanks @edmundhung! - Allows Astro CLI commands to install tagged package versions

Patch Changes
- #18205
7a519a7Thanks @ematipico! - Upgrades the@cloudflare/vite-pluginto the latest. - Updated dependencies []:
- @astrojs/underscore-redirects@1.0.4

Minor Changes
- #18206
db00242Thanks @edmundhung! - Updatesastro add @astrojs/cloudflare@betato installcf, scaffoldcloudflare.config.ts, and generate types withcf








Major Changes
-
#18119
b02f436Thanks @jamesopstad! - Updates the adapter to use v2 of@cloudflare/vite-pluginand support deployment withcf.Projects should replace Wrangler configuration with
cloudflare.config.ts, importing configuration utilities fromcf/config.cfshould also be used in place of Wrangler for deployment.The adapter’s
configPathoption has been removed. Configuration is always loaded from acloudflare.config.tsfile in the project root.wrangleris no longer a peer dependency of@astrojs/cloudflare.
Patch Changes
- Updated dependencies []:
- @astrojs/underscore-redirects@1.0.4

Minor Changes
-
#18112
c68d737Thanks @jamesopstad! - Allows integrations to control where Astro writes client, server, and prerender build output.Custom prerenderers can access the final output locations through the new
outputDirectoriescontext:setPrerenderer((defaultPrerenderer, { outputDirectories }) => { const { client, server, prerender } = outputDirectories return createPrerenderer({ defaultPrerenderer, client, server, prerender, }) })
Patch Changes
- #18112
c68d737Thanks @jamesopstad! - Fixes deployment integrations being unable to use Vite manifests when preparing build output
Patch Changes
-
#4149
fa10e87Thanks @ematipico! - Optimizes rendering of large nested sidebars -
#4215
f791de6Thanks @HiDeoo! - Adds a newseti:coffeeicon for CoffeeScript files in the<FileTree>component. -
#4215
f791de6Thanks @HiDeoo! - Fixes<FileTree>icons for.ejsandnpm-debug.logfiles displaying the default file icon.

Patch Changes
-
#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.

Patch Changes
- #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

Patch Changes
-
#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

Patch Changes
-
#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

Minor Changes
- #18050
cea7da5Thanks @Princesseuh! - Adds the initial release of the TypeScript content mapper for Astro files.


Major Changes
-
#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.Migrating custom Babel transforms
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.

Patch Changes
- #4211
33e21ecThanks @HiDeoo! - Fixes a potential page freeze due to table of contents highlighting when a<PageTitle>component override does not render a heading with the requiredid="_top".
Patch Changes
- #4201
fafd989Thanks @linux-universe! - Add 1 new icon:fluxer

Patch Changes
- #17985
7a6e7f7Thanks @astro-factory! - Fixes Vue render-function components failing to build when@astrojs/reactis also enabled. React's renderercheckno longer crashes on non-React object components, and Vue'schecknow recognizesdefineComponent()components that use asetupfunction returning a render function.


Patch Changes
- #17978
7a698caThanks @astro-factory! - Fixes skew protection to include the build assets directory (/_astro/by default) inskew-protection.jsonpatterns, preventing lazy-hydrated islands from loading duplicate framework instances after a redeploy - Updated dependencies []:
- @astrojs/underscore-redirects@1.0.4

Patch Changes
-
#17958
b95c574Thanks @astro-factory! - Fixes a build failure when the wrangler config uses theexportsfield to declare Durable Object classes -
#18022
24946f7Thanks @matthewp! - Fixes coldastro devcrashes when using the passthrough image service -
#17842
d68db73Thanks @adamchal! - Fixes broken images on static sites by transforming prerendered images at build time with the default Cloudflare Images binding -
#17945
750b4dbThanks @matthewp! - Pre-bundles renderer server entrypoints and the default console logger during dev so they are included in the initial optimization pass, preventing a mid-request re-optimization that could crash the dev server on Cloudflare (workerd). -
Updated dependencies []:
- @astrojs/underscore-redirects@1.0.4


Minor Changes
-
#17676
49d4294Thanks @Princesseuh! - Improves type checking and editor support for.astrofiles.The language server now uses our all-new Biome powered
astro2tsximplementation. This new version has much better support for incomplete syntax, generic types and various edge cases.In the vast majority of cases, no changes should be required to your code, and any change should be the result of more accurate types or behavior.
Patch Changes


Minor Changes
-
#17676
49d4294Thanks @Princesseuh! - Improves type checking and editor support for.astrofiles.The language server now uses our all-new Biome powered
astro2tsximplementation. This new version has much better support for incomplete syntax, generic types and various edge cases.In the vast majority of cases, no changes should be required to your code, and any change should be the result of more accurate types or behavior.
Patch Changes

Patch Changes
- #17985
7a6e7f7Thanks @astro-factory! - Fixes Vue render-function components failing to build when@astrojs/reactis also enabled. React's renderercheckno longer crashes on non-React object components, and Vue'schecknow recognizesdefineComponent()components that use asetupfunction returning a render function.

Patch Changes
- #17896
a548223Thanks @matthewp! - Fixes<script>/<style>rendering in MDX so that only literal content (including content injected by remark/rehype plugins) is treated as trusted markup. A dynamic value passed as a<script>/<style>child (e.g.<script>{value}</script>) is now escaped like any other element's content instead of being rendered raw. Useset:htmlto explicitly opt a dynamic value back into raw rendering.

Patch Changes
- Updated dependencies [
a548223]:- @astrojs/markdown-satteri@0.4.1

Patch Changes
- #17896
a548223Thanks @matthewp! - Fixes<script>/<style>rendering in MDX so that only literal content (including content injected by remark/rehype plugins) is treated as trusted markup. A dynamic value passed as a<script>/<style>child (e.g.<script>{value}</script>) is now escaped like any other element's content instead of being rendered raw. Useset:htmlto explicitly opt a dynamic value back into raw rendering.

Patch Changes
- #17818
c0b6581Thanks @florian-lefebvre! - Updates the development image service to forward every argument it receives to Astro's Sharp service, including the newloggerparameter
Last fetched: | Scheduled refresh: Every Saturday
See Customizing GitHub Activity Pages to configure your own
Inspired by releases.antfu.me