Skip to content

AstroEco is Releasing…

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

withastro/astro

Patch Changes

  • #16926 1b39ae8 Thanks @narendraio! - Prevents App.match() from throwing on request paths that contain an invalid percent-sequence.

  • #16924 2c0bc94 Thanks @astrobot-houston! - Fixes an issue where editing a client-side component (e.g. with client:idle, client:load, etc.) caused an unnecessary full program reload of the backend during development.

  • #16958 2c1d50f Thanks @fkatsuhiro! - Fixes a bug where static file endpoints using getStaticPaths with .html in dynamic param values (e.g. { path: 'file.html' }) would fail with a NoMatchingStaticPathFound error during build. The .html suffix is no longer incorrectly stripped from endpoint route pathnames.

  • #16855 c610cda Thanks @astrobot-houston! - Fixes dynamic routes returning 500 "TypeError: Missing parameter" when using domain-based i18n routing in SSR.

  • #16946 606c37b Thanks @ematipico! - Fixes Astro.routePattern to preserve original casing of dynamic parameter names from filenames. Previously, a file at src/pages/blog/[postId].astro would return /blog/[postid] for Astro.routePattern due to an internal .toLowerCase() call. It now correctly returns /blog/[postId].

  • #16720 16d49b6 Thanks @thomas-callahan-collibra! - Fix an issue where dynamic routes would return the string [object Object] instead of the expected content, in certain runtimes.

  • #16703 17390a6 Thanks @henrybrewer00-dotcom! - Fixes styles being stripped when the project root is started with a path whose case differs from the actual filesystem case (e.g. running astro dev from d:\dev\app while the folder on disk is D:\dev\app).

  • #16855 c610cda Thanks @astrobot-houston! - Fixes Astro.currentLocale returning the default locale instead of the domain's locale on dynamic routes served from a mapped domain.

withastro/astro

Patch Changes

withastro/astro

Patch Changes

withastro/astro

Patch Changes

  • #16922 7dce185 Thanks @astrobot-houston! - Fixes prerendered pages returning 404 when using build.format: 'file' or build.format: 'preserve' with the Node adapter in standalone mode.

    Previously, clean URLs like /about would fail to resolve to about.html on disk, because the static file handler only supported the default directory format (about/index.html). Now the handler correctly resolves clean URLs to .html files when the build format produces them.

withastro/astro

Patch Changes

  • #16693 9e6edc2 Thanks @ArmandPhilippot! - Fixes a link in the documentation specifying where to open an issue for the adapter.

  • Updated dependencies []:

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

Patch Changes

withastro/astro

Patch Changes

  • #16900 17a0fbd Thanks @ocavue! - Bumps devalue dependency to v5.8.1

  • #16016 0d85e1b Thanks @felmonon! - Fix a false positive in the dev toolbar accessibility audit for anchors with text inside closed <details> elements.

  • #16911 79c6c46 Thanks @astrobot-houston! - Fixes a bug where experimental.advancedRouting with astro/hono handlers threw TypeError: Cannot read properties of undefined (reading 'route') for unmatched routes instead of rendering the custom 404 page.

  • #16899 239c469 Thanks @matthewp! - Fixes a false "does not call the middleware() handler" warning when using astro() in a custom src/app.ts and the first request is a redirect route.

  • #16887 493acdb Thanks @astrobot-houston! - Fixes redirectToDefaultLocale not working after the Advanced Routing refactoring.

  • #16908 ef53ab9 Thanks @florian-lefebvre! - Improves optimized fallbacks generation when using the Fonts API by using better metrics for bold variants

withastro/astro

Patch Changes

withastro/astro

Patch Changes

  • #16914 4bdd240 Thanks @matthewp! - Fixes astro/fetch and astro/hono being discovered at runtime during dev instead of pre-bundled

  • #16693 9e6edc2 Thanks @ArmandPhilippot! - Fixes a link in the documentation specifying where to open an issue for the adapter.

  • Updated dependencies []:

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

Patch Changes

withastro/astro

