fix(router-core): complete lane match loader rewrite#7858
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
View your CI Pipeline Execution ↗ for commit 8ad0dc5
☁️ Nx Cloud last updated this comment at |
🚀 Changeset Version PreviewNo changeset entries found. Merging this PR will not cause a version bump for any packages. |
Bundle Size Benchmarks
Current gzip tracks all emitted client JS chunks. Initial gzip tracks only the entry/import graph. Trend sparkline is historical current gzip ending with this PR measurement; lower is better. |
Merging this PR will regress 93 benchmarks
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | Memory | mem server request-churn (vue) |
454.1 KB | 779.8 KB | -41.77% |
| ❌ | Memory | mem server aborted-requests (vue) |
480.8 KB | 720.6 KB | -33.28% |
| ❌ | Memory | mem server aborted-requests (react) |
521.8 KB | 746.5 KB | -30.09% |
| ❌ | Simulation | ssr server-route middleware (solid) |
54.1 ms | 73.2 ms | -26.03% |
| ❌ | Simulation | ssr server-route middleware (react) |
55.2 ms | 73.9 ms | -25.28% |
| ❌ | Simulation | ssr global-mw server-route (vue) |
65.2 ms | 86.9 ms | -25.04% |
| ❌ | Simulation | ssr server-route middleware (vue) |
56.5 ms | 73.8 ms | -23.43% |
| ❌ | Simulation | ssr global-mw server-route (solid) |
61.7 ms | 80.5 ms | -23.39% |
| ❌ | Simulation | ssr server-route (react) |
55.6 ms | 68.3 ms | -18.56% |
| ❌ | Simulation | ssr server-fn not-found (solid) |
60.9 ms | 74.3 ms | -17.96% |
| ❌ | Simulation | ssr server-route (solid) |
53.3 ms | 64.8 ms | -17.78% |
| ❌ | Simulation | ssr redirect (solid) |
39.3 ms | 47.5 ms | -17.36% |
| ❌ | Simulation | ssr before-load chain (react) |
48 ms | 57.4 ms | -16.39% |
| ❌ | Simulation | ssr server-fn POST (solid) |
62.8 ms | 74.7 ms | -16.04% |
| ❌ | Simulation | ssr not-found (react) |
45 ms | 53.6 ms | -16.03% |
| ❌ | Simulation | ssr server-route (vue) |
57.1 ms | 67.9 ms | -15.85% |
| ❌ | Simulation | ssr server-fn raw-response (vue) |
56.9 ms | 67 ms | -15.03% |
| ❌ | Simulation | ssr server-fn not-found (vue) |
74 ms | 86.4 ms | -14.38% |
| ❌ | Simulation | ssr redirect (vue) |
46.3 ms | 54 ms | -14.23% |
| ❌ | Memory | mem server error-paths redirect (vue) |
436.7 KB | 507.9 KB | -14.02% |
| ... | ... | ... | ... | ... | ... |
ℹ️ Only the first 20 benchmarks are displayed. Go to the app to view all benchmarks.
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing codex/match-loading-final (8ad0dc5) with fix-router-core-lane-match-loader (3d68db6)
Summary
This is a stacked follow-up to #7805 that brings the lane match-loader rewrite to its reviewed final state.
beforeLoadcontext lane-owned while retaining loader cache reuse by match identitybeforeLoadresults during hydration, including selective SSR continuationAdditional fixes
The follow-up review pass also:
HEADresponses, and late response handoff, with exactly-once ownershipBundle size
Final production output compared with
main:Three React Start scenarios fluctuate by +14, +19, and +84 gzip bytes despite being 4.2–4.5 KB smaller raw.
The additional review fixes were simplified against their first correct implementation, reducing the 17-scenario matrix by another 629 raw bytes, 200 gzip bytes, and 362 brotli bytes. Sixteen gzip scenarios are neutral or smaller;
vue-router.minimalis the sole exception at +3 gzip bytes while still being 24 raw bytes and 68 brotli bytes smaller.Validation
beforeLoadbehaviorgit diff --checkTwo Vue redirect cases remain best-effort and are intentionally not blocking this review. One search-validator adapter suite also fails locally because its generated test setup resolves an absolute dependency path from another worktree rather than because of router behavior.