Ir al contenido
verdict:

Astro 7.0.0

featured

note: la síntesis y las notas de la versión están en inglés

warning: requiere intervención

10 breaking changes5 puntos clave

Astro 7 moves to Vite 8 and a Rust compiler, removes Astro DB, and changes default whitespace handling

síntesis · solo a partir de las notas de la versión · claude-haiku-5-5 · prompt v7

breaking changestodos citados, cada uno con su solución

breaking[1]: compressHTML now defaults to 'jsx', so whitespace between inline elements can render differently.

#16965 57ead0d Thanks @Princesseuh! - Makes 'jsx' the default value for compressHTML

help: Write a space explicitly with {" "}, or set compressHTML: true or compressHTML: false to keep the earlier behavior.

breaking[2]: The @astrojs/db package and the astro db, astro login, astro logout, astro link and astro init commands are removed.

#17010 0606073 Thanks @ocavue! - Removes the @astrojs/db package as it is no longer maintained.

help: Remove @astrojs/db and use node:sqlite, Drizzle ORM or another database library instead.

breaking[3]: The compiler is stricter: unclosed HTML tags now throw an error and invalid HTML is no longer corrected.

This new compiler is more strict regarding invalid syntax. For example, unclosed HTML tags will now throw an error instead of being ignored. It also does not attempt to correct semantically invalid HTML anymore, instead leaving it to the browser to handle, similar to other tools or document.write() in JavaScript.

help: Close all HTML tags, and remove experimental.rustCompiler from your astro.config.mjs.

breaking[4]: @astrojs/markdown-remark is no longer installed by default, so the remark/rehype pipeline needs to be installed explicitly.

To keep using the remark/rehype pipeline, install @astrojs/markdown-remark and set it as your processor:

help: Install @astrojs/markdown-remark and set markdown.processor: unified() to keep using remark/rehype.

breaking[5]: Advanced routing uses src/fetch.ts by default, and fetchFile moves to a top-level option.

Advanced routing now uses src/fetch.ts as default entrypoint instead of src/app.ts.

help: Rename your entrypoint to src/fetch.ts or set fetchFile, then remove experimental.advancedRouting from your config.

breaking[6]: createAnimationScope() and several astro:transitions constants and helpers are removed.

In Astro 7.0, the following APIs can no longer be used in your project:

help: Remove createAnimationScope() and compare event types with names such as 'astro:after-swap' directly.

breaking[7]: The experimental.queuedRendering setting no longer exists.

#16981 0d6d644 Thanks @ematipico! - Removes the setting experimental.queuedRendering. The new rendering engine is now stable and replaces the old one.

help: Remove experimental.queuedRendering from your Astro config.

breaking[8]: The experimental.cache and experimental.routeRules flags are removed in favour of top-level options.

#17116 f95e58e Thanks @ascorbic! - Stabilizes route caching, removing the experimental.cache and experimental.routeRules flags and replacing them with the top-level cache and routeRules configuration options.

help: Move cache and routeRules out of the experimental block to the top level of your config.

breaking[9]: The custom logger experimental.logger flag is removed and the logger is now a top-level option.

If you were previously using this feature, please remove the experimental flag from your Astro config:

help: Remove the experimental flag and move logger to the top level of your Astro config.

breaking[10]: state.provide(), state.resolve(), state.finalizeAll() and App.Providers are removed from the public advanced routing API.

#16980 1f07343 Thanks @matthewp! - Removes state.provide(), state.resolve(), state.finalizeAll(), and App.Providers from the public advanced routing API. These context provider extension points are now internal-only. If you were using them in an integration, use locals to share per-request state instead.

help: Use locals to share per-request state instead.

puntos clave