Patch Changes

  • #16889 b94bcfd Thanks @Princesseuh! - Fixes a plugins is not iterable crash when using a pre-6.0 @astrojs/mdx alongside integrations (e.g. Starlight) that set markdown.remarkPlugins, markdown.rehypePlugins, or markdown.remarkRehype.

  • #16878 b9f6bb9 Thanks @fkatsuhiro! - Fixes an issue where on-demand (SSR) dynamic routes would return 404 when a prerendered dynamic route with the same URL pattern was sorted first alphabetically. In production builds with @astrojs/node adapter, if [a_prebuild].astro (prerender=true) came before [b_ssr].astro alphabetically, requests to URLs not in the prerendered route's static paths would 404 instead of falling through to the SSR route. The fix adds fallthrough logic so that when a prerendered dynamic route matches but can't serve the request, Astro tries subsequent matching routes.

withastro/astro

Patch Changes

withastro/astro

@astrojs/markdown-satteri

0.2.0

Minor Changes

  • #16848 f732f3c Thanks @Princesseuh! - Adds @astrojs/markdown-satteri, a Markdown processor based on Sätteri, a fast Markdown pipeline written in Rust.

    Sätteri is much faster than the default Remark-based processor, and supports a wide range of Markdown features out of the box, without requiring additional plugins. In the future, we plan to make this the default Markdown processor in Astro.

    npm install @astrojs/markdown-satteri
    // astro.config.mjs
    import { satteri } from '@astrojs/markdown-satteri';
    
    export default defineConfig({
      markdown: {
        processor: satteri(),
      },
    });

    Note that this processor currently does not support Prism syntax highlighting, and require using syntaxHighlight: 'shiki' or disabling syntax highlighting altogether for now.

Patch Changes

  • Updated dependencies [f732f3c]:
    • @astrojs/internal-helpers@0.10.0
withastro/astro

13.6.0

Minor Changes

  • #16729 01aa164 Thanks @matthewp! - Adds @astrojs/cloudflare/fetch and @astrojs/cloudflare/hono exports for composing Cloudflare-specific setup with Astro's advanced routing handlers.

    @astrojs/cloudflare/fetch

    For use with astro/fetch in a custom fetch handler:

    import { astro, FetchState } from 'astro/fetch';
    import { cf } from '@astrojs/cloudflare/fetch';
    
    export default {
      async fetch(request: Request, env: Env, ctx: ExecutionContext) {
        const state = new FetchState(request);
        const asset = await cf(state, env, ctx);
        if (asset) return asset;
        return astro(state);
      },
    };

    @astrojs/cloudflare/hono

    For use with astro/hono as Hono middleware:

    import { Hono } from 'hono';
    import { actions, middleware, pages, i18n } from 'astro/hono';
    import { cf } from '@astrojs/cloudflare/hono';
    
    const app = new Hono<{ Bindings: Env }>();
    
    app.use(cf());
    app.use(actions());
    app.use(middleware());
    app.use(pages());
    app.use(i18n());
    
    export default app;

    Both handlers configure SESSION KV bindings, static asset serving via the ASSETS binding, locals.cfContext, client address, waitUntil, and prerendered error page fetch.

Patch Changes

  • #16868 f9bae95 Thanks @helio-cf! - Fixes user options passed to cloudflare({...}) (remoteBindings, inspectorPort, persistState, configPath, auxiliaryWorkers) being silently ignored during astro preview. The adapter now resolves the full @cloudflare/vite-plugin config once at integration setup time and reuses that single resolved value across the dev/build plugin, the prerenderer's preview server, and the astro preview entrypoint, so user options can no longer be dropped at one of the call sites.

  • #16468 4cff3a1 Thanks @matthewp! - Fixes static Cloudflare builds with server islands or image endpoints that failed at preview time due to mismatched output directories.

  • Updated dependencies [f732f3c]:

    • @astrojs/internal-helpers@0.10.0
    • @astrojs/underscore-redirects@1.0.3
withastro/astro

0.10.0

Minor Changes

  • #16848 f732f3c Thanks @Princesseuh! - Adds markdown, frontmatter, and shiki helper modules, shared by Astro's content pipeline.
withastro/astro

1.0.6

Patch Changes

  • #16848 f732f3c Thanks @Princesseuh! - Removes @astrojs/markdown-remark from @astrojs/markdoc's dependencies in favour of Astro's internal markdown utilities now that Astro's Markdown support is processor agnostic.

  • Updated dependencies [f732f3c]:

    • @astrojs/internal-helpers@0.10.0
withastro/astro

7.2.0

