---
title: "Astro 7.0.0 stable passe à Vite 8, fait du compilateur Rust la valeur par défaut, ajoute un serveur de dev en arrière-plan pour les agents de code IA, et promeut le cache des routes, le routage avancé et Sätteri au premier plan"
description: "Astro 7.0.0, publié le 2026-06-22, livre la branche stable 7.0 après dix semaines de beta. Les principales évolutions : montée vers Vite 8, compilateur Rust par défaut (le compilateur Go est supprimé), pipeline Markdown Sätteri par défaut (remark/rehype ne fait plus partie de l'installation par défaut), routage avancé promu depuis l'experimental (avec src/fetch.ts comme nouveau point d'entrée par défaut), cache des routes promu depuis l'experimental (cache et routeRules de premier niveau, avec les fournisseurs cacheNetlify() et cacheVercel() qui arrivent dans la même release), mode serveur de dev en arrière-plan conçu pour les agents de code IA (astro dev --background, fichier de verrouillage .astro/dev.json, astro dev stop|status|logs), compressHTML: 'jsx' comme nouvelle valeur par défaut, paquet @astrojs/db supprimé, et chaque intégration officielle bumped d'une version majeure (vue 7, react 6, svelte 9, preact 6, solid-js 7, vercel 11, netlify 8, node 11). create-astro@5.1.0, livré dans la même vague, écrit désormais un fichier AGENTS.md dans chaque nouveau projet avec un lien symbolique CLAUDE.md pointant dessus."
date: 2026-06-22
image: "/images/heroes/2026-06-22--astro-7-stable-vite8-rust-compiler-ai-agents.png"
author: lschvn
tags: ["frameworks", "ai", "tooling"]
tldr:
  - "Astro 7.0.0 stable, publié le 2026-06-22, livre Vite 8 (PR #15819, delucis), promeut le compilateur Rust comme valeur par défaut et supprime le compilateur Go (PR #16462, Princesseuh), et déplace le pipeline Markdown Sätteri comme valeur par défaut avec @astrojs/markdown-remark qui ne fait plus partie de l'installation par défaut (PR #16966). Le routage avancé est promu hors experimental et src/fetch.ts devient le point d'entrée par défaut à la place de src/app.ts (PR #16877, matthewp)."
  - "Le cache des routes, derrière experimental.cache et experimental.routeRules depuis la v6.0.0, est promu en configuration stable de premier niveau cache et routeRules avec les fournisseurs first-party cacheNetlify() et cacheVercel() dans la même release (PR #17116, ascorbic, et PR #16335 pour les fournisseurs). La fonctionnalité de logger personnalisé, elle aussi expérimentale depuis la v6.2.0, devient stable avec les logHandlers.json et logHandlers.node intégrés (PR #16745, ematipico). Le drapeau experimental queuedRendering est supprimé car le remplacement en streaming est désormais stable (PR #16981)."
  - "Le changement le plus spécifique aux agents est le mode serveur de dev en arrière-plan : astro dev --background démarre le serveur de dev comme processus détaché, écrit un fichier de verrouillage .astro/dev.json avec URL/port/PID, et ajoute astro dev stop, astro dev status, et astro dev logs (-f pour suivre). La détection automatique des agents de code IA l'active par défaut ; on désactive avec ASTRO_DEV_BACKGROUND=0 (PR #16610, matthewp). Dans la même vague, create-astro@5.1.0 écrit un fichier AGENTS.md dans chaque nouveau projet et crée un lien symbolique CLAUDE.md (avec fallback en hard link) pointant dessus (PR #17122)."
