AstroEco is Contributing…
Display your GitHub pull requests using astro-loader-github-prs

This PR contains the following updates:
Package | Change | Age | Adoption | Passing | Confidence |
---|---|---|---|---|---|
@preact/signals (source) | ^2.0.1 -> ^2.0.2 |
||||
@types/react (source) | ^18.3.19 -> ^18.3.20 |
||||
svelte (source) | ^5.23.2 -> ^5.25.3 |
Configuration
📅 Schedule: Branch creation - "* 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.

This PR contains the following updates:
Package | Change | Age | Adoption | Passing | Confidence |
---|---|---|---|---|---|
@codspeed/vitest-plugin (source) | 4.0.0 -> 4.0.1 |
||||
@libsql/client (source) | ^0.15.0 -> ^0.15.1 |
||||
@preact/signals (source) | ^2.0.1 -> ^2.0.2 |
||||
@tailwindcss/vite (source) | ^4.0.15 -> ^4.0.17 |
||||
@types/estree (source) | ^1.0.6 -> ^1.0.7 |
||||
@types/react (source) | ^18.3.19 -> ^18.3.20 |
||||
@types/semver (source) | ^7.5.8 -> ^7.7.0 |
||||
eslint (source) | ^9.22.0 -> ^9.23.0 |
||||
svelte (source) | ^5.23.2 -> ^5.25.3 |
||||
tailwindcss (source) | ^4.0.15 -> ^4.0.17 |
||||
typescript-eslint (source) | ^8.27.0 -> ^8.28.0 |
Release Notes
CodSpeedHQ/codspeed-node (@codspeed/vitest-plugin)
v4.0.1
What's Changed
- feat: vitest-plugin - allow vite 6 in peer dependencies by @belgattitude in https://github.com/CodSpeedHQ/codspeed-node/pull/43
New Contributors
- @belgattitude made their first contribution in https://github.com/CodSpeedHQ/codspeed-node/pull/43
Full Changelog: CodSpeedHQ/codspeed-node@v4.0.0...v4.0.1
typescript-eslint/typescript-eslint (typescript-eslint)
v8.28.0
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 - "* 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.

Changes
getStaticPaths()
is run in another scope, that makes it impossible to access Astro render context. For some use cases it is necessary to access the routePattern
:
- Calculate translations and pass a list of translations to the page for the language switcher
- Helper functions to fill route params automatically
- ...
This change provides routePattern
via GetStaticPathsOptions
. It isn't a breaking change as whoever wants to consume it can, but doesn't need to.
Testing
I don't know how to test this. I'm very happy to add tests, if you can point me in the right direction.
Docs
/cc @withastro/maintainers-docs for feedback!
The new options should be mentioned in https://docs.astro.build/en/reference/routing-reference/#getstaticpaths.

Changes
- Applies some of the changes from https://github.com/vitejs/vite-ecosystem-ci/blob/rolldown-vite/tests-patches/astro/astro.patch
Testing
Should pass
Docs
N/A. No changeset since it's a refactor

Changes
- Fixes a case where automatic fallbacks cannot be used with local fonts on node because
FileReader
is not implemented. Depends on seek-oss/capsize#223
Testing
Manual
Docs
N/A

Changes
- We now throw an error if the response from a font file download is not successful
Testing
N/A
Docs
N/A

Changes
- After discussing with @delucis, we came to the conclusion that having
sans-serif
as a default fallback makes sense so users can benefit from automatic fallback generation by default
Testing
N/A
Docs
Will be documented properly alongside all defaults

Changes
- Addresses some of the feedback from the API bash
- Updates the config to be an array at
experimental.fonts
- Updates the config so providers are passed directly to families
- Updates the config so the local font provider is inferred if
src
is provided - Updates how font providers are initialized to be smarter
- Updates the
FontProvider
interface so it doesn't require aname
anymore
Testing
Updated. This PR simplifies types tests a lot
Docs
RFC updated. Docs update will come later, after more feedback from the API bash has been addressed

Changes
Adds support for automatically-provisioning session storage for Cloudflare KV
Automatically configures Cloudflare KV storage when experimental sessions are enabled
If the experimental.session
flag is enabled when using the Cloudflare adapter, Astro will automatically configure the session storage using the Cloudflare KV driver. You can still manually configure the session storage if you need to use a different driver or want to customize the session storage configuration. If you want to use sessions, you will need to create the KV namespace and declare it in your wrangler config. You can do this using the Wrangler CLI:
npx wrangler kv namespace create SESSION
This will log the id of the created namespace. You can then add it to your wrangler.json
/wrangler.toml
file like this:
By default it uses the binding name SESSION
, but if you want to use a different binding name you can do so by passing the sessionKVBindingName
option to the adapter. For example:
import { defineConfig } from 'astro/config';
import cloudflare from '@astrojs/cloudflare';
export default defineConfig({
output: 'server',
site: `http://example.com`,
adapter: cloudflare({
platformProxy: {
enabled: true,
},
sessionKVBindingName: 'MY_SESSION',
}),
experimental: {
session: true,
}
});
Testing
Adds fixture and test suite. To try it on your own site, use the preview release of @astrojs/cloudflare
Docs
Needs updated docs

Description
- New
/shorts
page - Update
CardView
,CardItem
comps
Description
Initially reported in Discord by Chris and Sarah, this PR fixes a list styling issue that can happen when the last child element of a list item is a script tag.
This can naturally happen in Starlight, e.g. in a list of steps where the last element of a step is the first occurence of a set of tabs in the page. The issue is visible in the Starlight documentation of the <Steps>
component:
Before | After | |
---|---|---|
URL | https://starlight.astro.build/components/steps/ | https://deploy-preview-3026--astro-starlight.netlify.app/components/steps/ |
Preview | ![]() |
![]() |
We cannot really target the built-in tabs component to fix this issue, as we could have more components that could lead to the same issue in the future, or the user could have their own component that triggers the issue.
We also cannot fix this issue if only the last child element of a list item is a script tag, as even if rare, the last n child elements could be script tags too.
This leads to quite the complex selector to try to handle all cases, I tried to comment it as much as possible to make it more understandable.

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/cloudflare@12.4.0
Minor Changes
-
#13514
a9aafec
Thanks @ascorbic! - Automatically configures Cloudflare KV storage when experimental sessions are enabledIf the
experimental.session
flag is enabled when using the Cloudflare adapter, Astro will automatically configure the session storage using the Cloudflare KV driver. You can still manually configure the session storage if you need to use a different driver or want to customize the session storage configuration. If you want to use sessions, you will need to create the KV namespace and declare it in your wrangler config. You can do this using the Wrangler CLI:npx wrangler kv namespace create SESSION
This will log the id of the created namespace. You can then add it to your
wrangler.json
/wrangler.toml
file like this:// wrangler.json { "kv_namespaces": [ { "binding": "SESSION", "id": "<your kv namespace id here>", }, ], }
By default it uses the binding name
SESSION
, but if you want to use a different binding name you can do so by passing thesessionKVBindingName
option to the adapter. For example:import { defineConfig } from 'astro/config'; import cloudflare from '@astrojs/cloudflare'; export default defineConfig({ output: 'server', site: `http://example.com`, adapter: cloudflare({ platformProxy: { enabled: true, }, sessionKVBindingName: 'MY_SESSION', }), experimental: { session: true, }, });
See the Cloudflare KV docs for more details on setting up KV namespaces.
See the experimental session docs for more information on configuring session storage.
Patch Changes
- Updated dependencies []:
- @astrojs/underscore-redirects@0.6.0
astro@5.5.6
Patch Changes
- #13429
06de673
Thanks @ematipico! - TheActionAPIContext.rewrite
method is deprecated and will be removed in a future major version of Astro
Description
-
This PR changes how social links are configured in the Starlight options.
-
It switches from a shorthand object syntax to an array of explicit link items:
- social: { - github: 'https://github.com/withastro/starlight', - discord: 'https://astro.build/chat', - }, + social: [ + { icon: 'github', label: 'GitHub', href: 'https://github.com/withastro/starlight' }, + { icon: 'discord', label: 'Discord', href: 'https://astro.build/chat' }, + ],
-
This is a little unfortunate in that it’s a more verbose configuration approach, but it has a few advantages for long-term maintenance:
-
Icons no longer need dedicated built-in labels and code to be used as social links. Any icon can be used if people want (avoiding us needing to decide what counts as a valid social link and what doesn’t).
-
User control of labels means that less common links can be labelled accurately. For example, we avoided adding an
email
social icon because the label could vary depending on site language and context. This change allows people to use the existingemail
icon with a label of their choosing. -
Following #3024, this should be updated to also support user-installed icons reducing the pressure on Starlight to contain icons for every platform in the known universe.
-
Not in scope
- Currently there’s no implementation of localized labels for social links in this PR. There are a few obstacles to implementing that nicely at the moment, and given labels are already not localizable (and for many cases don’t require it where the label is a platform name), we decided to skip that until we refactor some internals to make it easier to support that elegantly.
Also considered
- I also considered whether some hybrid of our current shorthand syntax and the new explicit syntax could make sense to keep config for common platforms terse, but I decided the slightly less verbose syntax didn’t justify users needing to understand two subtly different link shapes (e.g. some icons not needing an explicit
label
).
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.32.5
Patch Changes
-
#3021
e3f881e
Thanks @jsparkdev! - Updates Korean language support -
#3013
5b599dd
Thanks @oluwatobiss! - Adds Substack icon to social links list


Changes
Handles module not found errors thrown when importing the dist/server/entry.mjs
file. If the file itself is missing, the existing error will still be thrown
Testing
Manually. This was replicated by modifying a build output to import a missing package.
Docs
N/A
Description
This PR will add SourceHut as an option in the social config. See discussion: #3008 (comment)
Description
As I noticed myself, the current documentation does not point out that Starlight's custom middleware may or may not conflict with Astro's middleware.
Related discussion: #3017 (pls comment your thoughts there, this PR is just an example)