Minor Changes

  • #16848 f732f3c Thanks @Princesseuh! - Adds a new markdown.processor configuration option, allowing you to choose an alternative Markdown processor.

    Websites with many Markdown/MDX files tend to be slow to build because the unified ecosystem (e.g., remark, rehype) is slow to process. This feature introduces the ability to replace this part of the build pipeline with another processor.

    The default processor is unified(). This means that existing configurations remain unchanged and your remark/rehype plugins continue to work.

    // astro.config.mjs
    import { defineConfig } from 'astro/config';
    import { unified } from '@astrojs/markdown-remark';
    import remarkToc from 'remark-toc';
    
    export default defineConfig({
      markdown: {
        processor: unified({
          remarkPlugins: [remarkToc],
        }),
      },
    });

    In addition to this new configuration option, Astro provides a new alternative processor based on Rust: Sätteri. You can choose to use it now by installing @astrojs/markdown-satteri, importing the satteri() processor, and adapting your existing configuration:

    // astro.config.mjs
    import { defineConfig } from 'astro/config';
    import { satteri } from '@astrojs/markdown-satteri';
    
    export default defineConfig({
      markdown: {
        processor: satteri({
          features: { directive: true },
        }),
      },
    });

    This processor does not support the remark and rehype plugins. This means you may need to convert them to MDAST or HAST plugins to retain your current functionality.

    The existing top-level markdown.remarkPlugins, markdown.rehypePlugins, markdown.remarkRehype, markdown.gfm, and markdown.smartypants options still work, but are now deprecated and will be removed in a future major update. The matching remarkPlugins, rehypePlugins, and remarkRehype options on the MDX integration are also deprecated for the same reason. To anticipate their removal, move them onto unified({...}) (or your preferred plugin processor) :

    // astro.config.mjs
    import { defineConfig } from 'astro/config';
    import remarkToc from 'remark-toc';
    import rehypeSlug from 'rehype-slug';
    + import { unified } from '@astrojs/markdown-remark';
    
    export default defineConfig({
      markdown: {
    +    processor: unified({
    +      remarkPlugins: [remarkToc],
    +      rehypePlugins: [rehypeSlug],
    +      remarkRehype: true,
    +      gfm: true,
    +      smartypants: true,
    +    }),
    -    remarkPlugins: [remarkToc],
    -    rehypePlugins: [rehypeSlug],
    -    remarkRehype: true,
    -    gfm: true,
    -    smartypants: true,
      },
    });

    For more information on enabling and using this feature in your project, see our Markdown guide. To give feedback on this new Rust processor, see the Native Markdown / MDX parsing and processing RFC.

Patch Changes

  • Updated dependencies [f732f3c]:
    • @astrojs/internal-helpers@0.10.0
withastro/astro

6.0.0

Major Changes

  • #16848 f732f3c Thanks @Princesseuh! - Adds a new markdown.processor configuration option, allowing you to choose an alternative Markdown processor.

    Websites with many Markdown/MDX files tend to be slow to build because the unified ecosystem (e.g., remark, rehype) is slow to process. This feature introduces the ability to replace this part of the build pipeline with another processor.

    The default processor is unified(). This means that existing configurations remain unchanged and your remark/rehype plugins continue to work.

    // astro.config.mjs
    import { defineConfig } from 'astro/config';
    import { unified } from '@astrojs/markdown-remark';
    import remarkToc from 'remark-toc';
    
    export default defineConfig({
      markdown: {
        processor: unified({
          remarkPlugins: [remarkToc],
        }),
      },
    });

    In addition to this new configuration option, Astro provides a new alternative processor based on Rust: Sätteri. You can choose to use it now by installing @astrojs/markdown-satteri, importing the satteri() processor, and adapting your existing configuration:

    // astro.config.mjs
    import { defineConfig } from 'astro/config';
    import { satteri } from '@astrojs/markdown-satteri';
    
    export default defineConfig({
      markdown: {
        processor: satteri({
          features: { directive: true },
        }),
      },
    });

    This processor does not support the remark and rehype plugins. This means you may need to convert them to MDAST or HAST plugins to retain your current functionality.

    The existing top-level markdown.remarkPlugins, markdown.rehypePlugins, markdown.remarkRehype, markdown.gfm, and markdown.smartypants options still work, but are now deprecated and will be removed in a future major update. The matching remarkPlugins, rehypePlugins, and remarkRehype options on the MDX integration are also deprecated for the same reason. To anticipate their removal, move them onto unified({...}) (or your preferred plugin processor) :

    // astro.config.mjs
    import { defineConfig } from 'astro/config';
    import remarkToc from 'remark-toc';
    import rehypeSlug from 'rehype-slug';
    + import { unified } from '@astrojs/markdown-remark';
    
    export default defineConfig({
      markdown: {
    +    processor: unified({
    +      remarkPlugins: [remarkToc],
    +      rehypePlugins: [rehypeSlug],
    +      remarkRehype: true,
    +      gfm: true,
    +      smartypants: true,
    +    }),
    -    remarkPlugins: [remarkToc],
    -    rehypePlugins: [rehypeSlug],
    -    remarkRehype: true,
    -    gfm: true,
    -    smartypants: true,
      },
    });

    For more information on enabling and using this feature in your project, see our Markdown guide. To give feedback on this new Rust processor, see the Native Markdown / MDX parsing and processing RFC.

