Skip to content

AstroEco is Releasing…

Display your GitHub releases using astro-loader-github-releases

withastro/astro

Major Changes

Patch Changes

  • #15054 22db567 Thanks @matthewp! - Improves zod union type error messages to show expected vs received types instead of generic "Invalid input"
withastro/astro

Major Changes

Minor Changes

  • #15006 f361730 Thanks @florian-lefebvre! - Adds new session driver object shape

    For greater flexibility and improved consistency with other Astro code, session drivers are now specified as an object:

    -import { defineConfig } from 'astro/config'
    +import { defineConfig, sessionDrivers } from 'astro/config'
    
    export default defineConfig({
      session: {
    -    driver: 'redis',
    -    options: {
    -      url: process.env.REDIS_URL
    -    },
    +    driver: sessionDrivers.redis({
    +      url: process.env.REDIS_URL
    +    }),
      }
    })

    Specifying the session driver as a string has been deprecated, but will continue to work until this feature is removed completely in a future major version. The object shape is the current recommended and documented way to configure a session driver.

Patch Changes

  • #15044 7cac71b Thanks @florian-lefebvre! - Removes an exposed internal API of the preview server

  • #15047 5580372 Thanks @matthewp! - Fixes wrangler config template in astro add cloudflare to use correct entrypoint and compatibility date

  • #15053 674b63f Thanks @matthewp! - Excludes astro:* and virtual:astro:* from client optimizeDeps in core. Needed for prefetch users since virtual modules are now in the dependency graph.

withastro/astro

Minor Changes

  • #15006 f361730 Thanks @florian-lefebvre! - Adds new session driver object shape

    For greater flexibility and improved consistency with other Astro code, session drivers are now specified as an object:

    -import { defineConfig } from 'astro/config'
    +import { defineConfig, sessionDrivers } from 'astro/config'
    
    export default defineConfig({
      session: {
    -    driver: 'redis',
    -    options: {
    -      url: process.env.REDIS_URL
    -    },
    +    driver: sessionDrivers.redis({
    +      url: process.env.REDIS_URL
    +    }),
      }
    })

    Specifying the session driver as a string has been deprecated, but will continue to work until this feature is removed completely in a future major version. The object shape is the current recommended and documented way to configure a session driver.

withastro/astro

Patch Changes

  • #15045 31074fc Thanks @ematipico! - Fixes an issue where using the Vue integration with the Cloudflare adapter resulted in some runtime errors.
withastro/astro

Minor Changes

  • #15006 f361730 Thanks @florian-lefebvre! - Adds new session driver object shape

    For greater flexibility and improved consistency with other Astro code, session drivers are now specified as an object:

    -import { defineConfig } from 'astro/config'
    +import { defineConfig, sessionDrivers } from 'astro/config'
    
    export default defineConfig({
      session: {
    -    driver: 'redis',
    -    options: {
    -      url: process.env.REDIS_URL
    -    },
    +    driver: sessionDrivers.redis({
    +      url: process.env.REDIS_URL
    +    }),
      }
    })

    Specifying the session driver as a string has been deprecated, but will continue to work until this feature is removed completely in a future major version. The object shape is the current recommended and documented way to configure a session driver.

Patch Changes

  • Updated dependencies []:
    • @astrojs/underscore-redirects@1.0.0
withastro/astro

Minor Changes

  • #15006 f361730 Thanks @florian-lefebvre! - Adds new session driver object shape

    For greater flexibility and improved consistency with other Astro code, session drivers are now specified as an object:

    -import { defineConfig } from 'astro/config'
    +import { defineConfig, sessionDrivers } from 'astro/config'
    
    export default defineConfig({
      session: {
    -    driver: 'redis',
    -    options: {
    -      url: process.env.REDIS_URL
    -    },
    +    driver: sessionDrivers.redis({
    +      url: process.env.REDIS_URL
    +    }),
      }
    })

    Specifying the session driver as a string has been deprecated, but will continue to work until this feature is removed completely in a future major version. The object shape is the current recommended and documented way to configure a session driver.

