Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
103 commits
Select commit Hold shift + click to select a range
def2fbe
Embedded langs in <Code /> (#15298)
jfrancos Feb 16, 2026
2babea0
Merge remote-tracking branch 'origin/main' into next
ematipico Mar 24, 2026
26bdb87
chore: enter prelease mode (#16057)
ematipico Mar 24, 2026
cf0d654
Merge remote-tracking branch 'origin/main' into next
ematipico Mar 26, 2026
f744561
Merge branch 'main' into next
delucis Mar 30, 2026
ee079d4
chore: merge main into next (#16434)
ematipico Apr 21, 2026
cafec4e
Update to Vite 8 (#15819)
delucis Apr 22, 2026
9b833e7
chore: merge `main` into `next` (#16455)
ematipico Apr 23, 2026
ebca722
chore: another merge, plus lost fixes (#16464)
ematipico Apr 27, 2026
6c897a1
docs(next): remove an already released changeset (#16490)
ArmandPhilippot Apr 27, 2026
c30a778
feat: make the Rust compiler the only option (#16462)
Princesseuh Apr 29, 2026
86a12e2
Merge branch 'main' into chore/merge-main-to-next-3
ematipico Apr 30, 2026
014d423
fix tests
ematipico Apr 30, 2026
ad72b0f
fix lint
ematipico Apr 30, 2026
4d1ce40
avoid error
ematipico Apr 30, 2026
c3072b5
more fixes
ematipico Apr 30, 2026
6931dd1
fix(test): Remove unused React integration from compressHTML: 'jsx' f…
Princesseuh Apr 30, 2026
193f347
chore: fixed some other tests
ematipico Apr 30, 2026
d68cbd6
chore: remove stray log
ematipico Apr 30, 2026
36e3032
fix: assertion for content
ematipico Apr 30, 2026
8a5c856
fix: assertion for content
ematipico Apr 30, 2026
91f806c
fix(test): use regex to extract SVG import path in island test
matthewp Apr 30, 2026
25ab422
fix: css order test
ematipico Apr 30, 2026
a78075f
fix(test): handle Rolldown error wrapping in CSP server islands test
matthewp Apr 30, 2026
b1ac6a1
fix: regex to catch the cid
ematipico Apr 30, 2026
f29683e
fix: regex to catch the src image
ematipico Apr 30, 2026
c745f61
chore: linting
ematipico Apr 30, 2026
7ceb1ce
fix: check of errors and new css
ematipico Apr 30, 2026
9d81f02
fix: unit test, and restore e2e tests skip and methodology
ematipico Apr 30, 2026
6b2e552
fix: last e2e test case
ematipico Apr 30, 2026
c0125c1
fix: linting
ematipico Apr 30, 2026
08ef476
chore: merge main into next after release (#16530)
ematipico Apr 30, 2026
20d796c
[ci] release (alpha) (#16460)
astrobot-houston Apr 30, 2026
7ec8ef4
chore: merge main into next (conflicts)
astrobot-houston Apr 30, 2026
d10cb4c
fix: resolve merge conflicts in package.json files, changelogs, and u…
astrobot-houston Apr 30, 2026
7af320e
chore: merge main into next (#16538)
matthewp Apr 30, 2026
78653bb
chore: merge main into next (#16586)
matthewp May 6, 2026
ad9abdb
Merge branch 'main' into chore/merge-main-into-next
ematipico May 7, 2026
e322c24
chore: merge main into next (#16637)
ematipico May 7, 2026
deaaf3f
chore: remove Vite 8 warning (#16603)
alexanderniebuhr May 9, 2026
7c6c96d
[ci] release (alpha) (#16670)
astrobot-houston May 9, 2026
908b3f7
chore: make actions green again (#16706)
ocavue May 12, 2026
10229f7
feat(next): remove deprecated `astro:transitions` internals (#16725)
ArmandPhilippot May 15, 2026
fd926fd
chore: remove deprecation warning for Astro locals (#16671)
alexanderniebuhr May 15, 2026
8d1af3b
Merge remote-tracking branch 'origin/main' into chore/merge-main-into…
ematipico May 19, 2026
29ec81d
chore: merge main into next
ematipico May 19, 2026
4d0b67f
chore: update vitest to the latest
ematipico May 19, 2026
ce88423
Dedupe `vite` (#16787)
ocavue May 19, 2026
06c0ed2
fix: tests
ematipico May 19, 2026
c4fa743
fix: solid rendering
ematipico May 19, 2026
16fbd29
chore: merge main into next (#16786)
ematipico May 19, 2026
ce07fb7
Re-enable Svelte e2e tests (#16792)
matthewp May 19, 2026
9d9d516
chore(deps): update `@sveltejs/vite-plugin-svelte` to v7 (#16549)
ocavue May 20, 2026
3652d1c
chore: merge main into next
ocavue May 28, 2026
fa47473
fix: append assetQueryParams to Rolldown backtick dynamic imports
ocavue May 28, 2026
6e4a162
test: skip conditional-rendering CSS test pending Rolldown support
ocavue May 28, 2026
5887de1
docs: link es-module-lexer issue in chunk-imports workaround
ocavue May 28, 2026
b955d2b
chore: merge main into next (#16886)
ocavue May 28, 2026
68cbafa
chore: merge main into next
ocavue May 28, 2026
8ee2225
chore: merge main into next (#16893)
ocavue May 28, 2026
9c2b95b
Merge remote-tracking branch 'origin/main' into chore/merge-main-into…
ematipico Jun 2, 2026
4fed856
dedupe
ematipico Jun 2, 2026
6a90f94
chore: merge main into next (#16943)
ematipico Jun 2, 2026
ce1645d
Merge branch 'main' into chore/merge-main-into-next
ematipico Jun 2, 2026
e640ff6
chore: merge main into next (#16948)
ematipico Jun 2, 2026
75cfa52
chore: merge main into next
ocavue Jun 3, 2026
8b7a679
chore: merge main into next
ocavue Jun 4, 2026
729e831
chore: merge main into next (#16962)
ematipico Jun 4, 2026
c63e7e4
Background dev server for AI coding agents (#16610)
matthewp Jun 5, 2026
1f07343
Mark context provider APIs as internal (#16980)
matthewp Jun 8, 2026
1e000e2
Always define session getter on context objects (#16982)
matthewp Jun 8, 2026
ebeb830
chore: merge main into next (#16990)
ocavue Jun 8, 2026
17c4178
[ci] release (alpha) (#16749)
astrobot-houston Jun 8, 2026
300641e
feat(fonts): include subset field in fontData from astro:assets (#16996)
florian-lefebvre Jun 8, 2026
57dcc31
Expose getFetchState() from astro/hono (#16998)
matthewp Jun 8, 2026
0d6d644
feat: stabilise queued rendering (#16981)
ematipico Jun 9, 2026
e61df53
Merge remote-tracking branch 'origin/main' into chore/merge-main-into…
ematipico Jun 9, 2026
1645177
chore: merge main into next (#17002)
ematipico Jun 9, 2026
3b7d76e
Unflag advanced routing (#16877)
matthewp Jun 9, 2026
138bc08
Merge branch 'main' into merge-main-next-june-9
matthewp Jun 9, 2026
169c803
Merge main into next (June 9) (#17007)
matthewp Jun 9, 2026
4291c4e
chore: bump mdx ahead of main merge (#17005)
ocavue Jun 9, 2026
ab9eea8
chore: change prerelease tag to beta (#17008)
ocavue Jun 9, 2026
d0d0296
chore: fix prerelease peer dep versions (#17009)
ocavue Jun 9, 2026
f864a80
feat: unflag logger (#16745)
ematipico Jun 9, 2026
1a5e9c6
fix: version of logger (#17011)
ematipico Jun 9, 2026
0606073
feat: remove `@astrojs/db` (#17010)
ocavue Jun 9, 2026
2dca5e3
[ci] release (beta) (#16999)
astrobot-houston Jun 9, 2026
64882b8
docs: update changeset file for removing `@astrojs/db` (#17014)
ocavue Jun 9, 2026
426124d
chore: update vite to v8 in with-tailwindcss example (#17012)
ocavue Jun 9, 2026
3bb1cc6
fix(docs,v7): add docs for logger nested config (#17019)
ArmandPhilippot Jun 10, 2026
241250b
chore: trigger beta release for some packages (#17027)
ocavue Jun 11, 2026
08b84d6
[ci] release (beta) (#17045)
astrobot-houston Jun 13, 2026
f5e0aae
chore: merge main into next
ocavue Jun 15, 2026
2f4d92a
Fix prerendered redirect targets inflating SSR bundle in hybrid mode …
matthewp Jun 15, 2026
0537f5c
[ci] format
ematipico Jun 15, 2026
ef771ec
fix: improve diagnostics (#17046)
ematipico Jun 15, 2026
910e121
[ci] release (#17036)
astrobot-houston Jun 15, 2026
65eb6c1
chore: merge main into next
ocavue Jun 15, 2026
c91fc0a
ci: allow releases from 6-legacy (#17079)
ematipico Jun 15, 2026
4ae7a74
chore: merge main into next (#17042)
ematipico Jun 15, 2026
6650ec2
feat: make Sätteri the default Markdown pipeline (#16966)
Princesseuh Jun 15, 2026
5a1cff5
feat: Astro v7 (#16488)
ematipico Jun 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 0 additions & 5 deletions .changeset/all-badgers-peel.md

This file was deleted.

5 changes: 5 additions & 0 deletions .changeset/beige-doodles-bow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'astro': patch
---

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.
9 changes: 0 additions & 9 deletions .changeset/bold-stars-6d152.md

This file was deleted.

16 changes: 16 additions & 0 deletions .changeset/common-pears-drive.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
'@astrojs/cloudflare': major
'@astrojs/alpinejs': major
'@astrojs/markdoc': major
'@astrojs/netlify': major
'@astrojs/preact': major
'@astrojs/svelte': major
'@astrojs/vercel': major
'@astrojs/react': major
'@astrojs/solid-js': major
'@astrojs/mdx': major
'@astrojs/vue': major
'astro': major
---

Upgrade to Vite v8
2 changes: 1 addition & 1 deletion .changeset/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"commit": false,
"linked": [],
"access": "public",
"baseBranch": "origin/main",
"baseBranch": "origin/next",
"updateInternalDependencies": "patch",
"___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": {
"onlyUpdatePeerDependentsWhenOutOfRange": true
Expand Down
5 changes: 5 additions & 0 deletions .changeset/cozy-knives-buy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'astro': patch
---

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`.
24 changes: 24 additions & 0 deletions .changeset/experimental-background-dev.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
'astro': major
---

Adds background dev server management for AI coding agents.

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.

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.

#### New flag and subcommands

- `astro dev --background` — Start the dev server as a background process (this is what runs automatically when an agent is detected).
- `astro dev stop` — Stop a running background dev server.
- `astro dev status` — Check if a dev server is running and display its URL, PID, and uptime.
- `astro dev logs` — View logs from a background dev server. Use `--follow` (`-f`) to stream new output as it's written.

These allow you to start and manage dev servers programmatically and were designed with AI coding agents in mind.

#### What should I do?

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.

To opt out of automatic background mode when an agent is detected, set the environment variable `ASTRO_DEV_BACKGROUND=0` before running `astro dev`.
24 changes: 24 additions & 0 deletions .changeset/expose-get-fetch-state.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
'astro': minor
---

Exposes `getFetchState()` from `astro/hono` as a public API

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

```ts
import { Hono } from 'hono';
import { getFetchState, pages } from 'astro/hono';

const app = new Hono();

app.use(async (context, next) => {
const state = getFetchState(context);
state.locals.message = 'Hello from custom middleware';
await next();
});

app.use(pages());

export default app;
```
5 changes: 0 additions & 5 deletions .changeset/fix-compress-html-head-join.md

This file was deleted.

7 changes: 0 additions & 7 deletions .changeset/fix-custom-element-slot-attribute.md

This file was deleted.

5 changes: 5 additions & 0 deletions .changeset/fix-dev-port-vite-restart.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'astro': patch
---

Fixes `--port` flag being ignored after a Vite-triggered server restart (e.g. when a `.env` file changes)
9 changes: 0 additions & 9 deletions .changeset/fix-stale-css-hmr-16780.md

This file was deleted.

5 changes: 5 additions & 0 deletions .changeset/font-data-subset-field.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'astro': minor
---

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.
5 changes: 5 additions & 0 deletions .changeset/goofy-tigers-like.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'astro': patch
---

Removes the warning that Astro does not support vite v8, since Astro v7 does support vite v8
5 changes: 0 additions & 5 deletions .changeset/itchy-snails-march.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/long-cloths-smoke.md

This file was deleted.

57 changes: 57 additions & 0 deletions .changeset/plenty-meals-wonder.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
---
'astro': minor
---

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.

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.

Astro provides three built-in log handlers (`json`, `node`, and `console`), and you can also create your own.

#### JSON logging

```js
import { defineConfig, logHandlers } from 'astro/config';

export default defineConfig({
logger: logHandlers.json({
pretty: true,
level: 'warn',
}),
});
```

#### Custom logger

```js
import { defineConfig } from 'astro/config';

export default defineConfig({
logger: {
entrypoint: '@org/custom-logger',
},
});
```

Additionally, `context.logger` is now always available in API routes and middleware, even without a custom logger configured.

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

```diff
import { defineConfig } from 'astro/config';

export default defineConfig({
- experimental: {
- logger: {
- entrypoint: '@org/custom-logger',
- },
- },
+ logger: {
+ entrypoint: '@org/custom-logger',
+ },
});
```

If you have been waiting for stabilization before using custom loggers, you can now do so.

Please see the [Logger docs](https://docs.astro.build/en/reference/configuration-reference/#logger) for more about this feature.
55 changes: 55 additions & 0 deletions .changeset/pre.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
{
"mode": "pre",
"tag": "beta",
"initialVersions": {
"astro": "6.0.8",
"@astrojs/prism": "4.0.1",
"@astrojs/rss": "4.0.17",
"create-astro": "5.0.3",
"@astrojs/alpinejs": "0.5.0",
"@astrojs/cloudflare": "13.1.3",
"@astrojs/markdoc": "1.0.2",
"@astrojs/mdx": "5.0.2",
"@astrojs/netlify": "7.0.4",
"@astrojs/node": "10.0.3",
"@astrojs/partytown": "2.1.5",
"@astrojs/preact": "5.0.2",
"@astrojs/react": "5.0.1",
"@astrojs/sitemap": "3.7.1",
"@astrojs/solid-js": "6.0.1",
"@astrojs/svelte": "8.0.3",
"@astrojs/vercel": "10.0.2",
"@astrojs/vue": "6.0.1",
"@astrojs/internal-helpers": "0.8.0",
"@astrojs/check": "0.9.8",
"@astrojs/language-server": "2.16.6",
"@astrojs/ts-plugin": "1.10.7",
"astro-vscode": "2.16.13",
"@astrojs/yaml2ts": "0.2.3",
"@astrojs/markdown-remark": "7.0.1",
"@astrojs/telemetry": "3.3.0",
"@astrojs/underscore-redirects": "1.0.2",
"@astrojs/upgrade": "0.7.1",
"@astrojs/markdown-satteri": "0.2.2"
},
"changesets": [
"beige-doodles-bow",
"common-pears-drive",
"cozy-knives-buy",
"experimental-background-dev",
"expose-get-fetch-state",
"fix-dev-port-vite-restart",
"font-data-subset-field",
"goofy-tigers-like",
"plenty-meals-wonder",
"remove-db-cli-command",
"rusty-compilers-only",
"seven-pots-begin",
"silly-spoons-write",
"social-paws-take",
"trigger-beta",
"two-eels-live",
"update-vite-plugin-svelte-v7",
"wacky-bugs-act"
]
}
5 changes: 0 additions & 5 deletions .changeset/rare-eggs-notice.md

This file was deleted.

13 changes: 13 additions & 0 deletions .changeset/remove-db-cli-command.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
'astro': major
---

Removes the `@astrojs/db` package as it is no longer maintained.

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.

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:

- **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.
- **[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.
- **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/)).
11 changes: 11 additions & 0 deletions .changeset/rusty-compilers-only.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
'astro': major
---

Replaces the Go compiler with a Rust-based version.

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.

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.

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.
23 changes: 23 additions & 0 deletions .changeset/satteri-default-markdown-processor.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
'astro': major
---

Makes Sätteri the default Markdown processor

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.

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

```js
// astro.config.mjs
import { defineConfig } from 'astro/config';
import { unified } from '@astrojs/markdown-remark';

export default defineConfig({
markdown: {
processor: unified(),
},
});
```

The deprecated `markdown.remarkPlugins`, `markdown.rehypePlugins`, and `markdown.remarkRehype` options still work, but now require `@astrojs/markdown-remark` to be used.
44 changes: 44 additions & 0 deletions .changeset/seven-pots-begin.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
'astro': major
---

Enables advanced routing by default.

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.

This gives full control over how requests flow through your application, with first-class support for frameworks like Hono.

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

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:

```diff
import { defineConfig } from 'astro/config';

export default defineConfig({
experimental {
- advancedRouting: true,
},
+ fetchFile: 'app.ts' // optional, you only need this if you cannot rename your entrypoint.
});
```

`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:

```diff
// astro.config.mjs
export default defineConfig({
- experimental: {
- advancedRouting: {
- fetchFile: 'my-custom-entrypoint.ts',
- },
- },
+ fetchFile: 'my-custom-entrypoint.ts',
})
```

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.

If you have been waiting for stabilization before using advanced routing, you can now do so.

Please see [the advanced routing guide in docs](https://docs.astro.build/en/guides/routing/#advanced-routing) for more about this feature.
5 changes: 0 additions & 5 deletions .changeset/shaggy-wolves-serve.md

This file was deleted.

5 changes: 5 additions & 0 deletions .changeset/silly-spoons-write.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@astrojs/cloudflare': patch
---

Removes deprecations warnings added in Astro v6 for Cloudflare specific Astro.locals properties.
Loading
Loading