Minor Changes

  • #16848 f732f3c Thanks @Princesseuh! - Adds support for using @astrojs/markdown-satteri to parse .mdx files.

    // astro.config.mjs
    import { defineConfig } from 'astro/config';
    import mdx from '@astrojs/mdx';
    import { satteri } from '@astrojs/markdown-satteri';
    
    export default defineConfig({
      markdown: {
        processor: satteri({
          features: { directive: true },
        }),
      },
      integrations: [mdx()],
    });

    Note that the recmaPlugins option is not supported when using Sätteri as your MDX processor. If you would like to use Sätteri for Markdown files, but still use Unified for MDX, you can pass a different Markdown processor to the MDX integration:

    // astro.config.mjs
    import { defineConfig } from 'astro/config';
    import mdx from '@astrojs/mdx';
    import { satteri } from '@astrojs/markdown-satteri';
    import { unified } from '@astrojs/markdown-remark';
    import myPlugin from './my-recma-plugin.js';
    
    export default defineConfig({
      markdown: {
        processor: satteri({
          features: { directive: true },
        }),
      },
      integrations: [
        mdx({
          recmaPlugins: [myPlugin],
          processor: unified(),
        }),
      ],
    });

Patch Changes

  • Updated dependencies [f732f3c, f732f3c, f732f3c]:
    • @astrojs/internal-helpers@0.10.0
    • @astrojs/markdown-remark@7.2.0
    • @astrojs/markdown-satteri@0.2.0
withastro/astro

Patch Changes

  • Updated dependencies [f732f3c]:
    • @astrojs/internal-helpers@0.10.0
    • @astrojs/underscore-redirects@1.0.3
withastro/astro

Patch Changes

  • Updated dependencies [f732f3c]:
    • @astrojs/internal-helpers@0.10.0
withastro/astro

Patch Changes

  • Updated dependencies [f732f3c]:
    • @astrojs/internal-helpers@0.10.0
withastro/astro

Patch Changes

  • Updated dependencies [f732f3c]:
    • @astrojs/internal-helpers@0.10.0
withastro/astro

Patch Changes

  • Updated dependencies [f732f3c]:
    • @astrojs/internal-helpers@0.10.0
withastro/astro