Patch Changes

  • #15044 7cac71b Thanks @florian-lefebvre! - Removes an exposed internal API of the preview server

  • #15039 6cc96e7 Thanks @matthewp! - Fixes static content deployment by moving it to another folder, so Wrangler can tell the static and worker content apart

  • #15045 31074fc Thanks @ematipico! - Fixes an issue where using the Vue integration with the Cloudflare adapter resulted in some runtime errors.

  • #15053 674b63f Thanks @matthewp! - Excludes astro:* and virtual:astro:* from client optimizeDeps in core. Needed for prefetch users since virtual modules are now in the dependency graph.

  • Updated dependencies []:

    • @astrojs/underscore-redirects@1.0.0
withastro/astro

Patch Changes

withastro/astro

Major Changes

  • #15037 8641805 Thanks @matthewp! - Updates the Wrangler entrypoint

    Previously, the main field in wrangler.jsonc pointed to the built output, since Wrangler only ran in production after the build completed:

    {
      "main": "dist/_worker.js/index.js",
    }

    Now that Wrangler runs in both development (via workerd) and production, Astro provides a default entrypoint that works for both scenarios.

    What should I do?

    Update your wrangler.jsonc to use the new entrypoint:

    {
      "main": "@astrojs/cloudflare/entrypoints/server",
    }

    This single entrypoint handles both astro dev and production deployments.

Minor Changes

  • #15037 8641805 Thanks @matthewp! - The Wrangler configuration file is now optional. If you don't have custom Cloudflare bindings (KV, D1, Durable Objects, etc.), Astro will automatically generate a default configuration for you.

    What should I do?

    If your wrangler.jsonc only contains basic configuration like this:

    {
      "main": "@astrojs/cloudflare/entrypoints/server",
      "compatibility_date": "2025-05-21",
      "assets": {
        "directory": "./dist",
        "binding": "ASSETS",
      },
    }

    You can safely delete the file. Astro will handle this configuration automatically.

    You only need a wrangler config file if you're using:

    • KV namespaces
    • D1 databases
    • Durable Objects
    • R2 buckets
    • Environment variables
    • Custom compatibility flags
    • Other Cloudflare-specific features

Patch Changes

  • #15026 90c608c Thanks @matthewp! - Improves prebundling of internal Astro modules

  • #15030 b5aa52b Thanks @ematipico! - Fixed an issue where the feature experimental.chromeDevtoolsWorkspace wasn't supported by the new version of the adapter.

  • Updated dependencies []:

    • @astrojs/underscore-redirects@1.0.0
withastro/astro

Patch Changes

withastro/astro

Patch Changes

  • #14982 6849e38 Thanks @Princesseuh! - Fixes images outside the project directory not working when using astro:assets in development mode

  • #14987 9dd9fca Thanks @Princesseuh! - Fixes SVGs not working in dev mode when using the passthrough image service

  • #15014 a178422 Thanks @delucis! - Adds support for extending the type of the props accepted by Astro’s <Image> component, <Picture> component, and getImage() API.

withastro/astro

Patch Changes

  • #15004 16f3994 Thanks @antonyfaris! - Fixes an issue where Svelte components used in Astro files would incorrectly report type errors when using client:* directives.
withastro/astro

Patch Changes

withastro/astro

Minor Changes

withastro/astro

Minor Changes

Patch Changes

  • Updated dependencies []:
    • @astrojs/underscore-redirects@1.0.0
withastro/astro

Minor Changes

withastro/astro

Major Changes

