fix(router-core): complete lane match loader rewrite#7858
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. 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 dd7fb57
☁️ 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 55 benchmarks
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | Memory | mem server error-paths redirect (vue) |
436.7 KB | 792.8 KB | -44.92% |
| ❌ | Memory | mem server request-churn (vue) |
454.1 KB | 788.8 KB | -42.44% |
| ❌ | Memory | mem server aborted-requests (vue) |
480.8 KB | 713.8 KB | -32.65% |
| ❌ | Memory | mem server aborted-requests (react) |
521.8 KB | 743.1 KB | -29.77% |
| ❌ | Simulation | client-nested-params navigation loop (vue) |
136.6 ms | 156.4 ms | -12.66% |
| ❌ | Simulation | ssr server-fn not-found (solid) |
60.9 ms | 69.7 ms | -12.58% |
| ❌ | Simulation | client-nested-params navigation loop (solid) |
221.7 ms | 252.1 ms | -12.07% |
| ❌ | Simulation | ssr server-fn POST (solid) |
62.8 ms | 70.9 ms | -11.54% |
| ❌ | Simulation | ssr loaders (vue) |
123.5 ms | 139.4 ms | -11.44% |
| ❌ | Simulation | ssr server-fn send-context (solid) |
64.1 ms | 71.2 ms | -9.89% |
| ❌ | Simulation | client-preload interaction loop (vue) |
58.2 ms | 64.6 ms | -9.87% |
| ❌ | Simulation | ssr before-load chain (react) |
48 ms | 53.2 ms | -9.69% |
| ❌ | Simulation | ssr loaders (react) |
59.7 ms | 65.9 ms | -9.36% |
| ❌ | Simulation | ssr server-fn GET (solid) |
68.4 ms | 75.1 ms | -8.86% |
| ❌ | Simulation | client-route-tree-scale navigation loop (vue) |
73.3 ms | 79.1 ms | -7.33% |
| ❌ | Simulation | ssr redirect (vue) |
46.3 ms | 50 ms | -7.24% |
| ❌ | Simulation | ssr not-found (vue) |
146.3 ms | 156.5 ms | -6.5% |
| ❌ | Simulation | ssr server-fn redirect (solid) |
53.5 ms | 57.2 ms | -6.32% |
| ❌ | Simulation | ssr not-found (react) |
45 ms | 48 ms | -6.2% |
| ❌ | Simulation | ssr server-fn not-found (vue) |
74 ms | 78.8 ms | -6.1% |
| ... | ... | ... | ... | ... | ... |
ℹ️ 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 (dd7fb57) with fix-router-core-lane-match-loader (3d68db6)
423f905
into
fix-router-core-lane-match-loader
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.