Changes
Upgrades vite
to the latest due to a CVE of theirs: GHSA-x574-m823-4x7w
Testing
CI should stay green
Docs
N/A
Description
This PR adds a new theme https://github.com/ocavue/starlight-theme-nova to the docs.

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.5.5
Patch Changes
-
#13510
5b14d33
Thanks @florian-lefebvre! - Fixes a case whereastro:env
secrets used in actions would not be available -
#13485
018fbe9
Thanks @ascorbic! - Fixes a bug that caused cookies to ignore custom decode function if has() had been called before -
#13505
a98ae5b
Thanks @ematipico! - Updates the dependencyvite
to the latest. -
#13483
fc2dcb8
Thanks @ematipico! - Fixes a bug where an Astro adapter couldn't call the middleware when there isn't a route that matches the incoming request.
@astrojs/db@0.14.9
Patch Changes
-
#13505
a98ae5b
Thanks @ematipico! - Updates the dependencyvite
to the latest. -
Updated dependencies [
a98ae5b
]:- @astrojs/studio@0.1.5
@astrojs/alpinejs@0.4.4
Patch Changes
- #13505
a98ae5b
Thanks @ematipico! - Updates the dependencyvite
to the latest.
@astrojs/cloudflare@12.3.1
Patch Changes
-
#13505
a98ae5b
Thanks @ematipico! - Updates the dependencyvite
to the latest. -
Updated dependencies []:
- @astrojs/underscore-redirects@0.6.0
@astrojs/markdoc@0.13.2
Patch Changes
- #13505
a98ae5b
Thanks @ematipico! - Updates the dependencyvite
to the latest.
@astrojs/mdx@4.2.2
Patch Changes
- #13505
a98ae5b
Thanks @ematipico! - Updates the dependencyvite
to the latest.
@astrojs/netlify@6.2.4
Patch Changes
-
#13505
a98ae5b
Thanks @ematipico! - Updates the dependencyvite
to the latest. -
Updated dependencies []:
- @astrojs/underscore-redirects@0.6.0
@astrojs/preact@4.0.7
Patch Changes
- #13505
a98ae5b
Thanks @ematipico! - Updates the dependencyvite
to the latest.
@astrojs/react@4.2.2
Patch Changes
- #13505
a98ae5b
Thanks @ematipico! - Updates the dependencyvite
to the latest.
@astrojs/solid-js@5.0.6
Patch Changes
- #13505
a98ae5b
Thanks @ematipico! - Updates the dependencyvite
to the latest.
@astrojs/svelte@7.0.8
Patch Changes
- #13505
a98ae5b
Thanks @ematipico! - Updates the dependencyvite
to the latest.
@astrojs/tailwind@6.0.2
Patch Changes
- #13505
a98ae5b
Thanks @ematipico! - Updates the dependencyvite
to the latest.
@astrojs/vue@5.0.8
Patch Changes
- #13505
a98ae5b
Thanks @ematipico! - Updates the dependencyvite
to the latest.
@astrojs/studio@0.1.5
Patch Changes
- #13505
a98ae5b
Thanks @ematipico! - Updates the dependencyvite
to the latest.