Minor Changes

  • #16468 4cff3a1 Thanks @matthewp! - Adds a new preserveBuildServerDir adapter feature

    Adapters can now set preserveBuildServerDir: true in their adapter features to keep the dist/server/ directory structure for static builds, mirroring the existing preserveBuildClientDir option. This is useful for adapters that require a consistent dist/client/ and dist/server/ layout regardless of build output type.

    setAdapter({
      name: 'my-adapter',
      adapterFeatures: {
        buildOutput,
        preserveBuildClientDir: true,
        preserveBuildServerDir: true,
      },
    });
  • #16848 f732f3c Thanks @Princesseuh! - Adds a new markdown.processor configuration option, allowing you to choose an alternative Markdown processor.

    Websites with many Markdown/MDX files tend to be slow to build because the unified ecosystem (e.g., remark, rehype) is slow to process. This feature introduces the ability to replace this part of the build pipeline with another processor.

    The default processor is unified(). This means that existing configurations remain unchanged and your remark/rehype plugins continue to work.

    // astro.config.mjs
    import { defineConfig } from 'astro/config';
    import { unified } from '@astrojs/markdown-remark';
    import remarkToc from 'remark-toc';
    
    export default defineConfig({
      markdown: {
        processor: unified({
          remarkPlugins: [remarkToc],
        }),
      },
    });

    In addition to this new configuration option, Astro provides a new alternative processor based on Rust: Sätteri. You can choose to use it now by installing @astrojs/markdown-satteri, importing the satteri() processor, and adapting your existing configuration:

    // astro.config.mjs
    import { defineConfig } from 'astro/config';
    import { satteri } from '@astrojs/markdown-satteri';
    
    export default defineConfig({
      markdown: {
        processor: satteri({
          features: { directive: true },
        }),
      },
    });

    This processor does not support the remark and rehype plugins. This means you may need to convert them to MDAST or HAST plugins to retain your current functionality.

    The existing top-level markdown.remarkPlugins, markdown.rehypePlugins, markdown.remarkRehype, markdown.gfm, and markdown.smartypants options still work, but are now deprecated and will be removed in a future major update. The matching remarkPlugins, rehypePlugins, and remarkRehype options on the MDX integration are also deprecated for the same reason. To anticipate their removal, move them onto unified({...}) (or your preferred plugin processor) :

    // astro.config.mjs
    import { defineConfig } from 'astro/config';
    import remarkToc from 'remark-toc';
    import rehypeSlug from 'rehype-slug';
    + import { unified } from '@astrojs/markdown-remark';
    
    export default defineConfig({
      markdown: {
    +    processor: unified({
    +      remarkPlugins: [remarkToc],
    +      rehypePlugins: [rehypeSlug],
    +      remarkRehype: true,
    +      gfm: true,
    +      smartypants: true,
    +    }),
    -    remarkPlugins: [remarkToc],
    -    rehypePlugins: [rehypeSlug],
    -    remarkRehype: true,
    -    gfm: true,
    -    smartypants: true,
      },
    });

    For more information on enabling and using this feature in your project, see our Markdown guide. To give feedback on this new Rust processor, see the Native Markdown / MDX parsing and processing RFC.

Patch Changes

  • #16468 4cff3a1 Thanks @matthewp! - Skips the static preview server when an adapter provides its own previewEntrypoint, allowing the adapter to handle both static and dynamic routes

  • #16811 e0e26db Thanks @matthewp! - Fixes X-Forwarded-Host and X-Forwarded-Proto headers being ignored when set in a custom src/app.ts fetch handler before creating FetchState

  • #16468 4cff3a1 Thanks @matthewp! - Fixes the static preview server to respect preserveBuildClientDir, serving files from build.client instead of outDir when the adapter requires it

  • #16770 1e2aa11 Thanks @matthewp! - Fixes a race condition where the Vite dep optimizer could lose React dependencies in dev mode when using Astro Actions

  • #16468 4cff3a1 Thanks @matthewp! - Exempts internal routes (e.g. server islands) from getStaticPaths() validation, fixing server island rendering on static sites

  • #16468 4cff3a1 Thanks @matthewp! - Fixes preview for static sites that contain non-prerendered routes. Previously, the preview command ignored SSR routes discovered during route scanning and always used the static preview server.

  • Updated dependencies [f732f3c, f732f3c]:

    • @astrojs/internal-helpers@0.10.0
    • @astrojs/markdown-remark@7.2.0
lin-stephanie/astro-loaders
Sub logo

Major Changes

  • Remove the userCommit mode from build-time and live release loaders because GitHub no longer includes commit summaries in public PushEvent payloads. The mode: 'repoList' discriminator is also removed because repository-list loading is now the only supported behavior (c0089f2)

  • Move live loaders to the /live subpath. liveGithubReleasesLoader is no longer exported from the package root, so import it from the /live subpath instead: (c0089f2)

    import { liveGithubReleasesLoader } from "astro-loader-github-releases/live";

    This keeps the package root focused on build-time loaders and prevents build-time users from loading live runtime dependencies such as astro:env/server.

  • Use Astro's adapter-backed getSecret() for live loader GitHub tokens instead of import.meta.env, avoiding build-time inlining and allowing runtime-provided secrets to be read per request (c0089f2)

  • Implement the Astro 6 migration change where schema types are inferred instead of generated, while preserving accurate entryReturnType inference and avoiding Zod 4 internal type leakage in published declarations (c0089f2)

  • Astro v6.0 upgrades to Zod 4. Based on the Zod 4 changelog and the need to keep compatibility with older Astro versions, update schemas by: (c0089f2)

    • Replace object intersection with extend() for the extended post schema
lin-stephanie/astro-loaders

