# 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 `