Minor Changes

  • #14306 141c4a2 Thanks @ematipico! - Adds new optional properties to setAdapter() for adapter entrypoint handling in the Adapter API

    Changes:

    • New optional properties:
      • devEntrypoint?: string | URL - specifies custom dev server entrypoint
      • entryType?: 'self' | 'legacy-dynamic' - determines if the adapter provides its own entrypoint ('self') or if Astro constructs one ('legacy-dynamic', default)

    Migration: Adapter authors can optionally add these properties to support custom dev entrypoints. If not specified, adapters will use the legacy behavior.

  • #14826 170f64e Thanks @florian-lefebvre! - Adds an option prerenderConflictBehavior to configure the behavior of conflicting prerendered routes

    By default, Astro warns you during the build about any conflicts between multiple dynamic routes that can result in the same output path. For example /blog/[slug] and /blog/[...all] both could try to prerender the /blog/post-1 path. In such cases, Astro renders only the highest priority route for the conflicting path. This allows your site to build successfully, although you may discover that some pages are rendered by unexpected routes.

    With the new prerenderConflictBehavior configuration option, you can now configure this further:

    • prerenderConflictBehavior: 'error' fails the build
    • prerenderConflictBehavior: 'warn' (default) logs a warning and the highest-priority route wins
    • prerenderConflictBehavior: 'ignore' silently picks the highest-priority route when conflicts occur
    import { defineConfig } from 'astro/config';
    
    export default defineConfig({
    +    prerenderConflictBehavior: 'error',
    });
  • #14946 95c40f7 Thanks @ematipico! - Removes the experimental.csp flag and replaces it with a new configuration option security.csp - (v6 upgrade guidance)

Patch Changes

  • #14982 6849e38 Thanks @Princesseuh! - Fixes images outside the project directory not working when using astro:assets in development mode
withastro/astro

Patch Changes

withastro/astro

Major Changes

  • #14306 141c4a2 Thanks @ematipico! - Changes the API for creating a custom entrypoint, replacing the createExports() function with a direct export pattern.

    What should I do?

    If you're using a custom entryPoint in your Cloudflare adapter config, update your existing worker file that uses createExports() to reflect the new, simplified pattern:

    my-entry.ts

    import type { SSRManifest } from 'astro';
    import { App } from 'astro/app';
    import { handle } from '@astrojs/cloudflare/handler';
    import { DurableObject } from 'cloudflare:workers';
    
    class MyDurableObject extends DurableObject<Env> {
      constructor(ctx: DurableObjectState, env: Env) {
        super(ctx, env);
      }
    }
    
    export function createExports(manifest: SSRManifest) {
      const app = new App(manifest);
      return {
        default: {
          async fetch(request, env, ctx) {
            await env.MY_QUEUE.send('log');
            return handle(manifest, app, request, env, ctx);
          },
          async queue(batch, _env) {
            let messages = JSON.stringify(batch.messages);
            console.log(`consumed from our queue: ${messages}`);
          },
        } satisfies ExportedHandler<Env>,
        MyDurableObject: MyDurableObject,
      };
    }

    To create the same custom entrypoint using the updated API, export the following function instead:

    my-entry.ts

    import { handle } from '@astrojs/cloudflare/utils/handler';
    
    export default {
      async fetch(request, env, ctx) {
        await env.MY_QUEUE.send("log");
        return handle(manifest, app, request, env, ctx);
      },
      async queue(batch, _env) {
        let messages = JSON.stringify(batch.messages);
        console.log(`consumed from our queue: ${messages}`);
      }
    } satisfies ExportedHandler<Env>,

    The manifest is now created internally by the adapter.

  • #14306 141c4a2 Thanks @ematipico! - Development server now runs in workerd

    astro dev now runs your Cloudflare application using Cloudflare's workerd runtime instead of Node.js. This means your development environment is now a near-exact replica of your production environment—the same JavaScript engine, the same APIs, the same behavior. You'll catch issues during development that would have only appeared in production, and features like Durable Objects, Workers Analytics Engine, and R2 bindings work exactly as they do on Cloudflare's platform.

    To accommodate this major change to your development environment, this update includes breaking changes to Astro.locals.runtime, removing some of its properties.

    What should I do?

    Update occurrences of Astro.locals.runtime as shown below:

    • Astro.locals.runtime no longer contains the env object. Instead, import it directly:
      import { env } from 'cloudflare:workers';
    • Astro.locals.runtime no longer contains the cf object. Instead, access it directly from the request:
      Astro.request.cf;
    • Astro.locals.runtime no longer contains the caches object. Instead, use the global caches object directly:
      caches.default.put(request, response);
    • Astro.locals.runtime object is replaced with Astro.locals.cfContext which contains the Cloudflare ExecutionContext:
      const cfContext = Astro.locals.cfContext;

