Astro 7.0.0 Stable Ships Vite 8, Makes the Rust Compiler Default, Adds a Background Dev Server for AI Coding Agents, and Promotes Route Caching, Advanced Routing, and Sätteri to First-Class

Astro 7.0.0 Stable Ships Vite 8, Makes the Rust Compiler Default, Adds a Background Dev Server for AI Coding Agents, and Promotes Route Caching, Advanced Routing, and Sätteri to First-Class

lschvn

Astro 7.0.0 stable shipped on June 22, 2026, ten weeks after the first 7.0 alpha and one beta past the beta.6 article we ran on 2026-06-20. The release promotes almost every long-running experimental API to stable, swaps the toolchain over to Vite 8, and bakes two new workflows into the default project: a background dev server designed for AI coding agents, and an AGENTS.md file at the root of every new project (with a CLAUDE.md symlink pointing at it).

The whole 7.0 line has been telegraphing this release. The Rust compiler graduated from experimental behind a flag, Sätteri moved Markdown off JavaScript and onto a native Rust pipeline, advanced routing replaced the legacy SSR entrypoint, and the cache layer that shipped experimentally in v6.0 is now a stable top-level config. Stable just means the migration is mechanical; the breaking changes (compressHTML: 'jsx', the @astrojs/db removal, the dropped transition helpers, the major bumps on every integration) are real.

Vite 8 and the Rust compiler both become the default