release-notesgithub.com/withastro/astro · 319 líneas
  1. ### Major Changes
  2. - [#15819](https://github.com/withastro/astro/pull/15819) [`cafec4e`](https://github.com/withastro/astro/commit/cafec4e23365061491103dfce2e889a15cf86f27) Thanks [@delucis](https://github.com/delucis)! - Upgrade to Vite v8
  3. - [#16965](https://github.com/withastro/astro/pull/16965) [`57ead0d`](https://github.com/withastro/astro/commit/57ead0d5938e5988e3f896f3d6f8ef4516c4923f) Thanks [@Princesseuh](https://github.com/Princesseuh)! - Makes `'jsx'` the default value for `compressHTML`
  4. Astro now strips whitespace from your HTML using JSX rules by default, the same way frameworks like React do. Whitespace and line breaks around elements are removed, but meaningful whitespace within a single line — like a space between two inline elements — is preserved. To keep a space that would otherwise be removed, write it explicitly in your source, for example with `{" "}`.
  5. This can change rendered output where whitespace between inline elements was previously meaningful. To keep Astro's earlier behavior, set `compressHTML: true` for HTML-aware compression, or `compressHTML: false` to preserve all whitespace.
  6. - [#16610](https://github.com/withastro/astro/pull/16610) [`c63e7e4`](https://github.com/withastro/astro/commit/c63e7e4411db8fc652c84ce82b45f53e951eb6fa) Thanks [@matthewp](https://github.com/matthewp)! - Adds background dev server management for AI coding agents.
  7. When an AI coding agent is detected, `astro dev` now automatically starts the dev server as a detached background process. This prevents the dev server from blocking the agent's terminal and allows it to continue working while the server runs.
  8. A lock file (`.astro/dev.json`) is written when the dev server starts, recording the server's URL, port, and PID. This prevents duplicate servers from being started for the same project.
  9. #### New flag and subcommands
  10. - `astro dev --background` — Start the dev server as a background process (this is what runs automatically when an agent is detected).
  11. - `astro dev stop` — Stop a running background dev server.
  12. - `astro dev status` — Check if a dev server is running and display its URL, PID, and uptime.
  13. - `astro dev logs` — View logs from a background dev server. Use `--follow` (`-f`) to stream new output as it's written.
  14. These allow you to start and manage dev servers programmatically and were designed with AI coding agents in mind.
  15. #### What should I do?
  16. No action is required. If you are not using an AI coding agent, `astro dev` behaves exactly as before. If you are using an agent, background mode is enabled automatically — the agent will receive the server URL and PID, and can use `astro dev stop` to shut it down.
  17. To opt out of automatic background mode when an agent is detected, set the environment variable `ASTRO_DEV_BACKGROUND=0` before running `astro dev`.
  18. - [#17010](https://github.com/withastro/astro/pull/17010) [`0606073`](https://github.com/withastro/astro/commit/0606073794ddda42cac1f3e1ca56bbfc7cb178eb) Thanks [@ocavue](https://github.com/ocavue)! - Removes the `@astrojs/db` package as it is no longer maintained.
  19. The `@astrojs/db` package were deprecated in v6.4.5 and is now removed. This means the `astro db`, `astro login`, `astro logout`, `astro link`, and `astro init` CLI commands have also been removed.
  20. If you were using Astro DB in your project, remove `@astrojs/db` from your project's dependencies and replace it with one of the following alternatives:
  21. - **Node.js built-in SQLite**: Node.js now includes a built-in [`node:sqlite`](https://nodejs.org/api/sqlite.html) module (available since Node.js v22.5.0). This is a good option if you are using the Node.js adapter and were using `@astrojs/db` for local SQLite storage.
  22. - **[Drizzle ORM](https://orm.drizzle.team/)**: If you were using `@astrojs/db` for its Drizzle-based schema and query API, you can use Drizzle directly with any supported database.
  23. - **Other database libraries**: Use any database library that suits your deployment platform (e.g. [Turso](https://turso.tech/), [PlanetScale](https://planetscale.com/), [Neon](https://neon.tech/)).
  24. - [#16462](https://github.com/withastro/astro/pull/16462) [`c30a778`](https://github.com/withastro/astro/commit/c30a7789a477e44826c54c8560587d09dc46a229) Thanks [@Princesseuh](https://github.com/Princesseuh)! - Replaces the Go compiler with a Rust-based version.
  25. The Rust-based Astro compiler (`@astrojs/compiler-rs`) is now the default compiler. This new compiler is faster and more reliable, leading to faster build times and iteration cycles during development.
  26. This new compiler is more strict regarding invalid syntax. For example, unclosed HTML tags will now throw an error instead of being ignored. It also does not attempt to correct semantically invalid HTML anymore, instead leaving it to the browser to handle, similar to other tools or `document.write()` in JavaScript.
  27. The previous Go-based compiler has been removed, along with the `experimental.rustCompiler` flag used to opt into the Rust compiler. If you were setting `experimental.rustCompiler` in your `astro.config.mjs`, you can now remove it. No other action is required.
  28. - [#16966](https://github.com/withastro/astro/pull/16966) [`6650ec2`](https://github.com/withastro/astro/commit/6650ec24e81bb9fdf2fcec3dc07154b94d41cb61) Thanks [@Princesseuh](https://github.com/Princesseuh)! - Makes Sätteri the default Markdown processor
  29. Astro now renders `.md` files with `satteri()` from `@astrojs/markdown-satteri`, its native Markdown pipeline, instead of the remark/rehype pipeline. `@astrojs/markdown-remark` is no longer installed by default.
  30. To keep using the remark/rehype pipeline, install `@astrojs/markdown-remark` and set it as your processor:
  31. ```js
  32. // astro.config.mjs
  33. import { defineConfig } from 'astro/config';
  34. import { unified } from '@astrojs/markdown-remark';
  35. export default defineConfig({
  36. markdown: {
  37. processor: unified(),
  38. },
  39. });
  40. ```
  41. The deprecated `markdown.remarkPlugins`, `markdown.rehypePlugins`, and `markdown.remarkRehype` options still work, but now require `@astrojs/markdown-remark` to be used.
  42. - [#16877](https://github.com/withastro/astro/pull/16877) [`3b7d76e`](https://github.com/withastro/astro/commit/3b7d76e6decff6b236d1b30d901b4fa339edb960) Thanks [@matthewp](https://github.com/matthewp)! - Enables advanced routing by default.
  43. The advanced routing feature introduced behind a flag in [v6.3.0](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md#630) is no longer experimental and is now enabled by default.
  44. This gives full control over how requests flow through your application, with first-class support for frameworks like Hono.
  45. Advanced routing now uses `src/fetch.ts` as default entrypoint instead of `src/app.ts`.
  46. If you were previously using this feature without a custom entrypoint, please configure `fetchFile` or rename your entrypoint to `src/fetch.ts`, and then remove the experimental flag from your Astro config:
  47. ```diff
  48. import { defineConfig } from 'astro/config';
  49. export default defineConfig({
  50. experimental {
  51. - advancedRouting: true,
  52. },
  53. + fetchFile: 'app.ts' // optional, you only need this if you cannot rename your entrypoint.
  54. });
  55. ```
  56. `fetchFile` is now a top-level config option instead of being nested under `experimental.advancedRouting`. If you were using a custom entrypoint, please update your Astro config to move its configuration:
  57. ```diff
  58. // astro.config.mjs
  59. export default defineConfig({
  60. - experimental: {
  61. - advancedRouting: {
  62. - fetchFile: 'my-custom-entrypoint.ts',
  63. - },
  64. - },
  65. + fetchFile: 'my-custom-entrypoint.ts',
  66. })
  67. ```
  68. You can also set `fetchFile: null` to disable the entrypoint if you are using `src/fetch.ts` for another purpose, or don’t need advanced routing features.
  69. If you have been waiting for stabilization before using advanced routing, you can now do so.
  70. Please see [the advanced routing guide in docs](https://docs.astro.build/en/guides/routing/#advanced-routing) for more about this feature.
  71. - [#16725](https://github.com/withastro/astro/pull/16725) [`10229f7`](https://github.com/withastro/astro/commit/10229f73dbf0f19b9936e9a23f0abc774a4c579e) Thanks [@ArmandPhilippot](https://github.com/ArmandPhilippot)! - Removes deprecated APIs exported from `astro:transitions`.
  72. In Astro 6.x, some helpers available in `astro:transitions` and `astro:transitions/client` were deprecated.
  73. In Astro 7.0, the following APIs can no longer be used in your project:
  74. - `TRANSITION_BEFORE_PREPARATION`
  75. - `TRANSITION_AFTER_PREPARATION`
  76. - `TRANSITION_BEFORE_SWAP`
  77. - `TRANSITION_AFTER_SWAP`
  78. - `TRANSITION_PAGE_LOAD`
  79. - `isTransitionBeforePreparationEvent()`
  80. - `isTransitionBeforeSwapEvent()`
  81. - `createAnimationScope()`
  82. #### What should I do?
  83. Remove any occurrence of `createAnimationScope()`:
  84. ```diff
  85. -import { createAnimationScope } from 'astro:transitions';
  86. ```
  87. Replace any occurrence of the other APIs using the lifecycle event names directly:
  88. ```diff
  89. -import {
  90. - TRANSITION_AFTER_SWAP,
  91. - isTransitionBeforePreparationEvent,
  92. -} from 'astro:transitions/client';
  93. -console.log(isTransitionBeforePreparationEvent(event));
  94. +console.log(event.type === 'astro:before-preparation');
  95. -console.log(TRANSITION_AFTER_SWAP);
  96. +console.log('astro:after-swap');
  97. ```
  98. Learn more about all utilities available in the [View Transitions Router API Reference](https://docs.astro.build/en/reference/modules/astro-transitions/).
  99. ### Minor Changes
  100. - [#16998](https://github.com/withastro/astro/pull/16998) [`57dcc31`](https://github.com/withastro/astro/commit/57dcc31bb78575a89304ab5310f2f5911a83f3af) Thanks [@matthewp](https://github.com/matthewp)! - Exposes `getFetchState()` from `astro/hono` as a public API
  101. The `getFetchState()` function retrieves or lazily creates a `FetchState` from a Hono context object. This allows third-party packages to build Hono middleware that interacts with Astro's per-request state, giving the `astro/hono` API the same extensibility as `astro/fetch`.
  102. ```ts
  103. import { Hono } from 'hono';
  104. import { getFetchState, pages } from 'astro/hono';
  105. const app = new Hono();
  106. app.use(async (context, next) => {
  107. const state = getFetchState(context);
  108. state.locals.message = 'Hello from custom middleware';
  109. await next();
  110. });
  111. app.use(pages());
  112. export default app;
  113. ```
  114. - [#16996](https://github.com/withastro/astro/pull/16996) [`300641e`](https://github.com/withastro/astro/commit/300641e588ac74968197bd87e0a97f71d132946e) Thanks [@florian-lefebvre](https://github.com/florian-lefebvre)! - Adds a `subset` field to the `FontData` type exposed via `fontData` from `astro:assets`. When using multiple font subsets (e.g., `subsets: ["latin", "korean"]`), each font data entry now includes the subset name, making it possible to distinguish between font entries for different subsets that share the same weight and style.
  115. - [#16745](https://github.com/withastro/astro/pull/16745) [`f864a80`](https://github.com/withastro/astro/commit/f864a808c5dd83e19be66bb5227edffbe506a697) Thanks [@ematipico](https://github.com/ematipico)! - The custom logger feature introduced behind a flag in [v6.2.0](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md#620) is no longer experimental and is available for general use.
  116. This feature provides better control over Astro's logging infrastructure by allowing you to replace the default console output with custom logging implementations (e.g., structured JSON). This is particularly useful for on-demand rendering when connecting to log aggregation services such as Kibana, Logstash, CloudWatch, Grafana, or Loki.
  117. Astro provides three built-in log handlers (`json`, `node`, and `console`), and you can also create your own.
  118. #### JSON logging
  119. ```js
  120. import { defineConfig, logHandlers } from 'astro/config';
  121. export default defineConfig({
  122. logger: logHandlers.json({
  123. pretty: true,
  124. level: 'warn',
  125. }),
  126. });
  127. ```
  128. #### Custom logger
  129. ```js
  130. import { defineConfig } from 'astro/config';
  131. export default defineConfig({
  132. logger: {
  133. entrypoint: '@org/custom-logger',
  134. },
  135. });
  136. ```
  137. Additionally, `context.logger` is now always available in API routes and middleware, even without a custom logger configured.
  138. If you were previously using this feature, please remove the experimental flag from your Astro config:
  139. ```diff
  140. import { defineConfig } from 'astro/config';
  141. export default defineConfig({
  142. - experimental: {
  143. - logger: {
  144. - entrypoint: '@org/custom-logger',
  145. - },
  146. - },
  147. + logger: {
  148. + entrypoint: '@org/custom-logger',
  149. + },
  150. });
  151. ```
  152. If you have been waiting for stabilization before using custom loggers, you can now do so.
  153. Please see the [Logger docs](https://docs.astro.build/en/reference/configuration-reference/#logger) for more about this feature.
  154. - [#16981](https://github.com/withastro/astro/pull/16981) [`0d6d644`](https://github.com/withastro/astro/commit/0d6d64433fa31762b6fd593da902f63f3204e02a) Thanks [@ematipico](https://github.com/ematipico)! - Removes the setting `experimental.queuedRendering`. The new rendering engine is now stable and replaces the old one.
  155. As part of the stabilization, the queued rendering has been improved, and some features have been removed:
  156. - The construction of the queue has been removed, instead now Astro uses a streaming approach where components are rendered and flushed as they are encountered.
  157. - The node polling feature has been removed because it doesn't yield concrete savings.
  158. - The content cache has been descoped, and how only tag names are cached.
  159. If you were previously using this experimental feature, you must remove this experimental flag from your configuration as it no longer exists:
  160. ```diff
  161. // astro.config.mjs
  162. import { defineConfig } from "astro/config";
  163. export default defineConfig({
  164. experimental: {
  165. - queuedRendering: {}
  166. }
  167. });
  168. ```
  169. - [#17116](https://github.com/withastro/astro/pull/17116) [`f95e58e`](https://github.com/withastro/astro/commit/f95e58eaa6a6d7ac02f84193b485471f0cd14de6) Thanks [@ascorbic](https://github.com/ascorbic)! - Stabilizes route caching, removing the `experimental.cache` and `experimental.routeRules` flags and replacing them with the top-level `cache` and `routeRules` configuration options.
  170. Route caching, introduced experimentally in v6.0.0, is now stable. It gives you a platform-agnostic way to cache responses from [on-demand rendered](https://docs.astro.build/en/guides/on-demand-rendering/) pages and endpoints, based on standard HTTP caching semantics.
  171. Update your config to move `cache` and `routeRules` out of the `experimental` block:
  172. ```diff
  173. // astro.config.mjs
  174. import { defineConfig, memoryCache } from 'astro/config';
  175. export default defineConfig({
  176. - experimental: {
  177. - cache: {
  178. - provider: memoryCache(),
  179. - },
  180. - routeRules: {
  181. - '/blog/[...path]': { maxAge: 300, swr: 60 },
  182. - },
  183. - },
  184. + cache: {
  185. + provider: memoryCache(),
  186. + },
  187. + routeRules: {
  188. + '/blog/[...path]': { maxAge: 300, swr: 60 },
  189. + },
  190. });
  191. ```
  192. Set caching directives in your routes with `Astro.cache` (in `.astro` pages) or `context.cache` (in API routes and middleware), and Astro translates them into the appropriate headers or runtime behavior depending on your configured cache provider. You can also define cache rules for routes declaratively in your config using `routeRules`, without modifying route code.
  193. See the [route caching guide](https://docs.astro.build/en/guides/caching/) for more information.
  194. ### Patch Changes
  195. - [#16980](https://github.com/withastro/astro/pull/16980) [`1f07343`](https://github.com/withastro/astro/commit/1f07343ffc69b9c982f43cd0369069fe8d1a07fa) Thanks [@matthewp](https://github.com/matthewp)! - Removes `state.provide()`, `state.resolve()`, `state.finalizeAll()`, and `App.Providers` from the public advanced routing API. These context provider extension points are now internal-only. If you were using them in an integration, use `locals` to share per-request state instead.
  196. - [#17111](https://github.com/withastro/astro/pull/17111) [`c0f33ed`](https://github.com/withastro/astro/commit/c0f33eda8adf6f8f2588688f6205b76a96a42466) Thanks [@ematipico](https://github.com/ematipico)! - Harden the limits on the number of decoding on the URL.
  197. - [#16982](https://github.com/withastro/astro/pull/16982) [`1e000e2`](https://github.com/withastro/astro/commit/1e000e2454fbbade0a5ed978a9dccf8307780305) Thanks [@matthewp](https://github.com/matthewp)! - Improves the warning when accessing `Astro.session` without session storage configured. The `session` property is now always defined on the context object, and accessing it without configuration logs a helpful message instead of silently returning `undefined`.
  198. - [#16335](https://github.com/withastro/astro/pull/16335) [`9a53f77`](https://github.com/withastro/astro/commit/9a53f77d35e76bcb0165b44cbd2b7e48d48c9f59) Thanks [@ascorbic](https://github.com/ascorbic)! - Adds shared helper utilities for CDN cache provider authors for [route caching](https://docs.astro.build/en/guides/caching/)
  199. Exports `astro/cache/provider-utils` with helpers for building platform-specific cache-control headers, generating path-based invalidation tags, and normalizing invalidation options. These are used internally by the first-party Netlify, Vercel, and Cloudflare cache providers.
  200. - [#17095](https://github.com/withastro/astro/pull/17095) [`e84ebc0`](https://github.com/withastro/astro/commit/e84ebc0af84a13a26ea412460cbc491f81135ae5) Thanks [@matthewp](https://github.com/matthewp)! - Improves build performance by removing an unfiltered transform hook from the `astro:head-metadata-build` plugin. Head propagation modules are now identified by their module ID (`?astroPropagatedAssets`) instead of scanning every module's source code.
  201. - [#17041](https://github.com/withastro/astro/pull/17041) [`4c4a91c`](https://github.com/withastro/astro/commit/4c4a91c3ef3e3316cb9faa32e37c69d69902b956) Thanks [@iseraph-dev](https://github.com/iseraph-dev)! - Fixes a bug where the advanced routing `astro/hono` / `astro/fetch` `pages()` handler returned the host framework's default `Internal Server Error` response instead of rendering the custom `500.astro` page when a page threw during render. Unmatched requests with a prerendered (or absent) custom 404 page now render the 404 error page instead of failing the same way.
  202. - [#17097](https://github.com/withastro/astro/pull/17097) [`5e340d7`](https://github.com/withastro/astro/commit/5e340d7d81aae72215d56b8c598d350b79ad94a3) Thanks [@iseraph-dev](https://github.com/iseraph-dev)! - Fixes a bug where the advanced routing `astro/hono` / `astro/fetch` `middleware()` handler returned the host framework's default `Internal Server Error` response instead of rendering the custom `500.astro` page when middleware threw. Unmatched requests with a prerendered (or absent) custom 404 page now render the 404 error page instead of failing the same way. Errors surfaced through `next` (the host framework's downstream chain) still propagate to the host's own error handler.
  203. - [#15819](https://github.com/withastro/astro/pull/15819) [`cafec4e`](https://github.com/withastro/astro/commit/cafec4e23365061491103dfce2e889a15cf86f27) Thanks [@delucis](https://github.com/delucis)! - Fixes `--port` flag being ignored after a Vite-triggered server restart (e.g. when a `.env` file changes)
  204. - [#17104](https://github.com/withastro/astro/pull/17104) [`b074a37`](https://github.com/withastro/astro/commit/b074a37c5ab9364529080b3283cf9be8a6350e34) Thanks [@iseraph-dev](https://github.com/iseraph-dev)! - Fixes the custom `500.astro` page receiving an empty `error` prop when the error originated in middleware.
  205. - [#17078](https://github.com/withastro/astro/pull/17078) [`04547ec`](https://github.com/withastro/astro/commit/04547eca5bc6b8c1b3b95398ccc49c870a68c34c) Thanks [@astrobot-houston](https://github.com/astrobot-houston)! - Fixes a spurious `Astro.request.headers` warning on prerendered pages when `security.allowedDomains` is configured. The internal `allowedDomains` header validation now skips prerendered routes, since they use synthetic requests with no real headers.
  206. - [#16603](https://github.com/withastro/astro/pull/16603) [`deaaf3f`](https://github.com/withastro/astro/commit/deaaf3f734bb2f2c8df20559ac83634f418bea18) Thanks [@alexanderniebuhr](https://github.com/alexanderniebuhr)! - Removes the warning that Astro does not support vite v8, since Astro v7 does support vite v8
  207. - [#16335](https://github.com/withastro/astro/pull/16335) [`9a53f77`](https://github.com/withastro/astro/commit/9a53f77d35e76bcb0165b44cbd2b7e48d48c9f59) Thanks [@ascorbic](https://github.com/ascorbic)! - Passes the `Request` object to `CacheProvider.setHeaders()` for [route caching](https://docs.astro.build/en/guides/caching/)
  208. Cache providers now receive the incoming `Request` as a second argument to `setHeaders(options, request)`. This allows CDN providers to read the request URL, headers, and other properties when generating cache response headers, for example to auto-tag responses with their pathname for path-based invalidation.
  209. - [#17098](https://github.com/withastro/astro/pull/17098) [`637a1b6`](https://github.com/withastro/astro/commit/637a1b6c6fe58fd271faf4ee7555787e4f4a0b9a) Thanks [@matthewp](https://github.com/matthewp)! - Fixes internal Astro headers leaking from direct `pages()` handler responses
  210. - [#17090](https://github.com/withastro/astro/pull/17090) [`3cf76c0`](https://github.com/withastro/astro/commit/3cf76c035eef5954637e78015be9c20d0129599a) Thanks [@matthewp](https://github.com/matthewp)! - Fixes Vite and Rolldown build warnings
  211. - [#16434](https://github.com/withastro/astro/pull/16434) [`ee079d4`](https://github.com/withastro/astro/commit/ee079d4c7f143076b84d663c832911009a077c7f) Thanks [@ematipico](https://github.com/ematipico)! - Fixes an issue where i18n domains would return 404 when `trailingSlash` is set to `never`.
  212. - Updated dependencies \[[`7e7ab87`](https://github.com/withastro/astro/commit/7e7ab8775f1c70e00e30db9d3c4796246eaf1c5f), [`ff7b718`](https://github.com/withastro/astro/commit/ff7b718a301b8edc7d7db6626f65e69ce35823a7), [`241250b`](https://github.com/withastro/astro/commit/241250bf126f39c86a8aedd38df106e533301752)]:
  213. - @astrojs/markdown-satteri@0.3.1

ver en githubimported 2026-09-28 vía npm