You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#1734164b0d66 Thanks @Princesseuh! - Fixes custom pre components not applying to syntax-highlighted code blocks when using the Sätteri Markdown processor with MDX.
#215915cf592 Thanks @ingvaldlorentzen! - Fixed already-published version detection with npm 12, which always wraps successful npm info --json output in an array. The unwrapped output made changeset publish treat every package as unpublished and fail attempting to republish existing versions.
feat: add 'layoutViewport' string option to rootBoundary. Unlike the visual 'viewport' boundary, it remains stable while pinch-zooming or when a mobile software keyboard is open, and unlike a manually passed Rect of the documentElement's client size, it accounts for space reserved by scrollbar-gutter: stable.
Patch Changes
fix: remove redundant passive options from scroll listeners
fix: support explicit undefined for optional properties with exactOptionalPropertyTypes
fix(autoUpdate): update immediately instead of waiting for the 1s layoutShift refresh throttle when the reference moved during an observer refresh
fix(getClippingRect): correct clipping-ancestor filtering for fixed-position elements
perf(dom): reduce bundle size and skip redundant per-call work in positioning utilities
fix(getViewportRect): account for scrollbar-gutter: stable both-edges reserved space
fix(getViewportRect): don't overflow past a left-side document scrollbar
fix(platform): don't throw in getClientRects when a virtual element without a getClientRects method is used with the inline() middleware
fix(autoUpdate): refresh layout shift observer on root resize
Support --watch --poll[=ms] in @tailwindcss/cli when filesystem events are unreliable or unavailable (#20297)
Canonicalization: match arbitrary hex colors against theme colors case-insensitively (e.g. bg-[#fff] and bg-[#FFF] → bg-white) (#20298)
Prevent Preflight from overriding Firefox's native iframe:focus-visible outline styles (#20292)
Ensure theme('colors.foo') in JS plugins resolves correctly when both --color-foo and --color-foo-bar exist (#20299)
Ensure fractional opacity modifiers work with named shadow sizes like shadow-sm/12.5, text-shadow-sm/12.5, drop-shadow-sm/12.5, and inset-shadow-sm/12.5 (#20302)
Parse selectors like [data-foo]div as two selectors instead of one (#20303)
Ensure @tailwindcss/postcss rebuilds when a preprocessor like Sass changes the input CSS without changing the input file on disk (#20310)
Ensure CSS nesting is handled even when Lightning CSS isn't run, such as in @tailwindcss/browser and Tailwind Play (#20124)
Prevent achromatic theme colors from shifting hue when mixed in polar color spaces like oklch (#20314)
Ensure --spacing(0) is optimized to 0px instead of 0 so it remains a <length> when used in calc(…) (#20319)
Load @parcel/watcher only when needed in @tailwindcss/cli --watch mode, so one-off builds and --watch --poll work when @parcel/watcher can't be loaded (#20325)
Use explicit platform fonts instead of system-ui and ui-sans-serif so CJK text respects the page's lang attribute on Windows (#20318)
Prevent @tailwindcss/upgrade from rewriting ignored files when run from a subdirectory (#20329)
Ensure earlier @source rules pointing to nested files are scanned when later @source rules point to files in parent folders (#20335)
Prevent @tailwindcss/vite from triggering full page reloads when scanned files are processed by Vite but haven't been loaded as modules yet (#20336)
When set to true, renderable entries (such as Markdown) are not rendered during content sync. Instead, rendering is deferred until the entry is actually rendered in a page, using the same on-demand path that .mdx files already use.
This reduces memory usage during astro build for large collections whose rendered output is much larger than the source — for example, Markdown that uses heavy rehype plugins like rehype-katex. Such builds could previously run out of memory while storing the eagerly-rendered HTML for every entry.
By default deferRender is false, preserving the existing behavior of rendering entries eagerly during sync so their rendered HTML can be cached across builds.
#1729630698a2 Thanks @ematipico! - Adds a new experimental collectionStorage option for controlling how the content layer persists its data store
By default, Astro serializes the entire content layer data store to a single file (.astro/data-store.json). For very large content collections, this file can grow large enough to hit platform file-size limits.
Set experimental.collectionStorage: 'chunked' to instead split the data store across many smaller, content-addressed files inside a .astro/data-store/ directory, described by a manifest:
Because each part file is named by a hash of its contents, unchanged parts keep the same name across builds and are not rewritten, and identical parts are deduplicated. The default value is 'single-file', which preserves the current behavior.
#1721444c4989 Thanks @ematipico! - Adds support for the more specific CSP directives script-src-elem, script-src-attr, style-src-elem, and style-src-attr through a new kind option.
Previously, CSP was only scoped to generic script-src/style-src directives. Now each source or hash can be scoped to a narrower directive — for example, to allow inline style attributes (such as those from define:vars or Shiki) without loosening the policy for your <style> and <link> elements.
Scoping sources and hashes in your config
Each entry in resources and hashes can be an object with a kind property. Depending on whether you use scriptDirective or styleDirective, "element" targets script-src-elem or style-src-elem, "attribute" targets script-src-attr or style-src-attr, and "default" (the same as a bare string or hash) targets script-src or style-src.
#1725884814d4 Thanks @astrobot-houston! - Adds a new format() option to the paginate utility. The format() option is a function that accepts the current URL of the page, and returns a new URL.
For example, when your host only supports URLs using the .html extension, you can use format() to add it to the generated URLs:
---exportasyncfunction getStaticPaths({ paginate }) {// Load your data with fetch(), getCollection(), etc.const response =awaitfetch(`https://pokeapi.co/api/v2/pokemon?limit=150`);const result =awaitresponse.json();const allPokemon =result.results;// Return a paginated collection of paths for all itemsreturnpaginate(allPokemon, { pageSize: 10,format: (url) =>`${url}.html`, });}const { page } =Astro.props;---
#173317db6420 Thanks @matthewp! - Adds a --ignore-lock flag to astro dev for starting a dev server without checking or writing the lock file, so it can run alongside an already-running dev server for the same project.
The new instance is not tracked by astro dev stop, astro dev status, or astro dev logs. --ignore-lock cannot be combined with --background (or an auto-detected AI agent environment, which runs dev servers in the background automatically) or --force, since those rely on the lock file.
#173324407483 Thanks @astrobot-houston! - Fixes the JSON logger crashing with process is not defined in non-Node runtimes like Cloudflare's workerd. The JSON logger now uses console.log/console.error instead of process.stdout/process.stderr, matching the pattern already used by the console logger.
#17286a249317 Thanks @astrobot-houston! - Fixes the first browser visit after astro dev starts triggering an immediate full page reload
#17369a94d4a5 Thanks @adamchal! - Fixes an issue where a client island could permanently fail to hydrate if the first attempt to load its component failed. Islands now reliably recover from transient import failures, which previously did not work for React components during astro dev.
#173633f4efc5 Thanks @astrobot-houston! - Fixes astro preview --open not opening a browser when using an adapter with a custom preview entrypoint, such as @astrojs/cloudflare
#17313e2e319d Thanks @ronits2407! - Exposes the AstroRuntimeLogger interface to allow users to properly type the logger functions at runtime.
#17328025cc74 Thanks @matthewp! - Fixes astro dev --force not replacing an already-running dev server
#173532bba277 Thanks @ematipico! - Updates the Astro compiler to the latest version, which fixes many regressions. Refer to the changelog for more details.
#1734479a41e0 Thanks @adamchal! - Improves rendering performance for pages with many component instances, such as repeated MDX <Content /> components.
Every change in this release is a bug fix, but each one corrects a scoring or ranking bug. Scores and result ordering will shift for some queries. That is why this ships as a minor rather than a patch: the public API is unchanged and upgrading is a drop-in, but the results you get back can differ, and that should not arrive silently in a patch bump.
If you assert on exact score values or on a specific result order, expect those assertions to need updating. Re-baseline them against 7.5.0 rather than pinning to 7.4.x, since the 7.4.x behavior was wrong in the cases below.
Field-length normalisation now counts words correctly. Tabs and newlines were not treated as word separators, so a multi-line or tab-delimited field was scored as though it were one long word, making it look far shorter than it is. Fields containing \t, \n, or \r now score differently (#830).
Key weights are now normalised in object and keyless-logical search. Weights that did not sum to 1 were applied unnormalised, skewing the relative influence of each key. If your keys weights do not already sum to 1, your relative ranking changes (#833).
limit now returns the correct top-N when scores tie. A tie at the cutoff boundary could evict a result that should have been kept, so limit could return the wrong items, not merely the right items in a different order (#835).
Bitap respects minMatchCharLength in the exact-match shortcut. Matches shorter than minMatchCharLength were still reported via the exact-match fast path, so the matches array could contain entries it was configured to exclude (#831).
Bug Fixes
bitap: respect minMatchCharLength in exact-match shortcut (dbb98b6), closes #831
fieldNorm: count tabs and newlines as word separators (6fe85b0), closes #830
fieldNorm: count word-starts instead of space transitions (2946f97)
scoring: normalise key weights in object and keyless-logical search (e164b61), closes #833
search: keep the correct top-N under limit when scores tie (437f8f3), closes #835, thanks @spokodev for the report and the fix
Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.
This PR includes no changesets
When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types
Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.
You can manually request rebase by checking the rebase/retry box above.
⚠️Warning: custom changes will be lost.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
dependenciesAnything related to dependency issues or updates.
1 participant
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
7.0.2→7.0.311.0.2→11.0.32.31.0→2.31.10.5.0→0.5.11.7.6→1.8.01.2.89→1.2.901.24.0→1.25.01.24.0→1.25.00.2.0→0.2.12.69.2→2.70.04.3.2→4.3.31.170.17→1.170.181.168.27→1.168.301.167.18→1.167.217.0.7→7.1.10.5.0→0.5.11.0.0-rc.4-5d5b77c→1.0.0-rc.4-de6c3567.4.2→7.5.01.24.0→1.25.011.23.0→11.24.21.73.0→1.74.00.24.0→0.25.011.11.0→11.14.08.5.16→8.5.190.26.0→0.28.05.56.4→5.56.64.7.2→4.7.34.3.2→4.3.30.22.4→0.22.98.1.4→8.1.5Release Notes
withastro/astro (@astrojs/mdx)
v7.0.3Compare Source
Patch Changes
64b0d66Thanks @Princesseuh! - Fixes customprecomponents not applying to syntax-highlighted code blocks when using the Sätteri Markdown processor with MDX.withastro/astro (@astrojs/vercel)
v11.0.3Compare Source
Patch Changes
3a43cf0Thanks @matthewp! - Improves internal ISR route handlingchangesets/changesets (@changesets/cli)
v2.31.1Compare Source
Patch Changes
15cf592Thanks @ingvaldlorentzen! - Fixed already-published version detection with npm 12, which always wraps successfulnpm info --jsonoutput in an array. The unwrapped output madechangeset publishtreat every package as unpublished and fail attempting to republish existing versions.comarkdown/comark (@comark/svelte)
v0.5.1: @comark/svelte v0.5.1Compare Source
0.5.1 (2026-07-14)
floating-ui/floating-ui (@floating-ui/dom)
v1.8.0Compare Source
Minor Changes
'layoutViewport'string option torootBoundary. Unlike the visual'viewport'boundary, it remains stable while pinch-zooming or when a mobile software keyboard is open, and unlike a manually passedRectof the documentElement's client size, it accounts for space reserved byscrollbar-gutter: stable.Patch Changes
undefinedfor optional properties withexactOptionalPropertyTypeslayoutShiftrefresh throttle when the reference moved during an observer refreshscrollbar-gutter: stable both-edgesreserved spacegetClientRectswhen a virtual element without agetClientRectsmethod is used with theinline()middleware@floating-ui/core@1.8.0,@floating-ui/utils@0.2.12lucide-icons/lucide (@lucide/astro)
v1.25.0: Version 1.25.0Compare Source
What's Changed
circle-euroto match other euro icons by @ericfennis in #4531hdmi-porticon by @karsa-mistmere in #4554ethernet-porticon by @karsa-mistmere in #4555file-boxicon by @karsa-mistmere in #4552scan-boxicon by @karsa-mistmere in #4551Full Changelog: lucide-icons/lucide@1.24.0...1.25.0
prettier/prettier (@prettier/plugin-oxc)
v0.2.1Compare Source
sveltejs/kit (@sveltejs/kit)
v2.70.0Compare Source
Minor Changes
defineEnvVarsto@sveltejs/kit/env(#16378)Patch Changes
NODE_ENVvalue (#16313)v2.69.3Compare Source
Patch Changes
fix: detect destructured
loadandactionsexports during type generation (#16329)fix: ensure CSS URL references are absolute when
paths.relativeisfalse(#16315)fix: align MAX_COOKIE_SIZE with RFC 6265bis (#16322)
tailwindlabs/tailwindcss (@tailwindcss/vite)
v4.3.3Compare Source
Fixed
--watch --poll[=ms]in@tailwindcss/cliwhen filesystem events are unreliable or unavailable (#20297)bg-[#fff]andbg-[#FFF]→bg-white) (#20298)iframe:focus-visibleoutline styles (#20292)theme('colors.foo')in JS plugins resolves correctly when both--color-fooand--color-foo-barexist (#20299)shadow-sm/12.5,text-shadow-sm/12.5,drop-shadow-sm/12.5, andinset-shadow-sm/12.5(#20302)[data-foo]divas two selectors instead of one (#20303)@tailwindcss/postcssrebuilds when a preprocessor like Sass changes the input CSS without changing the input file on disk (#20310)@tailwindcss/browserand Tailwind Play (#20124)oklch(#20314)--spacing(0)is optimized to0pxinstead of0so it remains a<length>when used incalc(…)(#20319)@parcel/watcheronly when needed in@tailwindcss/cli --watchmode, so one-off builds and--watch --pollwork when@parcel/watchercan't be loaded (#20325)system-uiandui-sans-serifso CJK text respects the page'slangattribute on Windows (#20318)@tailwindcss/upgradefrom rewriting ignored files when run from a subdirectory (#20329)@sourcerules pointing to nested files are scanned when later@sourcerules point to files in parent folders (#20335)@tailwindcss/vitefrom triggering full page reloads when scanned files are processed by Vite but haven't been loaded as modules yet (#20336)TanStack/router (@tanstack/react-router)
v1.170.18Compare Source
Patch Changes
e2dd204]:TanStack/router (@tanstack/react-start)
v1.168.30Compare Source
Patch Changes
v1.168.29Compare Source
Patch Changes
v1.168.28Compare Source
Patch Changes
TanStack/router (@tanstack/router-cli)
v1.167.21Compare Source
Patch Changes
78dd1a6]:v1.167.20Compare Source
Patch Changes
e56a677]:v1.167.19Compare Source
Patch Changes
withastro/astro (astro)
v7.1.1Compare Source
Patch Changes
4b03702Thanks @matthewp! - Fixes encoded request paths being routed incorrectly when using domain-based i18nv7.1.0Compare Source
Minor Changes
#17302
5f4dc03Thanks @astrobot-houston! - Adds a newdeferRenderoption to theglob()content loaderWhen set to
true, renderable entries (such as Markdown) are not rendered during content sync. Instead, rendering is deferred until the entry is actually rendered in a page, using the same on-demand path that.mdxfiles already use.This reduces memory usage during
astro buildfor large collections whose rendered output is much larger than the source — for example, Markdown that uses heavy rehype plugins likerehype-katex. Such builds could previously run out of memory while storing the eagerly-rendered HTML for every entry.By default
deferRenderisfalse, preserving the existing behavior of rendering entries eagerly during sync so their rendered HTML can be cached across builds.#17296
30698a2Thanks @ematipico! - Adds a new experimentalcollectionStorageoption for controlling how the content layer persists its data storeBy default, Astro serializes the entire content layer data store to a single file (
.astro/data-store.json). For very large content collections, this file can grow large enough to hit platform file-size limits.Set
experimental.collectionStorage: 'chunked'to instead split the data store across many smaller, content-addressed files inside a.astro/data-store/directory, described by a manifest:Because each part file is named by a hash of its contents, unchanged parts keep the same name across builds and are not rewritten, and identical parts are deduplicated. The default value is
'single-file', which preserves the current behavior.#17214
44c4989Thanks @ematipico! - Adds support for the more specific CSP directivesscript-src-elem,script-src-attr,style-src-elem, andstyle-src-attrthrough a newkindoption.Previously,
CSPwas only scoped to genericscript-src/style-srcdirectives. Now each source or hash can be scoped to a narrower directive — for example, to allow inlinestyleattributes (such as those fromdefine:varsor Shiki) without loosening the policy for your<style>and<link>elements.Scoping sources and hashes in your config
Each entry in
resourcesandhashescan be an object with akindproperty. Depending on whether you usescriptDirectiveorstyleDirective,"element"targetsscript-src-elemorstyle-src-elem,"attribute"targetsscript-src-attrorstyle-src-attr, and"default"(the same as a bare string or hash) targetsscript-srcorstyle-src.Scoping at runtime
The same
kindoption is available on the runtime CSP API, where the existing methods now also accept an object:#17258
84814d4Thanks @astrobot-houston! - Adds a newformat()option to thepaginateutility. Theformat()option is a function that accepts the current URL of the page, and returns a new URL.For example, when your host only supports URLs using the
.htmlextension, you can useformat()to add it to the generated URLs:#17331
7db6420Thanks @matthewp! - Adds a--ignore-lockflag toastro devfor starting a dev server without checking or writing the lock file, so it can run alongside an already-running dev server for the same project.The new instance is not tracked by
astro dev stop,astro dev status, orastro dev logs.--ignore-lockcannot be combined with--background(or an auto-detected AI agent environment, which runs dev servers in the background automatically) or--force, since those rely on the lock file.#17389
16de021Thanks @florian-lefebvre! - Allows passing URL entrypoints when configuring the loggerMatching other APIs like session drivers or font providers, the logger entrypoint can now be a URL:
Patch Changes
#17332
4407483Thanks @astrobot-houston! - Fixes the JSON logger crashing withprocess is not definedin non-Node runtimes like Cloudflare's workerd. The JSON logger now usesconsole.log/console.errorinstead ofprocess.stdout/process.stderr, matching the pattern already used by the console logger.#17391
186a1e7Thanks @florian-lefebvre! - Fixes a case where an integration could not update the logger withupdateConfig()#17394
d9f99e1Thanks @matthewp! - Fixes element-specific CSP directives to preserve the existing behavior of configured script and style resources#17374
b2d1b3eThanks @astrobot-houston! - Fixes dev server returning 404 for?urlimported assets when accessed via browser navigation#17390
ed71eafThanks @florian-lefebvre! - Removes an unused and undocumented generic from theAstroLoggerDestinationtype#17393
092da56Thanks @matthewp! - Hardens generated transition styles, development metadata, and server island URLs when embedding dynamic valuesv7.0.9Compare Source
Patch Changes
#17286
a249317Thanks @astrobot-houston! - Fixes the first browser visit afterastro devstarts triggering an immediate full page reload#17369
a94d4a5Thanks @adamchal! - Fixes an issue where a client island could permanently fail to hydrate if the first attempt to load its component failed. Islands now reliably recover from transient import failures, which previously did not work for React components duringastro dev.v7.0.8Compare Source
Patch Changes
#17363
3f4efc5Thanks @astrobot-houston! - Fixesastro preview --opennot opening a browser when using an adapter with a custom preview entrypoint, such as@astrojs/cloudflare#17313
e2e319dThanks @ronits2407! - Exposes theAstroRuntimeLoggerinterface to allow users to properly type the logger functions at runtime.#17328
025cc74Thanks @matthewp! - Fixesastro dev --forcenot replacing an already-running dev server#17353
2bba277Thanks @ematipico! - Updates the Astro compiler to the latest version, which fixes many regressions. Refer to the changelog for more details.#17344
79a41e0Thanks @adamchal! - Improves rendering performance for pages with many component instances, such as repeated MDX<Content />components.Updated dependencies [
64b0d66]:krisk/Fuse (fuse.js)
v7.5.0Compare Source
Every change in this release is a bug fix, but each one corrects a scoring or ranking bug. Scores and result ordering will shift for some queries. That is why this ships as a minor rather than a patch: the public API is unchanged and upgrading is a drop-in, but the results you get back can differ, and that should not arrive silently in a patch bump.
If you assert on exact
scorevalues or on a specific result order, expect those assertions to need updating. Re-baseline them against 7.5.0 rather than pinning to 7.4.x, since the 7.4.x behavior was wrong in the cases below.\t,\n, or\rnow score differently (#830).1were applied unnormalised, skewing the relative influence of each key. If yourkeysweights do not already sum to1, your relative ranking changes (#833).limitnow returns the correct top-N when scores tie. A tie at the cutoff boundary could evict a result that should have been kept, solimitcould return the wrong items, not merely the right items in a different order (#835).minMatchCharLengthin the exact-match shortcut. Matches shorter thanminMatchCharLengthwere still reported via the exact-match fast path, so thematchesarray could contain entries it was configured to exclude (#831).Bug Fixes
7.4.2 (2026-06-05)
Bug Fixes
7.4.1 (2026-06-02)
Bug Fixes
lucide-icons/lucide (lucide-react)
v1.25.0Compare Source
oxc-project/oxc-resolver (oxc-resolver)
v11.24.2Compare Source
🎨 Styling
Contributors
v11.24.1Compare Source
🚀 Features
ResolveError::TsconfigLoadFailedfor tsconfig read and parse failures (#1287) (by @shulaoda)🚜 Refactor
📚 Documentation
⚡ Performance
Contributors
oxc-project/oxc (oxlint)
v1.74.0Compare Source
🚀 Features
0433a83linter/eslint/no-inner-declarations: Addnamespacesoption (#24044) (Boshen)🐛 Bug Fixes
8337835linter: Error onignorePatternsthat cannot match files aoutside the config directory (#24341) (leaysgur)2ce5a33linter: ResolveignorePatternsrelative to the config dir (#24339) (leaysgur)⚡ Performance
7f80caclinter/vue/prop-name-casing: PrecompileignorePropsregex pattern (#24413) (connorshea)6272051linter/typescript/no-require-imports: Compile allow patterns once (#24417) (connorshea)33805b9linter/jsdoc/require-param: Compile checkTypesPattern regex once (#24420) (connorshea)oxc-project/tsgolint (oxlint-tsgolint)
v0.25.0Compare Source
What's Changed
Configuration
📅 Schedule: (UTC)
* 0-3 * * 1)🚦 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.
This PR was generated by Mend Renovate. View the repository job log.