Minor Changes

  • #14306 141c4a2 Thanks @ematipico! - Adds support for astro preview command

    Developers can now use astro preview to test their Cloudflare Workers application locally before deploying. The preview runs using Cloudflare's workerd runtime, giving you a staging environment that matches production exactly—including support for KV namespaces, environment variables, and other Cloudflare-specific features.

Patch Changes

  • Updated dependencies []:
    • @astrojs/underscore-redirects@1.0.0
withastro/astro

Patch Changes

withastro/astro

Patch Changes

  • #14934 4264a36 Thanks @antonyfaris! - Fixes an issue where Svelte 5 components used in Astro files would not have proper type checking and IntelliSense.
withastro/astro

Patch Changes

withastro/astro

Patch Changes

withastro/astro

Patch Changes

  • Updated dependencies [d8305f8]:
    • @astrojs/markdown-remark@6.3.10
withastro/astro

Patch Changes

  • Updated dependencies [d8305f8]:
    • @astrojs/markdown-remark@6.3.10
withastro/starlight

Patch Changes

  • #3603 30f6e7f Thanks @delucis! - Fixes support for providing an absolute URL to Starlight’s favicon configuration option
withastro/astro

Patch Changes

  • #14950 385be1b Thanks @dvelasquez! - Fixes an issue with the volar-service-emmet that was pointing to a github username/repository instead of a npm package. This type of dependencies are not supported for Deno installations and it can break in enterprise environments that use private registries or don't have access to public github.
withastro/starlight

Minor Changes

  • #3491 28810f0 Thanks @JusticeMatthew! - Changes text overflow styling in Markdown content

    ⚠️ Potentially breaking change: This release switches the overflow-wrap CSS style for common elements to break-word. In most cases, there should be little visual impact, but this change can impact how layouts with implicit sizing (such as tables) look, improving legibility in how words wrap.

    If you want to preserve the previous styling, you can add the following custom CSS to your site:

    p, h1, h2, h3, h4, h5, h6, code {
      overflow-wrap: anywhere;
    }
  • #3351 239698c Thanks @HiDeoo! - Ensures that Starlight CSS layer order is predictable in custom pages using the <StarlightPage> component.

    Previously, due to how import order works in Astro, the <StarlightPage> component had to be the first import in custom pages to set up cascade layers used internally by Starlight to manage the order of its styles.

    With this change, this restriction no longer applies and Starlight’s styles will be applied correctly regardless of the import order of the <StarlightPage> component.

  • #3521 ca7b771 Thanks @shubham-padia! - Fixes an issue where a vertical scrollbar could be displayed on the Starlight <Tabs> component when zooming the page

    ⚠️ Potentially breaking change: The <Tabs> component no longer uses margin-bottom and border-bottom to highlight the current tab. This is now done with a box-shadow. If you have custom styling for your tabs, you may need to update it.

    If you want to preserve the previous styling, you can add the following custom CSS to your site:

    starlight-tabs .tab {
      margin-bottom: -2px;
    }
    
    starlight-tabs .tab > [role='tab'] {
      border-bottom: 2px solid var(--sl-color-gray-5);
      box-shadow: none;
    }
    
    starlight-tabs .tab [role='tab'][aria-selected='true'] {
      border-color: var(--sl-color-text-accent);
    }
  • #3549 1cf50eb Thanks @jacobdalamb! - Updates the default sans-serif system font stack, dropping support for the -apple-system and BlinkMacSystemFont font names used in older browsers. These are no longer needed in browsers officially supported by Starlight.

    If you still need to support older browsers, you can add the following custom CSS to your site:

    :root {
      --sl-font-system: ui-sans-serif, system-ui, -apple-system,
        BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,
        'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',
        'Segoe UI Symbol', 'Noto Color Emoji';
    }
  • #3332 f61f99d Thanks @HiDeoo! - Adds a new markdown.processedDirs configuration option to specify additional directories where files should be processed by Starlight’s Markdown pipeline.

    By default, Starlight’s processing only applies to Markdown and MDX content loaded using Starlight’s docsLoader(). This new option allows to extend this processing to other directories, which can be useful if you are rendering content from a custom content collection using the <StarlightPage> component and expect Starlight’s Markdown processing to be applied to that content as well.

