withastro
astro
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Branches
Benchmarks
Runs
Performance History
Latest Results
fix(transitions): preserve same-document history traversal When a navigate() was a sameDocument switch, prevent back/forward navigation from triggering a view transition. This change enables users to replaceState after a navigate() if they want to remove an anchor from the URL without Astro triggering view transitions later, during back/forward navigation. await navigate("#top", { history: "push", ... }); history.replaceState( history.state, "", window.location.pathname + window.location.search );
farnoy:samedocument-avoid-viewtransition
2 hours ago
fix(transitions): preserve same-document history traversal When a navigate() was a sameDocument switch, prevent back/forward navigation from triggering a view transition. This change enables users to replaceState after a navigate() if they want to remove an anchor from the URL without Astro triggering view transitions later, during back/forward navigation. await navigate("#top", { history: "push", ... }); history.replaceState( history.state, "", window.location.pathname + window.location.search );
farnoy:samedocument-avoid-viewtransition
2 hours ago
Add advanced normalizePathname option to FetchState
fetch-state-decodepathname
2 hours ago
benchmark: add head-propagation scaling pages to rendering-perf Every MDX <Content /> instance registers a head propagator, so these pages put N entries into the set that collectPropagatedHeadParts iterates. Two sizes (1000/2000) make the complexity class visible, not just point cost: linear collection keeps the 2000-page near 2x the 1000-page, while a quadratic rescan of the propagator set pushes the pair toward 4x and more than doubles the 2000-page's absolute cost. The entry must be MDX: plain data-store markdown does not mark the route for propagation (handlePropagation), so its Content instances never enter the propagator set.
adamchal:fix/head-propagation-quadratic-scan
4 hours ago
fix(head-propagation): collect propagated head parts in a single pass The collection loop restarted its scan of the propagator set once per propagator (skipping seen entries) to reach propagators registered during init(). That skip-scan is O(N^2) in set-iteration steps; pages rendering thousands of propagating component instances spend most of their render time in it. A JS Set iterator already visits entries added during iteration, in insertion order, so a single pass has identical traversal order and semantics. Pending slot evaluations are drained before the iterator advances, so nothing can register a propagator after the iterator has completed. Adds regression tests asserting linear iteration and covering the in-loop drain of async slot pre-renders queued by a propagator's init().
adamchal:fix/head-propagation-quadratic-scan
4 hours ago
feedback, remove number chuking
feat/data-store-backend-abstraction
4 hours ago
fix: skip non-prerendered route imports in prerender handler to avoid cloudflare:workers error When `prerenderOnly` is true, `matchRoute` now skips routes with `prerender: false` before importing their components. This prevents the Node prerender environment from trying to import modules that use runtime-specific APIs (e.g. `cloudflare:workers`) which are unavailable in Node. Fixes #17348
triagebot/fix-17348
13 hours ago
fix(head-propagation): collect propagated head parts in a single pass The collection loop restarted its scan of the propagator set once per propagator (skipping seen entries) to reach propagators registered during init(). That skip-scan is O(N^2) in set-iteration steps; pages rendering thousands of propagating component instances spend most of their render time in it. A JS Set iterator already visits entries added during iteration, in insertion order, so a single pass has identical traversal order and semantics. Pending slot evaluations are drained before the iterator advances, so nothing can register a propagator after the iterator has completed. Adds regression tests asserting linear iteration and covering the in-loop drain of async slot pre-renders queued by a propagator's init().
adamchal:fix/head-propagation-quadratic-scan
17 hours ago
Latest Branches
CodSpeed Performance Gauge
0%
fix(transitions): preserve same-document history traversal
#17355
3 hours ago
eaa29cd
farnoy:samedocument-avoid-viewtransition
CodSpeed Performance Gauge
0%
Add advanced `normalizePathname` option to `FetchState`
#17354
2 hours ago
7483030
fetch-state-decodepathname
CodSpeed Performance Gauge
0%
Improve rendering performance for pages with many components
#17344
17 hours ago
893c79a
adamchal:fix/head-propagation-quadratic-scan
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs