Avatar for the withastro user
withastro
astro
BlogDocsChangelog

Advanced Routing - Experimental

#16366Merged
Comparing
advanced-routing
(
63f5566
) with
main
(
1b1c218
)
CodSpeed Performance Gauge
-1%
Untouched
18

Benchmarks

18 total
Rendering: streaming [true], .astro file
benchmark/bench/render.bench.js::Bench rendering
CodSpeed Performance Gauge
0%
227.6 ms226.5 ms
many-expressions [streaming]
benchmark/bench/rendering-perf.bench.js::Rendering perf (streaming)
CodSpeed Performance Gauge
0%
25 ms24.9 ms
Rendering: streaming [false], .mdx file
benchmark/bench/render.bench.js::Bench rendering
CodSpeed Performance Gauge
0%
580.7 ms580.4 ms
Rendering: streaming [true], .mdx file
benchmark/bench/render.bench.js::Bench rendering
CodSpeed Performance Gauge
0%
578.4 ms578.3 ms
Rendering: streaming [false], .astro file
benchmark/bench/render.bench.js::Bench rendering
CodSpeed Performance Gauge
0%
204.6 ms204.6 ms
many-slots (eager slot prerendering)
benchmark/bench/rendering-perf.bench.js::Rendering perf (non-streaming)
CodSpeed Performance Gauge
0%
5.6 ms5.6 ms
Rendering: streaming [false], .md file
benchmark/bench/render.bench.js::Bench rendering
CodSpeed Performance Gauge
0%
1.2 ms1.2 ms
many-components [streaming]
benchmark/bench/rendering-perf.bench.js::Rendering perf (streaming)
CodSpeed Performance Gauge
0%
8.2 ms8.2 ms
large-array (BufferedRenderer per child)
benchmark/bench/rendering-perf.bench.js::Rendering perf (non-streaming)
CodSpeed Performance Gauge
0%
173.4 ms173.7 ms
many-expressions (renderChild dispatch, escapeHTML)
benchmark/bench/rendering-perf.bench.js::Rendering perf (non-streaming)
CodSpeed Performance Gauge
0%
25.3 ms25.3 ms
static-heavy (markHTMLString baseline)
benchmark/bench/rendering-perf.bench.js::Rendering perf (non-streaming)
CodSpeed Performance Gauge
0%
6.9 ms6.9 ms
many-head-elements (head dedup)
benchmark/bench/rendering-perf.bench.js::Rendering perf (non-streaming)
CodSpeed Performance Gauge
-1%
5.2 ms5.2 ms
large-array [streaming]
benchmark/bench/rendering-perf.bench.js::Rendering perf (streaming)
CodSpeed Performance Gauge
-1%
151.8 ms152.8 ms
many-components (markHTMLString, isHTMLString, validateProps)
benchmark/bench/rendering-perf.bench.js::Rendering perf (non-streaming)
CodSpeed Performance Gauge
-2%
8.9 ms9.1 ms
Build: full server site
benchmark/bench/build-server.bench.js::Bench build time
CodSpeed Performance Gauge
-2%
8.4 s8.6 s
Build: full static site
benchmark/bench/build-static.bench.js::Bench build time
CodSpeed Performance Gauge
-2%
3.7 s3.8 s
Build: hybrid site (static + server)
benchmark/bench/build-hybrid.bench.js::Bench build time
CodSpeed Performance Gauge
-4%
8 s8.3 s
Rendering: streaming [true], .md file
benchmark/bench/render.bench.js::Bench rendering
CodSpeed Performance Gauge
-8%
1.2 ms1.3 ms

Commits