This PR contains the following updates:
Release Notes
preactjs/signals (@preact/signals)
v2.0.2
Patch Changes
-
#655
6a0284c
Thanks @JoviDeCroock! - Avoid usage of.base
and check the_dom
on the vnode instead -
#660
df4df76
Thanks @JoviDeCroock! - Bail out of the animation frame with a setTimeout in case the origin page is hidden
tailwindlabs/tailwindcss (@tailwindcss/vite)
v4.0.17
Fixed
- Fix an issue causing the CLI to hang when processing Ruby files (#17383)
v4.0.16
Added
- Add support for literal values in
--value('…')
and--modifier('…')
(#17304)
Fixed
- Fix class extraction followed by
(
in Pug (#17320) - Ensure
@keyframes
for theme animations are emitted if they are referenced following a comma (#17352) - Vite: Ensure that updates to an imported CSS file are properly propagated after updating source files (#17347)
- Pre process
Slim
templates embedded in Ruby files (#17336) - Error when input and output files resolve to the same file when using the CLI (#17311)
- Add missing suggestions when
--spacing(--value(integer, number))
is used (#17308) - Add
::-webkit-details-marker
pseudo tomarker
variant (#17362)
rollup/rollup (rollup)
v4.37.0
2025-03-23
Features
- Support Musl Linux on Riscv64 architectures (#5726)
- Handles class decorators placed before the
export
keyword (#5871)
Bug Fixes
- Log Rust panic messages to the console when using the WASM build (#5875)
Pull Requests
- #5726: Add support for linux riscv64 musl (@fossdd, @leso-kn)
- #5871: feat: support decorators before or after export (@TrickyPi)
- #5875: capture Rust panic messages and output them to the console. (@luyahan, @lukastaegert)
- #5883: Pin digest of 3rd party actions (@re-taro)
- #5885: fix(deps): lock file maintenance minor/patch updates (@renovate[bot])
v4.36.0
2025-03-17
Features
- Extend
renderDynamicImport
hook to provide information about static dependencies of the imported module (#5870) - Export several additional types used by Vite (#5879)
Bug Fixes
- Do not merge chunks if that would create a top-level await cycle between chunks (#5843)
Pull Requests
- #5843: avoiding top level await circular (@TrickyPi, @lukastaegert)
- #5870: draft for extended renderDynamicImport hook (@iczero, @lukastaegert)
- #5876: Update axios overrides to 1.8.2 (@vadym-khodak)
- #5877: chore(deps): update dependency eslint-plugin-vue to v10 (@renovate[bot])
- #5878: fix(deps): lock file maintenance minor/patch updates (@renovate[bot])
- #5879: fix: export types (@sxzz)
sveltejs/svelte (svelte)
v5.25.3
Patch Changes
- fix: prevent state runes from being called with spread (#15585)
v5.25.2
Patch Changes
- feat: migrate reassigned deriveds to
$derived
(#15581)
v5.25.1
Patch Changes
- fix: prevent dev server from throwing errors when attempting to retrieve the proxied value of an iframe's contentWindow (#15577)
v5.25.0
Minor Changes
- feat: make deriveds writable (#15570)
v5.24.1
Patch Changes
-
fix: use
get
in constructor for deriveds (#15300) -
fix: ensure toStore root effect is connected to correct parent effect (#15574)
v5.24.0
Minor Changes
- feat: allow state created in deriveds/effects to be written/read locally without self-invalidation (#15553)
Patch Changes
nodejs/undici (undici)
v7.5.0
What's Changed
- feat(docs): button to switch dark and light mode by @shivarm in https://github.com/nodejs/undici/pull/4044
- feat: add mock call history to access request configuration in test by @blephy in https://github.com/nodejs/undici/pull/4029
- fix: Fix retry-handler.js when retry-after header is a Date by @fgiova in https://github.com/nodejs/undici/pull/4084
- Update Cache Tests by @github-actions in https://github.com/nodejs/undici/pull/4027
- Allow disabling autoSelectFamily in an Agent by @hitsthings in https://github.com/nodejs/undici/pull/4070
- Removed clients with unrecoverable errors from the Pool by @mcollina in https://github.com/nodejs/undici/pull/4088
New Contributors
- @blephy made their first contribution in https://github.com/nodejs/undici/pull/4029
- @fgiova made their first contribution in https://github.com/nodejs/undici/pull/4084
- @hitsthings made their first contribution in https://github.com/nodejs/undici/pull/4070
Full Changelog: nodejs/undici@v7.4.0...v7.5.0
Configuration
📅 Schedule: Branch creation - "* 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.

This PR introduces a new Brand
component that provides a stylish, responsive title element with animation capabilities.
Features
- Fixed positioning with proper spacing
- Bold, responsive typography that scales across breakpoints (from text-3xl to text-9xl)
- Rotated display on small screens and above (sm:rotate-90)
- Smooth transition animations with customized duration and easing
- Whitespace handling to prevent text wrapping
- Origin point set to bottom-left for proper transform behavior
Implementation
The component uses Tailwind CSS classes to handle all styling and responsiveness, making it highly adaptable to different screen sizes without additional CSS.
Usage
<Brand>Your Title Here</Brand>
Description
- Closes #
- What does this PR change? Give us a brief description.
- Did you change something visual? A before/after screenshot can be helpful.
This PR adds a new link
option to LogoConfig
so that it becomes possible to choose a destination when clicking the logo.
This comes in handy when it's desired to link back from the docs to the product's website.

Changes
After discussing with @natemoo-re,
Sprite Mode: We decided it was better to push this off until later. Inlining SVGs alone is a big win for Astro and there are some hurdles to creating a good DX without footguns in adding sprites.
Size Prop: We decided to remove this all together as it is pretty opinionated.
Title Prop: We're good with holding off on this until later as well considering there is a good discussion about how this should be implemented by default. Removing this allows users to control the a11y while we work to provide a better DX.
Default Role Attribute: Similar to above, it isn't obvious what we should apply by default. So we'll remove this in favor of a better solution down the road.
Memory Issue: I highly suspect this was tied to Sprite mode but I can look into it more if it still persists.
Additionally, I added a SVGComponent
type that is equivalent to AstroComponentFactory
to provide a better DX for passing SVGs down to other Astro components.
References withastro/roadmap#1035
Testing
Ran tests
Docs
Will need to update the docs but will need some help
/cc @withastro/maintainers-docs for feedback!

Changes
Currently, when a cookie is first parsed from the header the value is cached. This means that if subsequent requests pass a different decode function it will be ignored. This PR changes the behaviour to cache the raw cookie values, and then decode them when getting them. This means the passed decode function will always be used.
Fixes #13078
Testing
Docs

Changes
Currently there is a strange error on Stackblitz where if the config cannot be loaded because of native addons it fails silently, because it throws an uncatchable error. This PR improves error handling so that those errors can be properly logged. This is not Stackblitz-specific, but does special-case the ERR_DLOPEN_DISABLED
error that is thrown. This should be fine, because it's not the sort of error that would ever be recoverable by Vite, as it's due to a setting in Node.
Fixes #13249
Testing
Manually tested on Stackblitz:
https://stackblitz.com/github/ascorbic/withastro-astro-banrd5uv/tree/ascorbic/patch-13439
Docs
Description
- This PR adds Starlight Markdown Blocks to the list of community plugins

Changes
Closes #13409
The fixes use the same logic as the dev server. If we can't find a RouteData
that matches the incoming request, we seek the /404
route, which we usually have, and pass it to the RenderContext
. The RenderContext
eventually calls the middleware.
Testing
I added a new test. Hopefully I didn't introduce any regressions
Docs
N/A

Changes
- In the config schema,
refine
andsuperRefine
were only called when validating the user's config - With this PR, those validations are moved to another schema, called for the user config (as before) as well as at the end of
astro:config:setup
for each integration - Config related schemas are split in several files for clarity
- Integrations hooks are refactored
- Unhandled errors in integration hooks now log which integration and which hook is failing
- I recommend you review the PR without whitespace changes
Testing
Updated, should pass
Docs
Changeset, no docs update needed I think


Changes
Generates the correct target URL for external redirects
Fixes #13479
Testing
Added test
Docs
Description
- add my newest plugin to the list
- modify some other descriptions where I noticed some inconsistencies - mostly dots at end of sentence (please let me know if I should remove those changes if unwanted)

This PR contains the following updates:
Package | Change | Age | Adoption | Passing | Confidence |
---|---|---|---|---|---|
@types/react (source) | ^18.3.18 -> ^18.3.19 |
||||
@vitejs/plugin-vue (source) | ^5.2.1 -> ^5.2.3 |
||||
@vitejs/plugin-vue-jsx (source) | ^4.1.1 -> ^4.1.2 |
||||
svelte (source) | ^5.22.6 -> ^5.23.2 |
||||
vite (source) | ^6.2.1 -> ^6.2.2 |
Release Notes
vitejs/vite-plugin-vue (@vitejs/plugin-vue)
v5.2.3
v5.2.2
- feat: pass descriptor vapor flag to compileTemplte (219e007)
- feat(css): tree shake scoped styles (#533) (333094f), closes #533
- fix: generate unique component id (#538) (2704e85), closes #538
- fix: properly interpret boolean values in
define
(#545) (46d3d65), closes #545 - fix(deps): update all non-major dependencies (#482) (cdbae68), closes #482
- fix(deps): update all non-major dependencies (#488) (5d39582), closes #488
- fix(index): move the if check earlier to avoid creating unnecessary ssr when entering return block ( (2135c84), closes #523
- fix(plugin-vue): default value for compile time flags (#495) (ae9d948), closes #495
- fix(plugin-vue): ensure HMR updates styles when SFC is treated as a type dependency (#541) (4abe3be), closes #541
- fix(plugin-vue): resolve sourcemap conflicts in build watch mode with cached modules (#505) (906cebb), closes #505
- fix(plugin-vue): support external import URLs for monorepos (#524) (cdd4922), closes #524
- fix(plugin-vue): support vapor template-only component (#529) (95be153), closes #529
- fix(plugin-vue): suppress warnings for non-recognized pseudo selectors form lightningcss (#521) (15c0eb0), closes #521
- chore(deps): update dependency rollup to ^4.27.4 (#479) (428320d), closes #479
- chore(deps): update dependency rollup to ^4.28.1 (#484) (388403f), closes #484
- chore(deps): update dependency rollup to ^4.29.1 (#493) (b092bc8), closes #493
- chore(deps): update upstream (#503) (8c12b9f), closes #503
- chore(deps): update upstream (#511) (d057351), closes #511
- chore(deps): update upstream (#526) (59946d3), closes #526
- chore(plugin-vue): simplify
resolved
declaration (7288a59)
vitejs/vite-plugin-vue (@vitejs/plugin-vue-jsx)
v4.1.2
- fix: properly interpret boolean values in
define
(#545) (46d3d65), closes #545 - fix(deps): update all non-major dependencies (#482) (cdbae68), closes #482
- fix(deps): update all non-major dependencies (#502) (5bfbbc6), closes #502
- fix(deps): update all non-major dependencies (#510) (28bca4b), closes #510
sveltejs/svelte (svelte)
v5.23.2
Patch Changes
- fix: don't hoist listeners that access non hoistable snippets (#15534)
v5.23.1
Patch Changes
-
fix: invalidate parent effects when child effects update parent dependencies (#15506)
-
fix: correctly match
:has()
selector during css pruning (#15277) -
fix: replace
undefined
withvoid 0
to avoid edge case (#15511) -
fix: allow global-like pseudo-selectors refinement (#15313)
-
chore: don't distribute unused types definitions (#15473)
-
fix: add
files
andgroup
to HTMLInputAttributes in elements.d.ts (#15492) -
fix: throw rune_invalid_arguments_length when $state.raw() is used with more than 1 arg (#15516)
v5.23.0
Minor Changes
- fix: make values consistent between effects and their cleanup functions (#15469)
vitejs/vite (vite)
v6.2.2
- fix: await client buildStart on top level buildStart (#19624) (b31faab), closes #19624
- fix(css): inline css correctly for double quote use strict (#19590) (d0aa833), closes #19590
- fix(deps): update all non-major dependencies (#19613) (363d691), closes #19613
- fix(indexHtml): ensure correct URL when querying module graph (#19601) (dc5395a), closes #19601
- fix(preview): use preview https config, not server (#19633) (98b3160), closes #19633
- fix(ssr): use optional chaining to prevent "undefined is not an object" happening in `ssrRewriteStac (4309755), closes #19612
- feat: show friendly error for malformed
base
(#19616) (2476391), closes #19616 - feat(worker): show asset filename conflict warning (#19591) (367d968), closes #19591
- chore: extend commit hash correctly when ambigious with a non-commit object (#19600) (89a6287), closes #19600
Configuration
📅 Schedule: Branch creation - "* 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.
As discussed today in Talking & Doc'ing, considering we are at the moment only using Renovate for GitHub Actions updates, we want to mostly rely on new pull requests rather than the dashboard.
This PR disables the Renovate Dashboard.

Changes
Follow up to #13471 to align linking style with what we’d usually do
Testing
n/a
Docs
/cc @withastro/maintainers-docs for feedback!
Description
This PR:
- Closes #2989
- Set up default values to the ranking property of merged indexes in pagefind to prevent search collision research between the current site and the sites hosting the merged indexes
- This PR do not changes starlight visual
Test
I've tested locally with 2 variants of the starlight's documentation:
- The first variant is the one from the main branch, without any merged indexes nor any modifications
- The second one is nearly the same as the one from the main branch, with little modifications:
- A markdown file changed, replacing
climate impact
byclimate exchange
- And a merge index pointing to the first site on pagefind configuration
- A markdown file changed, replacing
To test it I searched for climate exchange
(the modified text) on the second site.
Before applying the fix, search shown the original site as first result, and after the fix, modified site was first in search result (due to corp. network policies I can't upload screenshot right now to prove it)
Details
I used this script to build and serve locally the 2 variants:
#! /bin/bash
echo "Installing serve globaly"
npm i -g serve
echo "Building the documentation for port 3001"
if [ -d "dist-3001" ]; then
rm -rf "dist-3001"
fi
pnpm build
mv dist dist-3001
echo "Changing the content of the documentation"
sed -i 's/climate impact/climate exchange/' src/content/docs/environmental-impact.md
sed -i '52i\ \t\t\tpagefind: { indexWeight: 2.0, mergeIndex: [{ bundlePath: "http://localhost:3001/pagefind/", indexWeight: 0.5, }] },' astro.config.mjs
echo "Building the documentation for port 3002"
if [ -d "dist-3002" ]; then
rm -rf "dist-3002"
fi
pnpm build
mv dist dist-3002
echo "Serving the 2 sites"
serve -l 3001 --cors ./dist-3001 &
serve -l 3002 --cors ./dist-3002

Changes
- Updates the Tailwind integration README to show it is deprecated and remove links to docs which are no longer useful
Testing
n/a — docs only
Docs
cc @withastro/maintainers-docs for feedback!
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.32.4
Patch Changes
@astrojs/starlight-tailwind@3.0.1
Patch Changes
- #2991
b8a4800
Thanks @florian-lefebvre! - Adds support for@astrojs/tailwind
v6
Description
- What does this PR change? Updates the peer dep. I made it a patch since v6 doesn't change anything compared to v5

Changes
Unlike other frameworks, by default, preact and svelte don't replace the target element content when rendering (via render
or mount
) respectively. This caused fallback content to remain when using client:only
. This PR empties the target element before rendering.
Fixes #12513
Testing
Added e2e tests
Docs

Changes
- There was a regression in #13401 that made impossible to provide an object without a
provider
for a family - This PR moves some things around to have types working properly
Testing
Updates the types tests
Docs
N/A
This PR should hopefully disable packageManager
updates.
Description
This aims to fix the GitHub labeler action that runs for every PR for compatibility with v5.
Their docs are pretty bad, but IIUC, they introduced different match types which means we need to use a changed-files
key for each of our existing labels.
Based on https://docs.renovatebot.com/docker/#disable-all-docker-renovation, this PR disables all Docker renovations, e.g. like this one #2981

Changes
- Now generates types for the
Font
component family prop - Fixes a bug where the map passed to the virtual module was not using
family.as
if provided
Testing
Updated + manual
Docs
N/A

Changes
Currently the Cloudflare adapter attempts to move the _redirects
and _routes.json
files out of the base dir into the root when a base value is set in the config. This fails, because the files are already created in the root. This PR removes that code path.
Fixes #13162
Testing
Adds tests
Docs
This seems like a useful plugin but isn't listed to easily discovered. So I'm raising this PR.

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/cloudflare@12.3.0
Minor Changes
-
#13444
9721f4a
Thanks @florian-lefebvre! - Adds globalastro:env
supportCloudflare workers now support importing
env
in the global scope. Until now, callingastro:env
APIs had to be done within request scope or the values wereundefined
.With this release, they can be called anywhere server-side, like any other official adapter.
Patch Changes
-
#13463
d5ad591
Thanks @ascorbic! - Fixes a bug that caused builds to fail when a base directory is configured -
Updated dependencies []:
- @astrojs/underscore-redirects@0.6.0
astro@5.5.4
Patch Changes
-
#13457
968e713
Thanks @ascorbic! - Sets correct response status text for custom error pages -
#13447
d80ba2b
Thanks @ematipico! - Fixes an issue wheresite
was added to the generated redirects. -
#13481
e9e9245
Thanks @martrapp! - Makes server island work with the client router again. -
#13484
8b5e4dc
Thanks @ascorbic! - Display useful errors when config loading fails because of Node addons being disabled on Stackblitz
@astrojs/preact@4.0.6
Patch Changes
@astrojs/svelte@7.0.7
Patch Changes
@astrojs/tailwind@6.0.1
Patch Changes
- #13471
020c542
Thanks @delucis! - Updates the README to indicate that the Tailwind integration is deprecated
@astrojs/vercel@8.1.3
Patch Changes

Changes
Currently if a user has a custom 404.astro
or 500.astro
we set the correct status code in the response, but not the correct status text, instead leaving the default OK
. This PR ensures the correct text is set too.
Fixes #13259
Testing
Added tests
Docs

Changes
This PR restores the workflow removed in #13435
The workflow is now fixed: tj-actions/changed-files#2464 (comment)
Testing
Once approved, I will merge this PR and trigger again a renovate bot PR so it can pin the actions via digest.
Docs
N/A

Changes
Due to the recent events that happened with changed-files
, this PR enforces the use of the commit digests for our GH actions, instead of a tag.
I also added a group to renovate, so renovate will make a PR to update them all at once.
Testing
Once merged, renovate should update its dependency board. I will trigger a PR
Docs
N/A

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/sitemap@3.3.0
Minor Changes
- #13448
91c9503
Thanks @ematipico! - Add support for XSL in sitemap-index.xml
astro@5.5.3
Patch Changes
-
#13448
91c9503
Thanks @ematipico! - Upgrade to shiki v3 -
#13448
91c9503
Thanks @ematipico! - Handleserver.allowedHosts
when the value is true without attempting to push it into an array. -
#13448
91c9503
Thanks @ematipico! - Fixes a bug that caused some very large data stores to save incomplete data. -
#13448
91c9503
Thanks @ematipico! - Adds a new function calledinsertPageRoute
to the Astro Container API.The new function is useful when testing routes that, for some business logic, use
Astro.rewrite
.For example, if you have a route
/blog/post
and for some business decision there's a rewrite to/generic-error
, the container API implementation will look like this:import Post from '../src/pages/Post.astro'; import GenericError from '../src/pages/GenericError.astro'; import { experimental_AstroContainer as AstroContainer } from 'astro/container'; const container = await AstroContainer.create(); container.insertPageRoute('/generic-error', GenericError); const result = await container.renderToString(Post); console.log(result); // this should print the response from GenericError.astro
This new method only works for page routes, which means that endpoints aren't supported.
-
#13448
91c9503
Thanks @ematipico! - Fixes a bug that caused theastro add
command to ignore the--yes
flag for third-party integrations -
#13448
91c9503
Thanks @ematipico! - Prevent bad value in x-forwarded-host from crashing request -
#13448
91c9503
Thanks @ematipico! - Fix an issue in the Container API, where therenderToString
function doesn't render adequately nested slots when they are components. -
Updated dependencies [
91c9503
]:- @astrojs/markdown-remark@6.3.1
@astrojs/markdoc@0.13.1
Patch Changes
- Updated dependencies [
91c9503
]:- @astrojs/markdown-remark@6.3.1
@astrojs/mdx@4.2.1
Patch Changes
-
#13448
91c9503
Thanks @ematipico! - Upgrade to shiki v3 -
Updated dependencies [
91c9503
]:- @astrojs/markdown-remark@6.3.1
@astrojs/markdown-remark@6.3.1
Patch Changes
- #13448
91c9503
Thanks @ematipico! - Upgrade to shiki v3

Changes
Closes #13371
To avoid possible breaking changes with the canonical tag, now the function that creates the HTML redirect accepts a relative location and an absolution location.
Testing
Added a new test. I also tested it manually to make sure that it keeps working as expected.
Docs
N/A
Description
- Closes # - did not create an issue first
- Add social icon for
npm
- A work of art:

Can't make it any smaller (SVGOMG makes it larger)
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.32.3
Patch Changes
-
#2955
77b6a41
Thanks @trueberryless! - Adds 5 new icons:figma
,sketch
,vim
,vscode
, andzed
. -
#2961
da57fab
Thanks @ematipico! - Adds 1 new icon:jetbrains
.

Changes
- Allows using
astro:env
APIs globally on cloudflare - Updates wrangler to its latest version. There are breaking changes that should not affect us https://developers.cloudflare.com/workers/wrangler/migration/update-v3-to-v4/
- Closes #13475 (doesn't solve the cause really but should deal with that anyways)
Testing
Should still pass
Docs

Changes
This follows a RFC review from @matthewp
- By default, we try to generate automatic fallbacks
- With this PR, set
automaticFallback: false
on a family to disable this behaviors
Testing
Adds a test
Docs
RFC has been updated

This PR contains the following updates:
Package | Change | Age | Adoption | Passing | Confidence |
---|---|---|---|---|---|
miniflare (source) | ^3.20250224.0 -> ^4.20250317.0 |
Release Notes
cloudflare/workers-sdk (miniflare)
v4.20250317.0
Minor Changes
- #8445
74b0c73
Thanks @lambrospetrou! - D1 local developer experience supports sessions API bookmarks
Patch Changes
-
#8538
5ae180e
Thanks @emily-shen! - chore: update dependencies of "miniflare" packageThe following dependency versions have been updated:
Dependency From To workerd 1.20250310.0 1.20250317.0 @cloudflare/workers-types ^4.20250310.0 ^4.20250317.0
v4.20250310.0
Major Changes
-
#7334
869ec7b
Thanks @penalosa! - The--node-compat
flag andnode_compat
config properties are no longer supported as of Wrangler v4. Instead, use thenodejs_compat
compatibility flag. This includes the functionality from legacynode_compat
polyfills and natively implemented Node.js APIs. See https://developers.cloudflare.com/workers/runtime-apis/nodejs for more information.If you need to replicate the behaviour of the legacy
node_compat
feature, refer to https://developers.cloudflare.com/workers/wrangler/migration/update-v3-to-v4/ for a detailed guide. -
#7334
869ec7b
Thanks @penalosa! - Packages in Workers SDK now support the versions of Node that Node itself supports (Current, Active, Maintenance). Currently, that includes Node v18, v20, and v22.
v3.20250310.1
Patch Changes
- #8453
f90a669
Thanks @workers-devprod! - trigger dummy v3 maintenance release for testing
v3.20250310.0
Patch Changes
-
#8423
8242e07
Thanks @dependabot! - chore: update dependencies of "miniflare" packageThe following dependency versions have been updated:
Dependency From To workerd 1.20250224.0 1.20250310.0 @cloudflare/workers-types ^4.20250224.0 ^4.20250310.0 -
#8390
53e6323
Thanks @GregBrimble! - Parse and apply metafiles (_headers
and_redirects
) inwrangler dev
for Workers Assets
Configuration
📅 Schedule: Branch creation - "* 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.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
- If you want to rebase/retry this PR, check this box
This PR was generated by Mend Renovate. View the repository job log.

This PR contains the following updates:
Release Notes
microsoft/playwright (@playwright/test)
v1.51.1
Highlights
https://github.com/microsoft/playwright/issues/35093 - [Regression]: TimeoutOverflowWarning: 2149630
.634 does not fit into a 32-bit signed integer
https://github.com/microsoft/playwright/issues/35138 - [Regression]: TypeError: Cannot read properties of undefined (reading 'expectInfo')
Browser Versions
- Chromium 134.0.6998.35
- Mozilla Firefox 135.0
- WebKit 18.4
This version was also tested against the following stable channels:
- Google Chrome 133
- Microsoft Edge 133
tailwindlabs/tailwindcss (@tailwindcss/vite)
v4.0.15
v4.0.14
Fixed
- Do not extract candidates with JS string interpolation
${
(#17142) - Fix extraction of variants containing
.
character (#17153) - Fix extracting candidates in Clojure/ClojureScript (#17087)
v4.0.13
Fixed
- Fix Haml pre-processing (#17051)
- Ensure
.node
and.wasm
files are not scanned for utilities (#17123) - Improve performance when scanning JSON files (#17125)
- Fix extracting candidates containing dots in Haml, Pug, and Slim pre processors (#17094, #17085, #17113)
- Don't create invalid CSS when encountering a link wrapped in square brackets (#17129)
alpinejs/alpine (alpinejs)
v3.14.9
What's Changed
- Fix focus documentation example code by @iamshcc in https://github.com/alpinejs/alpine/pull/4496
- Add skip children to morph by @joshhanley in https://github.com/alpinejs/alpine/pull/4568
New Contributors
- @iamshcc made their first contribution in https://github.com/alpinejs/alpine/pull/4496
Full Changelog: alpinejs/alpine@v3.14.8...v3.14.9
ai/nanoid (nanoid)
v5.1.5
- Fixed latest version on npm after 3.x release.
v5.1.4
- Fixed latest version on npm after 3.x release.
antfu-collective/package-manager-detector (package-manager-detector)
v1.1.0
🚀 Features
- Support
devEngines
field - by @zanminkian in https://github.com/antfu-collective/package-manager-detector/issues/50 (ba53a)
View changes on GitHub
sass/dart-sass (sass)
v1.86.0
-
Add support for
%
as an expression in its own right. It will still be parsed
as the modulo operator when between two other expressions, but in any other
context it will be an expression whose value is the unquoted string%
. -
Consider
attr()
to be a special number function that can be used as a
channel in color functions. -
Deprecate user-defined functions named
type()
so that we can eventually
support the new CSStype()
function.
Dart API
- Increase the minimum Dart SDK to 3.6.0.
typescript-eslint/typescript-eslint (typescript-eslint)
v8.27.0
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.
vitest-dev/vitest (vitest)
v3.0.9
🐞 Bug Fixes
- Typings of
ctx.skip()
asnever
- by @sirlancelot in https://github.com/vitest-dev/vitest/issues/7608 (09f35) - Cleanup vitest in public
resolveConfig
API - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7623 (db14a) - Fix
toHaveBeenCalledWith(asymmetricMatcher)
withundefined
arguments - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7624 (0fb21) - Race condition in RPC filesystem cache. - by @dts in https://github.com/vitest-dev/vitest/issues/7531 (b7f55)
- Fix
getState().testPath
during collection with no isolation - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7640 (3fb3f) - Support custom toString method in %s format - by @pengooseDev in https://github.com/vitest-dev/vitest/issues/7637 (46d93)
- browser:
- Fail playwright timeouts earlier than a test timeout - by @sheremet-va and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7565 (5eb4c)
- Remove @testing-library/dom from dependencies #7555)" - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7628 and https://github.com/vitest-dev/vitest/issues/7555 (94b27)
- coverage:
- Browser mode +
coverage.all
- by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7597 (422ba)
- Browser mode +
- runner:
- Show stacktrace on hook timeout error - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7502 (268a1)
- vite-node:
- Fix source map of inlined node_modules - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7557 (34aa3)
- Fix missing
buildStart
- by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7652 (29f5a)
- web-worker:
- Ensure
removeEventListener
is bound to worker - by @joelgallant in https://github.com/vitest-dev/vitest/issues/7631 (ff42b)
- Ensure
View changes on GitHub
Configuration
📅 Schedule: Branch creation - "* 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.

Changes
- Fixes: #13342
- Fix handling of server.allowedHosts when the value is true.
- Ensures that a boolean
true
value is accepted without attempting to convert it into an array.
Testing
- Manually tested by setting allowedHosts: true in astro.config.mjs.
- Verified that astro info and astro dev no longer throw configuration errors.
Docs
No documentation updates needed as this aligns with existing Vite behavior.

Changes
Fixes #13067
In the initial issue, all slots passed to the renderToString function are considered strings, so when we pass them to the renderChild function, the HTML escaper breaks the component.
When a slot is passed to the renderToString function, a new SlotString is created.
I created a SlotString for now, but I don't know if this solution is the best approach (it's my first PR on Astro).
Let me know if it's correct or not. :)
Testing
I added a case inside container-with-vitest\test\Card.test.ts
that reproduces the case displayed on the issue here.
Docs
The documentation is already present as mentioned by the initial issue.

Changes
Refactors the types of ActionAPIContext
to not inherit functions from APIContext
.
Testing
CI should stay green
Docs
N/A

Changes
- If a bad value is provide by this header, we simply ignore it and fallback to the host provided by the host header (if there is one).
- Fixes #13392
Testing
- Test added
Docs
N/A, bug fix

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.6.0
Minor Changes
- #13437
013fa87
Thanks @Vardhaman619! - Handle server.allowedHosts when the value is true without attempting to push it into an array.
Patch Changes
-
#13324
ea74336
Thanks @ematipico! - Upgrade to shiki v3 -
#13372
7783dbf
Thanks @ascorbic! - Fixes a bug that caused some very large data stores to save incomplete data. -
#13358
8c21663
Thanks @ematipico! - Adds a new function calledinsertPageRoute
to the Astro Container API.The new function is useful when testing routes that, for some business logic, use
Astro.rewrite
.For example, if you have a route
/blog/post
and for some business decision there's a rewrite to/generic-error
, the container API implementation will look like this:import Post from '../src/pages/Post.astro'; import GenericError from '../src/pages/GenericError.astro'; import { experimental_AstroContainer as AstroContainer } from 'astro/container'; const container = await AstroContainer.create(); container.insertPageRoute('/generic-error', GenericError); const result = await container.renderToString(Post); console.log(result); // this should print the response from GenericError.astro
This new method only works for page routes, which means that endpoints aren't supported.
-
#13426
565583b
Thanks @ascorbic! - Fixes a bug that caused theastro add
command to ignore the--yes
flag for third-party integrations -
#13428
9cac9f3
Thanks @matthewp! - Prevent bad value in x-forwarded-host from crashing request -
#13432
defad33
Thanks @P4tt4te! - Fix an issue in the Container API, where therenderToString
function doesn't render adequately nested slots when they are components. -
Updated dependencies [
ea74336
]:- @astrojs/markdown-remark@6.3.1
@astrojs/sitemap@3.3.0
Minor Changes
- #13421
382f5db
Thanks @sweeneytr! - Add support for XSL in sitemap-index.xml
@astrojs/markdoc@0.13.1
Patch Changes
- Updated dependencies [
ea74336
]:- @astrojs/markdown-remark@6.3.1
@astrojs/mdx@4.2.1
Patch Changes
-
#13324
ea74336
Thanks @ematipico! - Upgrade to shiki v3 -
Updated dependencies [
ea74336
]:- @astrojs/markdown-remark@6.3.1
@astrojs/markdown-remark@6.3.1
Patch Changes
- #13324
ea74336
Thanks @ematipico! - Upgrade to shiki v3

Changes
Ensures that the "x is not an official Astro package" prompt respects the --yes
flag
Fixes #13399
Testing
Manually tested.
Docs

Changes
- Creates astro errors and uses them
Testing
Updated
Docs
N/A

Changes
- Improves vite plugin cleanup
Testing
N/A
Docs
N/A

Changes
- Enables styling of sitemap via XSL (eXtensible Styling Language)
- Passes existing config.xslURL to
SiteMapIndexStream
Docs Link- I assume that a separate config value for
sitemap-index.xml
is unneeded, as historic examples of XSL for sitemaps handle both the index and map XML files.
- I assume that a separate config value for
Testing
- I extended the tests that ensured
sitemap-0.xml
included the XSL to also test thatsitemap-index.xml
includes it.
Docs
I don't believe the docs need to be updated, as the description of the sitemap plugin's config is the only place I've seen XSL (or xslURL
) referenced, and that value's usage doesn't differ in a way that merits documentation. I expected the xslURL
value to behave this way already, from the docs.

Description
This PR adds found new icons: vscode, zed, vim and jetbrains

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.5.2
Patch Changes
-
#13415
be866a1
Thanks @ascorbic! - Reuses experimental session storage object between requests. This prevents memory leaks and improves performance for drivers that open persistent connections to a database. -
#13420
2f039b9
Thanks @ematipico! - It fixes an issue that caused some regressions in how styles are bundled.

Changes
- Validates the name of the font family, to make sure we can generate a proper css variable name
Testing
Added
Docs
N/A

Changes
Moves the storage object to a static property on AstroSession
, meaning it can be reused between requests. This avoids memory leaks and excessive connections when using drivers that open persistent DB connections.
Fixes #13376
Testing
Tested manually. Passes all session tests.
Docs

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.5.1
Patch Changes

Changes
Small fix to types
Testing
Docs

Changes
- Updates how we read font metrics by switching from fontaine to capsize
- Capsize was used under the hood by fontaine. But fontaine abstracted it too much so we couldn't do some caching
- I copied part of fontaine's source which is not tested
- I updated the code from fontaine so it uses less dependencies, so this PR makes Astro lighter
Testing
Updated
Docs
N/A

Changes
If Astro detects that sharp is not installed when trying to transform an image it will throw a MissingSharp
error. However when this happens during a build, we currently catch it and instead throw a CouldNotTransformImage
error, with a message suggesting the image is corrupt. The correct error is buried in the cause
. This PR checks if the thrown error is an AstroError, and if so rethrows it rather than throwing a CouldNotTransformImage
error. This means that the MissingSharp
error is logged correctly.
Testing
Tested manually
Docs

Changes
- What does this change?
New PrefetchOptions
param eagerness
that can be explicitly stated for prefetch()
function.
Usecase: letting a browser manage when a page should be prerendered will simplify web site code compared to default behavior (no eagerness
passed will automatically default to immediate
, causing headcaches if you want to use FIFO strategy available for moderate
and conservative
args)
Reference doc: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script/type/speculationrules#eagerness
Testing
No tests added, as there weren't for PrefetchOptions
Docs
/cc @withastro/maintainers-docs
prefetch()
doc should be updated accordingly to notify users a new option to be passed on

Changes
Currently if a file is edited in dev, any schema errors will be displayed by the Vite dev server as an UnhandledRejectionError
. This is because the schema validation happens in the file watcher, and isn't caught and displayed during the rendering. This ensures that AstroErrors (including InvalidContentEntryDataError
) that are caught by the dev server are recognised and displayed directly, rather than as unhandled rejections.
Testing
Tested manually
Docs

Changes
While working on an adapter, I encountered a scenario where app.match()
correctly matches a route, but the dynamic route ultimately returns a 404. In such cases, a prerendered 404 page needs to be served.
Currently, when a prerendered 404 page exists, fetch
is used to retrieve it. However, in some environments, it would be useful to provide a custom implementation for fetching the prerendered page.
In my specific use case, I am deploying to a Cloudflare Worker, where not all workers can call themselves. This limitation makes it necessary to have a way to override the default fetch
behavior.
This PR introduces support for a user-provided fetch
function (string -> Response
), which will be used when SSR needs to serve a prerendered 404/500 page.
Testing
- Added a test for this specific scenario: a server target with a prerendered 404.
- Updated the test adapter to propagate the custom
fetch
function.
Docs
/cc @withastro/maintainers-docs

Changes
Exposes the functionality implemented in the compiler: withastro/compiler#1055
I added a new experimental flag (name to bikeshed, of course).
Testing
Added a test
Docs

Changes
This PR makes a bunch of changes related to the fonts configuration:
- Extracts schemas to be reused in the Astro config and in types
- Improves schemas to allow more font options (eg.
featureSettings
) - Adds errors to avoid name conflicts. Consider the errors messages placeholders, we'll refine them once team docs make a proper review
I'd like your opinion on a TODO (I added a PR comment as well)
Testing
- Adds unit tests
- Disable whitespace sensitivty as I took the opportunity to improve some things in the config validation test
Docs
N/A

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.5.0
Minor Changes
-
#13402
3e7b498
Thanks @ematipico! - Adds a new experimental flag calledexperimental.preserveScriptOrder
that renders<script>
and<style>
tags in the same order as they are defined.When rendering multiple
<style>
and<script>
tags on the same page, Astro currently reverses their order in your generated HTML output. This can give unexpected results, for example CSS styles being overridden by earlier defined style tags when your site is built.With the new
preserveScriptOrder
flag enabled, Astro will generate the styles in the order they are defined:import { defineConfig } from 'astro/config'; export default defineConfig({ experimental: { preserveScriptOrder: true, }, });
For example, the following component has two
<style>
tags, and both define the same style for thebody
tag:<p>I am a component</p> <style> body { background: red; } </style> <style> body { background: yellow; } </style>
Once the project is compiled, Astro will create an inline style where
yellow
appears first, and thenred
. Ultimately, thered
background is applied:body { background: #ff0; } body { background: red; }
When
experimental.preserveScriptOrder
is set totrue
, the order of the two styles is kept as it is, and in the style generatedred
appears first, and thenyellow
:body { background: red; } body { background: #ff0; }
This is a breaking change to how Astro renders project code that contains multiple
<style>
and<script>
tags in the same component. If you were previously compensating for Astro's behavior by writing these out of order, you will need to update your code.This will eventually become the new default Astro behavior, so we encourage you to add this experimental style and script ordering as soon as you are able! This will help us test the new behavior and ensure your code is ready when this becomes the new normal.
For more information as this feature develops, please see the experimental script order docs.
-
#13352
cb886dc
Thanks @delucis! - Adds support for a newexperimental.headingIdCompat
flagBy default, Astro removes a trailing
-
from the end of IDs it generates for headings ending with
special characters. This differs from the behavior of common Markdown processors.You can now disable this behavior with a new configuration flag:
// astro.config.mjs import { defineConfig } from 'astro/config'; export default defineConfig({ experimental: { headingIdCompat: true, }, });
This can be useful when heading IDs and anchor links need to behave consistently across your site
and other platforms such as GitHub and npm.If you are using the
rehypeHeadingIds
plugin directly, you can also pass this new option:// astro.config.mjs import { defineConfig } from 'astro/config'; import { rehypeHeadingIds } from '@astrojs/markdown-remark'; import { otherPluginThatReliesOnHeadingIDs } from 'some/plugin/source'; export default defineConfig({ markdown: { rehypePlugins: [ [rehypeHeadingIds, { experimentalHeadingIdCompat: true }], otherPluginThatReliesOnHeadingIDs, ], }, });
-
#13311
a3327ff
Thanks @chrisirhc! - Adds a new configuration option for Markdown syntax highlightingexcludeLangs
This option provides better support for diagramming tools that rely on Markdown code blocks, such as Mermaid.js and D2 by allowing you to exclude specific languages from Astro's default syntax highlighting.
This option allows you to avoid rendering conflicts with tools that depend on the code not being highlighted without forcing you to disable syntax highlighting for other code blocks.
The following example configuration will exclude highlighting for
mermaid
andmath
code blocks:import { defineConfig } from 'astro/config'; export default defineConfig({ markdown: { syntaxHighlight: { type: 'shiki', excludeLangs: ['mermaid', 'math'], }, }, });
Read more about this new option in the Markdown syntax highlighting configuration docs.
Patch Changes
-
#13404
4e78b4d
Thanks @ascorbic! - Fixes a bug in error handling that saving a content file with a schema error would display an "unhandled rejection" error instead of the correct schema error -
#13379
d59eb22
Thanks @martrapp! - Fixes an edge case where the client router executed scripts twice when used with a custom swap function that only swaps parts of the DOM. -
#13393
6b8fdb8
Thanks @renovate! - Updatesprimsjs
to version 1.30.0, which adds support for more languages and fixes a security advisory which does not affect Astro. -
#13374
7b75bc5
Thanks @ArmandPhilippot! - Fixes the documentation of the i18n configuration wheremanual
was presented as a key ofrouting
instead of an available value. -
#13380
9bfa6e6
Thanks @martrapp! - Fixes an issue where astro:page-load fires before all scripts are executed -
#13407
0efdc22
Thanks @ascorbic! - Displays correct error message when sharp isn't installed -
Updated dependencies [
cb886dc
,a3327ff
]:- @astrojs/markdown-remark@6.3.0
@astrojs/markdoc@0.13.0
Minor Changes
-
#13352
cb886dc
Thanks @delucis! - Adds support for a newexperimental.headingIdCompat
flagBy default, Astro removes a trailing
-
from the end of IDs it generates for headings ending with
special characters. This differs from the behavior of common Markdown processors.You can now disable this behavior with a new configuration flag:
// astro.config.mjs import { defineConfig } from 'astro/config'; export default defineConfig({ experimental: { headingIdCompat: true, }, });
This can be useful when heading IDs and anchor links need to behave consistently across your site
and other platforms such as GitHub and npm.If you are using the
rehypeHeadingIds
plugin directly, you can also pass this new option:// astro.config.mjs import { defineConfig } from 'astro/config'; import { rehypeHeadingIds } from '@astrojs/markdown-remark'; import { otherPluginThatReliesOnHeadingIDs } from 'some/plugin/source'; export default defineConfig({ markdown: { rehypePlugins: [ [rehypeHeadingIds, { experimentalHeadingIdCompat: true }], otherPluginThatReliesOnHeadingIDs, ], }, });
Patch Changes
@astrojs/mdx@4.2.0
Minor Changes
-
#13352
cb886dc
Thanks @delucis! - Adds support for a newexperimental.headingIdCompat
flagBy default, Astro removes a trailing
-
from the end of IDs it generates for headings ending with
special characters. This differs from the behavior of common Markdown processors.You can now disable this behavior with a new configuration flag:
// astro.config.mjs import { defineConfig } from 'astro/config'; export default defineConfig({ experimental: { headingIdCompat: true, }, });
This can be useful when heading IDs and anchor links need to behave consistently across your site
and other platforms such as GitHub and npm.If you are using the
rehypeHeadingIds
plugin directly, you can also pass this new option:// astro.config.mjs import { defineConfig } from 'astro/config'; import { rehypeHeadingIds } from '@astrojs/markdown-remark'; import { otherPluginThatReliesOnHeadingIDs } from 'some/plugin/source'; export default defineConfig({ markdown: { rehypePlugins: [ [rehypeHeadingIds, { experimentalHeadingIdCompat: true }], otherPluginThatReliesOnHeadingIDs, ], }, });
Patch Changes
@astrojs/markdown-remark@6.3.0
Minor Changes
-
#13352
cb886dc
Thanks @delucis! - Adds support for a newexperimental.headingIdCompat
flagBy default, Astro removes a trailing
-
from the end of IDs it generates for headings ending with
special characters. This differs from the behavior of common Markdown processors.You can now disable this behavior with a new configuration flag:
// astro.config.mjs import { defineConfig } from 'astro/config'; export default defineConfig({ experimental: { headingIdCompat: true, }, });
This can be useful when heading IDs and anchor links need to behave consistently across your site
and other platforms such as GitHub and npm.If you are using the
rehypeHeadingIds
plugin directly, you can also pass this new option:// astro.config.mjs import { defineConfig } from 'astro/config'; import { rehypeHeadingIds } from '@astrojs/markdown-remark'; import { otherPluginThatReliesOnHeadingIDs } from 'some/plugin/source'; export default defineConfig({ markdown: { rehypePlugins: [ [rehypeHeadingIds, { experimentalHeadingIdCompat: true }], otherPluginThatReliesOnHeadingIDs, ], }, });
-
#13311
a3327ff
Thanks @chrisirhc! - Adds a new configuration option for Markdown syntax highlightingexcludeLangs
This option provides better support for diagramming tools that rely on Markdown code blocks, such as Mermaid.js and D2 by allowing you to exclude specific languages from Astro's default syntax highlighting.
This option allows you to avoid rendering conflicts with tools that depend on the code not being highlighted without forcing you to disable syntax highlighting for other code blocks.
The following example configuration will exclude highlighting for
mermaid
andmath
code blocks:import { defineConfig } from 'astro/config'; export default defineConfig({ markdown: { syntaxHighlight: { type: 'shiki', excludeLangs: ['mermaid', 'math'], }, }, });
Read more about this new option in the Markdown syntax highlighting configuration docs.

Changes
Use package-manager-detector to replace preferred-pm and which-pm. It includes features of both of those packages with a smaller dependency footprint. It also includes APIs to get the package-manager-specific command strings so we don't have to handle them manually.
NOTE: It's easier to review some of the changes with whitespace disabled for diffs.
Testing
Tested manually through the CLIs. Here's some screenshots:



Docs
Added a changeset, but this is mostly an internal change and shouldn't change the detected package manager in most project setups.

This PR contains the following updates:
Package | Change | Age | Adoption | Passing | Confidence |
---|---|---|---|---|---|
prismjs | 1.29.0 -> 1.30.0 |
GitHub Vulnerability Alerts
CVE-2024-53382
Prism (aka PrismJS) through 1.29.0 allows DOM Clobbering (with resultant XSS for untrusted input that contains HTML but does not directly contain JavaScript), because document.currentScript lookup can be shadowed by attacker-injected HTML elements.
Release Notes
Configuration
📅 Schedule: Branch creation - "" (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.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
- If you want to rebase/retry this PR, check this box
This PR was generated by Mend Renovate. View the repository job log.

Changes
- What does this change?
- Be short and concise. Bullet points can help!
- Before/after screenshots can help as well.
- Don't forget a changeset!
pnpm exec changeset
Testing
Docs

Description
This PR updates the Toc.astro
to properly support Chinese text anchors. Previously, the anchor links did not account for percent-encoded Chinese characters. As a result, headings containing Chinese text were not correctly recognized.

Changes
- Remove trailing spaces from blog example's links.
- A formatter introduced newlines inside the anchor tags on the blog example's home
index.astro
page, causing the link to include a trailing space. - Not the worst thing, just looks a little unpolished compared to everything else I've experienced getting to know Astro :)
- I've put the anchor tags on their own lines to avoid this issue, and prevent future formatters from re-introducing the issue (tested with Astro extension's formatter, at least).
- No changeset because this is in
examples/*
.
Before
After
Testing
- Ran the example locally (
cd examples/blog && npm run dev
) and it fixes the issue. - Ran Astro VS Code extension's formatter, confirmed issue is not re-introduced. (Also tried Prettier's.)
Docs
No docs added - small visual tweak to blog example page links.


This PR contains the following updates:
Release Notes
netlify/functions (@netlify/functions)
v3.0.1
Bug Fixes
- deps: update dependency @netlify/serverless-functions-api to v1.32.0 (#542) (0cefb35)
- deps: update dependency @netlify/serverless-functions-api to v1.33.0 (#562) (704141f)
- deps: update dependency @netlify/serverless-functions-api to v1.34.0 (#568) (73001eb)
- deps: update dependency @netlify/serverless-functions-api to v1.35.0 (#572) (82b29ca)
tailwindlabs/tailwindcss (@tailwindcss/vite)
v4.0.12
Fixed
- Vite: Fix
url(…)
rebasing in transitively imported CSS files (#16965) - PostCSS: Rebase
url(…)
s in imported CSS files (#16965) - Ensure utilities are sorted based on their actual property order (#16995)
- Ensure strings in Pug and Slim templates are handled correctly (#17000)
- Ensure classes between
}
and{
are properly extracted (#17001) - Fix
razor
/cshtml
pre-processing (#17027) - Ensure extracting candidates from JS embedded in a PHP string works as expected (#17031)
v4.0.11
Fixed
- Ensure classes containing
--
are extracted correctly (#16972) - Ensure classes containing numbers followed by dash or underscore are extracted correctly (#16980)
- Ensure arbitrary container queries are extracted correctly (#16984)
- Ensure classes ending in
[
are extracted in Slim templating language (#16985) - Ensure arbitrary variables with data types are extracted correctly (#16986)
v4.0.10
Added
- Add
col-<number>
androw-<number>
utilities forgrid-column
andgrid-row
(#15183)
Fixed
- Ensure
not-*
does not remove:is(…)
from variants (#16825) - Ensure
@keyframes
are correctly emitted when using a prefix (#16850) - Don't swallow
@utility
declarations when@apply
is used in nested rules (#16940) - Ensure
outline-hidden
behaves likeoutline-none
outside of forced colors mode (#16943) - Allow
!important
on CSS variables again (#16873) - Vite: Do not crash when encountering an
.svg
file with#
or?
in the filename (#16957) - Ensure utilities are properly detected within square brackets (#16306)
- Ensure utilities are properly detected using Angular's conditional class binding syntax (#16306)
- Ensure utilities starting with numbers are properly extracted from Slim templates (#16306)
- Discard arbitrary property candidates that have guaranteed-invalid property names (#16306)
Changed
postcss/autoprefixer (autoprefixer)
v10.4.21
- Fixed old
-moz-
prefix for:placeholder-shown
(by @Marukome0743).
cloudflare/workers-sdk (miniflare)
v3.20250224.0
Patch Changes
-
#8338
2d40989
Thanks @GregBrimble! - feat: Upload _headers and _redirects if present with Workers Assets as part ofwrangler deploy
andwrangler versions upload
. -
#8251
da568e5
Thanks @dependabot! - chore: update dependencies of "miniflare" packageThe following dependency versions have been updated:
Dependency From To workerd 1.20250214.0 1.20250224.0 @cloudflare/workers-types ^4.20250214.0 ^4.20250224.0 -
#8288
cf14e17
Thanks @CarmenPopoviciu! - feat: Add assets Proxy Worker skeleton in miniflareThis commit implements a very basic Proxy Worker skeleton, and wires it in the "pipeline" miniflare creates for assets. This Worker will be incrementally worked on, but for now, the current implementation will forward all incoming requests to the Router Worker, thus leaving the current assets behaviour in local dev, the same.
This is an experimental feature available under the
--x-assets-rpc
flag:wrangler dev --x-assets-rpc
. -
#8355
79c7810
Thanks @GregBrimble! - fix: Add default empty router config for assets in Miniflare
publint/publint (publint)
v0.3.9
Patch Changes
-
Support the
formatMessage
utility in the browser. It has a newcolor: 'html'
option to highlight important parts with<strong>
tags instead of ANSI colors. It also has a newreference: boolean
option so the messages are worded in reference of the message location. (e1cfef0
) -
If
formatMessage
is passed apackage.json
object with missing keys, the message part that references the value will now fallback to"undefined"
instead of completely erroring out. (45962d1
)
rollup/rollup (rollup)
v4.35.0
2025-03-08
Features
- Pass build errors to the closeBundle hook (#5867)
Pull Requests
- #5852: chore(deps): update dependency eslint-plugin-unicorn to v57 (@renovate[bot], @lukastaegert)
- #5862: fix(deps): update swc monorepo (major) (@renovate[bot], @lukastaegert)
- #5867: feat(5858): make closeBundle hook receive the last error (@GauBen)
- #5872: chore(deps): update dependency builtin-modules to v5 (@renovate[bot])
- #5873: chore(deps): update uraimo/run-on-arch-action action to v3 (@renovate[bot])
- #5874: fix(deps): lock file maintenance minor/patch updates (@renovate[bot])
sveltejs/svelte (svelte)
v5.22.6
Patch Changes
-
fix: skip
log_if_contains_state
if only logging literals (#15468) -
fix: Add
closedby
property to HTMLDialogAttributes type (#15458) -
fix: null and warnings for local handlers (#15460)
v5.22.5
Patch Changes
-
fix: memoize
clsx
calls (#15456) -
fix: respect
svelte-ignore hydration_attribute_changed
on elements with spread attributes (#15443) -
fix: always use
setAttribute
when settingstyle
(#15323) -
fix: make
style:
directive and CSS handling more robust (#15418)
v5.22.4
Patch Changes
- fix: never deduplicate expressions in templates (#15451)
v5.22.3
Patch Changes
- fix: run effect roots in tree order (#15446)
sveltejs/language-tools (svelte2tsx)
v0.7.35
- fix: take other snippets into account when checking for hoistability (#2668)
- fix: disambiguate render in module script (#2667)
- fix: properly transform $props.id when $props is assigned to props (#2694)
- fix: correctly handle unclosed tags with same type tag inside (#2682)
- fix: handle booleanish popover (#2702)
- perf: cache files during emitDts (#2701)
typescript-eslint/typescript-eslint (typescript-eslint)
v8.26.1
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.
vitejs/vite (vite)
v6.2.1
- refactor: remove
isBuild
check from preAliasPlugin (#19587) (c9e086d), closes #19587 - refactor: restore endsWith usage (#19554) (6113a96), closes #19554
- refactor: use
applyToEnvironment
in internal plugins (#19588) (f678442), closes #19588 - fix(css): stabilize css module hashes with lightningcss in dev mode (#19481) (92125b4), closes #19481
- fix(deps): update all non-major dependencies (#19555) (f612e0f), closes #19555
- fix(reporter): fix incorrect bundle size calculation with non-ASCII characters (#19561) (437c0ed), closes #19561
- fix(sourcemap): combine sourcemaps with multiple sources without matched source (#18971) (e3f6ae1), closes #18971
- fix(ssr): named export should overwrite export all (#19534) (2fd2fc1), closes #19534
- feat: add
*?url&no-inline
type and warning for.json?inline
/.json?no-inline
(#19566) (c0d3667), closes #19566 - test: add glob import test case (#19516) (aa1d807), closes #19516
- test: convert config playground to unit tests (#19568) (c0e68da), closes #19568
- test: convert resolve-config playground to unit tests (#19567) (db5fb48), closes #19567
- perf: flush compile cache after 10s (#19537) (6c8a5a2), closes #19537
- chore(css): move environment destructuring after condition check (#19492) (c9eda23), closes #19492
- chore(html): remove unnecessary value check (#19491) (797959f), closes #19491
vitest-dev/vitest (vitest)
v3.0.8
🐞 Bug Fixes
- Fix fetch cache multiple writes - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7546 (1a8b4)
- Use browser.isolate instead of config.isolate - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7560 (4b5ed)
- Remove vestigial spy stub, import directly from
@vitest/spy
- by @mrginglymus in https://github.com/vitest-dev/vitest/issues/7575 (7f7ff) - Correctly split the argv string - by @btea in https://github.com/vitest-dev/vitest/issues/7533 (4325a)
- browser:
- Remove @testing-library/dom from dependencies - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7555 (5387a)
- Improve source map handling for bundled files - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7534 (e2c57)
- Print related test file and potential test in unhandled errors - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7564 (fee90)
- runner:
- Fix
beforeEach/All
cleanup callback timeout - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7500 (0c292) - Fix and simplify
Task.suite
initialization - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7414 (ca9ff)
- Fix
- snapshot:
- Allow inline snapshot calls on same location with same snapshot - by @jycouet and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7464 (d5cb8)
- vite-node:
- Fix
buildStart
on Vite 6 - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7480 (c0f47)
- Fix
View changes on GitHub
Configuration
📅 Schedule: Branch creation - "* 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.

Changes
The problem was the the content of the toolbar settings overflowed the toolbar. That made it very hard to read the text it looked broken.
I did a few things:
- The text of the last row takes up the whole width of the section
- If the content is still too large, the developer can scroll the content of the toolbar
Before
After
Bildschirmaufnahme.2025-03-09.um.12.35.04.mov
Testing
I did some manual testing, by resizing the window and testing the changes on a real iPhone. I did not any automated tests, because there's now way to test this without a visual test. Please correct me if I'm wrong.
Docs
This change does not need documentation, it doesn't change how users
need to interact with Astro.

Changes
In typescript/lib/lib.dom.d.ts
the ViewTransition interface now includes the types
property.
Added the property to our simulated viewTransition object for browsers without native support.
https://discord.com/channels/830184174198718474/1055240348970000454/1346390166356361289
Testing
Compiles without errors after removing the @ts-expect-error comment
Docs
n.a. / upstream change

Changes
Fixes #12858
The original code to execute scripts after swap() made the assumption that all inline scripts
are directly executed when inserted into the DOM. This is not true for inline module scripts,
which are deferred but still executed in order.
Inline module scripts can not be awaited for with onload.
Thus to be able to wait for the execution of all scripts,
we make sure that the last inline module script
is always followed by an external module script.
Testing
new e2e test
Docs
n.a. / bugfix

Changes
Fixes #13375
Marks scripts executed on initial page load as executed to prevent their re-execution if they are not replaced with the next call to swap.
This might happen if a custom swap() function only swaps part of the DOM and leaves some original scripts in place.
Testing
added e2e test
Docs
n.a. / bug fix

Changes
This fixes pop-ups and highlights rendering over the audit list window.
Fixes #11114
Testing
Added e2e test.
Docs

Changes
This fixes a few race condition bugs that manifested in sites with lots of very large markdown files.
Adds a method to the data store object that returns a promise that resolves when saving to disk is complete.
Resets the #dirty
flag before saving to disk. The main cause of #13310 was that debounced saves that happened while the large data store file was being written to disk would be lost because the dirty flag was cleared once the file write was complete, missing the fact that more more entries need writing.
Fixes #13310
Testing
Tested with the #13310 repro
Docs
- see withastro/astro#12360 for details
Description
- Closes #
- What does this PR change? Give us a brief description.
- Did you change something visual? A before/after screenshot can be helpful.
Description
This PR adds dark and light variants for images in Markdown.
Source of inspiration: the corresponding feature in Material for MkDocs
Examples:

Changes
Those additions should help users that try to use redirects to resolve issues with trailing slashes. Those redirects are not supported ATM. It is quite time consuming to debug those, so having something in the docs about it should save people some time.
More about the issue in #12532 (comment)
Testing
This is a docs change. The test case is in #12532 (comment)
Docs
This is only a docs change.
Description
- Closes #
- What does this PR change? Adding my starlight site to your showcase :)
- Did you change something visual?

Changes
- This adds an optional
as
property to a font family - The RFC has been updated but TLDR use
as
if:- You are an integration and want to make sure you don't conflict with fonts declared by the user
- Your font name can't be properly converted to a CSS variable name
Testing
Tests updated
Docs
RFC updated

Changes
This PR removes makeSvgComponent
from the exported functions. That function is meant to be used internally and shouldn't be exported.
I added a note at top of the file.
Testing
CI should pass
Docs
N/A

Changes
- Adds css variables generations
- Fixes a bug around fallbacks that impacted css variables
- RFC has been updated to remove the
cssVar
prop from theFont
component as I'll go with another solution (upcoming PR)
Testing
Adds unit tests
Docs
N/A

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.4.3
Patch Changes
-
#13381
249d52a
Thanks @martrapp! - Adds thetypes
property to the viewTransition object when the ClientRouter simulates parts of the View Transition API on browsers w/o native support. -
#13367
3ce4ad9
Thanks @ematipico! - Adds documentation to various utility functions used for remote image services -
#13347
d83f92a
Thanks @bluwy! - Updates internal CSS chunking behavior for Astro components' scoped styles. This may result in slightly more CSS chunks created, but should allow the scoped styles to only be included on pages that use them. -
#13388
afadc70
Thanks @ematipico! - Fixes a bug whereastro:config/server
andastro:config/client
had incorrect types. -
#13355
042d1de
Thanks @ematipico! - Adds documentation to the assets utilities for remote service images. -
#13395
6d1c63f
Thanks @bluwy! - Usespackage-manager-detector
to detect the package manager used in the project -
#13363
a793636
Thanks @ematipico! - Fixes an issue where the internal functionmakeSvgComponent
was incorrectly exposed as a public API. -
Updated dependencies [
042d1de
]:- @astrojs/internal-helpers@0.6.1
- @astrojs/markdown-remark@6.2.1
@astrojs/cloudflare@12.2.4
Patch Changes
- Updated dependencies [
042d1de
]:- @astrojs/internal-helpers@0.6.1
- @astrojs/underscore-redirects@0.6.0
@astrojs/markdoc@0.12.11
Patch Changes
- Updated dependencies [
042d1de
]:- @astrojs/internal-helpers@0.6.1
- @astrojs/markdown-remark@6.2.1
@astrojs/mdx@4.1.1
Patch Changes
- Updated dependencies []:
- @astrojs/markdown-remark@6.2.1
@astrojs/netlify@6.2.3
Patch Changes
- Updated dependencies [
042d1de
]:- @astrojs/internal-helpers@0.6.1
- @astrojs/underscore-redirects@0.6.0
@astrojs/node@9.1.3
Patch Changes
- Updated dependencies [
042d1de
]:- @astrojs/internal-helpers@0.6.1
@astrojs/svelte@7.0.6
Patch Changes
- #13339
a05e6ab
Thanks @Hugos68! - Fixes a case where$props.id()
would not be unique across multiple islands
@astrojs/vercel@8.1.2
Patch Changes
- Updated dependencies [
042d1de
]:- @astrojs/internal-helpers@0.6.1
@astrojs/internal-helpers@0.6.1
Patch Changes
- #13355
042d1de
Thanks @ematipico! - Adds documentation to the assets utilities for remote service images.
@astrojs/markdown-remark@6.2.1
Patch Changes
- Updated dependencies [
042d1de
]:- @astrojs/internal-helpers@0.6.1
@astrojs/upgrade@0.5.1
Patch Changes

Changes
Closes #13264
This PR adds support for Astro.rewrite
for the container API. A new method called insertPageRoute
has been exposed that will help users to test routes that trigger a possible rewrite.
Testing
I added a new test
Docs
Will create a PR

Changes
This PR adds the command build:ci
to the adapters we recently moved.
That command is used by the ecosystem CI of vite
Testing
Merge it and check with the vite team
Docs
N/A
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-markdoc@0.3.0
Minor Changes
-
#2931
10b93b3
Thanks @HiDeoo! - Adds support for thetitle
,frame
, andmeta
fence attributes to code blocks.These new optional attributes add support for Expressive Code text & line markers. The following example renders a code block using a terminal frame with a title:
```js {% title="editor.exe" frame="terminal" %} console.log('Hello, world!'); ```
Any other text or line markers should be specified using the
meta
fence attribute. For example, the following code block renders a code block using thediff
syntax combined with thejs
language syntax highlighting and themarkers
text highlighted:```diff {% meta="lang=js 'markers'" %} function thisIsJavaScript() { // This entire block gets highlighted as JavaScript, // and we can still add diff markers to it! - console.log('Old code to be removed') + console.log('New and shiny code!') } ```
To learn more about all the available options, check out the Expressive Code documentation.

Changes
- Simplifies the
cache
util - Removes duplicated loop while resolving font families
- Extracts code to a new
loadFonts
function, making it easier to test - Extract things outside of the the vite plugin file
- Moves constants around to fix a circular dependency problem
Testing
Adds a unit test
Docs
N/A

Changes
- Adds a new
experimental.headingIdCompat
flag - Uses this to disable sanitizing heading IDs when set
- Applies to default Markdown processing as well as the Markdoc and MDX integrations
- Why? Astro currently strips a single trailing
-
from heading IDs it generates, deviating from the standardgithub-slugger
behavior that is common to many platforms. The aim would be for us to remove this nonstandard behavior entirely in a future major release.
Testing
Added some tests for headings with special characters
Docs
No docs yet, but this will need experimental feature docs if the basic idea is accepted.
/cc @withastro/maintainers-docs for feedback!

Changes
Vercel only allows images to be generated with widths that are from a configured allowlist. This PR ensures that experimental responsive images only include allowed sizes.
Fixes #13325
Testing
Adds tests
Docs

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.4.2
Patch Changes
-
#12985
84e94cc
Thanks @matthewp! - Prevent re-executing scripts in client router -
#13349
50e2e0b
Thanks @ascorbic! - Correctly escapes attributes in Markdown images -
#13262
0025df3
Thanks @ematipico! - Refactor Astro Actions to not use a middleware. Doing so should avoid unexpected issues when using the Astro middleware at the edge.
@astrojs/db@0.14.8
Patch Changes
-
#13343
a001a75
Thanks @dreyfus92! - Fix Astro DB seed failing when project path contains spaces. This resolves by properly decoding URL pathnames that contain encoded spaces (%20) before passing them to Vite's ssrLoadModule. -
Updated dependencies []:
- @astrojs/studio@0.1.4
@astrojs/partytown@2.1.4
Patch Changes
-
#13109
5c0e0ea
Thanks @arnottferels! - Adds support forconfig.lib
, which allows changing the destination of the files:export default defineConfig({ integrations: [partytown({ config: { + lib: '/assets/lib/~partytown/'; } })] })
@astrojs/vercel@8.1.1
Patch Changes

Changes
In Markdown, the generated attributes in img elements were not being correctly esacaped. This meant that including >
or "
in the img alt would break the tag. This isn't a security issue because Markdown is trusted, and you can add an actual script tag if you want.
Fixes #13345
Testing
Added test case
Docs

Changes
Vite 6.2 has builtin support for treeshaking scoped CSS (vitejs/vite#19418) which we can use to replace our internal implementation copy before.
Testing
Existing tests should pass. There's added test in the past from #10291. If CI fails, maybe there's a bug in Vite.
EDIT: The new behaviour will now properly place scoped styles into its own chunk so that it's only loaded by pages that uses the component's scoped styles. This means the CSS is more granular and accurately loaded, but results in slightly more CSS chunks which causes some tests that did not anticipate it to fail. I've made fixes to the tests for these cases.
Docs
n/a. Shouldn't require a changeset as it's an internal refactor.

This PR contains the following updates:
Release Notes
withastro/astro (@astrojs/solid-js)
v5.0.5
Patch Changes
- #13323
80926fa
Thanks @ematipico! - Updatesesbuild
andvite
to the latest to avoid false positives audits warnings caused byesbuild
.
v5.0.4
Patch Changes
- #13011
cf30880
Thanks @ascorbic! - Upgrades Vite
v5.0.3
Patch Changes
- #12887
ea603ae
Thanks @louisescher! - Adds a warning message when multiple JSX-based UI frameworks are being used without either theinclude
orexclude
property being set on the integration.
withastro/astro (@astrojs/svelte)
v7.0.5
Patch Changes
- #13323
80926fa
Thanks @ematipico! - Updatesesbuild
andvite
to the latest to avoid false positives audits warnings caused byesbuild
.
v7.0.4
Patch Changes
- #13011
cf30880
Thanks @ascorbic! - Upgrades Vite
withastro/astro (@astrojs/vue)
v5.0.7
Patch Changes
- #13251
3842ce5
Thanks @florian-lefebvre! - Fixes a case where the compiler could not be resolved automatically
v5.0.6
Patch Changes
- #13011
cf30880
Thanks @ascorbic! - Upgrades Vite
v5.0.5
Patch Changes
- #12887
ea603ae
Thanks @louisescher! - Adds a warning message when multiple JSX-based UI frameworks are being used without either theinclude
orexclude
property being set on the integration.
changesets/changesets (@changesets/changelog-github)
v0.5.1
Patch Changes
- Updated dependencies [
84a4a1b
]:
fontsource/font-files (@fontsource/montserrat)
[v5.2.5
](https://redirect.g
Configuration
📅 Schedule: Branch creation - "* 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.

Changes
adds decodeURIComponent
to properly handle the pathname
closes: #13332
Testing
Docs
there's no need to update docs.
Last fetched: | Scheduled refresh: Every Saturday
See Customizing GitHub Activity Pages to configure your own
Inspired by prs.atinux.com