The Vite 8 upgrade (PR #15819, delucis) and the Rust compiler promotion (PR #16462, Princesseuh) are the two foundational changes in the release. The previous beta builds needed experimental.rustCompiler: true in the config; 7.0 removes the Go-based compiler entirely, so the flag is gone with it. The release notes describe the Rust compiler as "faster and more reliable", and the new strictness is a real behaviour change: unclosed HTML tags now throw rather than being silently ignored, and semantically invalid HTML is left for the browser to handle, the same way document.write() does.

The Sätteri Markdown pipeline (Princesseuh) is now the default, and @astrojs/markdown-remark is no longer installed by default. The release pins @astrojs/markdown-satteri@0.3.1. The markdown.remarkPlugins, markdown.rehypePlugins, and markdown.remarkRehype config options still work, but only when @astrojs/markdown-remark is explicitly installed and used. The beta.4 article on Sätteri defaulting walks through the migration in detail; the beta.6 article covers the compressHTML: 'jsx' flip and the route caching promotion from experimental.

Background dev server for AI coding agents

The most agent-specific change in 7.0 is a new background mode for astro dev (PR #16610, matthewp). When Astro detects an AI coding agent (the detector checks a small set of known environment variables and CLI markers), astro dev automatically starts the dev server as a detached background process instead of blocking the agent's terminal. A lock file at .astro/dev.json records the server's URL, port, and PID, and three new subcommands ship alongside:

  • astro dev --background to start the server as a background process explicitly.
  • astro dev stop to shut the running server down.
  • astro dev status to check whether a server is running and read the URL, PID, and uptime.
  • astro dev logs (with -f to follow) to read the server output.

The release notes are explicit about opt-out: set ASTRO_DEV_BACKGROUND=0 before astro dev to force foreground behaviour even when an agent is detected. The motivation, also from the PR description, is that AI coding agents cannot usefully hold a foreground dev server in their terminal: a server that is bound to a TTY disappears when the agent moves to the next task, and a server that is not bound holds the port hostage for the next agent iteration.

AGENTS.md and CLAUDE.md in every new project

In the same release wave, create-astro@5.1.0 (PR #17122, matthewp) now writes a default AGENTS.md file into every new project after the template copy step. The generated file is short on purpose:

# 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 also creates a CLAUDE.md file at the project root pointing at the same content, via fs.symlinkSync('AGENTS.md', claudePath) with an fs.linkSync hard-link fallback if the symlink call fails on the host filesystem. Both files end up holding the same Astro onboarding content, and any AI coding agent that looks for either filename (AGENTS.md for the open AGENTS.md convention used by Codex and others, CLAUDE.md for Claude Code) will pick it up. This is the first major framework scaffolder to ship an AGENTS.md file by default; the Vite ecosystem has been converging on the filename since Codex made it a convention in early 2026.

Route caching, advanced routing, and the custom logger all graduate

Three long-running experimental features graduate to stable in 7.0. Route caching (PR #17116, ascorbic) moves out of experimental.cache and experimental.routeRules into top-level cache and routeRules config blocks. The first-party cache providers cacheNetlify() (durable cache, shared across edge nodes) and cacheVercel() (Vercel-CDN-Cache-Control + Vercel-Cache-Tag) ship in the same release as separate entrypoints in the @astrojs/netlify/cache and @astrojs/vercel/cache modules. A shared helper module astro/cache/provider-utils is exported for third-party provider authors.

Advanced routing (PR #16877, matthewp) drops the experimental.advancedRouting flag. The default entrypoint is now src/fetch.ts instead of src/app.ts, and the fetchFile option moves to the top level of the config. The custom logger feature (PR #16745, ematipico) is also stable, with built-in logHandlers.json, logHandlers.node, and logHandlers.console handlers plus a third-party entrypoint path for structured logging against Kibana, Logstash, CloudWatch, Grafana, or Loki.

The experimental.queuedRendering flag (PR #16981, ematipico) is removed because the streaming replacement is now the default rendering engine; the queue construction and node polling are gone, and only the tag cache survives in a smaller form.

@astrojs/db is gone

@astrojs/db, deprecated in v6.4.5, is removed in 7.0. The CLI commands that depended on it (astro db, astro login, astro logout, astro link, astro init) are gone too. The migration paths the release notes call out: node:sqlite (available since Node.js 22.5.0) for local SQLite storage under the Node adapter, Drizzle ORM for the schema and query API, or any other database library if you target Turso, PlanetScale, Neon, or similar.

The deprecated transition helpers in astro:transitions and astro:transitions/client (TRANSITION_BEFORE_PREPARATION, TRANSITION_AFTER_PREPARATION, TRANSITION_BEFORE_SWAP, TRANSITION_AFTER_SWAP, TRANSITION_PAGE_LOAD, isTransitionBeforePreparationEvent(), isTransitionBeforeSwapEvent(), createAnimationScope()) are also removed. The lifecycle event names are the canonical API now: event.type === 'astro:before-preparation', and so on.

Every integration bumps a major version

The 7.0 stable wave ships the major bumps in lockstep. @astrojs/vue@7.0.0, @astrojs/react@6.0.0, @astrojs/svelte@9.0.0 (also pulls in @sveltejs/vite-plugin-svelte v7), @astrojs/preact@6.0.0, @astrojs/solid-js@7.0.0, and the MDX integration all carry the Vite 8 upgrade plus a new container-renderer entrypoint that holds the getContainerRenderer() export; importing from the package root still works but logs a deprecation warning. The server adapter majors are @astrojs/vercel@11.0.0 (with cacheVercel()), @astrojs/netlify@8.0.0 (with cacheNetlify()), and @astrojs/node@11.0.0 (patches only; non-ASCII filename serving, the astrobot-houston patch).

The new Container API entrypoint is worth highlighting because it is a real bundle-size win. A typical SSR app that only uses the Container API was importing the entire integration package (@astrojs/react with the full client runtime, server runtime, types, and JSX factory) just to call getContainerRenderer(). The new @astrojs/react/container-renderer entrypoint ships only the Container API surface, and the equivalent paths exist for @astrojs/preact/container-renderer, @astrojs/svelte/container-renderer, @astrojs/solid-js/container-renderer, @astrojs/vue/container-renderer, and the MDX integration. Most apps will not need to change anything; the change pays off for library authors and integration authors who want to keep their dependency footprint tight.

What to watch

The Astro team's pattern over the 7.0 cycle has been to graduate one or two experimental features per beta and roll the migration into the next stable. Two follow-ups are likely in the next two to four weeks. The first is the astro@7.0.1 and astro@7.0.2 patches that usually follow a stable release and tend to fix the compressHTML: 'jsx' regressions that only show up on real-world content (markdown tables with surrounding inline elements, MDX components that emit raw whitespace, etc.). The second is the create-astro updates that extend the AGENTS.md content with per-template notes; the scaffold currently only writes the same generic Astro context for every template, and the team has hinted that template-specific notes will follow in create-astro@5.2.0.

Frequently Asked Questions

Oxc v0.137 Teaches the Minifier to Treeshake Pure Typed Arrays and Set/Map Literals, Lands an Incremental Scoping Refresh, and Fixes a React Compiler Edge Case

Oxc release crates_v0.137.0, published on 2026-06-18, ships two new minifier passes (treeshake pure typed arrays and Set/Map array literals via #23469, and inline const values for read-only vars via #22593), a long-running incremental scoping refresh that retires the LiveUsageCollector collector entirely (#23197), a friendly parser error for adjacent JSX elements (#23378), a React Compiler bug fix for computed-key imports (#23586), and two breaking changes to the ESTree config API (#23573, #23574). The minifier pass list also gets a Proxy-aware object-introspection fix (#23483) and a new Map/WeakSet/WeakMap preservation rule for string arguments (#23470). v0.137 is the first crates release since v0.135 on 2026-06-08 and the second since Bun's native React Compiler integration landed on 2026-06-20.

SWC v1.15.43 Lands the React Compiler as a First-Class Transform, Fixes a Silent Template Literal Minifier Bug, and Aligns `unsafe_math` with Terser

SWC v1.15.43, published on 2026-06-22 with swc_core v71.0.3, ships the experimental Rust React Compiler as a configurable SWC transform via .swcrc jsc.transform.reactCompiler (PR #11917, 54 files, 12,986 additions); fixes a silent template literal minifier bug where `compress` dropped text after the left template's last interpolation when concatenating two template literals (#11939); gates Number(x) -> +x on both `unsafe: true` AND `unsafe_math: true` to match terser v4.3.11+ (#11944, #11949); corrects scope for ES2022 private property brand checks (#11953); and lands seven internal React Compiler fixes (#11940, #11943, #11946, #11950, #11951, #11952, #11957) plus a parser fix that allows no-default builds (#11956) and a docs entry on the untrusted input security scope (#11937).

Related articles

More coverage with overlapping topics and tags.

Claude Code Issue #74066: Users Report Cross-Workspace Context Bleed on Sonnet 5, Anthropic Has Not Yet Responded
ai

Claude Code Issue #74066: Users Report Cross-Workspace Context Bleed on Sonnet 5, Anthropic Has Not Yet Responded

An open bug filed against Claude Code on 2026-07-04 by an [Enterprise ZDR](https://docs.anthropic.com/en/docs/build-with-claude/zero-data-retention) user describes a working session on Sonnet 5 that suddenly starts referencing an unrelated Minecraft temple build, then doubles down on the wrong task in its recap. The reporter (GitHub: [@milesrichardson-edb](https://github.com/milesrichardson-edb), issue [anthropics/claude-code#74066](https://github.com/anthropics/claude-code/issues/74066)) is on Enterprise Zero Data Retention, the tier Anthropic specifically advertises as session-isolated. Triage on the reporter's local session JSONL at `~/.claude/projects/<encoded-cwd>/<session-id>.jsonl` finds the leaked text is not in the transcript, ruling out a local context bleed by file overlap. Four other users in the comments (with work histories going back to last year) describe near-identical behavior across Claude Code, Claude Mobile, and Claude deep research. The most plausible architectural fit is shared KV-cache state in inference ([per @yv3nne in the comments](https://github.com/anthropics/claude-code/issues/74066#issuecomment-4880448776)), but no Anthropic engineer has commented on the issue in the 22 hours since it was filed, and the issue reached the top of [Hacker News](https://news.ycombinator.com/item?id=42481789) on 2026-07-04. The tone in the thread is split: half suspecting a real platform cache reuse, half suspecting a [sonnet-5-specific hallucination triggered by a Pygments lexer](https://github.com/anthropics/claude-code/issues/74066#issuecomment-4880334711). Both readings are credible.
Claude Code 2.1.199 Adds Stacked Slash-Skill Invocations, Fixes Subagent Error Reporting, the Background-Agent Daemon Crash Loop on Linux, and the Streaming-Response Discard Bug
ai

Claude Code 2.1.199 Adds Stacked Slash-Skill Invocations, Fixes Subagent Error Reporting, the Background-Agent Daemon Crash Loop on Linux, and the Streaming-Response Discard Bug

Anthropic released Claude Code [v2.1.199](https://github.com/anthropics/claude-code/releases/tag/v2.1.199) on 2026-07-02, one day after the v2.1.198 feature release (Chrome GA, background-agent auto-PR, /dataviz, Gateway on AWS) and two days after v2.1.197 made Sonnet 5 the default model. v2.1.199 is a bug-fix release with 24 entries: one new feature (stacked slash-skill invocations load up to 5 leading skills in one prompt), and a long list of reliability fixes for subagent error reporting, the background-agent daemon on Linux, streaming-response preservation on mid-stream API errors, SSL/TLS error handling behind corporate proxies, plan mode tool-call handling, and a per-env retry policy that no longer caps the user-tunable retry count at 15. Most of the items are in the background-agent / subagent area, which is consistent with the v2.1.197 + v2.1.198 direction of treating delegation as the product surface for Sonnet 5.
Claude Code 2.1.198 Makes Claude in Chrome Generally Available, Lets Background Agents Commit, Push, and Open Draft PRs, Adds `/dataviz` Skill, and Brings Claude Platform on AWS to the Gateway
ai

Claude Code 2.1.198 Makes Claude in Chrome Generally Available, Lets Background Agents Commit, Push, and Open Draft PRs, Adds `/dataviz` Skill, and Brings Claude Platform on AWS to the Gateway

Anthropic released Claude Code [v2.1.198](https://github.com/anthropics/claude-code/releases/tag/v2.1.198) on 2026-07-01T20:45:36Z, the second consecutive day of Claude Code shipping after v2.1.197 (the Sonnet 5 default release) the day before. The headline change is that Claude in Chrome is now generally available inside Claude Code: the browser-side assistant that was a research preview moves to a stable channel and is no longer gated behind a feature flag or a waitlist. The release also lands the first end-to-end automation for background agents in `claude agents`, which now commit, push, and open a draft pull request when they finish code work in a worktree, instead of stopping to ask for permission. Other notable additions: a `/dataviz` skill for chart and dashboard design with a runnable color-palette validator, a Gateway upstream for Claude Platform on AWS (`anthropicAws`) with model-not-found responses advancing the failover chain, a built-in Explore agent that now inherits the main session's model (capped at opus) instead of running on Haiku, and subagents that inherit the parent session's extended thinking configuration. The release also removes the `/agents` wizard and replaces it with the conversational flow, fixes a long list of reliability bugs around background agents, network drops, and platform auth, and improves syntax highlighting by upgrading to highlight.js 11.

Comments

Log in Log in to join the conversation.

No comments yet. Be the first to share your thoughts.