lin-stephanie/astro-loaders
Sub logo

Patch Changes

lin-stephanie/astro-loaders
Sub logo

Patch Changes

withastro/astro

Patch Changes

withastro/astro

Patch Changes

withastro/astro

Patch Changes

withastro/astro

Patch Changes

withastro/astro

Patch Changes

withastro/astro

Patch Changes

withastro/astro

Patch Changes

withastro/astro

Patch Changes

withastro/astro

Patch Changes

  • #14777 9720b70 Thanks @iclectic! - Updates assets handling to use @astrojs/internal-helpers

  • Updated dependencies []:

    • @astrojs/underscore-redirects@1.0.0
withastro/astro

Patch Changes

  • #14807 c17767a Thanks @jmgala! - Fixes a case where disabling the local image CDN wasn't possible

  • Updated dependencies []:

    • @astrojs/underscore-redirects@1.0.0
withastro/starlight

Patch Changes

  • #3555 547dc30 Thanks @Its-Just-Nans! - Improves the error message thrown when using a file in the public/ directory with Starlight’s customCss configuration option

  • #3496 b78fda4 Thanks @delucis! - Fixes invalid <head> output when configuration is missing:

    • Omits <meta property="og:description" /> if Starlight’s description option is unset
    • Omits <link rel="canonical" /> and <meta property="og:url" /> if Astro’s site option is unset
  • #3511 8727df1 Thanks @astrobot-houston! - Updates the seti:gitlab icon to match latest version from Seti UI Icons

withastro/astro

Patch Changes

withastro/astro

Patch Changes

withastro/astro

Patch Changes

  • #14716 0419985 Thanks @serhalp! - Upgrades the @netlify/functions dependency to v5. This removes 82 MB and 310 dependencies from the dependency tree

  • Updated dependencies []:

    • @astrojs/underscore-redirects@1.0.0
withastro/astro

Patch Changes

withastro/astro

Patch Changes

  • Updated dependencies []:
    • @astrojs/markdown-remark@6.3.9
withastro/astro

Patch Changes

  • Updated dependencies [9e9c528, 0f75f6b]:
    • @astrojs/internal-helpers@0.7.5
    • @astrojs/markdown-remark@6.3.9
withastro/astro

Patch Changes

  • #14791 9e9c528 Thanks @Princesseuh! - Changes the remote protocol checks for images to require explicit authorization in order to use data URIs.

    In order to allow data URIs for remote images, you will need to update your astro.config.mjs file to include the following configuration:

    // astro.config.mjs
    import { defineConfig } from 'astro/config';
    
    export default defineConfig({
      images: {
        remotePatterns: [
          {
            protocol: 'data',
          },
        ],
      },
    });
  • #14787 0f75f6b Thanks @matthewp! - Fixes wildcard hostname pattern matching to correctly reject hostnames without dots

    Previously, hostnames like localhost or other single-part names would incorrectly match patterns like *.example.com. The wildcard matching logic has been corrected to ensure that only valid subdomains matching the pattern are accepted.

withastro/astro

Patch Changes

  • Updated dependencies [9e9c528, 0f75f6b]:
    • @astrojs/internal-helpers@0.7.5
    • @astrojs/underscore-redirects@1.0.0
withastro/astro

Patch Changes

  • Updated dependencies [9e9c528, 0f75f6b]:
    • @astrojs/internal-helpers@0.7.5
    • @astrojs/underscore-redirects@1.0.0
withastro/astro

Patch Changes

  • Updated dependencies [9e9c528, 0f75f6b]:
    • @astrojs/internal-helpers@0.7.5
withastro/astro

Patch Changes

  • Updated dependencies [9e9c528, 0f75f6b]:
    • @astrojs/internal-helpers@0.7.5
