Conversation
|
View your CI Pipeline Execution ↗ for commit 544927c
☁️ Nx Cloud last updated this comment at |
🚀 Changeset Version Preview4 package(s) bumped directly, 19 bumped as dependents. 🟩 Patch bumps
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (2)
Included review availability: Your plan provides up to 10 included reviews per hour; 6 remain after this review. 📝 WalkthroughWalkthroughThe change folds conditional hydration into the overloaded ChangesHydration-aware links
Priority: ⬇️ Low Estimated code review effort: 3 (Moderate) | ~20 minutes Change: Refactor · Severity of issue fixed: Low Suggested reviewers: Merge Risk: ⚪ Minimal · up to The hydration behavior is covered for ordinary, hash-sensitive, and delayed links, with no unresolved merge-blocking risk identified. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Bundle Size Benchmarks
The following scenarios have bundle-size changes compared with the baseline:
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. |
🎯 Changes
Avoid the extra hydration-triggered render for React Links whose active matching does not compare URL hashes.
Every Link currently subscribes to a hydration snapshot that changes from
falsetotrue. That schedules another render and invalidates the Link's location selector, even when its output does not depend on hydration. An@internaloverload ofuseHydratedlets these Links use equal server/client snapshots without a separate helper. The implementation defaultsenabledtotrue; declaration emission strips the boolean overload, preserving the public no-argument API. Hash-sensitive Links retain the deferred active-state update they need.Found while investigating the 1,000-link table in e18e/framework-tracker#200.
Verified work reduction
false → truefalse → trueThis avoids one hydration-snapshot-induced update per ordinary Link. Other parent/router updates can still cause renders. An improvement in e18e's FP/FCP, interaction latency, or SSR throughput has not been established.
The regression tests exercise distinct server/client fragment state, active/inactive props, DOM-node reuse, toggling hash matching after hydration, and a delayed Suspense hydration boundary. They check both recoverable errors and hydration diagnostics.
Validation
The local checks below passed for commit
544927c03d. The internal-overload follow-up (88a3c208ea) is left to CI, as requested.Original validation used
NX_BASE=origin/main,CI=1, andNX_DAEMON=false:pnpm test:eslint --outputStyle=stream --skipRemoteCache— passed.pnpm test:types --outputStyle=stream --skipRemoteCache— passed.pnpm test:unit --outputStyle=stream --skipRemoteCache— passed; React Router: 1,180 passed, one skipped.pnpm nx run tanstack-react-start-e2e-basic:test:e2e--vite-ssr --outputStyle=stream --skipRemoteCache -- tests/navigation.spec.ts tests/client-only.spec.ts— 11 passed.git diff --checkpassed.✅ Checklist
🚀 Release Impact
Summary by CodeRabbit