# Astro changelog > The web framework for content-driven websites. - Vendor: Astro - Category: Frameworks & Libraries - Official site: https://astro.build - Tracked by: What's New (https://whatsnew.fyi/product/astro) - Harvested from: GitHub (withastro/astro) - Entries below: 25 of 26 (newest first; the rest are on https://whatsnew.fyi/product/astro) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. ## Releases ### @astrojs/netlify@8.1.3 - Date: 2026-07-28 - Version: @astrojs/netlify@8.1.3 - Original notes: https://github.com/withastro/astro/releases/tag/%40astrojs/netlify%408.1.3 - Permalink: https://whatsnew.fyi/product/astro/releases/astrojs-netlify-8.1.3 ###### Patch Changes - Updated dependencies \[[`c895b12`](https://github.com/withastro/astro/commit/c895b12b99a73f5a9f98d6699452d12c138f8a18)]: - @astrojs/internal-helpers@0.10.2 - @astrojs/underscore-redirects@1.0.3 ### astro-vscode@2.16.18 - Date: 2026-07-28 - Version: astro-vscode@2.16.18 - Original notes: https://github.com/withastro/astro/releases/tag/astro-vscode%402.16.18 - Permalink: https://whatsnew.fyi/product/astro/releases/astro-vscode-2.16.18 - **changed** — Update dependency js-yaml to v4.3.0 ###### Patch Changes - [#17474](https://github.com/withastro/astro/pull/17474) [`c895b12`](https://github.com/withastro/astro/commit/c895b12b99a73f5a9f98d6699452d12c138f8a18) Thanks [@nicksnyder](https://github.com/nicksnyder)! - Updates dependency `js-yaml` to v4.3.0 ### @astrojs/preact@6.0.2 - Date: 2026-07-28 - Version: @astrojs/preact@6.0.2 - Original notes: https://github.com/withastro/astro/releases/tag/%40astrojs/preact%406.0.2 - Permalink: https://whatsnew.fyi/product/astro/releases/astrojs-preact-6.0.2 - **changed** — Update @astrojs/internal-helpers to version 0.10.2 ###### Patch Changes - Updated dependencies \[[`c895b12`](https://github.com/withastro/astro/commit/c895b12b99a73f5a9f98d6699452d12c138f8a18)]: - @astrojs/internal-helpers@0.10.2 ### @astrojs/node@11.0.3 - Date: 2026-07-28 - Version: @astrojs/node@11.0.3 - Original notes: https://github.com/withastro/astro/releases/tag/%40astrojs/node%4011.0.3 - Permalink: https://whatsnew.fyi/product/astro/releases/astrojs-node-11.0.3 ###### Patch Changes - Updated dependencies \[[`c895b12`](https://github.com/withastro/astro/commit/c895b12b99a73f5a9f98d6699452d12c138f8a18)]: - @astrojs/internal-helpers@0.10.2 ### @astrojs/markdown-remark@7.2.2 - Date: 2026-07-28 - Version: @astrojs/markdown-remark@7.2.2 - Original notes: https://github.com/withastro/astro/releases/tag/%40astrojs/markdown-remark%407.2.2 - Permalink: https://whatsnew.fyi/product/astro/releases/astrojs-markdown-remark-7.2.2 ###### Patch Changes - Updated dependencies \[[`c895b12`](https://github.com/withastro/astro/commit/c895b12b99a73f5a9f98d6699452d12c138f8a18)]: - @astrojs/internal-helpers@0.10.2 ### @astrojs/mdx@7.0.5 - Date: 2026-07-28 - Version: @astrojs/mdx@7.0.5 - Original notes: https://github.com/withastro/astro/releases/tag/%40astrojs/mdx%407.0.5 - Permalink: https://whatsnew.fyi/product/astro/releases/astrojs-mdx-7.0.5 ###### Patch Changes - Updated dependencies \[[`c895b12`](https://github.com/withastro/astro/commit/c895b12b99a73f5a9f98d6699452d12c138f8a18)]: - @astrojs/internal-helpers@0.10.2 - @astrojs/markdown-remark@7.2.2 ### @astrojs/react@6.0.2 - Date: 2026-07-28 - Version: @astrojs/react@6.0.2 - Original notes: https://github.com/withastro/astro/releases/tag/%40astrojs/react%406.0.2 - Permalink: https://whatsnew.fyi/product/astro/releases/astrojs-react-6.0.2 - **changed** — Updated @astrojs/internal-helpers to version 0.10.2 ###### Patch Changes - Updated dependencies \[[`c895b12`](https://github.com/withastro/astro/commit/c895b12b99a73f5a9f98d6699452d12c138f8a18)]: - @astrojs/internal-helpers@0.10.2 ### @astrojs/markdown-satteri@0.3.5 - Date: 2026-07-28 - Version: @astrojs/markdown-satteri@0.3.5 - Original notes: https://github.com/withastro/astro/releases/tag/%40astrojs/markdown-satteri%400.3.5 - Permalink: https://whatsnew.fyi/product/astro/releases/astrojs-markdown-satteri-0.3.5 ###### Patch Changes - Updated dependencies \[[`c895b12`](https://github.com/withastro/astro/commit/c895b12b99a73f5a9f98d6699452d12c138f8a18)]: - @astrojs/internal-helpers@0.10.2 ### astro@7.1.5 - Date: 2026-07-28 - Version: astro@7.1.5 - Original notes: https://github.com/withastro/astro/releases/tag/astro%407.1.5 - Permalink: https://whatsnew.fyi/product/astro/releases/astro-7.1.5 - **fixed** — Fix a bug where an error while finalizing a request could prevent a response from being sent - **fixed** — Fix a case where a custom logger.entrypoint failed to load at runtime in a built server bundle - **fixed** — Fix action path resolution so that properties of a resolved action function are not treated as routable path segments - **fixed** — Fix a bug where the custom 404 or 500 page was not rendered when a middleware rewrite targeted a route that returned an empty 404/500 response - **changed** — Update dependency js-yaml to v4.3.0 ###### Patch Changes - [#17524](https://github.com/withastro/astro/pull/17524) [`7613030`](https://github.com/withastro/astro/commit/761303051021764c5b8bc43ae4e32629c15b61a8) Thanks [@matthewp](https://github.com/matthewp)! - Fixes a bug where an error while finalizing a request could prevent a response from being sent - [#17480](https://github.com/withastro/astro/pull/17480) [`f61ba9c`](https://github.com/withastro/astro/commit/f61ba9cfb028d9f7448eda3fea2726e179d66391) Thanks [@florian-lefebvre](https://github.com/florian-lefebvre)! - Fixes a case where a custom `logger.entrypoint` failed to load at runtime in a built server bundle. - [#17525](https://github.com/withastro/astro/pull/17525) [`e614b7b`](https://github.com/withastro/astro/commit/e614b7bd8a0dae403b1f9c219250847d326cbff2) Thanks [@matthewp](https://github.com/matthewp)! - Fixes action path resolution so that properties of a resolved action function are not treated as routable path segments - [#17284](https://github.com/withastro/astro/pull/17284) [`c775c1f`](https://github.com/withastro/astro/commit/c775c1f984d1c176bf26a0f9c435bf6c0d585443) Thanks [@matthewp](https://github.com/matthewp)! - Fixes a bug where the custom 404 (or 500) page was not rendered when a middleware rewrite targeted a route that returned an empty 404/500 response, and a blank page was returned instead - [#17474](https://github.com/withastro/astro/pull/17474) [`c895b12`](https://github.com/withastro/astro/commit/c895b12b99a73f5a9f98d6699452d12c138f8a18) Thanks [@nicksnyder](https://github.com/nicksnyder)! - Updates dependency `js-yaml` to v4.3.0 - Updated dependencies \[[`c895b12`](https://github.com/withastro/astro/commit/c895b12b99a73f5a9f98d6699452d12c138f8a18)]: - @astrojs/internal-helpers@0.10.2 - @astrojs/markdown-remark@7.2.2 - @astrojs/markdown-satteri@0.3.5 ### @astrojs/vercel@11.0.4 - Date: 2026-07-28 - Version: @astrojs/vercel@11.0.4 - Original notes: https://github.com/withastro/astro/releases/tag/%40astrojs/vercel%4011.0.4 - Permalink: https://whatsnew.fyi/product/astro/releases/astrojs-vercel-11.0.4 ###### Patch Changes - Updated dependencies \[[`c895b12`](https://github.com/withastro/astro/commit/c895b12b99a73f5a9f98d6699452d12c138f8a18)]: - @astrojs/internal-helpers@0.10.2 ### @astrojs/cloudflare@14.1.5 - Date: 2026-07-27 - Version: @astrojs/cloudflare@14.1.5 - Original notes: https://github.com/withastro/astro/releases/tag/%40astrojs/cloudflare%4014.1.5 - Permalink: https://whatsnew.fyi/product/astro/releases/astrojs-cloudflare-14.1.5 - **fixed** — Fix a bug where an explicit `cache: { enabled: false }` in your wrangler config was overridden and forced to `true` when a Workers cache provider was configured ###### Patch Changes - [#17376](https://github.com/withastro/astro/pull/17376) [`0216368`](https://github.com/withastro/astro/commit/0216368c621dd033223ca91d670801fe423d631d) Thanks [@astrobot-houston](https://github.com/astrobot-houston)! - Fixes a bug where an explicit `cache: { enabled: false }` in your wrangler config was overridden and forced to `true` when a Workers cache provider was configured - Updated dependencies \[]: - @astrojs/underscore-redirects@1.0.3 ### astro@7.1.4 - Date: 2026-07-27 - Version: astro@7.1.4 - Original notes: https://github.com/withastro/astro/releases/tag/astro%407.1.4 - Permalink: https://whatsnew.fyi/product/astro/releases/astro-7.1.4 - **fixed** — Fix duplicate CSS files being emitted in server output when a prerendered page and a server-rendered page share the same styles by reusing the CSS asset filename from the prerender build - **added** — Add the missing `background` prop to the `` and `` component types - **fixed** — Fix missing scoped styles for child components inside `client:only` islands in production builds - **fixed** — Fix session runtime errors being silently swallowed by `console.error` instead of routing through Astro's logger - **fixed** — Fix a session being left in a partial state after a storage failure during `session.regenerate()` - **fixed** — Prevent a visible terminal window from popping up on Windows when the dev server runs in background mode - **fixed** — Fix the `glob()` loader watcher so negation patterns like `!docs/drafts/**` correctly exclude files during development - **fixed** — Fix TypeScript path aliases from `tsconfig.json` not resolving in `astro.config.ts` ###### Patch Changes - [#17488](https://github.com/withastro/astro/pull/17488) [`d4f266d`](https://github.com/withastro/astro/commit/d4f266de4af009876baa554708705e5ac36572bb) Thanks [@emerson-d-lopes](https://github.com/emerson-d-lopes)! - Fixes duplicate CSS files being emitted in server output when a prerendered page and a server-rendered page share the same styles (e.g. a shared layout importing Tailwind). The prerender and SSR environments each emitted their own copy of the same stylesheet (`index.X.css` and `_..Y.css`); the SSR build now reuses the CSS asset filename from the prerender build when the stylesheet is backed by the same CSS source modules, so only a single file is emitted. - [#17472](https://github.com/withastro/astro/pull/17472) [`4dc590c`](https://github.com/withastro/astro/commit/4dc590c8fcdd9207492914dddb8e861c532ed904) Thanks [@astrobot-houston](https://github.com/astrobot-houston)! - Adds the missing `background` prop to the `` and `` component types. The prop already worked at runtime, but was absent from the types, causing `astro check` to report that `background` does not exist on the component props - [#17292](https://github.com/withastro/astro/pull/17292) [`0fc519d`](https://github.com/withastro/astro/commit/0fc519de12d69088052b76e096a4adfdc789c30c) Thanks [@astrobot-houston](https://github.com/astrobot-houston)! - Fixes missing scoped styles for child components inside `client:only` islands in production builds - [#17421](https://github.com/withastro/astro/pull/17421) [`f1448de`](https://github.com/withastro/astro/commit/f1448de83726a7ab21c89d45e2e26ed8f6ef6531) Thanks [@iamkaleemsajjad-hue](https://github.com/iamkaleemsajjad-hue)! - Fixes session runtime errors being silently swallowed by `console.error` instead of routing through Astro's logger - [#17421](https://github.com/withastro/astro/pull/17421) [`f1448de`](https://github.com/withastro/astro/commit/f1448de83726a7ab21c89d45e2e26ed8f6ef6531) Thanks [@iamkaleemsajjad-hue](https://github.com/iamkaleemsajjad-hue)! - Fixes a session being left in a partial state after a storage failure during `session.regenerate()`, preventing unnecessary storage reads on subsequent operations - [#17517](https://github.com/withastro/astro/pull/17517) [`82bf7e2`](https://github.com/withastro/astro/commit/82bf7e2008e3062cb8b32e9500804e71e4bfd30a) Thanks [@Hashim1999164](https://github.com/Hashim1999164)! - Prevents a visible terminal window from popping up on Windows when the dev server runs in background mode. The detached child process is now spawned with `windowsHide: true`, so console-subsystem grandchildren (such as `workerd.exe`) no longer get a new focus-stealing window allocated by Windows Terminal. - [#17510](https://github.com/withastro/astro/pull/17510) [`eaa1fb0`](https://github.com/withastro/astro/commit/eaa1fb0067406a58490d55686f9f617e4c834905) Thanks [@astrobot-houston](https://github.com/astrobot-houston)! - Fixes the `glob()` loader watcher so negation patterns like `!docs/drafts/**` correctly exclude files during development, matching the behavior of the initial scan. Previously, negations were treated as independent matchers, causing unrelated files (including `.astro/data-store.json`) to be ingested as collection entries - [#17511](https://github.com/withastro/astro/pull/17511) [`704e570`](https://github.com/withastro/astro/commit/704e570a43de11450372eb68ec467c154acc2e2e) Thanks [@astrobot-houston](https://github.com/astrobot-houston)! - Fixes TypeScript path aliases from `tsconfig.json` not resolving in `astro.config.ts` ### create-astro@5.2.3 - Date: 2026-07-27 - Version: create-astro@5.2.3 - Original notes: https://github.com/withastro/astro/releases/tag/create-astro%405.2.3 - Permalink: https://whatsnew.fyi/product/astro/releases/create-astro-5.2.3 - **fixed** — Fix create-astro silently writing template files to the wrong directory on Linux when the path contains non-ASCII characters ###### Patch Changes - [#17423](https://github.com/withastro/astro/pull/17423) [`08e8adb`](https://github.com/withastro/astro/commit/08e8adb697a54c728735ae8c89acc4b87ee0b7f0) Thanks [@astrobot-houston](https://github.com/astrobot-houston)! - Fixes `create-astro` silently writing template files to the wrong directory on Linux when the path contains non-ASCII characters. ### @astrojs/check@0.9.10 - Date: 2026-07-27 - Version: @astrojs/check@0.9.10 - Original notes: https://github.com/withastro/astro/releases/tag/%40astrojs/check%400.9.10 - Permalink: https://whatsnew.fyi/product/astro/releases/astrojs-check-0.9.10 - **changed** — Update dependency yargs to version 18 ###### Patch Changes - [#17447](https://github.com/withastro/astro/pull/17447) [`b01a692`](https://github.com/withastro/astro/commit/b01a6921cd8be574db2d82a6d2bbde7c7d319295) Thanks [@ocavue](https://github.com/ocavue)! - Update dependency `yargs` to version 18. See the [yargs changelog](https://github.com/yargs/yargs/releases/tag/v18.0.0) for details. ### @astrojs/markdoc@2.0.5 - Date: 2026-07-27 - Version: @astrojs/markdoc@2.0.5 - Original notes: https://github.com/withastro/astro/releases/tag/%40astrojs/markdoc%402.0.5 - Permalink: https://whatsnew.fyi/product/astro/releases/astrojs-markdoc-2.0.5 - **fixed** — Custom transform functions are no longer dropped when a tag or node also specifies a custom render component; user-written transforms are always preserved while only Markdoc's built-in transforms are removed - **fixed** — Custom transform functions are no longer incorrectly dropped for tags and nodes whose names require bracket access like side-note; the check now recognizes bracket notation, optional chaining, and whitespace in addition to dot notation ###### Patch Changes - [#17460](https://github.com/withastro/astro/pull/17460) [`3b93a1a`](https://github.com/withastro/astro/commit/3b93a1a1cce669b71729d2b946fa2d41dae79ad6) Thanks [@astrobot-houston](https://github.com/astrobot-houston)! - Fixes custom `transform` functions being dropped when a tag or node also specifies a custom `render` component. User-written transforms are now always preserved; only Markdoc's built-in transforms are removed so the custom component wins. - [#17191](https://github.com/withastro/astro/pull/17191) [`fc3fb2b`](https://github.com/withastro/astro/commit/fc3fb2bcfdd3223a6a9acfcb3b09efaa9d4a28e8) Thanks [@eldardada](https://github.com/eldardada)! - Fixes custom `transform` functions being incorrectly dropped for tags and nodes whose names require bracket access (e.g. `side-note`). The check that detects whether a transform respects a custom `render` component now recognizes bracket notation, optional chaining and whitespace, not only dot notation. ### @astrojs/mdx@7.0.4 - Date: 2026-07-27 - Version: @astrojs/mdx@7.0.4 - Original notes: https://github.com/withastro/astro/releases/tag/%40astrojs/mdx%407.0.4 - Permalink: https://whatsnew.fyi/product/astro/releases/astrojs-mdx-7.0.4 - **fixed** — Fix a bug where the integration was emitting React-cased attribute names ###### Patch Changes - [#17514](https://github.com/withastro/astro/pull/17514) [`41a00dd`](https://github.com/withastro/astro/commit/41a00dd86fc848763fa9dc6e501d6e85188c1306) Thanks [@gtritchie](https://github.com/gtritchie)! - Fixes a bug where the integration was emitting React-cased attribute names. ### @astrojs/language-server@2.16.13 - Date: 2026-07-21 - Version: @astrojs/language-server@2.16.13 - Original notes: https://github.com/withastro/astro/releases/tag/%40astrojs/language-server%402.16.13 - Permalink: https://whatsnew.fyi/product/astro/releases/astrojs-language-server-2.16.13 - **fixed** — Errors in files included in tsconfig project references are now properly caught ###### Patch Changes - [#17465](https://github.com/withastro/astro/pull/17465) [`6a1c1d8`](https://github.com/withastro/astro/commit/6a1c1d8571bda501d6ac64b726b4250f67c6bb0b) Thanks [@florian-lefebvre](https://github.com/florian-lefebvre)! - Fixes a case where errors in files included in tsconfig project references would never be caught ### @astrojs/markdoc@2.0.4 - Date: 2026-07-21 - Version: @astrojs/markdoc@2.0.4 - Original notes: https://github.com/withastro/astro/releases/tag/%40astrojs/markdoc%402.0.4 - Permalink: https://whatsnew.fyi/product/astro/releases/astrojs-markdoc-2.0.4 - **changed** — Update dependency htmlparser2 to v12 ###### Patch Changes - [#17441](https://github.com/withastro/astro/pull/17441) [`6180c8e`](https://github.com/withastro/astro/commit/6180c8e03b93942c4bdd8c3c45a0ae94906eff69) Thanks [@renovate](https://github.com/apps/renovate)! - Updates dependency htmlparser2 to v12 ### astro@7.1.3 - Date: 2026-07-20 - Version: astro@7.1.3 - Original notes: https://github.com/withastro/astro/releases/tag/astro%407.1.3 - Permalink: https://whatsnew.fyi/product/astro/releases/astro-7.1.3 - **fixed** — Image optimization during astro build now respects the container's CPU limit, reducing peak memory usage and avoiding out-of-memory crashes in CPU-limited containers ###### Patch Changes - [#17427](https://github.com/withastro/astro/pull/17427) [`630b382`](https://github.com/withastro/astro/commit/630b382ce3303c350154338e59cb5444c5316764) Thanks [@astrobot-houston](https://github.com/astrobot-houston)! - Fixes image optimization during `astro build` using too many parallel processes in CPU-limited containers. Builds now respect the container's CPU limit, reducing peak memory usage and avoiding out-of-memory crashes. ### @astrojs/cloudflare@14.1.4 - Date: 2026-07-20 - Version: @astrojs/cloudflare@14.1.4 - Original notes: https://github.com/withastro/astro/releases/tag/%40astrojs/cloudflare%4014.1.4 - Permalink: https://whatsnew.fyi/product/astro/releases/astrojs-cloudflare-14.1.4 - **fixed** — Fix dev server crash when using Astro Actions with the Cloudflare adapter ###### Patch Changes - [#17457](https://github.com/withastro/astro/pull/17457) [`d46ecd8`](https://github.com/withastro/astro/commit/d46ecd82c3869d758ed955e2567f908903053475) Thanks [@matthewp](https://github.com/matthewp)! - Fixes a dev server crash when using Astro Actions with the Cloudflare adapter - Updated dependencies \[]: - @astrojs/underscore-redirects@1.0.3 ### astro@7.1.2 - Date: 2026-07-20 - Version: astro@7.1.2 - Original notes: https://github.com/withastro/astro/releases/tag/astro%407.1.2 - Permalink: https://whatsnew.fyi/product/astro/releases/astro-7.1.2 - **changed** — Update dependency cookie to v2, where cookie values made entirely of URL-safe characters are no longer percent-encoded in Set-Cookie headers - **fixed** — Fix a bug where mutated Astro.locals during the request lifecycle are lost and not passed to custom error pages (404.astro/500.astro) - **fixed** — Prevent an unhandled promise rejection from the prefetch fetch fallback by swallowing failures with .catch() ###### Patch Changes - [#17445](https://github.com/withastro/astro/pull/17445) [`a5f7230`](https://github.com/withastro/astro/commit/a5f7230d1caf41ef1e94f9a6b9f6ee01d332455c) Thanks [@ocavue](https://github.com/ocavue)! - Updates dependency `cookie` to v2. Cookie values made entirely of URL-safe characters are no longer percent-encoded in `Set-Cookie` headers; encoded values round-trip exactly as before. - [#17402](https://github.com/withastro/astro/pull/17402) [`a89c137`](https://github.com/withastro/astro/commit/a89c137a424b4d7bf97df067bba023eccc2317eb) Thanks [@farrosfr](https://github.com/farrosfr)! - Fixes a bug where mutated `Astro.locals` during the request lifecycle are lost and not passed to custom error pages (`404.astro`/`500.astro`) - [#17405](https://github.com/withastro/astro/pull/17405) [`91992ef`](https://github.com/withastro/astro/commit/91992ef2ccd9a90fa4270633eb4f5d3b811bf315) Thanks [@Araluma](https://github.com/Araluma)! - Prevents an unhandled promise rejection from the prefetch `fetch` fallback. In WebKit (Safari), `` is unsupported, so prefetch uses the `fetch()` fallback; on a flaky connection that fetch rejects with `TypeError: Load failed`, and because the promise was not awaited or caught, it surfaced as an unhandled rejection to the page's global error handlers. The best-effort prefetch now swallows the failure with `.catch()`. ### astro@7.1.1 - Date: 2026-07-17 - Version: astro@7.1.1 - Original notes: https://github.com/withastro/astro/releases/tag/astro%407.1.1 - Permalink: https://whatsnew.fyi/product/astro/releases/astro-7.1.1 - **fixed** — Encoded request paths being routed incorrectly when using domain-based i18n ###### Patch Changes - [#17399](https://github.com/withastro/astro/pull/17399) [`4b03702`](https://github.com/withastro/astro/commit/4b0370262ce94a1f426944e659ef7a9c8773f451) Thanks [@matthewp](https://github.com/matthewp)! - Fixes encoded request paths being routed incorrectly when using domain-based i18n ### astro@7.1.0 - Date: 2026-07-16 - Version: astro@7.1.0 - Original notes: https://github.com/withastro/astro/releases/tag/astro%407.1.0 - Permalink: https://whatsnew.fyi/product/astro/releases/astro-7.1.0 - **added** — Add a new `deferRender` option to the `glob()` content loader that defers rendering of Markdown and other renderable entries until they are actually rendered in a page, reducing memory usage during `astro build` for large collections - **added** — Add a new experimental `collectionStorage` option for controlling how the content layer persists its data store, allowing it to be split across many smaller content-addressed files instead of a single file - **added** — Add support for more specific CSP directives `script-src-elem`, `script-src-attr`, `style-src-elem`, and `style-src-attr` through a new `kind` option in both config and runtime CSP API - **added** — Add a new `format()` option to the `paginate` utility that accepts a function to transform the current URL of the page - **added** — Add a `--ignore-lock` flag to `astro dev` for starting a dev server without checking or writing the lock file ###### Minor Changes - [#17302](https://github.com/withastro/astro/pull/17302) [`5f4dc03`](https://github.com/withastro/astro/commit/5f4dc0356f2c2ecf98fa88a257908c9226fac9f1) Thanks [@astrobot-houston](https://github.com/astrobot-houston)! - Adds a new `deferRender` option to the `glob()` content loader 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. ```js // src/content.config.ts import { defineCollection } from 'astro:content'; import { glob } from 'astro/loaders'; const docs = defineCollection({ loader: glob({ pattern: '**/*.md', base: 'src/content/docs', deferRender: true }), }); ``` By default `deferRender` is `false`, preserving the existing behavior of rendering entries eagerly during sync so their rendered HTML can be cached across builds. - [#17296](https://github.com/withastro/astro/pull/17296) [`30698a2`](https://github.com/withastro/astro/commit/30698a2ed525497cdc0fce16d25d1cde0c21473c) Thanks [@ematipico](https://github.com/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: ```js // astro.config.mjs import { defineConfig } from 'astro/config'; export default defineConfig({ experimental: { collectionStorage: 'chunked', }, }); ``` 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](https://github.com/withastro/astro/pull/17214) [`44c4989`](https://github.com/withastro/astro/commit/44c4989139e84951c6579db9975a659765cf2b6c) Thanks [@ematipico](https://github.com/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`](https://docs.astro.build/en/reference/configuration-reference/#securitycsp) 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 `