Skip to content

fix: prevent framework documentation page from freezing on link hover - #1010

Open
Manishkumarbingi wants to merge 2 commits into
TanStack:mainfrom
Manishkumarbingi:fix/issue-1001
Open

Manishkumarbingi wants to merge 2 commits into
TanStack:mainfrom
Manishkumarbingi:fix/issue-1001

Conversation

@Manishkumarbingi

@Manishkumarbingi Manishkumarbingi commented Jun 27, 2026 •

Copy link
Copy Markdown

Summary

Root cause: Router's Quick Start doc is canonical and not split per framework, so installPath: 'framework/$framework/quick-start' pointed FrameworkCard's link at a doc that doesn't exist. The docs loader redirected away from it, and that redirect firing on hover/preload is what froze the page.

Fix: point installPath at the canonical quick-start doc instead of disabling preload. Added focused test coverage on the emitted install href per review feedback.

Closes #1001

Summary by CodeRabbit

Summary

  • Bug Fixes
    • Router installation links now use the canonical quick-start path across supported frameworks, without framework-specific path segments.
  • Tests
    • Added checks that installation documentation paths use the canonical path and have no framework-specific hash.

@coderabbitai

coderabbitai Bot commented Jun 27, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 5d431c29-8c07-4173-b5a2-06a2fd49069e
📥 Commits

Reviewing files that changed from the base of the PR and between c4f8ab5 and 8100f6f.

📒 Files selected for processing: 1
  • src/libraries/libraries.ts

Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 3 remain after this review.

📝 Walkthrough

The router install documentation path changes from a framework-specific path to quick-start. The router project removes its explicit path override. Tests check the generated path and hash for every supported framework.

Changes: Router install path

Layer / File(s) Summary
Update and validate router install paths
src/libraries/libraries.ts, src/libraries/router.tsx, tests/router-install-path.test.ts
The router uses quick-start without a framework prefix. The project-level path override is removed. Tests check the path and confirm that the hash is undefined for every framework.

Priority: ➖ Normal

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix · Severity of issue fixed: Medium

Suggested reviewers: tannerlinsley

Merge Risk: ⚪ Minimal · up to 8100f

The change updates Router install links to use the canonical quick-start path. No actionable merge-blocking risk is established in the supplied context.

Pre-merge checks: Passed 4 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 3 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed Passed checks: 4 passed
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly describes the main change: preventing the framework documentation page from freezing during link hover by correcting the Router install path.
Linked Issues check Passed The change satisfies #1001. router.installPath now uses quick-start, the canonical Router documentation path. routerProject inherits this value and no longer overrides it with `framework/$framew…
Out of Scope Changes check Passed The pull request changes only the Router install path and adds focused tests for the emitted path and hash. These changes directly support #1001. No unrelated product behavior or unrelated files are c…
  • Fix all pre-merge checks with AI
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Manishkumarbingi

Copy link
Copy Markdown
Author

@tannerlinsley Please have a look at this PR , If not required feel free to close this PR.

@tannerlinsley tannerlinsley added the source-audit Tracked by the automated source audit label Sep 8, 2026
@tannerlinsley

Copy link
Copy Markdown
Member

I reproduced the production freeze today, but preload={false} only avoids the redirect during hover. The card currently builds /router/latest/docs/framework/{framework}/quick-start from the Router installPath. The Router library beforeLoad then always redirects every non-example framework guide to /router/latest/docs/quick-start. Opening that canonical path directly is responsive and lands on the same page. Please point the Router installPath at quick-start instead of disabling preloading on both links, add focused coverage for the emitted Router install href, and update the PR to close #1001. This preserves intent preloading and removes the unnecessary client redirect. I also checked #990 and #866 so this direction keeps the earlier quick-start correction while avoiding the redirect path that caused the same class of freeze.

@coderabbitai

coderabbitai Bot commented Sep 9, 2026

Copy link
Copy Markdown

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@Manishkumarbingi

Copy link
Copy Markdown
Author

I reproduced the production freeze today, but preload={false} only avoids the redirect during hover. The card currently builds /router/latest/docs/framework/{framework}/quick-start from the Router installPath. The Router library beforeLoad then always redirects every non-example framework guide to /router/latest/docs/quick-start. Opening that canonical path directly is responsive and lands on the same page. Please point the Router installPath at quick-start instead of disabling preloading on both links, add focused coverage for the emitted Router install href, and update the PR to close #1001. This preserves intent preloading and removes the unnecessary client redirect. I also checked #990 and #866 so this direction keeps the earlier quick-start correction while avoiding the redirect path that caused the same class of freeze.

Thanks for reproducing this and finding the actual cause — you're right, the redirect was the real issue. Traced it through FrameworkCard → getFrameworkDocsPath → the base router object in libraries.ts, which had installPath: 'framework/$framework/quick-start'. Confirmed against the router repo's docs that there's no per-framework quick-start.md (only the canonical one), so that path always triggered the loader redirect. Pushed a fix pointing installPath at quick-start, reverted the preload={false} change, and added a focused unit test on the emitted install href for both frameworks. PR description updated to close #1001.

@changeset-bot

changeset-bot Bot commented Oct 14, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 8100f6f

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@tannerlinsley

Copy link
Copy Markdown
Member

I merged current main locally and ran the full pnpm test suite successfully: typechecking, lint, 553 unit tests, 2,269 chat tests, and 20 desktop tests passed. The focused checks cover React and Solid quick-start paths, and the upstream Router tree contains the canonical docs/router/quick-start.md.

I used GitHub’s normal branch update to bring this PR current. The new head is 8100f6f, and its tree exactly matches the locally tested merge. The PR, autofix, and security workflows now report action_required for the fork, so this remains open pending workflow approval and passing checks. No checks were bypassed.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

source-audit Tracked by the automated source audit

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Hover on a link in documentation freezes the page

2 participants