Major Changes

  • Update the default Instagram API version from v23.0 to v25.0 (c0089f2)

  • Move live loaders to the /live subpath. liveInsMediasLoader is no longer exported from the package root, so import it from the /live subpath instead: (c0089f2)

    import { liveInsMediasLoader } from "astro-loader-ins-medias/live";

    This keeps the package root focused on build-time loaders and prevents build-time users from loading live runtime dependencies such as astro:env/server.

  • Use Astro's adapter-backed getSecret() for live loader GitHub tokens instead of import.meta.env, avoiding build-time inlining and allowing runtime-provided secrets to be read per request (c0089f2)

  • Astro v6.0 upgrades to Zod 4. Based on the Zod 4 changelog and the need to keep compatibility with older Astro versions, update schemas by: (c0089f2)

    • Replace passthrough() usage with catchall(z.unknown()) to keep allowing extra fields without requiring Zod 4-only z.looseObject()
lin-stephanie/astro-loaders

Patch Changes

lin-stephanie/astro-loaders

Patch Changes

  • Implement the Astro 6 migration change where schema types are inferred instead of generated, while preserving accurate loader-based entry data inference and avoiding Zod 4 internal type leakage in published declarations (c0089f2)

  • Astro v6.0 upgrades to Zod 4. Based on the Zod 4 changelog and the need to keep compatibility with older Astro versions, update schemas by: (c0089f2)

    • Replace passthrough() usage with catchall(z.unknown()) to keep allowing extra fields without requiring Zod 4-only z.looseObject();
    • Replace z.any() label entries with z.unknown() to avoid leaking any into inferred entry data;
    • Replace object intersection with extend() for the extended post schema;
    • Intentionally keep deprecated string format methods such as z.string().url() and z.string().datetime() for compatibility with older Astro/Zod versions.
  • Add config-specific loader overloads so fetchThread and fetchOnlyAuthorReplies infer the matching entry data shape (c0089f2)

  • Use the public @atproto/api AppBskyFeedDefs exports and type guards instead of internal dist/client/types imports (c0089f2)

  • Relax the thread schema for raw nested replies and optional Bluesky author fields that the API can omit (c0089f2)

  • Cache by the full parsed loader config instead of only uris so rendering and thread option changes trigger a reload (c0089f2)

  • Preserve stack traces in loader error logs so failures remain debuggable (c0089f2)

lin-stephanie/astro-loaders
Sub logo

Major Changes

  • Move live loaders to the /live subpath. liveGithubPrsLoader is no longer exported from the package root, so import it from the /live subpath instead: (41b7369)

    import { liveGithubPrsLoader } from "astro-loader-github-prs/live";

    This keeps the package root focused on build-time loaders and prevents build-time users from loading live runtime dependencies such as astro:env/server

  • Use Astro's adapter-backed getSecret() for live loader GitHub tokens instead of import.meta.env, avoiding build-time inlining and allowing runtime-provided secrets to be read per request (41b7369)

  • Implement the Astro 6 migration change where schema types are inferred instead of generated, while preserving accurate loader-based entry data inference and avoiding Zod 4 internal type leakage in published declarations (41b7369)

withastro/astro

Patch Changes

  • #16827 90ee151 Thanks @matthewp! - Fixes a crash in the language server and astro check when using TypeScript project references with .vue or .svelte files
withastro/astro

Patch Changes

  • #16496 4d79750 Thanks @fkatsuhiro! - Fixed an issue where type errors occurred during testing library type checks because Astro overrides Svelte 5 component types.
withastro/astro

Patch Changes

  • #16607 98297af Thanks @alexanderflodin! - Fixes incorrect assets.directory in the generated wrangler.json when a base path is configured

  • Updated dependencies []:

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

Patch Changes

  • #16837 783c4a6 Thanks @jdevalk! - Improves <lastmod> accuracy in the sitemap index. Each <sitemap> entry in sitemap-index.xml is now stamped with the most recent lastmod of the URLs in the child sitemap it points to, instead of repeating a single global date on every entry. When a child sitemap has no per-URL lastmod, the entry falls back to the lastmod option as before. This gives search engines a per-file freshness signal, so they can tell which child sitemaps actually changed without refetching all of them.
withastro/astro

Patch Changes

  • #16830 f2bf3cb Thanks @matthewp! - Fixes 404s for dynamically imported JS chunks when using an adapter with assetQueryParams (e.g. Vercel skew protection)

  • #16831 ace96ba Thanks @astrobot-houston! - Fixes a misleading GetStaticPathsRequired error when a redirect is configured from a dynamic route to a static (or less-dynamic) destination. For example, '/project/[slug]': '/' previously produced a confusing error pointing at index.astro. Astro now detects the parameter mismatch at config validation time and throws a clear InvalidRedirectDestination error naming the missing parameters.

  • #16702 b7d1758 Thanks @matthewp! - Fixes scoped styles from .astro components being dropped when rendered inside MDX content (<Content /> from render(entry)) passed through a named slot using <Fragment slot="X">. The Fragment component now eagerly evaluates its slot contents to ensure propagating components register their styles before head content is flushed.

  • #16823 3df6a45 Thanks @astrobot-houston! - Fixes missing CSS for conditionally rendered Svelte components in production builds

  • #16836 3d7adfa Thanks @LongYC! - Document compressHTML: "jsx" config is only available since Astro v6.2.0

  • #16864 334ce13 Thanks @cheets! - Fixes a false-positive Internal Warning: route cache overwritten logged on every SSR request for dynamic routes

withastro/astro

Patch Changes

  • #16769 428cb1b Thanks @astrobot-houston! - Forwards user-provided optimizeDeps settings (exclude, include, esbuildOptions.loader) to SSR/prerender environments. Previously, top-level vite.optimizeDeps in the Astro config was silently ignored for server environments because Vite 6 scopes it to client-only and the adapter's configEnvironment hook did not forward it. This caused packages with non-standard file types (e.g. .data files) to fail during dev-mode dependency optimization with errors like "No loader is configured for '.data' files".

  • Updated dependencies []:

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

Patch Changes

  • #16801 d619277 Thanks @ematipico! - Reverts a change to the esbuild dep-scan plugin that caused astro check and astro build to fail by making esbuild incorrectly bundle virtual: modules (e.g. from expressive-code)

  • Updated dependencies []:

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

Patch Changes

withastro/astro

Patch Changes

withastro/astro

Patch Changes

  • #16661 03b8f7f Thanks @ocavue! - Updates typescript to v6. No changes are needed from users.

  • Updated dependencies []:

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

Patch Changes

  • #16661 03b8f7f Thanks @ocavue! - Updates typescript to v6. No changes are needed from users.

  • Updated dependencies [03b8f7f]:

    • @astrojs/yaml2ts@0.2.4
withastro/astro

Patch Changes

  • #16661 03b8f7f Thanks @ocavue! - Updates typescript to v6. No changes are needed from users.

  • Updated dependencies [03b8f7f]:

    • @astrojs/yaml2ts@0.2.4
withastro/astro

Patch Changes

withastro/astro

Patch Changes

withastro/astro

Patch Changes

  • Updated dependencies [d365c97]:
    • @astrojs/internal-helpers@0.9.1
withastro/astro

Patch Changes

withastro/astro

Patch Changes

withastro/astro

Patch Changes

  • Updated dependencies [d365c97]:
    • @astrojs/internal-helpers@0.9.1
withastro/astro

Patch Changes

  • #16716 04fdbb2 Thanks @delucis! - Updates internal dependencies

  • Updated dependencies [d365c97]:

    • @astrojs/internal-helpers@0.9.1
    • @astrojs/underscore-redirects@1.0.3
withastro/astro

Patch Changes

  • #15723 9256345 Thanks @rururux! - Updates internal type usage from @astrojs/prism.

  • Updated dependencies [d365c97, 9256345, 9256345]:

    • @astrojs/internal-helpers@0.9.1
    • @astrojs/markdown-remark@7.1.2
    • @astrojs/prism@4.0.2
withastro/astro

Patch Changes

  • Updated dependencies [d365c97]:
    • @astrojs/internal-helpers@0.9.1
withastro/astro

Patch Changes

withastro/astro

Patch Changes

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

Patch Changes

  • Updated dependencies [d365c97]:
    • @astrojs/internal-helpers@0.9.1
withastro/astro

Patch Changes

  • #15723 9256345 Thanks @rururux! - Fixes an issue where the <Prism /> component failed to work in Cloudflare Workers.
withastro/astro

Patch Changes

  • #15723 9256345 Thanks @rururux! - Updates internal type usage from @astrojs/prism.

  • Updated dependencies [d365c97, 9256345]:

    • @astrojs/internal-helpers@0.9.1
    • @astrojs/prism@4.0.2
withastro/astro

Patch Changes

  • #16544 d365c97 Thanks @matthewp! - Tightens isRemotePath() to reject control characters after a leading slash and fixes the dev image endpoint origin check
withastro/starlight

Patch Changes

  • #3890 2d05e18 Thanks @tats-u! - Fixes CSS selector for text-autospace styles in Chromium browsers
withastro/starlight

Patch Changes

  • #3885 010eed1 Thanks @ArmandPhilippot! - Fixes the version mentioned in an error message related to autogenerated sidebar groups support.

  • #3887 b3c6990 Thanks @delucis! - Adds 13 new icons: clock, desktop, mobile-android, window, database, server, code-branch, notes, question, question-circle, analytics, padlock, and solidjs.

withastro/astro

Minor Changes

withastro/astro

Patch Changes

  • #16627 5778cb7 Thanks @Princesseuh! - Fixes unintended dependency on the typescript package being available to the language server
withastro/astro

Patch Changes

  • #16260 354e231 Thanks @gameroman! - Refactors internal config logic to remove the dlv dependency in favor of native logic
withastro/starlight

Minor Changes

  • #3618 dcf6d09 Thanks @HiDeoo! - ⚠️ BREAKING CHANGE: This release changes how autogenerated links work in Starlight’s sidebar configuration.

    If you have sidebar groups using the autogenerate key, you must now wrap that configuration in an items array:

    {
        label: 'My group',
    -   autogenerate: { directory: 'some-dir' },
    +   items: [{ autogenerate: { directory: 'some-dir' } }],
    }

    This change unlocks the possibility to mix autogenerated links and other links in a single group, for example:

    {
      label: 'Mixed group',
      items: [
        'example-page',
        { autogenerate: { directory: 'examples' } },
        { label: 'More examples', link: 'https://example.com' },
      ],
    }

    This release also updates the shape of autogenerated sidebar entries in route data. Autogenerated links and groups in Astro.locals.starlightRoute.sidebar now include an autogenerate object with the configured directory value:

    {
      type: 'link',
      label: 'Example',
      href: '/examples/example/',
      isCurrent: false,
      autogenerate: { directory: 'examples' }
    }
  • #3618 dcf6d09 Thanks @HiDeoo! - ⚠️ BREAKING CHANGE: This release changes the default collapsed state of autogenerated sidebar subgroups.

    Autogenerated subgroups no longer inherit the collapsed value from their parent group. They are now expanded by default unless explicitly configured with autogenerate.collapsed.

    If your sidebar configuration relies on a collapsed parent group to also collapse its autogenerated subgroups, update your configuration to set autogenerate.collapsed to true:

    {
      label: 'Reference',
      collapsed: true,
      items: [
    -   { autogenerate: { directory: 'reference' } },
    +   { autogenerate: { directory: 'reference', collapsed: true } },
      ],
    }
  • #3845 4d755f5 Thanks @delucis! - Adds a <link rel="alternate" hreflang="x-default" href="..."> tag pointing to the default locale in multilingual sites. The x-default alternate is used as a signal of which language to fall back to if no other is available. Learn more in Google’s SEO localization docs.

  • #3862 ec70630 Thanks @itrew! - Makes spacing of items in nested lists more consistent

  • #3872 417a66c Thanks @tats-u! - Enables the CSS property text-autospace in Chinese and Japanese documents.

    If you would prefer to disable autospacing in Chinese and Japanese pages, you can add the following custom CSS to your site:

    [lang]:where(:lang(zh, ja)) {
      text-autospace: initial;
    }
  • #3797 9764ebd Thanks @delucis! - Avoids the risk of layout shift when users expand and collapse sidebar groups

    This release can introduce additional padding to the site sidebar on certain devices to reserve space for scrollbars. You may wish to inspect your site sidebar visually when upgrading.

    If you would prefer to keep the previous styling, you can add the following custom CSS to your site:

    .sidebar-pane {
      scrollbar-gutter: auto;
    }
  • #3858 6672c35 Thanks @delucis! - Updates i18next, used for Starlight’s localization APIs, from v23 to v26

    There should not be any user-facing changes from this update

withastro/starlight

Patch Changes


Last fetched:  |  Scheduled refresh: Every Saturday

See Customizing GitHub Activity Pages to configure your own

Inspired by releases.antfu.me