faq:
  - question: "Quel est le changement phare d'Astro 7.0.0 ?"
    answer: "Trois grands changements d'architecture en une seule release : Vite 8 devient la chaîne d'outils par défaut pour le dev et le build, le compilateur Astro en Rust devient la valeur par défaut (le compilateur Go est supprimé, et le drapeau experimental.rustCompiler n'est plus nécessaire), et le pipeline Markdown Sätteri devient la valeur par défaut (remark/rehype ne fait plus partie de l'installation par défaut). Par-dessus, le routage avancé et le cache des routes sortent tous deux de l'experimental, et le serveur de dev reçoit un nouveau mode arrière-plan conçu pour les agents de code IA."
  - question: "Comment fonctionne le nouveau mode serveur de dev en arrière-plan pour les agents IA ?"
    answer: "Quand Astro détecte un agent de code IA (le détecteur examine un petit ensemble de variables d'environnement et de marqueurs CLI connus), `astro dev` démarre automatiquement le serveur comme processus détaché en arrière-plan et écrit un fichier de verrouillage `.astro/dev.json` contenant l'URL, le port et le PID du serveur. Trois nouvelles sous-commandes l'accompagnent : `astro dev stop` arrête le serveur, `astro dev status` indique s'il y en a un qui tourne, et `astro dev logs` (avec `-f` pour suivre) écoute sa sortie. Le même flux se déclenche manuellement avec `astro dev --background`. Mettez `ASTRO_DEV_BACKGROUND=0` dans l'environnement pour vous désinscrire et forcer le comportement foreground."
  - question: "Qu'est-ce que create-astro@5.1.0 ajoute pour les agents de code IA ?"
    answer: "Chaque nouveau projet créé avec `npm create astro@latest` reçoit désormais un fichier `AGENTS.md` à la racine du projet avec une courte section Dev qui pointe vers `astro dev --background` et les sous-commandes `astro dev stop` / `status` / `logs`, plus une section Documentation avec des liens vers les guides routing, composants Astro, content collections et i18n. `create-astro` crée aussi un lien symbolique `CLAUDE.md` pointant vers le même fichier (avec un fallback `fs.linkSync` en hard link si l'appel symlink échoue). Sur un projet neuf, les deux fichiers existent et pointent vers le même contenu, donc tout agent de code IA qui cherche l'un ou l'autre nom de fichier récupère le même contexte Astro."
  - question: "La nouvelle valeur par défaut compressHTML: 'jsx' peut-elle casser mon site ?"
    answer: "Ça peut. Astro supprime désormais par défaut les espaces autour des éléments selon les règles JSX, de la même façon que React. Les espaces et retours à la ligne entre éléments sont supprimés ; les espaces significatifs sur une même ligne (comme un espace entre deux éléments inline) sont préservés sauf à les écrire explicitement avec `{\" \"}`. Les sites qui s'appuyaient sur la préservation des espaces entre éléments inline verront un HTML rendu différent. Pour restaurer le comportement antérieur d'Astro, réglez `compressHTML: true` (compression HTML-aware, qui supprime encore certains espaces) ou `compressHTML: false` (préserver tous les espaces). Ce défaut a basculé dans [Astro 7.0.0-beta.5 le 2026-06-18](/articles/2026-06-20--astro-7-0-0-beta-6-stable-cache-jsx-whitespace), et le même article détaille la migration."
  - question: "Que dois-je changer pour migrer depuis experimental.cache et experimental.routeRules en v6 ?"
    answer: "Sortez les blocs cache et routeRules de `experimental` et placez-les au premier niveau de votre configuration Astro. La forme du bloc est la même ; seul change le niveau d'imbrication. Si vous utilisiez un point d'entrée personnalisé sous `experimental.advancedRouting.fetchFile`, cette option passe aussi au premier niveau (`fetchFile: 'app.ts'`, ou renommez le fichier en `src/fetch.ts` qui est désormais le défaut). Pour les fournisseurs de cache, les options first-party `cacheNetlify()` et `cacheVercel()` depuis `@astrojs/netlify/cache` et `@astrojs/vercel/cache` sont désormais les choix stables documentés ; memoryCache depuis `astro/config` est la valeur par défaut pour le dev local."
  - question: "Qu'est-ce qui est supprimé en 7.0 et dont je pourrais encore dépendre ?"
    answer: "Trois suppressions à vérifier avant la mise à niveau : `@astrojs/db` (déprécié en v6.4.5, désormais supprimé, ainsi que `astro db`, `astro login`, `astro logout`, `astro link`, et `astro init` ; remplacez par `node:sqlite` si vous l'utilisiez pour du stockage local, ou par Drizzle ORM si vous utilisiez l'API schema/query) ; les helpers de transition dépréciés `TRANSITION_BEFORE_PREPARATION`, `TRANSITION_AFTER_PREPARATION`, `TRANSITION_BEFORE_SWAP`, `TRANSITION_AFTER_SWAP`, `TRANSITION_PAGE_LOAD`, `isTransitionBeforePreparationEvent()`, `isTransitionBeforeSwapEvent()`, et `createAnimationScope()` (utilisez directement les noms d'événements de cycle de vie, par ex. `event.type === 'astro:before-preparation'`) ; et le drapeau expérimental `queuedRendering`, dont le remplacement en streaming est désormais le comportement par défaut."
  - question: "Pourquoi le compilateur Rust est-il désormais la valeur par défaut ?"
    answer: "Le compilateur Astro en Rust (`@astrojs/compiler-rs`) était le chemin recommandé depuis la livraison du drapeau experimental.rustCompiler en v6, et le compilateur Go est désormais supprimé. Les notes de version sont directes : le compilateur Rust est plus rapide, plus fiable, donne des temps de build plus courts et une itération dev plus rapide, et il est aussi plus strict sur la syntaxe invalide (les balises HTML non fermées lèvent désormais une erreur au lieu d'être ignorées silencieusement). Le binaire Go disparaît en 7.0 ; si votre `astro.config.mjs` contient encore `experimental: { rustCompiler: true }`, retirez-le (le drapeau n'existe plus)."
  - question: "Qu'est-ce qui change pour les intégrations de frameworks ?"
    answer: "Chaque intégration officielle bumpe d'une version majeure en synchro avec la release stable 7.0 : `@astrojs/vue` en 7.0.0, `@astrojs/react` en 6.0.0, `@astrojs/svelte` en 9.0.0 (qui embarque aussi `@sveltejs/vite-plugin-svelte` v7), `@astrojs/preact` en 6.0.0, `@astrojs/solid-js` en 7.0.0, l'intégration MDX reçoit le même traitement Vite 8 + Sätteri, `@astrojs/vercel` en 11.0.0 (avec cacheVercel()), `@astrojs/netlify` en 8.0.0 (avec cacheNetlify()), et `@astrojs/node` en 11.0.0. L'API Container reçoit aussi un nouveau point d'entrée : `getContainerRenderer()` vit désormais dans `@astrojs/react/container-renderer` (et chemins équivalents pour Preact, Svelte, Solid, Vue, et MDX) pour empêcher les bundlers de tirer toute la racine du paquet quand seule l'API Container est nécessaire. Les anciens chemins d'import fonctionnent toujours mais émettent un avertissement de dépréciation."