Click on a commit to change the comparison range
Base
main
1b1c218
+0.15%
refactor: extract AstroHandler from BaseApp#render into core/routing/handler.ts
bc3cfdd
22 days ago
by matthewp
-0.29%
refactor: introduce DefaultFetchHandler layer between BaseApp and AstroHandler
2ac1821
22 days ago
by matthewp
+0.09%
fix lint: use FetchHandler type and drop unused export
24990df
22 days ago
by matthewp
-0.1%
refactor: extract ErrorHandler strategy and prepareResponse helper
7731645
22 days ago
by matthewp
-0.08%
refactor: extract TrailingSlashHandler from AstroHandler
35092e7
22 days ago
by matthewp
+0.21%
refactor: extract AstroMiddleware from RenderContext into its own class
4d04ab6
22 days ago
by matthewp
-0.77%
refactor: introduce FetchState and move per-request state out of handler + BaseApp
0e79781
22 days ago
by matthewp
-0.14%
refactor: extract ActionHandler to handle RPC + form actions upstream of rendering
a0c31e5
22 days ago
by matthewp
-0.24%
fix(actions): invoke ActionHandler inside renderRoute so middleware + finalization run around it
49a342e
22 days ago
by matthewp
+0.14%
refactor: extract PagesHandler for route dispatch and wire it through AstroMiddleware
da271b0
21 days ago
by matthewp
-0.28%
refactor: route error/container/rewrite paths through explicit handlers instead of RenderContext.render
7c0bf56
21 days ago
by matthewp
+0.16%
fix(rewrite): preserve middleware-set cookies across a user-triggered rewrite
800392a
21 days ago
by matthewp
-0.31%
refactor: remove RenderContext.render and make AstroMiddleware callback required
5fcc313
21 days ago
by matthewp
-0.03%
refactor: lift i18n out of the middleware layer into an I18n handler class
ae05b8f
21 days ago
by matthewp
-21.66%
refactor: extract Redirects handler and short-circuit redirect routes before middleware
0a19c12
21 days ago
by matthewp
+0.61%
refactor: unify user-triggered rewrites on Rewrites.execute; remove AstroHandler.#rewriteAndRender
1a072e3
21 days ago
by matthewp
-0.04%
Merge branch 'main' into advanced-routing
2f686d5
21 days ago
by matthewp
+10.7%
perf(redirects): avoid async microtask on the non-redirect hot path
6bd13d6
21 days ago
by matthewp
+10.5%
perf(handler): inline redirect check in AstroHandler.render
ef3db2e
21 days ago
by matthewp
-0.64%
refactor(fetch-state): consolidate per-request state; AstroMiddleware.handle(state)
94415c0
18 days ago
by matthewp
+0.26%
Merge branch 'main' into advanced-routing
3aa8046
18 days ago
by matthewp
-8.45%
refactor(fetch-state): move RenderContext creation into FetchState; renderRedirect/I18n.finalize take state
855d26e
18 days ago
by matthewp
-0.06%
chore(mocks): un-export createMockRenderContext (now internal)
52f5f66
18 days ago
by matthewp
+0.05%
Merge branch 'main' into advanced-routing
eaf7ddc
18 days ago
by matthewp
-0.04%
perf(render-context): initialize fetchState in constructor; unconditional symbol stash
dc60950
18 days ago
by matthewp
+8.35%
perf(fetch-state): inline RenderContext creation, drop private fields, lazy slots
2fd685f
18 days ago
by matthewp
-0.1%
chore(benchmark): add hand-rolled render profiler for branch comparison
3a6a931
18 days ago
by matthewp
-0.03%
feat(app): add virtual:astro:fetchable, setFetchHandler on BaseApp
5fcaea0
18 days ago
by matthewp
+0.08%
fix(cloudflare): prebundle default fetch handler in dev
8624d57
18 days ago
by matthewp
+0.25%
feat(app): gate advanced routing behind experimental flag
b68d6b7
18 days ago
by matthewp
+0.44%
chore: add changeset for advanced routing feature
fa759d2
17 days ago
by matthewp
-0.67%
refactor(fetch): move resolveRouteData to FetchState; expose trailingSlash in astro/fetch
1988da8
17 days ago
by matthewp
+0.76%
feat(fetch): add pages, middleware, and trailingSlash helpers to astro/fetch and astro/hono
7655930
17 days ago
by matthewp
-0.38%
feat(fetch): add actions, i18n, skipMiddleware getter; extract actions from PagesHandler
32a6423
17 days ago
by matthewp
-8.53%
feat(fetch): add redirects handler to astro/fetch and astro/hono
a67e91a
17 days ago
by matthewp
+7.69%
fix: update test utility to run actions between middleware and pages
196b3a7
17 days ago
by matthewp
+0.66%
perf: avoid per-request closure in AstroHandler render callback
cbc4bd9
17 days ago
by matthewp
-8.26%
feat(fetch): add sessions handler to astro/fetch and astro/hono
4425b9d
17 days ago
by matthewp
-0.35%
feat: add context provider system to FetchState; wire sessions through it
c3c6d4d
17 days ago
by matthewp
+9.03%
perf: eliminate async overhead on hot path for non-action/non-session renders
ecefc28
17 days ago
by matthewp
-0.13%
fix: use import type for AstroSession in render-context
977dbd5
17 days ago
by matthewp
-0.48%
fix: remove unused exports from session handler
df3803c
17 days ago
by matthewp
+0.1%
feat(fetch): add CacheHandler class; move cache to provider pattern; expose cache in astro/fetch and astro/hono
cfdb149
16 days ago
by matthewp
+0.68%
refactor: move APIContext creation to FetchState; dynamic provider getters
b63dfd1
16 days ago
by matthewp
-36.81%
fix: load user src/app.ts fetch handler in dev; lazy render context on FetchState
779900d
16 days ago
by matthewp
+27.42%
fix: restore ensureRenderContext call in AstroHandler.render
9337125
16 days ago
by matthewp
-0.27%
refactor: use this.pipeline directly in ensureRenderContext
ab1ea7d
16 days ago
by matthewp
+9.31%
perf: make RenderContext.create() synchronous; lazy component loading
a493c3c
16 days ago
by matthewp
+0.06%
fix: update server islands test stub to use getServerIslandNameMap
b1a3231
16 days ago
by matthewp
+1.33%
merge: resolve conflict with main in render-context test
2b75ec0
16 days ago
by matthewp
-0.77%
Merge branch 'main' into advanced-routing
0e31bc6
15 days ago
by matthewp
-0.14%
Merge branch 'main' into advanced-routing
abf827d
15 days ago
by matthewp
0%
fix: update test mocks to use FetchState directly instead of RenderContext
e2cf35b
15 days ago
by matthewp
-0.15%
fix: override FetchState.rewrite in mock for i18n fallback rewrite test
44b8565
15 days ago
by matthewp
-0.08%
docs: expand changeset to blog-post style with accurate examples
dd3b4f5
15 days ago
by matthewp
-0.05%
remove preview-instructions.md from repo
3b46240
15 days ago
by matthewp
-0.02%
refactor: move fetch-state.ts to core/fetch/, make route resolution eager and private
03e9303
15 days ago
by matthewp
+0.07%
fix: prefix unused params with underscore for biome lint
db79f69
15 days ago
by matthewp
+0.23%
fix: remove redirect rendering from PagesHandler, reroute error responses in BaseApp
30cd04f
15 days ago
by matthewp
-0.46%
fix: handle redirect case in PagesHandler switch for exhaustiveness lint
dbbdcb8
15 days ago
by matthewp
+0.04%
fix: tighten FetchState url and cookies types to non-optional
a4b220e
14 days ago
by matthewp
+0.53%
fix: prevent MaxListenersExceededWarning on FSWatcher during dev
31ef523
14 days ago
by matthewp
-0.1%
feat: warn when custom app.ts omits configured pipeline features
cdffc3a
14 days ago
by matthewp
-0.15%
fix: guard feature tracking against missing app in unit tests
a07790a
14 days ago
by matthewp
-23.2%
refactor: move usedFeatures to Pipeline and simplify ActionHandler
cc7785b
14 days ago
by matthewp
+22.66%
fix: revert ActionHandler to accept pre-computed APIContext to avoid perf regression
1d88698
14 days ago
by matthewp
-0.28%
chore: remove unused render profiler script
c0f8adc
11 days ago
by matthewp
+2.48%
docs: update stale RenderContext references in handler comments to FetchState
8fd44d2
11 days ago
by matthewp
-2.6%
refactor: add AstroFetchState interface to constrain public API surface
eed7d0d
10 days ago
by matthewp
-13.36%
refactor: restore getPathnameFromRequest on BaseApp
57d36f7
10 days ago
by matthewp
-0.2%
Merge branch 'main' into advanced-routing
001012d
10 days ago
by matthewp
+0.03%
fix: add new exports to publishConfig.exports to fix exports test
3402373
10 days ago
by matthewp
+0.02%
refactor: rename #resolved to #providersResolvedValues for clarity
46021a4
10 days ago
by matthewp
+4.72%
refactor: remove unused app getter from FetchState
498b6a0
10 days ago
by matthewp
+0.89%
chore: add changeset for cookies.consume() instance method
c1a48d1
10 days ago
by matthewp
-0.18%
docs: add reference/handlers.md documenting PipelineFeatures and feature checks
cb881ed
10 days ago
by matthewp
+0.09%
refactor: mark AstroHandler.render as @internal
e57e3ac
10 days ago
by matthewp
-1.59%
fix: replace bang operator with explicit throw in DefaultFetchHandler
ce7e8c9
10 days ago
by matthewp
+0.34%
Update .changeset/advanced-routing.md
9815d6d
10 days ago
by matthewp
-0.54%
Update packages/astro/src/core/fetch/fetch-state.ts
2d104cb
10 days ago
by matthewp
+0.09%
Update packages/astro/src/types/public/config.ts
b8ee646
10 days ago
by matthewp
+0.03%
refactor: use normalizedSrcDir instead of decodeURI in vite-plugin-fetchable
6ed2bb6
10 days ago
by matthewp
-0.47%
fix: remove @internal tags from FetchState to fix stripInternal stripping the entire class from .d.ts
fd8c90f
10 days ago
by matthewp
+0.33%
perf: reduce per-request overhead in FetchState and handler pipeline
6719d7c
10 days ago
by matthewp
-0.22%
perf: reduce per-request instruction count in handler pipeline
4edf9b3
10 days ago
by matthewp
+0.33%
fix: revert middleware caching to fix HMR test, fix trailing-slash URL parsing
4925619
10 days ago
by matthewp
-0.06%
perf: fast-path render options to FetchState, skip Reflect.set/get round-trip
ba420fa
10 days ago
by matthewp
+10.92%
fix: update node adapter to use adapterLogger getter instead of removed getAdapterLogger()
f524515
9 days ago
by matthewp
+0.03%
fix: remove unused imports flagged by biome lint
2311cca
9 days ago
by matthewp
-0.31%
refactor: add getFetchStateFromAPIContext helper, throw on missing FetchState
6a38201
9 days ago
by matthewp
-0.23%
fix: remove unnecessary | undefined from renderThroughMiddleware parameter
eb0fe39
9 days ago
by matthewp
-10.92%
refactor: extract INTERNAL_RESPONSE_HEADERS array for easier maintenance
a9f39f3
9 days ago
by matthewp
+11.82%
refactor: deduplicate rewrite validation and state mutation into applyRewriteToState
13aa5f6
9 days ago
by matthewp
-0.41%
fix: pass waitUntil to cache provider onRequest
5cb419f
9 days ago
by matthewp
+0.39%
Update packages/astro/src/core/fetch/fetch-state.ts
f23f1cc
9 days ago
by matthewp
+0.12%
test: verify params are updated after rewrite via ctx.rewrite()
94fb29f
9 days ago
by matthewp
-0.05%
fix: add SAFETY comments for params bang operators in FetchState
88edc81
9 days ago
by matthewp
-19%
refactor: move Router and manifestData from BaseApp to Pipeline
3f8d374
9 days ago
by matthewp
-5.53%
refactor: clarify astroPagePartial caching logic with comment
681e535
9 days ago
by matthewp
+24.14%
fix: resolve routeData in BaseApp.render() for domain-based i18n routing
2df285a
9 days ago
by matthewp
+0.48%
fix: add comments clarifying routeData.params vs this.params and SAFETY for bang operator
9b7c1d1
9 days ago
by matthewp
+0.07%
refactor: extract #stripHtmlExtension to deduplicate dev pathname normalization
98ec0df
9 days ago
by matthewp
-0.13%
refactor: remove unused refreshPathname, make url param mandatory on #computePathname
18dd6f5
9 days ago
by matthewp
-0.11%
fix: strip .html in build, filter prerendered routes, prevent double-decode
6e3207f
9 days ago
by matthewp
-0.31%
Merge branch 'main' into advanced-routing
0497d8d
4 days ago
by matthewp
-9.73%
fix: treat fallback sentinel response as 404 for i18n fallback routing
17c066e
3 days ago
by matthewp
+9.46%
Merge remote-tracking branch 'origin/main' into advanced-routing
63f5566
2 days ago
by ematipico
© 2026 CodSpeed Technology
Home Terms Privacy Docs