Updatify / Astro | Release notes

Create your changelog

Astro is a JavaScript web framework optimized for building fast, content-driven websites. Server-First

Update May 13, 2026 tracked by Updatify

astro@6.3.2

Patch Changes

  • #16675 11d4592 Thanks @ascorbic! - Fixes a regression where Astro.cache was undefined when experimental.cache was not configured.

    The previous documented behavior is for Astro.cache to always be defined as a no-op shim: cache.set() warns once, cache.invalidate() throws and cache.enabled can be used to gate. This allows library and user code can call cache methods without conditional checks. The cache provider registration was being gated at the call site on experimental.cache being configured, which meant the disabled shim branch inside the provider was unreachable and the Astro.cache getter was never attached to the context.

  • #16691 0f0a4ce Thanks @matthewp! - Fixes HTMLElement is not defined error during HMR when using components with client-side scripts (e.g. Starlight <Tabs>) and the Cloudflare adapter

Update May 7, 2026 tracked by Updatify

astro@6.3.0

Minor Changes

  • #16366 d69f858 Thanks @matthewp! - Adds a new experimental.advancedRouting option that lets you take full control of Astro’s request handling pipeline by creating a src/app.ts file in your project.

    Today, Astro handles every incoming request through a fixed internal pipeline: trailing slash normalization, redirects, actions, middleware, page rendering, i18n, and so on. That pipeline works great for most sites, but as projects grow you often want to run your own logic between those steps — an auth check before rendering, a rate limiter before actions, custom logging around the whole stack. Advanced routing gives you that control.

    When enabled, Astro looks for a src/app.ts file in your project. If it finds one, that file becomes the entrypoint for all server-rendered requests. You compose the pipeline yourself using the handlers Astro provides, and you can slot your own logic anywhere in the chain.

    Enabling advanced routing

    // astro.config.mjs
    import { defineConfig } from 'astro/config';
    
    export default defineConfig({
      experimental: {
        advancedRouting: true,
      },
    });

    Two ways to build your pipeline

    Astro ships two entrypoints for advanced routing: astro/fetch and astro/hono.

Update May 7, 2026 tracked by Updatify

@astrojs/cloudflare@13.4.0

Minor Changes

  • #16519 1b1c218 Thanks @louisescher! - Adds support for redirecting URLs in remote image optimization.

    Previously, when a remote image URL meant to be optimized by Astro led to a redirect, Astro would fail silently and ignore the redirect. Now, Astro tracks up to 10 redirects for these images. If any of the redirects are not covered by a pattern in image.remotePatterns or a domain in image.domains, Astro will fail with a helpful error message.

    In the following example, the first image would be loaded successfully, while the second would lead to Astro throwing an error:

    export default defineConfig({
      image: {
        domains: ['example.com', 'cdn.example.com'],
      },
    });
    {
      /* Redirects to https://cdn.example.com/assets/image.png: */
    }
    <Image
      src="https://example.com/assets/image.png"
      width="1920"
      height="1080"
      alt="An example image."
    />;
    
    {
      /* Redirects to https://malicious.com/image.png: */
    }
    <Image
      src="https://example.com/bad-image.png"
      width="1920"
      height="1080"
      alt="An example image."
    />;

    In cases where all redirects to HTTPS hosts should be trusted, the following configuration for image.remotePatterns can be used:

Update May 4, 2026 tracked by Updatify

astro@6.2.2

Patch Changes

  • #16292 00f48ee Thanks @p-linnane! - Fixes head metadata propagation in dev for adapters that load modules in the prerender Vite environment, such as @astrojs/cloudflare. The astro:head-metadata plugin previously only tracked the ssr environment, so maybeRenderHead() could fire inside an unrelated component’s <template> element, trapping subsequent hoisted <style> blocks.

  • #16451 778865f Thanks @maximslo! - Fixes build crash when processing animated AVIF images. Sharp now gracefully passes through unsupported image formats instead of crashing during the build.

  • #16548 7214d3e Thanks @senutpal! - Fixes scoped styles applying to the wrong element when vite.css.transformer is set to 'lightningcss' and a selector uses a nested & inside :where(...), such as Tailwind v4’s space-x-*, space-y-*, and divide-* utilities.

Update Apr 30, 2026 tracked by Updatify

astro@6.2.1

Patch Changes

  • #16531 76db01d Thanks @rodrigosdev! - Fixes config validation for omitted integrations fields with newer Zod versions.

  • #16535 7df0fe4 Thanks @rururux! - Fixed an issue where a warning was displayed when the server property was missing during config validation, even though it is not required.

  • #16534 5cf6c51 Thanks @matthewp! - Fixes compatibility with Zod 4.4.0 for the server config property and error formatting

Update Apr 30, 2026 tracked by Updatify

@astrojs/cloudflare@13.3.0

