diff --git a/.agents/skills/astro-pr-writer/SKILL.md b/.agents/skills/astro-pr-writer/SKILL.md index a5a10933d402..7fb5076a09e9 100644 --- a/.agents/skills/astro-pr-writer/SKILL.md +++ b/.agents/skills/astro-pr-writer/SKILL.md @@ -120,7 +120,7 @@ Load the `changeset` skill to create the changeset file and write the message. I When writing the PR body: -- Always check that a changeset exists before posting the PR +- Before posting, check whether a changeset exists. If the PR modifies a package and none exists, **create it now** using the `changeset` skill — do not post the PR without one. - Do not mention "added changeset" in the `Changes` section — it is process noise, not a behavior change ## Self-Check Before Posting @@ -129,4 +129,4 @@ When writing the PR body: - `Changes` bullets describe behavior/implementation/impact - `Testing` lists test code added/changed, not test run results - `Docs` decision is explicit -- Changeset file exists in `.changeset/` for any package-modifying PR +- Changeset file exists in `.changeset/` for any package-modifying PR — if missing, create it before posting diff --git a/.agents/skills/triage/fix.md b/.agents/skills/triage/fix.md index 0784a20991af..010978e06c85 100644 --- a/.agents/skills/triage/fix.md +++ b/.agents/skills/triage/fix.md @@ -25,7 +25,7 @@ These variables are referenced throughout this skill. They may be passed as args 6. Write a unit test 7. Ensure no regressions 8. Generate git diff -9. Create a changeset +9. Create a changeset (required for any fix that modifies a package) 10. Append fix details to `report.md` 11. Clean up the working directory @@ -141,9 +141,22 @@ This captures all your changes for the report. ## Step 9: Create a Changeset -**Only do this if the fix was successful** (i.e., you are on the high-confidence path and the fix resolves the issue). If the fix failed or was skipped, skip this step entirely. +A changeset is **required** for every successful fix that modifies a package under `packages/`. This is not optional and does not scale with the size of the fix: one-line fixes, type-only fixes, and comment-only behavior changes all need a changeset. The only fixes that skip this step are ones that failed, were skipped, or touch nothing under `packages/` (e.g. `examples/*`-only changes). -Load the `changeset` skill and follow its instructions to create a changeset for the fix. Since this is a bug fix, the bump type will almost always be `patch`. +Create the changeset now: + +1. Run `pnpm changeset --empty` from the repo root. This writes a randomly-named `.md` file to `.changeset/`. +2. Edit that file to add the package bump and a user-facing message. The bump type for a bug fix is almost always `patch`: + + ```md + --- + '': patch + --- + + + ``` + +Load the `changeset` skill for the message conventions (present-tense verb, name the affected API, write for Astro users not reviewers) and the exact package name to use. ## Step 10: Write Output @@ -158,7 +171,7 @@ The report must include all information needed for a final GitHub comment to be - Whether the fix was successful or not - Verification results (did the fix resolve the original error?) - Unit test details: what test was added, where it lives, and what it verifies. If no test was added, explain why. -- Changeset details: what changeset file was created and which packages it covers. If no changeset was created, explain why. +- Changeset details: the name of the changeset file created in `.changeset/` and which packages it covers. A successful fix that modified a package must have a changeset — there is no "skipped because trivial" outcome. The only valid reason to have no changeset is that the fix failed/was skipped or touched nothing under `packages/`; state which. - Any alternative approaches considered and their tradeoffs - If the fix failed: what was tried and why it didn't work @@ -170,7 +183,7 @@ The report must include all information needed for a final GitHub comment to be - Changes outside `packages/` that were only needed for diagnosis/reproduction - Build artifacts that shouldn't be committed 3. Use `git checkout -- ` to discard unwanted changes -4. Confirm with a final `git status` that only the intended fix files remain +4. Confirm with a final `git status` that only the intended fix files remain, and that they include a new `.changeset/*.md` file. If the fix modified a package but no changeset is present, go back and create it before finishing. 5. DO NOT commit or push anything yet! The user will handle that at a later step. The `triage/` directory is already gitignored, so it won't appear in `git status`. diff --git a/.changeset/better-zebras-notice.md b/.changeset/better-zebras-notice.md new file mode 100644 index 000000000000..ff1c2e5799aa --- /dev/null +++ b/.changeset/better-zebras-notice.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Fixes a bug where `experimental_getFontFileURL()` rejected valid font URLs when using the Cloudflare adapter diff --git a/.changeset/cyan-pigs-take.md b/.changeset/cyan-pigs-take.md new file mode 100644 index 000000000000..ef6248cca3b6 --- /dev/null +++ b/.changeset/cyan-pigs-take.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Updates deprecation messages target from Astro 7 to 8 diff --git a/.changeset/famous-trains-like.md b/.changeset/famous-trains-like.md new file mode 100644 index 000000000000..fcb9c402bd64 --- /dev/null +++ b/.changeset/famous-trains-like.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Fixes session ID validation to reject non-UUID cookie values before using them as storage keys diff --git a/.changeset/few-toys-rhyme.md b/.changeset/few-toys-rhyme.md new file mode 100644 index 000000000000..2d73c1c45f2f --- /dev/null +++ b/.changeset/few-toys-rhyme.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Fixes `--mode`, `--site`, `--base`, `--out-dir`, `--verbose`, `--silent`, and `--open` flags being silently dropped when using `astro dev --background` or `astro preview --background` diff --git a/.changeset/fix-content-modules-stale-import.md b/.changeset/fix-content-modules-stale-import.md new file mode 100644 index 000000000000..52b5d4116e2f --- /dev/null +++ b/.changeset/fix-content-modules-stale-import.md @@ -0,0 +1,7 @@ +--- +'astro': patch +--- + +Fixes `content-modules.mjs` not removing entries for deleted or renamed content files, which could cause Vite to attempt to resolve non-existent modules + +As part of this fix, `#moduleImports` is now fully rebuilt from `deferredRender` entries before every write, so a module import added only through the public `addModuleImport()` API without a corresponding `deferredRender` entry in the store will no longer be preserved across writes. diff --git a/.changeset/gentle-regions-shave.md b/.changeset/gentle-regions-shave.md new file mode 100644 index 000000000000..4ea58b32cf9d --- /dev/null +++ b/.changeset/gentle-regions-shave.md @@ -0,0 +1,6 @@ +--- +'astro': patch +'@astrojs/mdx': patch +--- + +Fixes build errors showing wrong file location, missing line:col, and misleading hints when a plugin error (e.g. from MDX) is wrapped by Vite's build error diff --git a/.changeset/gold-roses-fetch.md b/.changeset/gold-roses-fetch.md new file mode 100644 index 000000000000..0f0534d834d5 --- /dev/null +++ b/.changeset/gold-roses-fetch.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Fixes an issue where Astro CSP support didn't correctly handle cases `"unsafe-inline"` resource. Now when `"unsafe-inline"`, Astro won't emit hashes for the directive specified. diff --git a/.changeset/grumpy-bats-return.md b/.changeset/grumpy-bats-return.md new file mode 100644 index 000000000000..05df2d2b98e6 --- /dev/null +++ b/.changeset/grumpy-bats-return.md @@ -0,0 +1,6 @@ +--- +'@astrojs/mdx': patch +'@astrojs/markdown-satteri': patch +--- + +Fixes Sätteri processor option types to accept all plugin entries supported by Sätteri v0.10.3. diff --git a/.changeset/moody-geckos-train.md b/.changeset/moody-geckos-train.md new file mode 100644 index 000000000000..033bebc96236 --- /dev/null +++ b/.changeset/moody-geckos-train.md @@ -0,0 +1,5 @@ +--- +'@astrojs/netlify': patch +--- + +Fixes generated Netlify Image CDN allowlists to reject remote URLs that contain an allowed image origin only within their path or query string diff --git a/.changeset/persisted-media-keep-identity.md b/.changeset/persisted-media-keep-identity.md new file mode 100644 index 000000000000..591521d921df --- /dev/null +++ b/.changeset/persisted-media-keep-identity.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Fixes a regression where `transition:persist` stopped working for `