withastro/astro

Patch Changes

  • Updated dependencies [9e9c528, 0f75f6b]:
    • @astrojs/internal-helpers@0.7.5
lin-stephanie/astro-loaders

Patch Changes

withastro/astro

Major Changes

withastro/astro

Patch Changes

  • #14715 3d55c5d Thanks @ascorbic! - Adds support for client hydration in getContainerRenderer()

    The getContainerRenderer() function is exported by Astro framework integrations to simplify the process of rendering framework components when using the experimental Container API inside a Vite or Vitest environment. This update adds the client hydration entrypoint to the returned object, enabling client-side interactivity for components rendered using this function. Previously this required users to manually call container.addClientRenderer() with the appropriate client renderer entrypoint.

    See the container-with-vitest demo for a usage example, and the Container API documentation for more information on using framework components with the experimental Container API.

withastro/astro

Patch Changes

  • #14715 3d55c5d Thanks @ascorbic! - Adds support for client hydration in getContainerRenderer()

    The getContainerRenderer() function is exported by Astro framework integrations to simplify the process of rendering framework components when using the experimental Container API inside a Vite or Vitest environment. This update adds the client hydration entrypoint to the returned object, enabling client-side interactivity for components rendered using this function. Previously this required users to manually call container.addClientRenderer() with the appropriate client renderer entrypoint.

    See the container-with-vitest demo for a usage example, and the Container API documentation for more information on using framework components with the experimental Container API.

withastro/astro

Patch Changes

  • #14715 3d55c5d Thanks @ascorbic! - Adds support for client hydration in getContainerRenderer()

    The getContainerRenderer() function is exported by Astro framework integrations to simplify the process of rendering framework components when using the experimental Container API inside a Vite or Vitest environment. This update adds the client hydration entrypoint to the returned object, enabling client-side interactivity for components rendered using this function. Previously this required users to manually call container.addClientRenderer() with the appropriate client renderer entrypoint.

    See the container-with-vitest demo for a usage example, and the Container API documentation for more information on using framework components with the experimental Container API.

withastro/astro

Patch Changes

  • #14715 3d55c5d Thanks @ascorbic! - Adds support for client hydration in getContainerRenderer()

    The getContainerRenderer() function is exported by Astro framework integrations to simplify the process of rendering framework components when using the experimental Container API inside a Vite or Vitest environment. This update adds the client hydration entrypoint to the returned object, enabling client-side interactivity for components rendered using this function. Previously this required users to manually call container.addClientRenderer() with the appropriate client renderer entrypoint.

    See the container-with-vitest demo for a usage example, and the Container API documentation for more information on using framework components with the experimental Container API.

withastro/astro

Patch Changes

  • #14715 3d55c5d Thanks @ascorbic! - Adds support for client hydration in getContainerRenderer()

    The getContainerRenderer() function is exported by Astro framework integrations to simplify the process of rendering framework components when using the experimental Container API inside a Vite or Vitest environment. This update adds the client hydration entrypoint to the returned object, enabling client-side interactivity for components rendered using this function. Previously this required users to manually call container.addClientRenderer() with the appropriate client renderer entrypoint.

    See the container-with-vitest demo for a usage example, and the Container API documentation for more information on using framework components with the experimental Container API.

withastro/astro

Patch Changes

  • #14715 3d55c5d Thanks @ascorbic! - Adds support for client hydration in getContainerRenderer()

    The getContainerRenderer() function is exported by Astro framework integrations to simplify the process of rendering framework components when using the experimental Container API inside a Vite or Vitest environment. This update adds the client hydration entrypoint to the returned object, enabling client-side interactivity for components rendered using this function. Previously this required users to manually call container.addClientRenderer() with the appropriate client renderer entrypoint.

    See the container-with-vitest demo for a usage example, and the Container API documentation for more information on using framework components with the experimental Container API.


Last fetched:  |  Scheduled refresh: Every Saturday

See Customizing GitHub Activity Pages to configure your own

Inspired by releases.antfu.me