Minor Changes

  • #16187 fe58071 Thanks @gllmt! - Adds a waitUntil option to the RenderOptions so that adapters can forward runtime background-task hooks to Astro.

    When provided by an adapter, runtime cache providers receive context.waitUntil in CacheProvider.onRequest(), which allows background cache work such as stale-while-revalidate without blocking the response. The Cloudflare adapter now forwards ExecutionContext.waitUntil to this API.

  • #16290 a49637a Thanks @ViVaLaDaniel! - Ensures that server.allowedHosts (and vite.preview.allowedHosts) configuration is respected when using astro preview with the @astrojs/cloudflare adapter. This improves security by preventing DNS rebinding attacks when previewing Cloudflare builds locally.

Patch Changes

  • Updated dependencies []:
    • @astrojs/underscore-redirects@1.0.3

Update Apr 30, 2026 tracked by Updatify

astro@6.2.0

Minor Changes

  • #16187 fe58071 Thanks @gllmt! - Adds a waitUntil option to the RenderOptions so that adapters can forward runtime background-task hooks to Astro.

    When provided by an adapter, runtime cache providers receive context.waitUntil in CacheProvider.onRequest(), which allows background cache work such as stale-while-revalidate without blocking the response. The Cloudflare adapter now forwards ExecutionContext.waitUntil to this API.

  • #16290 a49637a Thanks @ViVaLaDaniel! - Ensures that server.allowedHosts (and vite.preview.allowedHosts) configuration is respected when using astro preview with the @astrojs/cloudflare adapter. This improves security by preventing DNS rebinding attacks when previewing Cloudflare builds locally.

Update Apr 28, 2026 tracked by Updatify

@astrojs/cloudflare@13.2.2

Patch Changes

  • #16498 4efe020 Thanks @matthewp! - Fixes the dependency scan failing with “No matching export for import ‘default’” when a .ts file default-imports an .astro component

    The esbuild scan plugin now includes export default {} in its output for .astro files, preventing the scan from failing and ensuring all dependencies are discovered ahead of time.

  • Updated dependencies []:

    • @astrojs/underscore-redirects@1.0.3

Update Apr 28, 2026 tracked by Updatify

@astrojs/db@0.21.0

Minor Changes

  • #16289 5d580c0 Thanks @maxmalkin! - Adds a new getDbError() helper exported from astro:db. It walks the error .cause chain and returns the underlying LibsqlError, or undefined if the error did not originate from libSQL. This is needed because drizzle-orm 0.44+ wraps query errors in a DrizzleQueryError whose .cause is the real LibsqlError.

    Upgrading

    Code that reads .code or .message after catching a database error should migrate from isDbError() to getDbError():

    // Before
    import { isDbError } from 'astro:db';
    try {
      await db.insert(MyTable).values({ ... });
    } catch (e) {
      if (isDbError(e)) {
        console.error(e.code, e.message);
      }
    }
    
    // After
    import { getDbError } from 'astro:db';
    try {
      await db.insert(MyTable).values({ ... });
    } catch (e) {
      const dbError = getDbError(e);
      if (dbError) {
        console.error(dbError.code, dbError.message);
      }
    }

Update Apr 28, 2026 tracked by Updatify

astro@6.1.10

Patch Changes

  • #16479 1058428 Thanks @matthewp! - Fixes a spurious [WARN] [content] Content config not loaded warning during astro dev for projects that don’t use content collections

  • #16457 3d82220 Thanks @matthewp! - Hardens server island encryption to prevent encrypted data from one island component being replayed against a different one

  • #16481 152700e Thanks @matthewp! - Fixes a spurious 404 request for a dev toolbar sourcemap during astro dev caused by the browser mis-resolving a relative sourceMappingURL from the /@id/ URL prefix

  • #16480 1bcb43b Thanks @matthewp! - Fixes an unnecessary full page reload on first navigation during dev

Update Apr 28, 2026 tracked by Updatify

@astrojs/svelte@8.1.0

Minor Changes

  • #16466 31b6198 Thanks @fkatsuhiro! - This change updates the Svelte integration’s type shims to treat non-children snippet props and any-typed props as optional. Previously, these were incorrectly marked as required in Astro files, causing false-positive type errors when using Svelte 5 components.
    • Adds HandleSnippetProps to make Snippets optional in Astro.
    • Distinguishes between generic and non-generic components to preserve inference.
    • Updates TSX generation to apply the appropriate directive wrapper.

Update Apr 22, 2026 tracked by Updatify

astro@6.1.9

Patch Changes

  • #16448 99464ed Thanks @matthewp! - Updates vite, picomatch, and unstorage to latest patch versions

  • #16422 a3951d7 Thanks @matthewp! - Hardens astro-island export resolution and hydration error handling for malformed component metadata

  • #16420 e21de1d Thanks @matthewp! - Hardens Astro’s error overlay and server logging paths to avoid unsafe HTML insertion and format-string interpolation

  • #16419 f3485c3 Thanks @matthewp! - Hardens nested object and package metadata lookups to ignore prototype keys in content handling and project scaffolding