Update Aug 13, 2026 tracked by Updatify
@astrojs/node@11.1.2
Patch Changes
-
#17400
c1cf110Thanks @tianrking! - Return a 404 instead of a 500 for unknown parameters that match a prerendered dynamic endpoint.
Astro is a JavaScript web framework optimized for building fast, content-driven websites. Server-First
Update Aug 13, 2026 tracked by Updatify
c1cf110 Thanks @tianrking! - Return a 404 instead of a 500 for unknown parameters that match a prerendered dynamic endpoint. Update Aug 13, 2026 tracked by Updatify
#17611 9bc3207 Thanks @thelazylamaGit! - Fixes component styles rendered from content entries remaining stale until a second save when an adapter uses Astro’s fallback development environment
#17634 2267eee Thanks @astrobot-houston! - Fixes incremental builds dropping optimized images for cached pages when using a collectStaticImages prerenderer (e.g. @astrojs/cloudflare with compile-time image optimization)
#17650 4cdf128 Thanks @astrobot-houston! - Fixes intermittent ImageNotFound errors during build on projects with many images. The build now limits concurrent image file reads to avoid exhausting OS file descriptors (EMFILE) and retries transient I/O errors with backoff. Non-transient errors are no longer silently swallowed.
Update Aug 11, 2026 tracked by Updatify
#17627 ba6a9f6 Thanks @astrobot-houston! - Fixes the astro peer dependency range from ^7.0.0 to ^7.2.0. The adapter imports symbols (beginContentEntryCollection, beginImageCollection, endContentEntryCollection, endImageCollection) from astro/app that were added in Astro 7.2.0, so earlier versions fail at build time with a MISSING_EXPORT error.
Updated dependencies [0891ac9]:
Update Aug 11, 2026 tracked by Updatify
8b211a5 Thanks @astrobot-houston! - Fixes an EventEmitter memory leak when serving static pages over keep-alive connections with staticHeaders enabled and CSP (security.csp) active Update Aug 11, 2026 tracked by Updatify
0891ac9 Thanks @astrobot-houston! - Fixes dynamic redirect routes to honour user-configured status codes instead of hardcoding 301. Previously, a redirect configured with { destination: '/new', status: 302 } would be emitted as 301 in the _redirects file when the route was dynamic. Update Aug 11, 2026 tracked by Updatify
#17612 7133730 Thanks @thelazylamaGit! - Fixes CSS hot module replacement after navigating between pages with ClientRouter
#17628 4ada248 Thanks @astrobot-houston! - Fixes a CSP violation when using both security.csp and experimental.clientPrerender with data-astro-prefetch links. The dynamically injected <script type="speculationrules"> now uses a static "source": "document" approach with a CSS selector, producing a deterministic payload that is hashed and included in the CSP script-src directive at build time.
#17605 89e4647 Thanks @ashleigh-yeoman! - Fixes middleware HMR not responding to changes in imported modules. Previously, only direct edits to the middleware file would trigger a reload.
Update Aug 6, 2026 tracked by Updatify
5462b81 Thanks @astrobot-houston! - Fixes a build crash when a Solid island imports a package that ships pre-compiled browser artifacts via the exports.solid condition (e.g. @kobalte/core). Solid ecosystem packages are now bundled in non-client environments so that Vite resolves the correct export condition during prerendering. Update Aug 6, 2026 tracked by Updatify
#17174 0224a3a Thanks @matthewp! - Adds the astro preview --background flag to start preview servers as background processes.
This makes preview servers easier to manage from scripts and AI coding agents because the command returns after the server is ready instead of keeping the terminal attached to the long-running process.
astro preview --background
When a preview server is running in the background, you can inspect or stop it with new astro preview subcommands:
astro preview status
astro preview logs
astro preview logs --follow
astro preview stop
If Astro detects that astro preview is being run by an AI coding agent, background mode is enabled automatically. This matches the existing behavior for astro dev, allowing agents to continue working after the preview server starts while still receiving the server URL and process ID.
To opt out of automatic background mode for preview servers, set ASTRO_PREVIEW_BACKGROUND=0 before running astro preview.
Update Aug 6, 2026 tracked by Updatify
Update Aug 6, 2026 tracked by Updatify
#16194 2a59663 Thanks @Daedalus-Icarus! - Adds opt-in build-time image optimization for the cloudflare-binding image service.
When enabled, the Cloudflare IMAGES binding transforms static images in the workerd prerender environment, and the optimized bytes are written directly to the output directory. If the binding fails, it falls back to Sharp.
To opt in, use the compound configuration form:
export default defineConfig({
adapter: cloudflare({
imageService: { build: 'cloudflare-binding', runtime: 'cloudflare-binding' },
}),
});
The string shorthand imageService: 'cloudflare-binding' preserves the current runtime-only behavior and is unaffected.
#16871 90c98ae Thanks @adamchal! - When session: false is set in astro.config, the adapter no longer auto-wires the Cloudflare KV session driver. Combined with the matching astro change, this lets the session runtime tree-shake out of the Worker bundle.
Update Aug 6, 2026 tracked by Updatify
90c98ae Thanks @adamchal! - When session: false is set in astro.config, the adapter no longer auto-wires the Netlify Blobs session driver. Combined with the matching astro change, this lets the session runtime tree-shake out of the function bundle. Update Jul 29, 2026 tracked by Updatify
#17543 bbc1ec9 Thanks @ematipico! - Fixes a bug where Cloudflare couldn’t load chunked collections via experimental.collectionStorage: 'chunked'.
Updated dependencies []:
Update Jul 29, 2026 tracked by Updatify
#17536 ff97b86 Thanks @dmgawel! - Fixes concurrent static builds failing to generate i18n rewrite fallbacks for dynamic routes
#17383 296e1b0 Thanks @thelazylamaGit! - Fixes stale dev CSS after editing component style blocks and CSS files in dev
#17543 bbc1ec9 Thanks @ematipico! - Adds a feature to experimental.collectionStorage that allows to change the size of chunks.
For example, you can reduce the size of chunks to 1MB:
// astro.config.mjs
import { defineConfig } from 'astro/config';
export default defineConfig({
experimental: {
collectionStorage: {
type: 'chunked',
chunkSize: 1024 * 1024,
},
},
});
Update Jul 28, 2026 tracked by Updatify
c895b12]: Update Jul 28, 2026 tracked by Updatify
c895b12 Thanks @nicksnyder! - Updates dependency js-yaml to v4.3.0 Update Jul 28, 2026 tracked by Updatify
c895b12 Thanks @nicksnyder! - Updates dependency js-yaml to v4.3.0 Update Jul 28, 2026 tracked by Updatify
c895b12]: Update Jul 28, 2026 tracked by Updatify
c895b12]: Update Jul 28, 2026 tracked by Updatify
#17524 7613030 Thanks @matthewp! - Fixes a bug where an error while finalizing a request could prevent a response from being sent
#17480 f61ba9c Thanks @florian-lefebvre! - Fixes a case where a custom logger.entrypoint failed to load at runtime in a built server bundle.
#17525 e614b7b Thanks @matthewp! - Fixes action path resolution so that properties of a resolved action function are not treated as routable path segments
#17284 c775c1f Thanks @matthewp! - Fixes a bug where the custom 404 (or 500) page was not rendered when a middleware rewrite targeted a route that returned an empty 404/500 response, and a blank page was returned instead
Update Jul 27, 2026 tracked by Updatify
#17376 0216368 Thanks @astrobot-houston! - Fixes a bug where an explicit cache: { enabled: false } in your wrangler config was overridden and forced to true when a Workers cache provider was configured
Updated dependencies []:
Update Jul 27, 2026 tracked by Updatify
#17488 d4f266d Thanks @emerson-d-lopes! - Fixes duplicate CSS files being emitted in server output when a prerendered page and a server-rendered page share the same styles (e.g. a shared layout importing Tailwind). The prerender and SSR environments each emitted their own copy of the same stylesheet (index.X.css and _..Y.css); the SSR build now reuses the CSS asset filename from the prerender build when the stylesheet is backed by the same CSS source modules, so only a single file is emitted.
#17472 4dc590c Thanks @astrobot-houston! - Adds the missing background prop to the <Image /> and <Picture /> component types. The prop already worked at runtime, but was absent from the types, causing astro check to report that background does not exist on the component props
#17292 0fc519d Thanks @astrobot-houston! - Fixes missing scoped styles for child components inside client:only islands in production builds
Update Jul 27, 2026 tracked by Updatify
08e8adb Thanks @astrobot-houston! - Fixes create-astro silently writing template files to the wrong directory on Linux when the path contains non-ASCII characters. Update Jul 27, 2026 tracked by Updatify
b01a692 Thanks @ocavue! - Update dependency yargs to version 18. See the yargs changelog for details. Update Jul 27, 2026 tracked by Updatify
#17460 3b93a1a Thanks @astrobot-houston! - Fixes custom transform functions being dropped when a tag or node also specifies a custom render component. User-written transforms are now always preserved; only Markdoc’s built-in transforms are removed so the custom component wins.
#17191 fc3fb2b Thanks @eldardada! - Fixes custom transform functions being incorrectly dropped for tags and nodes whose names require bracket access (e.g. side-note). The check that detects whether a transform respects a custom render component now recognizes bracket notation, optional chaining and whitespace, not only dot notation.
Update Jul 27, 2026 tracked by Updatify
41a00dd Thanks @gtritchie! - Fixes a bug where the integration was emitting React-cased attribute names. Update Jul 21, 2026 tracked by Updatify
6a1c1d8 Thanks @florian-lefebvre! - Fixes a case where errors in files included in tsconfig project references would never be caught Update Jul 21, 2026 tracked by Updatify
Update Jul 20, 2026 tracked by Updatify
630b382 Thanks @astrobot-houston! - Fixes image optimization during astro build using too many parallel processes in CPU-limited containers. Builds now respect the container’s CPU limit, reducing peak memory usage and avoiding out-of-memory crashes.
</content>
</invoke> Update Jul 20, 2026 tracked by Updatify
#17445 a5f7230 Thanks @ocavue! - Updates dependency cookie to v2. Cookie values made entirely of URL-safe characters are no longer percent-encoded in Set-Cookie headers; encoded values round-trip exactly as before.
#17402 a89c137 Thanks @farrosfr! - Fixes a bug where mutated Astro.locals during the request lifecycle are lost and not passed to custom error pages (404.astro/500.astro)
#17405 91992ef Thanks @Araluma! - Prevents an unhandled promise rejection from the prefetch fetch fallback. In WebKit (Safari), <link rel="prefetch"> is unsupported, so prefetch uses the fetch() fallback; on a flaky connection that fetch rejects with TypeError: Load failed, and because the promise was not awaited or caught, it surfaced as an unhandled rejection to the page’s global error handlers. The best-effort prefetch now swallows the failure with .catch().
Update Jul 16, 2026 tracked by Updatify
#17302 5f4dc03 Thanks @astrobot-houston! - Adds a new deferRender option to the glob() content loader
When set to true, renderable entries (such as Markdown) are not rendered during content sync. Instead, rendering is deferred until the entry is actually rendered in a page, using the same on-demand path that .mdx files already use.
This reduces memory usage during astro build for large collections whose rendered output is much larger than the source — for example, Markdown that uses heavy rehype plugins like rehype-katex. Such builds could previously run out of memory while storing the eagerly-rendered HTML for every entry.
// src/content.config.ts
import { defineCollection } from 'astro:content';
import { glob } from 'astro/loaders';
const docs = defineCollection({
loader: glob({ pattern: '**/*.md', base: 'src/content/docs', deferRender: true }),
});
By default deferRender is false, preserving the existing behavior of rendering entries eagerly during sync so their rendered HTML can be cached across builds.
Update Jul 13, 2026 tracked by Updatify
Update Jul 13, 2026 tracked by Updatify
#17286 a249317 Thanks @astrobot-houston! - Fixes the first browser visit after astro dev starts triggering an immediate full page reload
#17369 a94d4a5 Thanks @adamchal! - Fixes an issue where a client island could permanently fail to hydrate if the first attempt to load its component failed. Islands now reliably recover from transient import failures, which previously did not work for React components during astro dev.
Update Jul 13, 2026 tracked by Updatify
#17368 ee74c28 Thanks @matthewp! - Fixes the generated Netlify Image CDN remote_images patterns so that regex metacharacters (such as .) in image.remotePatterns (hostname, pathname) and image.domains are matched literally instead of behaving like wildcards. This makes the generated patterns consistent with how Astro matches these values elsewhere.
Updated dependencies []:
Update Jul 13, 2026 tracked by Updatify
#17363 3f4efc5 Thanks @astrobot-houston! - Fixes astro preview --open not opening a browser when using an adapter with a custom preview entrypoint, such as @astrojs/cloudflare
#17313 e2e319d Thanks @ronits2407! - Exposes the AstroRuntimeLogger interface to allow users to properly type the logger functions at runtime.
#17328 025cc74 Thanks @matthewp! - Fixes astro dev --force not replacing an already-running dev server
#17353 2bba277 Thanks @ematipico! - Updates the Astro compiler to the latest version, which fixes many regressions. Refer to the changelog for more details.
Update Jul 13, 2026 tracked by Updatify
5196fb4 Thanks @kkhys! - Fixes an opaque Cannot read properties of undefined (reading 'fileExists') crash when astro check runs against the TypeScript 7 native compiler. The native compiler does not ship the programmatic API the checker relies on yet, so astro check now fails early with a clear message pointing to the tracking issue instead. Update Jul 13, 2026 tracked by Updatify
#17363 3f4efc5 Thanks @astrobot-houston! - Fixes astro preview --open not opening a browser when using an adapter with a custom preview entrypoint, such as @astrojs/cloudflare
Updated dependencies []: