Skip to content

AstroEco is Contributing…

Display your GitHub pull requests using astro-loader-github-prs

withastro/starlight

Description

Add lychee to showcase

withastro/starlight

Description

Implements the change discussed in #1321
Closes #1321

withastro/astro

Changes

When using densities with the Vercel image adapter, calculated widths were not being validated against the configured sizes list. This caused Vercel to reject invalid widths, resulting in broken images.

For example, with configured sizes [640, 750, 828, 1080, 1200, 1920, 2048, 3840] and width=600 with densities=[1, 1.5, 2], the calculated widths [600, 900, 1200] were used directly instead of being mapped to valid sizes [640, 828, 1200].

This fix ensures all densities-calculated widths are mapped to the nearest configured width, matching the behavior already implemented for the widths prop.

Fixes #14366

Testing

  • Test case added

Docs

N/A, bug fix

withastro/astro

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

astro@5.14.7

Patch Changes

  • #14566 946fe68 Thanks @matthewp! - Fixes handling malformed cookies gracefully by returning the unparsed value instead of throwing

    When a cookie with an invalid value is present (e.g., containing invalid URI sequences), Astro.cookies.get() now returns the raw cookie value instead of throwing a URIError. This aligns with the behavior of the underlying cookie package and prevents crashes when manually-set or corrupted cookies are encountered.

  • #14142 73c5de9 Thanks @P4tt4te! - Updates handling of CSS for hydrated client components to prevent duplicates

withastro/astro

Changes

  • When a POST request is made to a non-existent action endpoint, return a 404 response with NOT_FOUND error code instead of throwing an unhandled ActionNotFoundError.
  • NOT_FOUND is caught and returns a 404 response
  • Closes #13549

Testing

  • Tests added

Docs

N/A, bug fix

withastro/astro

Changes

  • When a cookie with an invalid value is present (e.g., containing invalid URI sequences), Astro.cookies.get() now returns the raw cookie value instead of throwing a URIError. This aligns with the behavior of the underlying cookie package and prevents crashes when manually-set or corrupted cookies are encountered.
  • Closes #14448

Testing

Added

Docs

N/A, bug fix.

withastro/astro

Changes

  • Updates the release.yml to use oidc.

Testing

N/A

Docs

N/A

withastro/astro

Changes

  • Supersedes #14216
  • I moved and refactored some logic around to make sure we read the "package.json" only once

Testing

Manual

Docs

Changeset

withastro/astro

Changes

This refactors the code by improving the way the cloudflare adapter (and any adapter in the future) and retrieve the BaseApp module.

It creates a astro/app/entrypoint specifier that exposes the new function getApp. This function is responsible for returning an SSR-compatible app based on the dev parameter.

I took the opportunity to rename the virtual modules using the agreed naming convention, which is virtual:astro:<FEATURE>. I didn't rename the astro actions because it has already been done in another branch.

I also updated the cloudflare dependencies. I didn't update to the latest because some deps were released less than three days ago.

Testing

This refactor was done during TBD, and we all verified that it works.

Docs

N/A

withastro/starlight

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@astrojs/starlight@0.36.2

Patch Changes

withastro/astro

Changes

#14553
One boolean HTML attribute behaved differently from others ("muted"). This change fixes that by adding this attribute to the list of HTML boolean attributes in the astro/packages/astro/src/runtime/server/render/util.ts file.
Before:
obraz
After:
obraz

Testing

This change was tested by linking a local copy of Astro to a local copy of this project. The results are in the screenshots above.

Docs

Not sure, probably not.
/cc @withastro/maintainers-docs for feedback!

withastro/astro

Changes

  • Prior PR
  • Updates Node v18 'retiring' notice to 'deprecated'.
  • Removes removeDate from 'deprecated' support status warning.

note: This only removes the deprecation notice. Any user still on Node v18 or older will get a warning and Astro will default to using Node v22 (default) as the runtime.

Testing

n/a

Docs

n/a

withastro/astro

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

astro@5.14.6

Patch Changes

  • #14562 722bba0 Thanks @erbierc! - Fixes a bug where the behavior of the "muted" HTML attribute was inconsistent with that of other attributes.

  • #14538 51ebe6a Thanks @florian-lefebvre! - Improves how Actions are implemented

  • #14548 6cdade4 Thanks @ascorbic! - Removes support for the maxAge property in cacheHint objects returned by live loaders.

    ⚠️ Breaking change for experimental live content collections only

    Feedback showed that this did not make sense to set at the loader level, since the loader does not know how long each individual entry should be cached for.

    If your live loader returns cache hints with maxAge, you need to remove this property:

    return {
      entries: [...],
      cacheHint: {
        tags: ['my-tag'],
    -   maxAge: 60,
        lastModified: new Date(),
      },
    };

    The cacheHint object now only supports tags and lastModified properties. If you want to set the max age for a page, you can set the headers manually:

    ---
    Astro.headers.set('cdn-cache-control', 'max-age=3600');
    ---
  • #14548 6cdade4 Thanks @ascorbic! - Adds missing rendered property to experimental live collections entry type

    Live collections support a rendered property that allows you to provide pre-rendered HTML for each entry. While this property was documented and implemented, it was missing from the TypeScript types. This could lead to type errors when trying to use it in a TypeScript project.

    No changes to your project code are necessary. You can continue to use the rendered property as before, and it will no longer produce TypeScript errors.

withastro/astro

Changes

Removes the experimental.liveContentCollections flag and enables it for all sites.

Closes #14376

Testing

Updated test fixture

Docs

Added changeset. It doesn't have any links to docs, because I'm not sure where they'll live.

@withastro/maintainers-docs

withastro/astro

Changes

This PR enables the devtoolbvar inside the DevApp by passing the devtoolbar information via manifest.

I added new types inside SSRManifest. This information is pulled using settings.preferences and getInfoOutput, which are serialisable and can be passed via vite plugin.

These new types are placeholders when building and serialising the manifest for SSR during the build

Testing

Manual testing. I could see the devtool popping up and working. The debug info are also available and visible

Docs

N/A

withastro/astro

Changes

  • Adds the missing rendered property to live entries. This is documented and functional, but was missing from types
  • Removes the cacheHint.maxAge property. From feedback and observing usage, this doesn't make sense to be set by the loader. The max age is something that the user should choose, and isn't information that the loader has. This is a breaking change in the types, but it is an experimental feature so can go in a patch.

Testing

Updated the tests, and added a new test for entry rendering

Docs

withastro/starlight

Title

Fixes and completes Spanish translations

Description

This PR fixes some minor translation errors and completes labels that were still untranslated.

This is a minor change with no functional impact, but it improves the linguistic accuracy of the project.

withastro/starlight

Title

Fixes and completes Galician translations like Spanish

Description

This PR fixes some minor translation errors and completes labels that were still untranslated.

This is a minor change with no functional impact, but it improves the linguistic accuracy of the project.

withastro/starlight

Description

  • Closes #3446
  • Adds a card to the landing page of our starter templates highlighting how to enable the sidebar.
  • Also adds a comment to the frontmatter of the landing pages to highlight it. (Begs the question of whether more such comments could be useful, but with any luck the content IntelliSense feature could do a lot of that work in the future.)
Before After
Starlight starter template showing 4 cards with ideas of how to get started The same template, but with an added “Change page layout” card suggesting removing the template frontmatter field to add a sidebar

These changes are tentative — it’s always a hard balance of what to prioritise in the onboarding flow, but I wanted to try these out and gather feedback, so let me know what you think! We do get relatively frequent questions about how to enable the sidebar and template: splash is not super explicit, which is probably why people miss it.

withastro/astro

Changes

  • Add runtimeConfig.internalFetchHeaders to AstroAdapter interface
  • Create astro:adapter-config/client virtual module
  • Update Actions, View Transitions, Server Islands, and Prefetch to use adapter headers
  • Implement Netlify skew protection with DEPLOY_ID header
  • Generate .netlify/v1/skew-protection.json configuration file
  • Add comprehensive test fixture for skew protection
  • Closes #14545

Testing

Docs

withastro/starlight

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@astrojs/starlight@0.36.1

Patch Changes

  • #3479 2fec483 Thanks @gboubeta-uvigo! - Updates Galician UI translations

  • #3457 c6c0c51 Thanks @HiDeoo! - Deduplicates sitemap link tags in the head.

    When enabling sitemap in Starlight, a <link rel="sitemap" href="/sitemap-index.xml"> tag is automatically added to the head of each page. Manually specifying sitemap link tags using the Starlight head configuration option or the head frontmatter field will now override the default sitemap link tag added by Starlight.

    This change ensures that users manually adding the @astrojs/sitemap integration to the Astro integrations array for more fine-grained control over sitemap generation and also using the filenameBase integration option can customize the sitemap link tag in the head.

  • #3448 1fc7501 Thanks @dionysuzx! - Enlarges the Farcaster icon to better match other social icons

  • #3473 07204dd Thanks @gboubeta! - Fixes a typo in Galician table of contents label

withastro/astro

Changes

  • Exempts Biome from the minimumReleaseAge requirement in pnpm-workspace.yml
  • Alternative: revert #14539 and wait until the Biome release used there is old enough
  • I ran pnpm i after applying this change, and the lock file changes showed up, so I included them here in case they are important.

Testing

Existing tests should pass

Docs

n/a

withastro/astro

Changes

  • Extracted from #14484 and #14529
  • While working on actions recently, I found several things could be improved
    • Use a single vite plugin
    • We don't need codegen, I updated the implementation to be closer to virtual-modules/i18n.ts. Allowed to spot some runtime things that were incorrect
    • Things in actions/runtime/virtual were not only imported by the virtual module, so I moved them to actions/runtime
  • This will help by being more consistent with other features, and will make the Zod 4 PR diff smaller

Testing

Should pass

Docs

Technically doesn't need a changeset but I'll include one to be safe

withastro/astro

Changes

  • I did send a PR for this 2 weeks ago but renovate did update the version since then. This time, I excluded nft from renovate updates so it doesn't happen
  • See vercel/nft#545

Testing

Should pass

Docs

Changeset

withastro/starlight

Description

While initially only supporting basic Markdown links, I just updated the starlight-links Visual Studio Code extension to provide IntelliSense for most type of links found in Starlight projects, even custom components, so this is probably a good time to add it to the list of community tools.

withastro/astro

Changes

  • Merge main into next

Testing

N/A

Docs

N/A

withastro/astro

Changes

Testing

N/A, help needed!

Docs

Changeset

withastro/astro

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@astrojs/node@9.5.0

Minor Changes

  • #14441 62ec8ea Thanks @upsuper! - Updates redirect handling to be consistent across static and server output, aligning with the behavior of other adapters.

    Previously, the Node.js adapter used default HTML files with meta refresh tags when in static output. This often resulted in an extra flash of the page on redirect, while also not applying the proper status code for redirections. It's also likely less friendly to search engines.

    This update ensures that configured redirects are always handled as HTTP redirects regardless of output mode, and the default HTML files for the redirects are no longer generated in static output. It makes the Node.js adapter more consistent with the other official adapters.

    No change to your project is required to take advantage of this new adapter functionality. It is not expected to cause any breaking changes. However, if you relied on the previous redirecting behavior, you may need to handle your redirects differently now. Otherwise you should notice smoother redirects, with more accurate HTTP status codes, and may potentially see some SEO gains.

astro@5.14.5

Patch Changes

  • #14525 4f55781 Thanks @penx! - Fixes defineLiveCollection() types

  • #14441 62ec8ea Thanks @upsuper! - Updates redirect handling to be consistent across static and server output, aligning with the behavior of other adapters.

    Previously, the Node.js adapter used default HTML files with meta refresh tags when in static output. This often resulted in an extra flash of the page on redirect, while also not applying the proper status code for redirections. It's also likely less friendly to search engines.

    This update ensures that configured redirects are always handled as HTTP redirects regardless of output mode, and the default HTML files for the redirects are no longer generated in static output. It makes the Node.js adapter more consistent with the other official adapters.

    No change to your project is required to take advantage of this new adapter functionality. It is not expected to cause any breaking changes. However, if you relied on the previous redirecting behavior, you may need to handle your redirects differently now. Otherwise you should notice smoother redirects, with more accurate HTTP status codes, and may potentially see some SEO gains.

  • #14506 ec3cbe1 Thanks @abdo-spices! - Updates the <Font /> component so that preload links are generated after the style tag, as recommended by capo.js

create-astro@4.13.2

Patch Changes

@astrojs/netlify@6.5.13

Patch Changes

  • #14536 9261996 Thanks @florian-lefebvre! - Fixes a bug that caused too many files to be bundled in SSR

  • Updated dependencies []:

    • @astrojs/underscore-redirects@1.0.0

@astrojs/vercel@8.2.10

Patch Changes

withastro/astro

Changes

Fixed a typo in import

  • Don't forget a changeset! Run pnpm changeset.

Testing

I saw a TypeScript error locally when looking at node_modules/astro/types/content.d.ts

	export function defineLiveCollection<
		L extends import('astro/loader').LiveLoader,
		S extends import('astro/content/config').BaseSchema | undefined = undefined,
	>(
		config: import('astro/content/config').LiveCollectionConfig<L, S>,
	): import('astro/content/config').LiveCollectionConfig<L, S>;

Cannot find module 'astro/loader' or its corresponding type declarations

This package doesn't seem to exist, and the import seems to be in astro/loaders so opening a quick PR to address.

No further tests done as I'm unfamiliar with Astro internals.

Docs

I don't think any docs are needed.

withastro/astro

This PR contains the following updates:

Package Change Age Confidence
@playwright/test (source) 1.55.1 -> 1.56.0 age confidence
@preact/signals (source) ^2.3.1 -> ^2.3.2 age confidence
@types/react (source) ^18.3.25 -> ^18.3.26 age confidence
ci-info ^4.3.0 -> ^4.3.1 age confidence
eslint (source) ^9.36.0 -> ^9.37.0 age confidence
fast-xml-parser ^5.2.5 -> ^5.3.0 age confidence
package-manager-detector ^1.3.0 -> ^1.4.0 age confidence
publint (source) ^0.3.13 -> ^0.3.14 age confidence
semver ^7.7.2 -> ^7.7.3 age confidence
svelte (source) ^5.39.8 -> ^5.39.11 age confidence
typescript-eslint (source) ^8.45.0 -> ^8.46.0 age confidence

Release Notes

microsoft/playwright (@​playwright/test)

v1.56.0

Compare Source

preactjs/signals (@​preact/signals)

v2.3.2

Compare Source

Patch Changes
watson/ci-info (ci-info)

v4.3.1

Compare Source

  • don't read envs when CI is set to false 3fae1ac
eslint/eslint (eslint)

v9.37.0

Compare Source

NaturalIntelligence/fast-xml-parser (fast-xml-parser)

v5.3.0

Compare Source

antfu-collective/package-manager-detector (package-manager-detector)

v1.4.0

Compare Source

No significant changes

    View changes on GitHub
publint/publint (publint)

v0.3.14

Compare Source

Patch Changes
  • Add a new warning when an entrypoint is exported as CJS-only, has a default export, and has the __esModule marker. This setup has different interpretations by bundlers and runtimes, and implicit handling detection that may not be obvious for both package authors and users, hence it is discouraged. (#​201)
npm/node-semver (semver)

v7.7.3

Compare Source

Bug Fixes
Chores
sveltejs/svelte (svelte)

v5.39.11

Compare Source

Patch Changes
  • fix: flush batches whenever an async value resolves (#​16912)

v5.39.10

Compare Source

Patch Changes
  • fix: hydrate each blocks inside element correctly (#​16908)

  • fix: allow await in if block consequent and alternate (#​16890)

  • fix: don't replace rest props with $$props for excluded props (#​16898)

  • fix: correctly transform $derived private fields on server (#​16894)

  • fix: add UNKNOWN evaluation value before breaking for binding.initial===SnippetBlock (#​16910)

v5.39.9

Compare Source

Patch Changes
  • fix: flush when pending boundaries resolve (#​16897)
typescript-eslint/typescript-eslint (typescript-eslint)

v8.46.0

Compare Source

🚀 Features
❤️ Thank You

You can read about our versioning strategy and releases on our website.


Configuration

📅 Schedule: Branch creation - Between 12:00 AM and 03:59 AM, only on Monday ( * 0-3 * * 1 ) (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

withastro/astro

Changes

  • Make getAllowedDomains() call optional with fallback to empty array
  • Update peer dependency to require astro@^5.14.3
  • Fixes #14513

Testing

N/A

Docs

N/A

withastro/astro

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

astro@5.14.4

Patch Changes

  • #14509 7e04caf Thanks @ArmandPhilippot! - Fixes an error in the docs that specified an incorrect version for the security.allowedDomains release.

@astrojs/node@9.4.6

Patch Changes

  • #14514 66a26d7 Thanks @matthewp! - Fixes compatibility issue with older versions of Astro by making getAllowedDomains() call optional and updating peer dependency to require astro@^5.14.3
withastro/astro

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

astro@5.14.3

Patch Changes

  • #14505 28b2a1d Thanks @matthewp! - Fixes Cannot set property manifest error in test utilities by adding a protected setter for the manifest property

  • #14235 c4d84bb Thanks @toxeeec! - Fixes a bug where the "tap" prefetch strategy worked only on the first clicked link with view transitions enabled

withastro/astro

Changes

  • reorder style tag with link tag based capo js to enhance rendering

Testing

n/a

Docs

n/a

withastro/astro

Changes

  • Some tests were failing, this fixes them

Testing

  • Updates them to use the new allowedDomains feature

Docs

N/A, bug fix

withastro/astro

Changes

  • Depends on #14501
  • Updates the create-key command to display help, which involved creating a bunch of abstractions to allow unit testing. I understand it may seem overkill but it's really preparing the refactor of the next commands

Testing

Added unit tests

Docs

N/A, internal refactor

withastro/astro

Changes

  • Updates the implementation of CLI's create-key command so it's unit testable

Testing

Adds a unit test

Docs

N/A, internal refactor. Will send a docs PR tho because it's not documented in the CLI reference

withastro/starlight

Description

As discussed in the linked issue, this PR dedupes <link rel="sitemap" href="" /> tags in the head, similar to how <link rel="canonical" href="" /> tags are deduped.

I think the changeset is a bit verbose, not quite sure how to make it more concise while still being clear and explaining the use-case. Happy to adjust as needed.

withastro/astro

Changes

Testing

Updated

Docs

withastro/docs#12510

withastro/astro

Note

Mend has cancelled the proposed renaming of the Renovate GitHub app being renamed to mend[bot].

This notice will be removed on 2025-10-07.


This PR contains the following updates:

Package Change Age Confidence
@astrojs/sitemap (source) ^3.5.1 -> ^3.6.0 age confidence
@astrojs/svelte (source) ^7.1.1 -> ^7.2.0 age confidence
@cloudflare/workers-types ^4.20250913.0 -> ^4.20251003.0 age confidence
@netlify/blobs ^10.0.10 -> ^10.0.11 age confidence
@netlify/functions ^4.2.5 -> ^4.2.7 age confidence
@netlify/vite-plugin ^2.5.9 -> ^2.6.1 age confidence
@vercel/nft 0.30.1 -> 0.30.2 age confidence
rollup (source) ^4.50.2 -> ^4.52.3 age confidence
svelte (source) ^5.38.10 -> ^5.39.8 age confidence
typescript (source) ^5.9.2 -> ^5.9.3 age confidence
vue (source) ^3.5.21 -> ^3.5.22 age confidence
wrangler (source) 4.37.0 -> 4.41.0 age confidence

Release Notes

withastro/astro (@​astrojs/sitemap)

v3.6.0

Compare Source

Minor Changes
  • #​14285 bedc31b Thanks @​jdcolombo! - Adds a new configuration option namespaces for more control over XML namespaces used in sitemap generation

    Excluding unused namespaces can help create cleaner, more focused sitemaps that are faster for search engines to parse and use less bandwidth. If your site doesn't have news content, videos, or multiple languages, you can exclude those namespaces to reduce XML bloat.

    The namespaces option allows you to configure news, xhtml, image, and video namespaces independently. All namespaces are enabled by default for backward compatibility and no change to existing projects is necessary. But now, you can choose to streamline your XML and avoid unnecessary code.

    For example, to exclude the video namespace from your sitemap, set video: false in your configuration:

    // astro.config.mjs
    import { sitemap } from '@&#8203;astrojs/sitemap';
    
    export default {
      integrations: [
        sitemap({
          namespaces: {
            video: false,
            // other namespaces remain enabled by default
          }
        })
      ]
    };
    

    The generated XML will not include the xmlns:video namespace:

    <?xml version="1.0" encoding="UTF-8"?>
    <urlset
      xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
      xmlns:news="http://www.google.com/schemas/sitemap-news/0.9"
      xmlns:xhtml="http://www.w3.org/1999/xhtml"
      xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"
    >
      <!-- ... -->
    </urlset>
    
withastro/astro (@​astrojs/svelte)

v7.2.0

Compare Source

Minor Changes
  • #​14430 78011ba Thanks @​ascorbic! - Adds support for async server rendering

    Svelte 5.36 added experimental support for async rendering. This allows you to use await in your components in several new places. This worked out of the box with client-rendered components, but server-rendered components needed some extra help. This update adds support for async server rendering in Svelte components used in Astro.

    To use async rendering, you must enable it in your Svelte config:

    // svelte.config.js
    export default {
      compilerOptions: {
        experimental: {
          async: true,
        },
      },
    };

    Then you can use await in your components:

    <script>
      let data = await fetch('/api/data').then(res => res.json());
    </script>
    <h1>{data.title}</h1>

    See the Svelte docs for more information on using await in Svelte components, including inside $derived blocks and directly in markup.

Patch Changes
  • #​14433 9cc8f21 Thanks @​ascorbic! - Fixes a bug that prevented Svelte 5.39.1+ components rendering when multiple frameworks were present
cloudflare/workerd (@​cloudflare/workers-types)

v4.20251003.0

Compare Source

v4.20251001.0

Compare Source

v4.20250927.0

Compare Source

v4.20250926.0

Compare Source

v4.20250924.0

Compare Source

v4.20250923.0

Compare Source

v4.20250922.0

Compare Source

v4.20250921.0

Compare Source

v4.20250920.0

Compare Source

v4.20250919.0

Compare Source

v4.20250918.0

Compare Source

v4.20250917.0

Compare Source

netlify/primitives (@​netlify/blobs)

v10.0.11

Compare Source

vercel/nft (@​vercel/nft)

v0.30.2

Compare Source

Bug Fixes
rollup/rollup (rollup)

v4.52.3

Compare Source

2025-09-27

Bug Fixes
  • Fix check in native loader for environments that do not support reports (#​6123)
Pull Requests

v4.52.2

Compare Source

2025-09-23

Bug Fixes
  • Fix Android build crashing due to failed dlopen (#​6109)
Pull Requests

v4.52.1

Compare Source

2025-09-23

Bug Fixes
  • Opt-out of dynamic import optimization when using top-level await to effectively prevent deadlocks (#​6121)
Pull Requests

v4.52.0

Compare Source

2025-09-19

Features
  • Add option output.onlyExplicitManualChunks to turn off merging additional dependencies into manual chunks (#​6087)
  • Add support for x86_64-pc-windows-gnu platform (#​6110)
Pull Requests

v4.51.0

Compare Source

2025-09-19

Features
  • Support ROLLUP_FILE_URL_OBJ placeholder to inject file URLs into the generated code (#​6108)
Bug Fixes
  • Improve OpenHarmony build to work in more situations (#​6115)
Pull Requests
sveltejs/svelte (svelte)

v5.39.8

Compare Source

Patch Changes
  • fix: check boundary pending attribute at runtime on server (#​16855)

  • fix: preserve tuple type in $state.snapshot (#​16864)

  • fix: allow await in svelte:boundary without pending (#​16857)

  • fix: update bind:checked error message to clarify usage with radio inputs (#​16874)

v5.39.7

Compare Source

Patch Changes
  • chore: simplify batch logic (#​16847)

  • fix: rebase pending batches when other batches are committed (#​16866)

  • fix: wrap async children in $$renderer.async (#​16862)

  • fix: silence label warning for buttons and anchor tags with title attributes (#​16872)

  • fix: coerce nullish <title> to empty string (#​16863)

microsoft/TypeScript (typescript)

v5.9.3

Compare Source

cloudflare/workers-sdk (wrangler)

v4.41.0

Compare Source

Minor Changes
  • #​10507 21a0bef Thanks @​dario-piotrowicz! - Add strict mode for the wrangler deploy command

    Add a new flag: --strict that makes the wrangler deploy command be more strict and not deploy workers when the deployment could be potentially problematic. This "strict mode" currently only affects non-interactive sessions where conflicts with the remote settings for the worker (for example when the worker has been re-deployed via the dashboard) will cause the deployment to fail instead of automatically overriding the remote settings.

  • #​10710 7f2386e Thanks @​penalosa! - Add prompt to resource creation flow allowing for newly created resources to be remote.

Patch Changes

v4.40.3

Compare Source

Patch Changes

v4.40.2

Compare Source

Patch Changes

v4.40.1

Compare Source

Patch Changes

v4.40.0

Compare Source

Minor Changes
  • #​10743 a7ac751 Thanks @​jonesphillip! - Changes --fileSizeMB to --file-size for wrangler r2 bucket catalog compaction command.
    Small fixes for pipelines commands.
Patch Changes
  • #​10706 81fd733 Thanks @​1000hz! - Fixed an issue that caused some Workers to have an incorrect service tag applied when using a redirected configuration file (as used by the Cloudflare Vite plugin). This resulted in these Workers not being correctly grouped with their sibling environments in the Cloudflare dashboard.

  • Updated dependencies [06e9a48]:

    • miniflare@​4.20250924.0

v4.39.0

Compare Source

Minor Changes
  • #​10647 555a6da Thanks @​efalcao! - VPC service binding support

  • #​10612 97a72cc Thanks @​jonesphillip! - Added new pipelines commands (pipelines, streams, sinks, setup), moved old pipelines commands behind --legacy

  • #​10652 acd48ed Thanks @​edmundhung! - Rename Hyperdrive local connection string environment variable from WRANGLER_HYPERDRIVE_LOCAL_CONNECTION_STRING_<BINDING_NAME> to CLOUDFLARE_HYPERDRIVE_LOCAL_CONNECTION_STRING_<BINDING_NAME>. The old variable name is still supported but will now show a deprecation warning.

  • #​10721 55a10a3 Thanks @​penalosa! - Stabilise Worker Loader bindings

Patch Changes

v4.38.0

Compare Source

Minor Changes
Patch Changes

v4.37.1

Compare Source

Patch Changes
  • #​10658 3029b9a Thanks @​1000hz! - Fixed an issue with service tags not being applied properly to Workers when the Wrangler configuration file did not include a top-level name property.

  • #​10657 31ec996 Thanks @​penalosa! - Disable remote bindings with the --local flag

  • Updated dependencies [783afeb]:

    • miniflare@​4.20250913.0

v4.37.0

Compare Source

Minor Changes
  • #​10546 d53a0bc Thanks @​1000hz! - On deploy or version upload, Workers with multiple environments are tagged with metadata that groups them together in the Cloudflare Dashboard.

  • #​10596 735785e Thanks @​penalosa! - Add Miniflare & Wrangler support for unbound Durable Objects

  • #​10622 15c34e2 Thanks @​nagraham! - Modify R2 Data Catalog compaction commands to enable/disable for Catalog (remove table/namespace args), and require Cloudflare API token on enable.

Patch Changes
  • Updated dependencies [735785e]:
    • miniflare@​4.20250906.2

v4.36.0

Compare Source

Minor Changes
Patch Changes

v4.35.0

Compare Source

Minor Changes
  • #​10491 5cb806f Thanks @​zebp! - Add traces, OTEL destinations, and configurable persistence to observability settings

    Adds a new traces field to the observability settings in your Worker configuration that configures the behavior of automatic tracing. Both traces and logs support providing a list of OpenTelemetry compliant destinations where your logs/traces will be exported to as well as an implicitly-enabled persist option that controls whether or not logs/traces are persisted to the Cloudflare observability platform and viewable in the Cloudflare dashboard.

Patch Changes

v4.34.0

Compare Source

Minor Changes
  • #​10478 cc47b51 Thanks @​danielrs! - Beta feature preview_urls is now disabled by default.

    This change makes preview_urls disabled by default when it's not provided, making
    the feature opt-in instead of opt-out.

Patch Changes

v4.33.2

Compare Source

Patch Changes

v4.33.1

Compare Source

Patch Changes

Configuration

📅 Schedule: Branch creation - Between 12:00 AM and 03:59 AM, only on Monday ( * 0-3 * * 1 ) (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

withastro/astro

Note

Mend has cancelled the proposed renaming of the Renovate GitHub app being renamed to mend[bot].

This notice will be removed on 2025-10-07.


This PR contains the following updates:

Package Change Age Confidence
@bluwy/giget-core ^0.1.3 -> ^0.1.6 age confidence
@tailwindcss/vite (source) ^4.1.13 -> ^4.1.14 age confidence
@types/react (source) ^18.3.24 -> ^18.3.25 age confidence
svelte (source) ^5.39.6 -> ^5.39.8 age confidence
tailwindcss (source) ^4.1.13 -> ^4.1.14 age confidence
typescript (source) ^5.9.2 -> ^5.9.3 age confidence
typescript (source) ~5.9.2 -> ~5.9.3 age confidence
typescript-eslint (source) ^8.44.1 -> ^8.45.0 age confidence

Release Notes

tailwindlabs/tailwindcss (@​tailwindcss/vite)

v4.1.14

Compare Source

Fixed
  • Handle ' syntax in ClojureScript when extracting classes (#​18888)
  • Handle @variant inside @custom-variant (#​18885)
  • Merge suggestions when using @utility (#​18900)
  • Ensure that file system watchers created when using the CLI are always cleaned up (#​18905)
  • Do not generate grid-column utilities when configuring grid-column-start or grid-column-end (#​18907)
  • Do not generate grid-row utilities when configuring grid-row-start or grid-row-end (#​18907)
  • Prevent duplicate CSS when overwriting a static utility with a theme key (#​18056)
  • Show Lightning CSS warnings (if any) when optimizing/minifying (#​18918)
  • Use default export condition for @tailwindcss/vite (#​18948)
  • Re-throw errors from PostCSS nodes (#​18373)
  • Detect classes in markdown inline directives (#​18967)
  • Ensure files with only @theme produce no output when built (#​18979)
  • Support Maud templates when extracting classes (#​18988)
  • Upgrade: Do not migrate variant = 'outline' during upgrades (#​18922)
  • Upgrade: Show version mismatch (if any) when running upgrade tool (#​19028)
  • Upgrade: Ensure first class inside className is migrated (#​19031)
  • Upgrade: Migrate classes inside *ClassName and *Class attributes (#​19031)
typescript-eslint/typescript-eslint (typescript-eslint)

v8.45.0

Compare Source

This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.

You can read about our versioning strategy and releases on our website.


Configuration

📅 Schedule: Branch creation - Between 12:00 AM and 03:59 AM, only on Monday ( * 0-3 * * 1 ) (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

withastro/astro

Changes

  • This PR adds a button to copy the stack trace, which makes it easier to add to any LLM or AI editor for easier debugging. More here Discussion #1234
  • There is a subtle animation to give feedback that the stack is copied
Video of the Implementation
Screen.Recording.2025-10-04.at.2.14.21.PM.mov

Testing

I ran pnpm test:e2e:match "error|overlay", all the 18 test cases passed

Test case screenshot Screenshot 2025-10-04 at 2 47 55 PM

Docs

It is a small UI addition to the error overlay, so i believe no docs are needed

withastro/astro

Fixes issue where custom 500.astro pages did not include their styles when rendered dynamically in SSR mode.

Root Cause

Error pages like 500.astro were not always added to the SSR pageMap when pageData2 was missing from internals.pagesByKeys.
This prevented Vite from importing the page during build, so CSS was never collected into the manifest.

Changes

  • Modified plugin-ssr.ts to always add pages to pageMap, even if pageData2 is undefined
  • Added fallback to use pageData.component in those cases
  • Extended custom-500 fixture to include inline styles
  • Added regression test: verifies that styles from 500.astro are included in SSR output (checks minified CSS)

Impact

  • Ensures custom 500 error pages behave consistently with other routes
  • Fix is build-time only; no runtime overhead
  • Custom 500.astro remains optional — if missing, Astro still falls back to default error overlay

Closes #13272

Changes

  • 500 error pages now properly include their styles in SSR
  • Added regression test to prevent future regressions

Testing

  • Added new integration test under test/custom-500.test.js
  • Verified fixture builds and renders styles correctly
  • All existing tests continue to pass (pnpm test)

Docs

  • No user-facing docs changes required
  • Behavior matches existing 404 error page behavior
withastro/astro

Changes

Testing

Unit test added, tested manually

Docs

Changeset

withastro/starlight

Description

This PR adds the saucer documentation to the site showcase

withastro/astro

Changes

Testing

Updated

Docs

withastro/docs#12494

withastro/astro

Changes

Testing

Should pass

Docs

withastro/docs#12480

withastro/astro

Changes

Testing

Should pass

Docs

N/A, internal change

withastro/astro

Changes

This PR adds support for Astro Actions inside the Cloudflare plugin dev app

Testing

I added a new example in the plugin, and made sure that I receive the correct message when navigating to /action-success

Docs

N/A

withastro/astro

Changes

Testing

N/A, AFAIK none was using rewrite inside an action

Docs

withastro/docs#12477

withastro/astro

Changes

  • Until now, if unifont couldn't resolve font data for a given family, we should show a generic message. It is valid in some cases
  • However in most cases this is due to a config issue, eg. a typo in the font family name
  • So we add a log for it

Testing

Adds unit tests

Docs

Changesets

withastro/astro

Changes

  • These errors should be safe to delete according to our guidelines

Testing

Should pass

Docs

N/A

withastro/astro

Changes

  • 0.30.2 causes too many files to be bundled, which can cause deployments on serverless platforms to hit limits
  • vercel/nft#545

Testing

N/A

Docs

Changeset

lin-stephanie/astro-antfustyle-theme

Description

  • Support searching within content collections rendered through the RenderPost component
  • Support collection type filter, batch loading, search term highlighting on the results page, limit on displayed results, and keyboard navigation
  • Support linking search results to the nearest heading position in the post
  • Add global FEATURES.search option with configs
  • Add search frontmatter to control per-post inclusion
  • Refer to Search Functionality for details
withastro/astro

Changes

New sitemap optional configuration for named sitemap files chunking strategy

Adds a chunks option to the sitemap configuration schema.
This allows users to define custom chunking strategies for
generating sitemaps, providing flexibility in how the sitemap
is split into multiple files.

			integrations: [
				sitemap({
					serialize(item) {
						return item
					},
					chunks: {
						'blog': (item) => {
							if (/blog/.test(item.url)) {
								item.changefreq = 'weekly';
								item.lastmod = new Date();
								item.priority = 0.9;
								return item;
							}
						},
						'glossary': (item) => {
							if (/glossary/.test(item.url)) {
								item.changefreq = 'weekly';
								item.lastmod = new Date();
								item.priority = 0.9;
								return item;
							}
						}
					},
				}),
			],

Testing

image image

Docs

yes, to add optional configurations for the chunks

@withastro/maintainers-docs for feedback!

withastro/astro

Changes

The only change in v1 is that tinyexec now ships as ESM-only, which is non-breaking for us. This package was already lightweight (46 KB), but v1 is even smaller (27 KB)

See https://github.com/tinylibs/tinyexec/releases/tag/1.0.0

Testing

Existing tests should pass

Docs

N/A

withastro/astro

Changes

No breaking changes for Astro as v3 was only released to drop support for Node <18, which we had already done. It removes polyfills, making for a lighter dependency (removes blob-to-buffer and cross-fetch from astro’s transitive deps).

See https://github.com/seek-oss/capsize/releases/tag/%40capsizecss%2Funpack%403.0.0

Testing

Existing tests should pass

Docs

N/A

withastro/astro

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

astro@5.14.2

Patch Changes

  • #14459 916f9c2 Thanks @florian-lefebvre! - Improves font files URLs in development when using the experimental fonts API by showing the subset if present

  • b8ca69b Thanks @ascorbic! - Aligns dev image server file base with Vite rules

  • #14469 1c090b0 Thanks @delucis! - Updates tinyexec dependency

  • #14460 008dc75 Thanks @florian-lefebvre! - Fixes a case where astro:config/server values typed as URLs would be serialized as strings

  • #13730 7260367 Thanks @razonyang! - Fixes a bug in i18n, where Astro caused an infinite loop when a locale that doesn't have an index, and Astro falls back to the index of the default locale.

  • 6ee63bf Thanks @matthewp! - Adds security.allowedDomains configuration to validate X-Forwarded-Host headers in SSR

    The X-Forwarded-Host header will now only be trusted if it matches one of the configured allowed host patterns. This prevents host header injection attacks that can lead to cache poisoning and other security vulnerabilities.

    Configure allowed host patterns to enable X-Forwarded-Host support:

    // astro.config.mjs
    export default defineConfig({
      output: 'server',
      adapter: node(),
      security: {
        allowedDomains: [
          { hostname: 'example.com' },
          { hostname: '*.example.com' },
          { hostname: 'cdn.example.com', port: '443' },
        ],
      },
    });

    The patterns support wildcards (* and **) for flexible hostname matching and can optionally specify protocol and port.

    Breaking change

    Previously, Astro.url would reflect the value of the X-Forwarded-Host header. While this header is commonly used by reverse proxies like Nginx to communicate the original host, it can be sent by any client, potentially allowing malicious actors to poison caches with incorrect URLs.

    If you were relying on X-Forwarded-Host support, add security.allowedDomains to your configuration to restore this functionality securely. When allowedDomains is not configured, X-Forwarded-Host headers are now ignored by default.

  • #14488 badc929 Thanks @olcanebrem! - Fixes a case where styles on the custom 500 error page would not be included

  • #14487 1e5b72c Thanks @florian-lefebvre! - Fixes a case where the URLs generated by the experimental Fonts API would be incorrect in dev

  • #14475 ae034ae Thanks @florian-lefebvre! - Warns if the font family name is not supported by the provider when using the experimental fonts API

  • b8ca69b Thanks @ascorbic! - Refactor remote path detection

  • #14468 2f2a5da Thanks @delucis! - Updates @capsizecss/unpack dependency

  • Updated dependencies [b8ca69b]:

    • @astrojs/internal-helpers@0.7.4
    • @astrojs/markdown-remark@6.3.8

@astrojs/cloudflare@12.6.10

Patch Changes

  • b8ca69b Thanks @ascorbic! - Refactor remote path detection

  • Updated dependencies [b8ca69b]:

    • @astrojs/internal-helpers@0.7.4
    • @astrojs/underscore-redirects@1.0.0

@astrojs/markdoc@0.15.8

Patch Changes

  • Updated dependencies [b8ca69b]:
    • @astrojs/internal-helpers@0.7.4
    • @astrojs/markdown-remark@6.3.8

@astrojs/mdx@4.3.7

Patch Changes

  • Updated dependencies []:
    • @astrojs/markdown-remark@6.3.8

@astrojs/netlify@6.5.12

Patch Changes

  • #14473 d9634d3 Thanks @florian-lefebvre! - Fixes a bug that caused too many files to be bundled in SSR

  • Updated dependencies [b8ca69b]:

    • @astrojs/internal-helpers@0.7.4
    • @astrojs/underscore-redirects@1.0.0

@astrojs/node@9.4.5

Patch Changes

  • Updated dependencies [b8ca69b]:
    • @astrojs/internal-helpers@0.7.4

@astrojs/vercel@8.2.9

Patch Changes

@astrojs/internal-helpers@0.7.4

Patch Changes

@astrojs/markdown-remark@6.3.8

Patch Changes

  • Updated dependencies [b8ca69b]:
    • @astrojs/internal-helpers@0.7.4

Last fetched:  |  Scheduled refresh: Every Saturday

See Customizing GitHub Activity Pages to configure your own

Inspired by prs.atinux.com