---

[Astro 7.0.0 stable](https://github.com/withastro/astro/releases/tag/astro%407.0.0) est sorti le 22 juin 2026, dix semaines après la [première alpha 7.0](https://github.com/withastro/astro/releases/tag/astro%407.0.0-alpha.0) et une beta après [l'article sur la beta.6 que nous avons publié le 2026-06-20](/articles/2026-06-20--astro-7-0-0-beta-6-stable-cache-jsx-whitespace). La release promeut presque toutes les API expérimentales de longue date en stables, fait passer la chaîne d'outils à [Vite 8](/articles/2026-03-26-vite-8-rolldown-era), et intègre deux nouveaux workflows dans le projet par défaut : un serveur de dev en arrière-plan conçu pour les agents de code IA, et un fichier `AGENTS.md` à la racine de chaque nouveau projet (avec un lien symbolique `CLAUDE.md` pointant dessus).

Toute la ligne 7.0 annonçait cette release. Le compilateur Rust était sorti de l'experimental derrière un drapeau, Sätteri avait déplacé le Markdown hors de JavaScript vers un pipeline Rust natif, le routage avancé avait remplacé le point d'entrée SSR historique, et la couche de cache [livrée expérimentalement en v6.0](/articles/2026-03-30-astro-6-rust-compiler-cloudflare) est désormais une configuration stable de premier niveau. Stable veut juste dire que la migration est mécanique ; les breaking changes (`compressHTML: 'jsx'`, la suppression d'@astrojs/db, la suppression des helpers de transition, les bumps majeurs sur chaque intégration) sont réels.

## Vite 8 et le compilateur Rust deviennent tous deux la valeur par défaut

La montée vers Vite 8 ([PR #15819](https://github.com/withastro/astro/pull/15819), delucis) et la promotion du compilateur Rust ([PR #16462](https://github.com/withastro/astro/pull/16462), Princesseuh) sont les deux changements fondateurs de la release. Les builds beta précédents nécessitaient `experimental.rustCompiler: true` dans la config ; la 7.0 supprime entièrement le compilateur Go, donc le drapeau disparaît avec. Les notes de version décrivent le compilateur Rust comme « plus rapide et plus fiable », et la nouvelle rigueur est un vrai changement de comportement : les balises HTML non fermées lèvent désormais une erreur au lieu d'être ignorées silencieusement, et le HTML sémantiquement invalide est laissé au navigateur, comme le ferait `document.write()`.

Le [pipeline Markdown Sätteri](https://github.com/withastro/astro/pull/16966) (Princesseuh) est désormais la valeur par défaut, et `@astrojs/markdown-remark` ne fait plus partie de l'installation par défaut. La release épingle `@astrojs/markdown-satteri@0.3.1`. Les options de config `markdown.remarkPlugins`, `markdown.rehypePlugins`, et `markdown.remarkRehype` fonctionnent toujours, mais seulement quand `@astrojs/markdown-remark` est explicitement installé et utilisé. L'[article sur la beta.4 et Sätteri par défaut](/articles/2026-06-16--astro-7-0-0-beta-4-satteri-default-advanced-routing) détaille la migration ; l'[article sur la beta.6](/articles/2026-06-20--astro-7-0-0-beta-6-stable-cache-jsx-whitespace) couvre le basculement de `compressHTML: 'jsx'` et la promotion du cache des routes hors experimental.

## Serveur de dev en arrière-plan pour les agents de code IA

Le changement le plus spécifique aux agents en 7.0 est un nouveau mode arrière-plan pour `astro dev` ([PR #16610](https://github.com/withastro/astro/pull/16610), matthewp). Quand Astro détecte un agent de code IA (le détecteur examine un petit ensemble de variables d'environnement et de marqueurs CLI connus), `astro dev` démarre automatiquement le serveur de dev comme processus détaché en arrière-plan au lieu de bloquer le terminal de l'agent. Un fichier de verrouillage à `.astro/dev.json` enregistre l'URL, le port et le PID du serveur, et trois nouvelles sous-commandes l'accompagnent :

- `astro dev --background` pour démarrer explicitement le serveur en arrière-plan.
- `astro dev stop` pour arrêter le serveur en cours.
- `astro dev status` pour vérifier si un serveur tourne et lire URL, PID et uptime.
- `astro dev logs` (avec `-f` pour suivre) pour lire la sortie du serveur.

Les notes de version sont explicites sur l'opt-out : positionnez `ASTRO_DEV_BACKGROUND=0` avant `astro dev` pour forcer le comportement foreground même quand un agent est détecté. La motivation, aussi issue de la description de la PR, est que les agents de code IA ne peuvent pas tenir utilement un serveur de dev en foreground dans leur terminal : un serveur lié à un TTY disparaît quand l'agent passe à la tâche suivante, et un serveur non lié garde le port en otage pour la prochaine itération de l'agent.

## AGENTS.md et CLAUDE.md dans chaque nouveau projet

Dans la même vague de release, `create-astro@5.1.0` ([PR #17122](https://github.com/withastro/astro/pull/17122), matthewp) écrit désormais un fichier `AGENTS.md` par défaut dans chaque nouveau projet après l'étape de copie du template. Le fichier généré est court par conception :

```
# Development

Start the dev server in background mode:

astro dev --background

Manage the background server with `astro dev stop`, `astro dev status`, and `astro dev logs`.

# Documentation

Full documentation: https://docs.astro.build

Commonly needed references:

- Routing
- Astro Components
- Content Collections
- Internationalization
```

`create-astro` crée aussi un fichier `CLAUDE.md` à la racine du projet pointant vers le même contenu, via `fs.symlinkSync('AGENTS.md', claudePath)` avec un fallback `fs.linkSync` en hard link si l'appel symlink échoue sur le système de fichiers hôte. Les deux fichiers finissent par contenir le même contenu d'onboarding Astro, et tout agent de code IA qui cherche l'un ou l'autre nom de fichier (`AGENTS.md` pour la convention AGENTS.md ouverte utilisée par Codex et d'autres, `CLAUDE.md` pour Claude Code) le récupère. C'est le premier scaffolder de framework majeur à livrer un fichier `AGENTS.md` par défaut ; l'écosystème Vite converge vers ce nom de fichier depuis que Codex en a fait une convention début 2026.

## Cache des routes, routage avancé et logger personnalisé sortent tous de l'experimental

Trois fonctionnalités expérimentales de longue date passent en stable en 7.0. Le cache des routes ([PR #17116](https://github.com/withastro/astro/pull/17116), ascorbic) sort de `experimental.cache` et `experimental.routeRules` vers des blocs de configuration `cache` et `routeRules` de premier niveau. Les fournisseurs de cache first-party `cacheNetlify()` (cache durable, partagé entre tous les nœuds edge) et `cacheVercel()` (Vercel-CDN-Cache-Control + Vercel-Cache-Tag) sont livrés dans la même release en tant que points d'entrée séparés dans les modules `@astrojs/netlify/cache` et `@astrojs/vercel/cache`. Un module d'aides partagées `astro/cache/provider-utils` est exporté pour les auteurs de fournisseurs tiers.

Le routage avancé ([PR #16877](https://github.com/withastro/astro/pull/16877), matthewp) supprime le drapeau `experimental.advancedRouting`. Le point d'entrée par défaut est désormais `src/fetch.ts` à la place de `src/app.ts`, et l'option `fetchFile` passe au premier niveau de la config. La fonctionnalité de logger personnalisé ([PR #16745](https://github.com/withastro/astro/pull/16745), ematipico) est aussi stable, avec les handlers intégrés `logHandlers.json`, `logHandlers.node`, et `logHandlers.console`, plus un chemin `entrypoint` tiers pour le logging structuré vers Kibana, Logstash, CloudWatch, Grafana, ou Loki.

Le drapeau `experimental.queuedRendering` ([PR #16981](https://github.com/withastro/astro/pull/16981), ematipico) est supprimé car le remplacement en streaming est désormais le moteur de rendu par défaut ; la construction de la file et le node polling disparaissent, et seul le cache de tags survit sous une forme plus petite.

## `@astrojs/db` disparaît

`@astrojs/db`, déprécié en v6.4.5, est supprimé en 7.0. Les commandes CLI qui en dépendaient (`astro db`, `astro login`, `astro logout`, `astro link`, `astro init`) disparaissent aussi. Les chemins de migration que les notes de version indiquent : [`node:sqlite`](https://nodejs.org/api/sqlite.html) (disponible depuis Node.js 22.5.0) pour du stockage SQLite local sous l'adapter Node, [Drizzle ORM](https://orm.drizzle.team/) pour l'API schema et query, ou n'importe quelle autre bibliothèque de base de données si vous visez Turso, PlanetScale, Neon, ou équivalent.

Les helpers de transition dépréciés dans `astro:transitions` et `astro:transitions/client` (`TRANSITION_BEFORE_PREPARATION`, `TRANSITION_AFTER_PREPARATION`, `TRANSITION_BEFORE_SWAP`, `TRANSITION_AFTER_SWAP`, `TRANSITION_PAGE_LOAD`, `isTransitionBeforePreparationEvent()`, `isTransitionBeforeSwapEvent()`, `createAnimationScope()`) sont aussi supprimés. Les noms d'événements de cycle de vie sont désormais l'API canonique : `event.type === 'astro:before-preparation'`, et ainsi de suite.

## Chaque intégration bumpe d'une version majeure

La vague stable 7.0 livre les bumps majeurs en synchro. `@astrojs/vue@7.0.0`, `@astrojs/react@6.0.0`, `@astrojs/svelte@9.0.0` (qui embarque aussi `@sveltejs/vite-plugin-svelte` v7), `@astrojs/preact@6.0.0`, `@astrojs/solid-js@7.0.0`, et l'intégration MDX portent tous la montée Vite 8 plus un nouveau point d'entrée `container-renderer` qui contient l'export `getContainerRenderer()` ; importer depuis la racine du paquet fonctionne toujours mais émet un avertissement de dépréciation. Les majeurs côté adapters serveur sont `@astrojs/vercel@11.0.0` (avec `cacheVercel()`), `@astrojs/netlify@8.0.0` (avec `cacheNetlify()`), et `@astrojs/node@11.0.0` (patches uniquement ; service des noms de fichiers non-ASCII, le patch `astrobot-houston`).

Le nouveau point d'entrée de l'API Container mérite d'être souligné parce que c'est un vrai gain en taille de bundle. Une app SSR typique qui n'utilise que l'API Container importait tout le paquet d'intégration (`@astrojs/react` avec le runtime client complet, le runtime serveur, les types, et la factory JSX) juste pour appeler `getContainerRenderer()`. Le nouveau point d'entrée `@astrojs/react/container-renderer` ne livre que la surface de l'API Container, et des chemins équivalents existent pour `@astrojs/preact/container-renderer`, `@astrojs/svelte/container-renderer`, `@astrojs/solid-js/container-renderer`, `@astrojs/vue/container-renderer`, et l'intégration MDX. La plupart des apps n'auront rien à changer ; le bénéfice se voit pour les auteurs de bibliothèques et d'intégrations qui veulent garder leur empreinte de dépendance serrée.

## À surveiller

Le pattern de l'équipe Astro sur le cycle 7.0 a été de promouvoir une ou deux fonctionnalités expérimentales par beta et d'enrouler la migration dans la stable suivante. Deux suites sont probables dans les deux à quatre semaines. La première concerne les patches `astro@7.0.1` et `astro@7.0.2` qui suivent habituellement une release stable et tendent à corriger les régressions `compressHTML: 'jsx'` qui n'apparaissent que sur du contenu réel (tables markdown avec des éléments inline autour, composants MDX qui émettent des espaces en dur, etc.). La seconde concerne les mises à jour `create-astro` qui étendent le contenu `AGENTS.md` avec des notes spécifiques au template ; le scaffold n'écrit actuellement que le même contexte Astro générique pour tous les templates, et l'équipe a laissé entendre que des notes spécifiques au template arriveront dans `create-astro@5.2.0`.