Astro 7.0.0 stable est sorti le 22 juin 2026, dix semaines après la première alpha 7.0 et une beta après l'article sur la beta.6 que nous avons publié le 2026-06-20. La release promeut presque toutes les API expérimentales de longue date en stables, fait passer la chaîne d'outils à Vite 8, 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 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, delucis) et la promotion du compilateur Rust (PR #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 (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 détaille la migration ; l'article sur la beta.6 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, 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 --backgroundpour démarrer explicitement le serveur en arrière-plan.astro dev stoppour arrêter le serveur en cours.astro dev statuspour vérifier si un serveur tourne et lire URL, PID et uptime.astro dev logs(avec-fpour 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, 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, 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, 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, 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, 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 (disponible depuis Node.js 22.5.0) pour du stockage SQLite local sous l'adapter Node, Drizzle ORM 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.



