fix(deps): update astro monorepo to v7 - #198
Conversation
Deploying dev-blog with
|
| Latest commit: |
0732e33
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://7af1cad4.dev-blog-10f.pages.dev |
| Branch Preview URL: | https://renovate-major-astro-monorep.dev-blog-10f.pages.dev |
65cd7dd to
29e3050
Compare
6a43c9d to
83ae73e
Compare
83ae73e to
5bc820c
Compare
5bc820c to
9123445
Compare
06d4ae3 to
d979b2c
Compare
621c030 to
9763cd6
Compare
9763cd6 to
0732e33
Compare
|
@cursor can you investigate this one and make sure everything is g2g? |
|
Verdict: Astro 7 is good to merge. Build, typecheck, and all 8 visual snapshots pass on this branch; Cloudflare already deployed successfully. Breaking-change audit (nothing blocking):
One small hygiene fix I made locally (not on the remote PR yet): switch content schemas to Recommendation: Merge #198 as-is. Optionally set |


This PR contains the following updates:
^5.0.0→^7.0.0^6.0.0→^7.0.0Release Notes
withastro/astro (@astrojs/mdx)
v7.0.8Compare Source
Patch Changes
#17757
660991cThanks @astro-factory! - 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#17766
0762a83Thanks @HiDeoo! - Fixes Sätteri processor option types to accept all plugin entries supported by Sätteri v0.10.3.v7.0.7Compare Source
Patch Changes
#17731
bc171afThanks @Princesseuh! - Updates Sätteri processor to v0.10.3. See its changelog for details on bugs fixed and features added.Updated dependencies [
05763a0]:v7.0.6Compare Source
Patch Changes
8c193f6]:v7.0.5Compare Source
Patch Changes
c895b12]:v7.0.4Compare Source
Patch Changes
41a00ddThanks @gtritchie! - Fixes a bug where the integration was emitting React-cased attribute names.v7.0.3Compare Source
Patch Changes
64b0d66Thanks @Princesseuh! - Fixes customprecomponents not applying to syntax-highlighted code blocks when using the Sätteri Markdown processor with MDX.v7.0.2Compare Source
Patch Changes
eb6f97e]:v7.0.1Compare Source
Patch Changes
02b73b0Thanks @ematipico! - Fixes an issue where thepeerDependenciesfield used incorrect dependencies.v7.0.0Compare Source
Major Changes
cafec4eThanks @delucis! - Upgrade to Vite v8Minor Changes
#17093
4585fe5Thanks @Princesseuh! - Replaces the import entrypoint ofgetContainerRenderer()A new
container-rendererentrypoint exportinggetContainerRenderer()has been added to the following integrations: React, Preact, Svelte, SolidJS, Vue, and MDX. This prevents bundlers from trying to bundle unrelated exports from the package root when only the Container API is used.If you are using the Container API, update your import statements to use the new entrypoint. The following example updates the
getContainerRenderer()import for React:Importing
getContainerRenderer()from the package root still works, but is now deprecated and logs a warning.#17129
ff7b718Thanks @Princesseuh! - Adds support for modifying frontmatter programmatically with the default Markdown processor.A Sätteri plugin can now read and mutate
ctx.data.astro.frontmatter, and Astro uses the result as the page's frontmatter, in both Markdown and MDX.Patch Changes
#17124
7e7ab87Thanks @Princesseuh! - Updatessatterito0.9.0. See the Sätteri changelog for details.#17027
241250bThanks @ocavue! - Triggers beta prereleases for packages that are still on alphav6.0.3Compare Source
Patch Changes
#16969
4a31f90Thanks @Princesseuh! - Adds support for Prism syntax highlighting to the Sätteri Markdown and MDX processors. Settingmarkdown.syntaxHighlightto'prism'now highlights your code blocks with Prism.v6.0.2Patch Changes
#16955
9a93d68Thanks @Princesseuh! - Updates Sätteri processor to v0.8.0. See its changelog for details on bugs fixed and features added.Updated dependencies [
9a93d68]:v6.0.1Patch Changes
eeb064c]:v6.0.0Compare Source
Major Changes
#16848
f732f3cThanks @Princesseuh! - Adds a newmarkdown.processorconfiguration option, allowing you to choose an alternative Markdown processor.Websites with many Markdown/MDX files tend to be slow to build because the unified ecosystem (e.g., remark, rehype) is slow to process. This feature introduces the ability to replace this part of the build pipeline with another processor.
The default processor is
unified(). This means that existing configurations remain unchanged and your remark/rehype plugins continue to work.In addition to this new configuration option, Astro provides a new alternative processor based on Rust: Sätteri. You can choose to use it now by installing
@astrojs/markdown-satteri, importing thesatteri()processor, and adapting your existing configuration:This processor does not support the remark and rehype plugins. This means you may need to convert them to MDAST or HAST plugins to retain your current functionality.
The existing top-level
markdown.remarkPlugins,markdown.rehypePlugins,markdown.remarkRehype,markdown.gfm, andmarkdown.smartypantsoptions still work, but are now deprecated and will be removed in a future major update. The matchingremarkPlugins,rehypePlugins, andremarkRehypeoptions on the MDX integration are also deprecated for the same reason. To anticipate their removal, move them ontounified({...})(or your preferred plugin processor) :// astro.config.mjs import { defineConfig } from 'astro/config'; import remarkToc from 'remark-toc'; import rehypeSlug from 'rehype-slug'; + import { unified } from '@astrojs/markdown-remark'; export default defineConfig({ markdown: { + processor: unified({ + remarkPlugins: [remarkToc], + rehypePlugins: [rehypeSlug], + remarkRehype: true, + gfm: true, + smartypants: true, + }), - remarkPlugins: [remarkToc], - rehypePlugins: [rehypeSlug], - remarkRehype: true, - gfm: true, - smartypants: true, }, });For more information on enabling and using this feature in your project, see our Markdown guide. To give feedback on this new Rust processor, see the Native Markdown / MDX parsing and processing RFC.
Minor Changes
#16848
f732f3cThanks @Princesseuh! - Adds support for using@astrojs/markdown-satterito parse.mdxfiles.Note that the
recmaPluginsoption is not supported when using Sätteri as your MDX processor. If you would like to use Sätteri for Markdown files, but still use Unified for MDX, you can pass a different Markdown processor to the MDX integration:Patch Changes
f732f3c,f732f3c,f732f3c]:withastro/astro (astro)
v7.2.9Compare Source
Patch Changes
#17846
b441180Thanks @Princesseuh! - Fixes importing.htmlfiles not being typed outside of.astrofiles#17831
32e8b44Thanks @astro-factory! - Fixes a crash when requesting/index.htmlagainst a dynamic page route like[slug].astro#17841
c35448eThanks @astro-factory! - Fixes SSR manifest containing staleentryModulesreferences to prerender-only chunks that no longer exist in the final build output#17847
eb87a23Thanks @matthewp! - Fixesset:textescaping in MDX script and style elementsv7.2.8Compare Source
Patch Changes
#17837
ecb4082Thanks @matthewp! - Updates the minimum supported version of Sharp to 0.35.4#17786
db7c53bThanks @gameroman! - Replaces the internalfind-processdependency with a smaller, lighter alternativev7.2.7Compare Source
Patch Changes
#17415
55d38c8Thanks @iseraph-dev! - Deserializes each route once when loading the SSR manifest#17772
023b48bThanks @matthewp! - Fixes route selection for normalized request paths in adapter and development request handling#17819
633855bThanks @matthewp! - Updates generated and default Cloudflarecompatibility_datevalues to match the installed runtime and requires Wrangler^4.125.0#17813
ae26d18Thanks @matthewp! - Fixesrewrite()andnext(payload)for GET and HEAD requests with host-provided bodies#17816
a0d2fe3Thanks @astro-factory! - Fixes the experimentalsvgOptimizernot generating unique per-file ID prefixes when using SVGO'sprefixIdspluginv7.2.6Compare Source
Patch Changes
29af6daThanks @matthewp! - Fixes a bug wherenew FetchState(request)could fail in development when server dependencies were optimizedv7.2.5Compare Source
Patch Changes
#17758
5f419e2Thanks @astro-factory! - Fixes a bug whereexperimental_getFontFileURL()rejected valid font URLs when using the Cloudflare adapter#17416
493796bThanks @iseraph-dev! - Skips no-op pathname writes when normalizing SSR request URLs#17712
bd374b7Thanks @fkatsuhiro! - Updates deprecation messages target from Astro 7 to 8#17719
dac1768Thanks @astrobot-houston! - Fixes session ID validation to reject non-UUID cookie values before using them as storage keys#17770
84eb7e7Thanks @astro-factory! - Fixes--mode,--site,--base,--out-dir,--verbose,--silent, and--openflags being silently dropped when usingastro dev --backgroundorastro preview --background#17713
d035290Thanks @wakqasahmed! - Fixescontent-modules.mjsnot removing entries for deleted or renamed content files, which could cause Vite to attempt to resolve non-existent modulesAs part of this fix,
#moduleImportsis now fully rebuilt fromdeferredRenderentries before every write, so a module import added only through the publicaddModuleImport()API without a correspondingdeferredRenderentry in the store will no longer be preserved across writes.#17743
adc750fThanks @contactjawad! - FixesAstro.preferredLocaleandAstro.preferredLocaleListignoringAccept-Languagequality values when they are absent or0. An entry without an explicitq=now correctly counts as quality1.0(per RFC 7231) and an entry withq=0is treated as not acceptable, so the highest-quality locale is selected regardless of header order.#17757
660991cThanks @astro-factory! - 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#17783
60b14ffThanks @matthewp! - Fixes a type error when passing an image from a content collectionimage()schema to a component or<Image />. The schema returned byimage()was missing theapngformat, so it no longer matched the type of an imported image.#17664
d483125Thanks @astrobot-houston! - 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.#17810
0fc5f65Thanks @florian-lefebvre! - Fixes a regression in the content collections that could cause images to not be resolved#17781
aa33b44Thanks @matthewp! - FixesmemoryCache()storing responses that set cookies throughAstro.cookiesorAstro.session#17787
6661fbeThanks @astro-factory! - Fixesserver:defercrashing the dev server with "undefined is not a function" when a deferred component imports fromastro:i18n#17750
dd0e3acThanks @dobrodob! - Fixes a regression wheretransition:persiststopped working for<audio>and<video>elements.#17774
fe1d16dThanks @astro-factory! - Adds support for importing.apngfiles as image metadata for use with standard<img>elements. Astro's image components reject APNG files to avoid removing their animation#17799
8797754Thanks @astro-factory! - Fixes i18nfallbackType: "rewrite"returning 500 instead of 404 when the fallback locale also has no matching static path for a prerendered dynamic route#17741
99d3d3dThanks @ericswpark! - Bumps the Astro compiler to the latest version. Changelog.#17782
3578d45Thanks @Princesseuh! - Improves the performance of the Astro CLI in local by enabling Node's module compilation cache.#17705
2043e4fThanks @astrobot-houston! - Fixes incremental builds serving cached HTML that references stale CSS filenames after a stylesheet-only edit#17754
3d50dfdThanks @astro-factory! - Fixes the dev server refusing to start in Docker containers after a restart due to PID reuse in the lock file check#17769
bbda94dThanks @astro-factory! - Fixes a build failure when definingvite.environments.ssrin the Astro config. User-provided environment config forssr,prerender, orclientis now properly deep-merged with Astro's internal environment settings instead of silently breaking the server entry naming.#17776
0874da8Thanks @astro-factory! - Fixes theglob()content loader failing to load files with colons in their names (e.g.,Guide: Architecture.md)Updated dependencies [
0762a83,0c99615]:v7.2.4Compare Source
Patch Changes
#17747
a90ff66Thanks @Princesseuh! - Fixes builds hanging when an image file is malformed#17701
05763a0Thanks @matthewp! - Fixes base path stripping to respect path-segment boundaries. With a configuredbasesuch as/docs, a request like/docs-archive/pageis no longer treated as being under the base, so routing andcontext.url.pathnamenow agree on the same pathname.#17742
70b449dThanks @Kjubikstronk! - Fixesastro buildthrowingTypeError: Missing parameterfor dynamic routes whenbuild.format: 'preserve'andtrailingSlash: 'always'are used together. Stripping the framework-injected.htmlsuffix dropped the trailing slash that the compiled route pattern requires, so the route no longer matched itself and its params resolved as empty.#17703
771b0a9Thanks @astrobot-houston! - FixesAstro.sitealways beingundefinedwhen rendering components via the Container API, even whensiteis set inastroConfigUpdated dependencies [
05763a0,bc171af]:v7.2.3Compare Source
Patch Changes
#17724
97140b2Thanks @ematipico! - Fixes an issue where Astro could run out of memory whenexperimental.collectionStorageis set tochunkedand there are multiple concurrent updates to the same collection.#17636
51723b1Thanks @matthewp! - Fixes the dev server sometimes matching against stale routes after pages were added, removed, or renamed, requiring a dev server restart to pick up the change#17636
51723b1Thanks @matthewp! - Fixes the composable request helpers (astro/fetch) throwing an error when used on a request that had been rewritten withAstro.rewrite()ornext()#17636
51723b1Thanks @matthewp! - Refactors Astro's internal server-side request handling. This is an internal change: all documented public APIs, includingAppandNodeApp, keep their existing signatures and behavior.The undocumented internal
app.pipelineproperty and theAppPipelineexport fromastro/apphave been removed. Adapters that usedapp.pipeline.getLogger()to wait for the configured log destination can call the newapp.getLogger()instead.As a result of this refactor,
new FetchState(request)fromastro/fetchnow works anywhere inside a built Astro server — including customsrc/fetch.tsentrypoints — without the request needing to first pass throughapp.render(). Previously this threw an error, breaking patterns like the Cloudflare adapter's advanced custom-worker setup.#17723
c3b9aedThanks @florian-lefebvre! - Fixes a link in font providers JSDoc annotations#17699
e28d227Thanks @ArmandPhilippot! - Fixes several documentation issues related to the JSDoc for configuration options.serverandfontsoptions, the JSDoc for the nested options was displayed instead of the JSDoc for the top-level property.#17572
2066f39Thanks @matthewp! - Fixes a crash when a request arrives with a malformed port in theHostheader (for exampleexample.com:65536orexample.com:8080:8080). Such a host made the constructed request URL invalid, and the fallback that was meant to recover reused the same invalid host and threw again. The request URL now degrades to a host the server controls when the incoming host cannot be parsed, so the request is handled instead of erroring.#17685
9f15609Thanks @astrobot-houston! - Fixes a dev server error where an SSR full reload triggered by a third-party Vite plugin (such as@tailwindcss/vite) could fail withFailed to load url astro:server-app.js#17636
51723b1Thanks @matthewp! - Improves error handling for custom log destinations. When the configured logger fails to load, Astro now reports the error and continues with the default console logger instead of failing the first request.#17631
cf29becThanks @matthewp! - FixesgetCollection()andgetEntry()throwingDataCloneErrorwhen a collection schema transform returns aTemporal.PlainDateor other class instance.Updated dependencies [
8c193f6]:v7.2.2Compare Source
Patch Changes
#17611
9bc3207Thanks @thelazylamaGit! - Fixes component styles rendered from content entries remaining stale until a second save when an adapter uses Astro's fallback development environment#17634
2267eeeThanks @astrobot-houston! - Fixes incremental builds dropping optimized images for cached pages when using acollectStaticImagesprerenderer (e.g.@astrojs/cloudflarewith compile-time image optimization)#17650
4cdf128Thanks @astrobot-houston! - Fixes intermittentImageNotFounderrors during build on projects with many images. The build now limits concurrent image file reads to avoid exhausting OS file descriptors (EMFILE) and retries transient I/O errors with backoff. Non-transient errors are no longer silently swallowed.#17683
2378221Thanks @astrobot-houston! - FixesprerenderConflictBehaviornot applying to content collection duplicate ID warnings in theglob()andfile()loaders. Setting it to'error'now throws during content sync, and'ignore'suppresses the warning.#17659
90c6ea4Thanks @astrobot-houston! - Fixes the Fonts API breakingexperimental.incrementalBuildcaching by embedding a build-local, randomly-assigned server port in generated code used for the dependency hash#17630
fd1d9eeThanks @ericclemmons! - Fixes incremental builds becoming prohibitively slow for sites with many pages or content entries that share a large dependency graph.#17690
93beeccThanks @NgoQuocViet2001! - Prevents files in directories whose names start withpagesfrom being treated as page routes#17671
09f0dc7Thanks @tarikermis! - Fixesastro devrefusing to start after a Docker container restart when an unrelated process reuses the PID from a persisted lock file. Astro now checks the process command across platforms, so stale lock files are cleaned up and--forcedoes not signal the unrelated process.v7.2.1Compare Source
Patch Changes
#17612
7133730Thanks @thelazylamaGit! - Fixes CSS hot module replacement after navigating between pages withClientRouter#17628
4ada248Thanks @astrobot-houston! - Fixes a CSP violation when using bothsecurity.cspandexperimental.clientPrerenderwithdata-astro-prefetchlinks. The dynamically injected<script type="speculationrules">now uses a static"source": "document"approach with a CSS selector, producing a deterministic payload that is hashed and included in the CSPscript-srcdirective at build time.#17605
89e4647Thanks @ashleigh-yeoman! - Fixes middleware HMR not responding to changes in imported modules. Previously, only direct edits to the middleware file would trigger a reload.#17582
bd2c1a5Thanks @astrobot-houston! - Fixes a regression where content collectionreference()fields silently accepted entry IDs that don't exist, such as an ID that doesn't match a loader's slugified version of it. Astro now logs an error for references that point to a missing entry after all loaders finish syncing.#17661
97b0cc7Thanks @ArmandPhilippot! - Improves Markdown options documentation with links to the Markdown guide and official processors.#17349
4328c73Thanks @astrobot-houston! - Fixes an issue where requests handled by the dev prerender environment (e.g./_imagewith@astrojs/cloudflare'sprerenderEnvironment: 'node') returned a 500 when a prerendered catch-all route existed, because non-prerendered route modules were imported in an environment where their runtime-specific APIs are unavailable#17603
722eed6Thanks @astrobot-houston! - Fixes<video>and<audio>elements being non-functional after navigating via view transitions (<ClientRouter />)#17616
3a890d2Thanks @lazerg! - Fixesexperimental.incrementalBuildre-rendering unchanged routes that import more than one asset. The route's dependency hash depended on the order the assets finished building, so two builds of identical sources could produce different hashes. The hash is now based on the file name each asset resolves to.#17547
fba468cThanks @dmgawel! - ImprovesgetCollection()andgetEntry()performance for entries without local image references#17602
16e0d9dThanks @astrobot-houston! - Fixes a build error caused by hash collisions in generated content collection image import identifiersv7.2.0Compare Source
Minor Changes
#17174
0224a3aThanks @matthewp! - Adds theastro preview --backgroundflag to start preview servers as background processes.This makes preview servers easier to manage from scripts and AI coding agents because the command returns after the server is ready instead of keeping the terminal attached to the long-running process.
When a preview server is running in the background, you can inspect or stop it with new
astro previewsubcommands:If Astro detects that
astro previewis being run by an AI coding agent, background mode is enabled automatically. This matches the existing behavior forastro dev, allowing agents to continue working after the preview server starts while still receiving the server URL and process ID.To opt out of automatic background mode for preview servers, set
ASTRO_PREVIEW_BACKGROUND=0before runningastro preview.#17532
7f94895Thanks @florian-lefebvre! - Adds support for paths relative to your project root inlogger.entrypointPreviously, pointing
logger.entrypointat a custom log handler living in your own project required building an absoluteURL. You can now write the path directly:// astro.config.mjs import { defineConfig } from 'astro/config'; export default defineConfig({ logger: { - entrypoint: new URL('./src/logger.js', import.meta.url), + entrypoint: './src/logger.js', }, });Paths starting with
./or../are resolved against your project root. Package specifiers such as@org/astro-logger, absolute paths, andURLentrypoints keep working as before.#17084
961bbe5Thanks @matthewp! - Widens theAstroPrerendererrender()return type so prerenderers can report incremental-build metadataA prerenderer's
render()may now resolve to either aResponse(as before) or aPrerenderResultobject that pairs the response with the content entries and optimized-image transforms the page resolved. This lets prerenderers that render out of process (for example, in an adapter's runtime like workerd) report those dependencies back to the build, so incremental static builds can track and replay them for skipped pages.This is a non-breaking widening: prerenderers that return a bare
Responsecontinue to work unchanged, and in-process prerenderers can keep returning aResponsesince the build collects their metadata directly.#16871
90c98aeThanks @adamchal! - Addssession: falseinastro.configto opt out of session support. Projects that do not setsession: falsesee no behavior change.The session runtime and dependencies (
unstorage) are now tree-shaken out of the SSR bundle for any project where no session driver is wired via:session: falsesessionconfig at allsessionconfig without a driverUseful for serverless/edge runtimes where cold-start parse time is sensitive.
#17084
961bbe5Thanks @matthewp! - Adds experimental support for incremental static builds withexperimental.incrementalBuild.When enabled, Astro can skip regenerating static pages from dynamic routes when both the page's module dependencies and its data cache key are unchanged from the previous build. This currently applies to pages returned from
getStaticPaths()that include acacheKey.Return a
cacheKeyfor each generated page fromgetStaticPaths():For incremental builds to skip rendering in CI, Astro's cache directory must be preserved between builds. Astro empties the output directory on each build and restores skipped pages from the cache directory, so only that directory needs to persist. For the default config, cache and restore
node_modules/.astro/before runningastro build.See the experimental incremental static builds documentation for more information.
#17084
961bbe5Thanks @matthewp! - Adds the optionaldigestproperty to content collection entries.Loaders can provide an opaque digest value that changes when an entry changes. This is now reflected in the
CollectionEntrytype returned bygetCollection()andgetEntry(), making it easier to detect content changes without re-hashing large entry bodies.The property is optional because not every loader provides a digest. See incremental static builds for how
digestcan be used as acacheKey.Patch Changes
#17534
5a5337eThanks @florian-lefebvre! - Improveslogger.entrypointreference docs#17529 [`d52a787
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR was generated by Mend Renovate. View the repository job log.