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

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

lschvn

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 --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, 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.

Questions fréquentes

Oxc v0.137 apprend au minifier à treeshaker les tableaux typés purs et les littéraux Set/Map, livre un rafraîchissement de portée incrémental, et corrige un cas limite du React Compiler

La release Oxc crates_v0.137.0, publiée le 2026-06-18, livre deux nouvelles passes de treeshaking pour le minifier (treeshake des tableaux typés purs et des littéraux de tableau Set/Map via #23469, et inline de la valeur const pour les variables read-only via #22593), un rafraîchissement de portée incrémental de longue haleine qui supprime entièrement le collecteur LiveUsageCollector (#23197), une erreur d'analyseur conviviale pour les éléments JSX adjacents (#23378), un correctif du React Compiler pour les imports référencés uniquement par une clé calculée (#23586), et deux changements cassants de l'API de configuration ESTree (#23573, #23574). La liste des passes du minifier reçoit aussi un correctif Proxy-aware pour les appels d'introspection d'Object (#23483) et une nouvelle règle de préservation de Map/WeakSet/WeakMap pour les arguments string (#23470). v0.137 est la première release de crates depuis v0.135 le 2026-06-08 et la deuxième depuis que l'intégration native du React Compiler dans Bun a atterri le 2026-06-20.

Oxlint v1.71 et Oxfmt v0.56 livrent les gains des crates v0.137, ajoutent 18 nouvelles règles de linter et domptent la traversée du cycle de vie React avec un refactor en itérateur streamed

Oxlint apps_v1.71.0 et oxfmt apps_v0.56.0, tous deux publiés le 2026-06-22, bouclent le cycle des crates v0.137 côté apps. Oxlint v1.71 reprend la nouvelle passe de minifier `treeshake pure typed arrays` (#23469), le correctif `prefer-query-selector` à sélecteur composé, 28 corrections de bugs de lint (en grande partie le travail de réécriture de fixer de Yunfei He), 13 entrées de performance ancrées sur un refactor de dispatch de règles en buckets (#23450, #23452, #23482-#23486, #23489, #23492), et le démarrage de Tokio uniquement pour le LSP dans oxlint (#23447). Oxfmt v0.56.0 livre 9 corrections de bugs (normalisation CRLF pour le texte supprimé par `// @ts-ignore` dans #23701 et #23702, le correctif de panique de chaîne de membres #23698, la préservation du `export default` avec cast de type #23697) et 3 entrées de performance de formatter qui suppriment les copies d'arena sur le texte bigint, littéral numérique et littéral de chaîne. v1.71 est la première release d'apps depuis v1.70.0 le 2026-06-15, et la dernière avant la release de crates v0.138 qui arrivera le lundi 2026-06-29.

Articles connexes

Plus de couverture avec des sujets et tags en commun.

Astro 7.0.0-beta.6 stabilise le cache des routes et fait de la compression d'espaces JSX la valeur par défaut
frameworks

Astro 7.0.0-beta.6 stabilise le cache des routes et fait de la compression d'espaces JSX la valeur par défaut

Astro 7.0.0-beta.6 (19 juin 2026) promeut l'API expérimentale de cache des routes au niveau stable racine, supprimant les drapeaux experimental.cache et experimental.routeRules au profit d'une configuration cache de premier niveau et d'un assistant cache. La beta.5 (18 juin) a fait de « jsx » la valeur par défaut de compressHTML, changeant le HTML rendu de tout site qui s'appuyait sur la préservation d'espaces. La beta.6 embarque aussi @astrojs/markdown-satteri 0.3.1-beta.2.
React Router v8 promeut ses Future Flags en valeurs par défaut, passe en ESM uniquement et abandonne `react-router-dom`
frameworks

React Router v8 promeut ses Future Flags en valeurs par défaut, passe en ESM uniquement et abandonne `react-router-dom`

React Router v8.0.0 (17 juin 2026) est la première version majeure sous le modèle de gouvernance ouverte (Open Governance) du projet et la première d'un rythme annuel planifié. Chaque indicateur `future.v8_*` de la v7 devient la valeur par défaut (middleware toujours activé, requêtes pass-through, API Vite Environment, découpage des modules de route), la base minimale passe à Node 22.22+, React 19.2.7+ et Vite 7+, tous les paquets sont publiés en ESM uniquement avec une cible ES2022, `react-router-dom` est supprimé, et les adaptateurs Node basculent vers un serveur fetch maintenu par Remix tandis que `create-react-router` abandonne son polyfill fetch pour le `fetch` natif.
OpenAI Codex 0.141 ajoute des exécuteurs distants chiffrés en Noise, un `PathUri` multi-OS, un marketplace de plugins et un pin SQLite WAL-Reset
ai

OpenAI Codex 0.141 ajoute des exécuteurs distants chiffrés en Noise, un `PathUri` multi-OS, un marketplace de plugins et un pin SQLite WAL-Reset

Codex 0.141.0 (18 juin 2026) fait de Noise IK le transport par défaut entre l'orchestrateur et l'exec-server, livre une couche PathUri / NativePathString qui fait le round-trip des chemins POSIX, Windows-drive et UNC sans exposer l'encodage URI côté API, ouvre un marketplace de plugins `created-by-me-remote`, relève le timeout d'outil MCP à 300 secondes, et épingle la SQLite bundlée à 3.51.3 pour conserver le fix de corruption WAL-reset après un refresh de dépendances.

Commentaires

Connexion Connectez-vous pour participer à la conversation.

Pas encore de commentaires. Soyez le premier à partager vos pensées.