Repository navigation
build(deps): update dependency astro to v7 [security] - #26
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
PR author is in the excluded authors list. |
renovate
Bot
force-pushed
the
renovate/npm-astro-vulnerability
branch
from
July 24, 2026 16:38
f270fa6 to
d750dbd
Compare
renovate
Bot
force-pushed
the
renovate/npm-astro-vulnerability
branch
from
July 24, 2026 23:13
d750dbd to
91f2a3c
Compare
renovate
Bot
force-pushed
the
renovate/npm-astro-vulnerability
branch
from
July 27, 2026 06:39
91f2a3c to
93a4862
Compare
renovate
Bot
force-pushed
the
renovate/npm-astro-vulnerability
branch
from
July 27, 2026 09:13
93a4862 to
d5b19e3
Compare
renovate
Bot
force-pushed
the
renovate/npm-astro-vulnerability
branch
from
July 30, 2026 17:41
d5b19e3 to
f1789b4
Compare
renovate
Bot
force-pushed
the
renovate/npm-astro-vulnerability
branch
from
July 30, 2026 23:04
f1789b4 to
ef539d7
Compare
renovate
Bot
force-pushed
the
renovate/npm-astro-vulnerability
branch
from
August 3, 2026 10:01
ef539d7 to
1b71998
Compare
renovate
Bot
force-pushed
the
renovate/npm-astro-vulnerability
branch
from
August 3, 2026 16:48
1b71998 to
d3fadb1
Compare
renovate
Bot
force-pushed
the
renovate/npm-astro-vulnerability
branch
from
August 10, 2026 04:44
d3fadb1 to
8e995ed
Compare
renovate
Bot
force-pushed
the
renovate/npm-astro-vulnerability
branch
from
August 10, 2026 08:30
8e995ed to
dcd140a
Compare
renovate
Bot
force-pushed
the
renovate/npm-astro-vulnerability
branch
from
August 11, 2026 23:56
dcd140a to
cfc605b
Compare
renovate
Bot
force-pushed
the
renovate/npm-astro-vulnerability
branch
from
August 12, 2026 06:16
cfc605b to
7b11e40
Compare
renovate
Bot
force-pushed
the
renovate/npm-astro-vulnerability
branch
from
August 14, 2026 20:46
7b11e40 to
ab5e053
Compare
renovate
Bot
force-pushed
the
renovate/npm-astro-vulnerability
branch
from
August 15, 2026 02:31
ab5e053 to
88995b3
Compare
renovate
Bot
force-pushed
the
renovate/npm-astro-vulnerability
branch
from
August 27, 2026 02:50
10844b8 to
800f561
Compare
renovate
Bot
force-pushed
the
renovate/npm-astro-vulnerability
branch
from
August 31, 2026 05:08
800f561 to
524a55e
Compare
renovate
Bot
force-pushed
the
renovate/npm-astro-vulnerability
branch
from
August 31, 2026 13:09
524a55e to
4485755
Compare
This was referenced Sep 1, 2026
renovate
Bot
force-pushed
the
renovate/npm-astro-vulnerability
branch
from
September 2, 2026 23:33
4485755 to
169d20e
Compare
renovate
Bot
force-pushed
the
renovate/npm-astro-vulnerability
branch
from
September 3, 2026 02:42
169d20e to
2a78ef6
Compare
renovate
Bot
force-pushed
the
renovate/npm-astro-vulnerability
branch
from
September 3, 2026 19:57
2a78ef6 to
6c85145
Compare
renovate
Bot
force-pushed
the
renovate/npm-astro-vulnerability
branch
from
September 4, 2026 01:58
6c85145 to
29d688a
Compare
renovate
Bot
force-pushed
the
renovate/npm-astro-vulnerability
branch
2 times, most recently
from
September 7, 2026 04:33
fa3a969 to
aee5566
Compare
renovate
Bot
force-pushed
the
renovate/npm-astro-vulnerability
branch
from
September 7, 2026 21:58
aee5566 to
c0a586a
Compare
renovate
Bot
force-pushed
the
renovate/npm-astro-vulnerability
branch
from
September 8, 2026 04:15
c0a586a to
99f8738
Compare
renovate
Bot
force-pushed
the
renovate/npm-astro-vulnerability
branch
from
September 9, 2026 16:45
99f8738 to
9eeab67
Compare
renovate
Bot
force-pushed
the
renovate/npm-astro-vulnerability
branch
from
September 10, 2026 01:44
9eeab67 to
7eb3794
Compare
renovate
Bot
force-pushed
the
renovate/npm-astro-vulnerability
branch
from
September 10, 2026 17:50
7eb3794 to
c95bb77
Compare
This branch had an error being deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
This PR body was truncated due to platform limits.
This PR contains the following updates:
^6.1.5→^7.0.0Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Astro: Reflected XSS via unescaped View Transition animation properties
CVE-2026-73422 / GHSA-4g3v-8h47-v7g6
More information
Details
Summary
Astro's server-side View Transition CSS generator interpolates animation properties into an inline
<style>element without escaping them for the CSS and HTML contexts.An attacker-controlled value passed to an animation property such as
durationcan contain a</style>sequence, terminate the generated style element, and inject arbitrary HTML or JavaScript.This is similar to GHSA-8hv8-536x-4wqp, but exploits a different injection point: unescaped View Transition animation values in a server-generated
<style>element rather than an unescaped slot name in a hydration template.Like GHSA-8hv8-536x-4wqp, exploitation requires an application to pass attacker-controlled data to an Astro API. However, the value is subsequently inserted into the HTML response without context-appropriate escaping by Astro.
Details
packages/astro/src/runtime/server/transition.tsThe generated stylesheet is wrapped in a
<style>element and marked as HTML-safe:Animation properties are added to the stylesheet without escaping:
For string values,
toTimeValue()returns the input unchanged:As a result, a
durationvalue containing</style>can escape from the generated style element.Other
TransitionAnimationproperties, includingeasing,direction,delay,fillMode, andname, are serialized by the same animation builder. The following PoC only relies on the officialfade()helper and itsdurationoption.PoC
Using:
astro@7.0.9@astrojs/node@11.0.2astro.config.mjssrc/pages/index.astroPayload:
open:
The browser interprets
</style>as the end of the generated style element and executes the injected script. An alert dialog is displayed when the page is opened.Impact
An attacker who can control a View Transition animation value can execute arbitrary JavaScript in the origin of the affected Astro application.
The query-based reflected XSS scenario affects on-demand/server-rendered routes, such as:
output: "server";export const prerender = false;Successful exploitation may allow access to sensitive page data and authenticated actions available to the victim.
Suggested Fix
Animation values should be serialized using context-appropriate CSS escaping or validation before being added to the generated stylesheet.
Additionally, content inserted into a raw
<style>element must not be able to contain an HTML end-tag sequence such as</style>. The final generated CSS should be made safe for the HTML raw-text context before it is passed tomarkHTMLString().Severity
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Astro: Cross-site scripting via unescaped transition:* directive values on hydrated islands
CVE-2026-59727 / GHSA-7pw4-f3q4-r2p2
More information
Details
Summary
When a
transition:persist,transition:scope, ortransition:persist-propsdirective is applied to a client-hydrated (client:*) component, Astro copied the directive value onto the rendered<astro-island>element without HTML-escaping it. If a developer reflects attacker-controlled input into one of these directives, an attacker can break out of the attribute and inject arbitrary HTML/JavaScript into the server-rendered output, resulting in reflected cross-site scripting (XSS).Severity
Although a generic reflected XSS scores in the Medium range, exploitation here requires the application developer to have written a non-idiomatic pattern — passing untrusted, request-derived input directly into a transition directive. Astro applications that do not route untrusted input into these directives are unaffected. This mitigating precondition places the real-world severity at Low.
Details
In
generateHydrateScript()(packages/astro/src/runtime/server/hydration.ts), every island property is HTML-escaped before serialization — theattrs,props, andoptsassignments all pass throughescapeHTML(). The transition directives, however, were copied verbatim:The
<astro-island>element is serialized viarenderElement('astro-island', island, false)withshouldEscape=false, andtoAttributeString()returns the value unchanged in that mode. As a result there is no downstream re-escaping, and the raw directive value reaches the HTML response. This is the same output sink previously addressed for slot names in GHSA-8hv8-536x-4wqp.The affected directives are:
data-astro-transition-scope(transition:scope)data-astro-transition-persist(transition:persist)data-astro-transition-persist-props(transition:persist-props)Note that
transition:persistis typedboolean | string, so passing a string value is a supported use of the API.Proof of Concept
A component that reflects a query parameter into a transition directive:
Request:
Rendered output (before the fix):
The
"closes the attribute and the injected<img onerror=…>executes in the victim's browser.Impact
Reflected XSS. An attacker who can induce a victim to visit a crafted URL can execute arbitrary script in the victim's session on the origin, subject to the requirement that the target application reflects untrusted input into one of the affected transition directives.
Affected Versions
astro >= 3.10.0, < 7.0.4(introduced in 3.10.0, PR #7861).Patched Versions
astro >= 7.0.4. Fixed in PR #17212 by HTML-escaping transition directive values before they are rendered onto the island element.Workarounds
Do not pass untrusted or request-derived input into
transition:persist,transition:scope, ortransition:persist-props. If such input is required, HTML-escape or strictly validate it before passing it to the directive. Upgrading toastro@7.0.4or later removes the need for manual mitigation.Credits
Reported by @jlgore.
Severity
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Astro: XSS via unescaped spread attribute names in renderHTMLElement (incomplete fix for CVE-2026-54298)
CVE-2026-59729 / GHSA-f48w-9m4c-m7f5
More information
Details
Summary
The fix for CVE-2026-54298 (GHSA-jrpj-wcv7-9fh9) added an
INVALID_ATTR_NAME_CHARguard toaddAttribute()so that spread-prop attribute names containing"' >/=or whitespace are dropped. A second attribute-rendering path,renderHTMLElement()inpackages/astro/src/runtime/server/render/dom.ts, has its own inline attribute loop that does not go throughaddAttribute()and was not updated. It interpolates the attribute name unescaped and only escapes the value, so untrusted prop keys spread onto a native-HTMLElement-subclass component can still break out of the attribute context, resulting in XSS.Details
renderHTMLElementbuilds attributes directly:The attribute name (
attr) is interpolated raw; only the value is escaped viatoAttributeString. By contrast, the hardenedaddAttributeinutil.tsrejects invalid names:renderHTMLElementis reached fromcomponent.tswhen the component is a nativeHTMLElementsubclass:where
_propscarries spread props verbatim.Reachability
The branch only runs when
typeof HTMLElement === 'function'at SSR time. In default Node SSRHTMLElementisundefined, so the branch is dead. It becomes reachable when the SSR runtime exposes a globalHTMLElement(Deno, Bun with a DOM shim, or jsdom/happy-dom in Node) and a class extendingHTMLElementis used directly as an Astro component that receives untrusted-keyed spread props.Proof of Concept
Given malicious spread props:
addAttribute(post-fix) →<my-el></my-el>(key stripped — safe)renderHTMLElement→<my-el onmouseover=alert(document.domain) x="y" x><script>alert(1)</script>="z"></my-el>(handler +<script>injected — XSS)Equivalent Astro template, served by an SSR runtime that defines a global
HTMLElement:Impact
Cross-site scripting (CWE-79) via attribute-name breakout — the same vulnerability class as CVE-2026-54298, in a code path its fix did not cover. An attacker who controls the keys of an object spread onto a native-
HTMLElement-subclass component can inject arbitrary event-handler attributes or sibling elements (including<script>) into the SSR output. Reachability is constrained by the runtime and component preconditions described above.Severity
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Astro: Remote code execution through AVIF image optimization
GHSA-26w7-cxv4-gfx2
More information
Details
A vulnerability in
libheif, used by the default Sharp image service in Astro, can lead to remote code execution when a malicious AVIF image is optimized.Projects are affected when an attacker can cause Astro to process an untrusted AVIF image.
The fix was released in Astro 7.2.8, which requires Sharp 0.35.4.
Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Astro: Authorization bypass from missing path-segment boundary check when stripping the configured base
CVE-2026-84376 / GHSA-376h-93r7-7g6f
More information
Details
Summary
Astro stripped a configured
basepath from request pathnames using a string-prefix check that did not verify a path-segment boundary. Withbase: "/app", a request to/appX/adminwas treated as being under the base and resolved internally to the/adminroute, while middleware still observed the public pathname/appX/admin. Middleware that authorizes routes by inspectingcontext.url.pathnamecould therefore be bypassed.Impact
An unauthenticated remote attacker can bypass pathname-based middleware authorization in applications that:
base.context.url.pathname.Because routing and middleware resolved different effective pathnames, a request such as
/appX/admin(or other single-character extensions like/app2/adminor/app-/admin) reached the protected/adminroute without passing the middleware check that guards/app/admin. Astro's authentication guide demonstrates protecting routes in middleware viacontext.url.pathname, so this is a reasonable and expected pattern.Affected versions
astro<= 7.2.3.Patches
Fixed in
astro7.2.4. Base stripping now requires the pathname to equal the base without its trailing slash, or to be followed by a/, so a prefix that does not end on a path-segment boundary is no longer treated as being under the base. Routing andcontext.url.pathnamenow resolve the same pathname.Workarounds
Upgrade to
astro7.2.4 or later. As a mitigation before upgrading, avoid relying solely on prefix checks ofcontext.url.pathnamefor authorization, or reject requests whose pathname does not begin with the configured base followed by a path-segment boundary.Credits
Reported by @Ryoga-exe.
Severity
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Astro: Reflected/Stored XSS via unescaped <script>/<style> tag content in JSX/MDX rendering
CVE-2026-114128 / GHSA-98hj-9722-w3j8
More information
Details
Summary
Astro's JSX and MDX rendering pipeline treated string children of
<script>and<style>elements as trusted HTML. When a dynamic value was passed through a JSX expression, such as<script>{value}</script>, an attacker-controlled value containing</script>or</style>could terminate the element and inject arbitrary HTML and JavaScript.Other JSX expression contexts escaped dynamic strings automatically. This behavior was limited to
<script>and<style>children rendered through Astro'sastro:jsxrenderer, including MDX components.Details
The affected rendering paths marked all string children of
<script>and<style>elements as safe HTML, without distinguishing literal content generated by the compiler from dynamic expression values. An application was vulnerable when attacker-controlled data, such as a query parameter or CMS field, was interpolated directly into one of these elements.For example, a value containing
</script><script>alert(1)</script>passed to<script>{value}</script>was emitted without escaping. The browser interpreted the first closing tag as markup and executed the injected script.The fix preserves raw rendering for literal script and style content while escaping dynamic string children like other JSX expression values.
Impact
Affected applications could be vulnerable to reflected or stored cross-site scripting. Exploitation required an application to pass attacker-controlled data directly as a dynamic child of a
<script>or<style>element in MDX or through theastro:jsxruntime. Successful exploitation allowed arbitrary JavaScript execution in the victim's browser under the application's origin.Patches
This issue is patched in
astro@7.3.2.Workarounds
Do not interpolate untrusted dynamic values directly into
<script>or<style>element children. Applications that cannot upgrade should validate and contextually encode these values before rendering them.Credit
Reported by @RKasai127.
Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Astro: Image endpoint in @astrojs/node can read files from a case-variant sibling of the output directory on case-sensitive filesystems
CVE-2026-126364 / GHSA-r3h5-4585-7x3w
More information
Details
Summary
The
/_imageendpoint used by the@astrojs/nodeadapter checks that a requested local image is inside the build output directory before reading it from disk. That check compared paths case-insensitively. On case-sensitive filesystems (such as Linux), a directory whose path differs from the output directory only by letter case is a different directory, but it passed the check.For example, with the client output directory at
/srv/app/dist/client/, a request such as:resolved to
/srv/app/DIST/client/secret.pngand was served, even though that file is outside the output directory.Impact
An unauthenticated attacker can read image files from outside the output directory, but only when all of the following are true:
@astrojs/nodeadapter.DIST/clientnext todist/client). Such a layout is unusual, and the attacker cannot create it.Only files the image service accepts can be read. Raster images are returned after resizing; SVG files are returned unchanged. Other file types fail during processing. Plain path traversal outside the output directory (for example
/../../secret.png) was already rejected and is not affected.Affected versions
astro>= 5.14.3, <= 7.4.6, when used with@astrojs/node(all versions up to 11.1.11). The vulnerable image endpoint is provided byastroand used by the@astrojs/nodeadapter.Patches
Fixed in
astro7.4.7. The path check now compares paths exactly, and only ignores letter case for Windows drive-letter paths. The fix ships inastro, so upgrading@astrojs/nodealone is not enough.Workarounds
Upgrade to
astro7.4.7 or later. Before upgrading, make sure no directory next to the build output directory has a path that differs from it only by letter case.Credits
Reported by @zachariah-mithani.
Severity
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Astro: XSS via attribute injection in dynamic tag names
CVE-2026-126361 / GHSA-mh32-jxcr-mh9f
More information
Details
Summary
When a dynamic tag (
const Tag = ...; <Tag />) resolves to a string, Astro renders it as a raw HTML element name. The name was filtered to remove characters that could inject attributes, but the filter did not handle/. Because HTML parsers treat/inside a tag as an attribute separator, a tag name such asimg/src/onerror=alert(1)was rendered as an<img>element with anonerrorattribute. The JSX renderer used for MDX did not filter string tag names at all.For example:
rendered
?as=img/src/onerror=alert(1)as live HTML.Impact
Reflected or stored cross-site scripting, but only in applications that use untrusted input (such as a request parameter or an uncontrolled CMS field) as all or part of an element name. Astro itself never derives element names from request data.
Applications that let content choose an element should map that input to a fixed set of known tags. Letting untrusted input choose an element name is unsafe even with a correct filter, because it can still select elements such as
scriptoriframe.Affected versions
astro<= 7.4.4.Patches
Fixed in
astro7.4.5. String tag names in.astrodynamic tags, JSX, and MDX now render only the leading valid element name, so characters such as/or=can no longer change the generated markup. Strings that do not start with a valid element name now throw an error.Workarounds
Upgrade to
astro7.4.5 or later. Before upgrading, do not use untrusted input as an element name, or map it to a fixed set of known tags.Credits
Reported by @uttej-badwane.
Severity
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Release Notes
withastro/astro (astro)
v7.4.12Compare Source
Patch Changes
#18409
2917650Thanks @matthewp! - Fixes a typo in the error message shown when a fontcssVariableis invalid#18709
6f1a2a8Thanks @ematipico! - Reduces memory usage duringastro buildby releasing content collection entries from memory once the content layer sync is complete.#18713
59052e7Thanks @delucis! - Unpins@astrojs/*dependencies to allow versions matching the^range to be installedUpdated dependencies [
59052e7]:v7.4.11Compare Source
Patch Changes
#18641
08e2ceeThanks @astro-factory! - Validates the protocol, host and port fromX-Forwarded-Proto,X-Forwarded-HostandX-Forwarded-Porttogether against eachsecurity.allowedDomainsentry, instead of one at a time:port: '443'(or'80'forhttp) now matches a host that doesn't include a port.#18651
93a9057Thanks @umeraamir69! - Returns 400 Bad Request for malformed percent-encoded paths in the dev server and static preview instead of bubbling into a 500#18672
e901468Thanks @astro-factory! - Fixesastro checkreporting@astrojs/checkas missing when the package is installed but throws while loading. The original error is now shown instead of an install prompt.#18641
08e2ceeThanks @astro-factory! - Fixessecurity.allowedDomainsaccepting non-HTTP(S)X-Forwarded-Protovalues (such asftporws) when the list mixes patterns with and without aprotocol#18686
62bb716Thanks @astro-factory! - Fixesastro builddeleting the license file generated by Vite'sbuild.licenseoption. Astro now removes only its own Vite manifest from the.vite/output folder.#18629
e9916e1Thanks @decrek! - Fixes spreading an object onto an element with scoped styles changing that object. When the same object was spread on every render, for example a constant imported from another module, itsclassgrew with every request.#18641
08e2ceeThanks @astro-factory! - Tightens howsecurity.allowedDomainsvalidates theHostandX-Forwarded-Hostheaders. Only a plain hostname with an optional port is accepted, and the validated host is applied toAstro.urlexactly as it was matched.Updated dependencies [
d13beeb,e9916e1]:v7.4.10Compare Source
Patch Changes
#18621
8a61493Thanks @marcalexiei! - Fixes the dev toolbar's audit freezing an image's CSS animations in Safari, by reading the image's size from the request that loaded it instead of fetching it again#18691
f787792Thanks @ematipico! - Improves startup time ofastrocommands by loading SVGO only whensvgoOptimizer()optimizes an SVG, instead of wheneverastro/configis imported#18678
ea63d76Thanks @astro-factory! - Fixes duplicate CSS loading for hydrated islands that share modules or are imported through a path alias. The client build no longer emits and preloads stylesheets that are already linked on the page by the server build.Updated dependencies [
57137ed]:v7.4.9Compare Source
Patch Changes
#18681
bf1828bThanks @astro-factory! - Fixes static builds skipping or failing on pages whosegetStaticPaths()params contain characters like%or\, and warns when a prerendered page is skipped because it returned an empty error response#18630
c904827Thanks @astro-factory! - Fixes bundled scripts and hydrated islands being blocked whensecurity.csp.scriptDirective.strictDynamicis enabled. Astro now adds the hash of every bundled script toscript-srcand renders an import map with theirintegrityin the<head>.#18611
f98e8a8Thanks @matthewp! - Fixes bundling of a<script src>that uses a root-relative path to a project file outsidesrc/, such as/lib/analytics.ts. The error asking foris:inlineis now shown only when the path points to a file inpublic/.#18688
1999c84Thanks @astro-factory! - Fixes errors thrown after a page has started streaming bypassing the configuredlogger. They are now reported once through it, as oneerrorrecord, in both production andastro devUpdated dependencies [
c904827,5083c65,1999c84,5083c65,f98e8a8,f98e8a8]:v7.4.8Compare Source
Patch Changes
d747a53Thanks @florian-lefebvre! - Updates CLI argument parsingv7.4.7Compare Source
Patch Changes
7da442bThanks @matthewp! - Fixes the image endpoint treating directories whose names differ only by letter case as being inside the build output directory on case-sensitive filesystems7da442b]:v7.4.6Compare Source
Patch Changes
#18565
cd09986Thanks @praveen-kumary! - Avoids attributing client-only components or scripts to unrelated pages importingastro:i18nby bounding top-level page graph traversal at virtual page entries#18608
babd96dThanks @umeraamir69! - Fixes an extra page reload on the first page load after startingastro devwithout an existing.astrodirectory#18589
402c0faThanks @astro-factory! - Fixesastro checkexiting with code 0 when@astrojs/checkortypescriptis not installed. The command now exits with code 1 so CI fails instead of silently skipping type checking.#18503
54fcdd5Thanks @SwastikTripathi! - Preserves the last-modified date of cached font files and unchanged public files when copying them into the build output. Public-file timestamp preservation respects the resolved public-directory configuration, follows source symlinks, and avoids backdating files overwritten by build plugins.#18605
76cd239Thanks @astro-factory! - Fixes theglob()loader adding files from a folder excluded with a negation pattern such as!_docswhen they change duringastro dev#18432
ed60d82Thanks @alexmv! - Improves theMissingSharperror to include the reason Sharp failed to load, such as its prebuilt binaries not supporting the current CPU#18474
59543c3Thanks @miottid! - Fixes i18n fallback for on-demand rendered pages. A locale-prefixed request for a page that only exists in the fallback locale (for example/de/aboutwithfallback: { de: 'en' }) was answered with status302and noLocationheader. Such requests are now rewritten or redirected to the fallback locale according toi18n.routing.fallbackType, including encoded paths and sites with a configuredbase. Query strings are preserved, and explicit page statuses and redirects are left unchanged.#18541
cfa2d2bThanks @ump45nose! - FixesmatchAllRoutesto considerfallbackRoutes, matchingmatchRouteand the production router. Dev-server i18n fallback requests now resolve to the source route's metadata instead of the 404 route, and SSR-only fallback candidates can fall through the prerender handler.#18602
d856064Thanks @astro-factory! - Fixesastro checklosing the end of its output, including theResultsummary, when stdout is piped to a slow reader. When the reader closes the pipe early, for exampleastro check | head,astro checknow exits with code 1 instead of crashing with anEPIPEstack trace.#18574
da0f149Thanks @astro-factory! - Fixes an unnecessary full page reload inastro devwhen a content loader callsstore.clear()orstore.delete()and the content store has no asset imports#18570
e71c038Thanks @astro-factory! - Fixes pages using<ClientRouter />briefly showing the top of the page on reload before jumping back to the previous scroll position. Full reloads now use the browser's native scroll restoration.#18531
f75553bThanks @praveen-kumary! - Fixes an unhandledTypeError: Cannot convert undefined or null to objectwhen callingroute.generate()without arguments on static routesv7.4.5Compare Source
Patch Changes
fac3c50](https://redirect.github.com/withastro/astro/commit/fac3cConfiguration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.