feat(research): comparison paper #02 page + academic-paper redesign#138
Conversation
…seline New /research/comparison-01 page: the head-to-head benchmark against jscodeshift, Comby, ESLint --fix, and LibCST on var->const/let and format->f-string. Speed, coverage, safety on identical inputs. - ResearchComparison01Page component, same paper-style layout as perf-01 - research index: paper 02 flipped from planned to live - route, prerender list, and sitemap updated
… paper Two SVG figures in the comparison paper: - Figure 1: grouped coverage bar chart, bar colour encodes safety - Figure 2: speed-vs-coverage scatter with a 'safe band' highlight — visually shows safe results cluster high, unsafe below 50%
Restructured after the supermemory research-page references: - sticky CONTENTS sidebar with scroll-spy active-section highlight - full-width benchmark band (compact scorecard) below the hero - two-column paper body (TOC + content) - authors box, figure panels with captions - bracketed [n] citations with inline superscript links + references Fix: dropped overflow-x-hidden from the article — it turned the article into a scroll container and broke position:sticky on the TOC.
- jscodeshift/Comby (both bottom-left, close together) now label in opposite directions — the higher point up, the lower point down - both Refactron points label below — above-the-point clipped the plot top and collided with the band caption - band caption moved from the top-right corner (where Refactron·var sat) to the band's empty middle
Restructured the performance report to match comparison-01: - sticky CONTENTS sidebar with scroll-spy - full-width benchmark band (compact analyze scorecard) below the hero - two-column paper body (TOC + content) - authors box, figure panels with captions, bracketed [n] citations - dropped the stale 'coming next' section — paper #2 is now live and is linked from the discussion + references instead All charts (v0.1-vs-v0.2 dot plot, pipeline, 3-gate diagram) preserved.
App.tsx already mounts <ScrollToTop /> — this adds the component it imports. Resets window scroll on pathname change so navigating between pages (e.g. /research → /research/perf-01) opens at the top instead of inheriting the previous page's offset. Skips when the URL has a #hash.
- hero: explicit top padding clears the fixed navbar instead of relying on flex-centering into it - hero chip card: corner + on-chip labels lifted out of near-invisible opacity so they read against the page - page background lifted from pure black to the warmer #050506 + radial used across the research pages
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning Rate limit exceeded
You’ve run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (4)
📝 WalkthroughWalkthroughThis PR adds two comprehensive research report pages ( ChangesResearch Pages, Routing, and SEO
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested labels
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 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 |
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
There was a problem hiding this comment.
Actionable comments posted: 3
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
src/components/ResearchComparison01Page.tsx (1)
1-1213:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winRun Prettier on this file before merge.
CI reports formatting/style warnings for this file; please apply
prettier --write.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/components/ResearchComparison01Page.tsx` around lines 1 - 1213, This file fails CI formatting — run the project's Prettier formatter (e.g. prettier --write) on this file so it matches the repo style; specifically reformat the exported component and its helpers (ResearchComparison01Page, CoverageChart, ScatterChart, ResultTable, ScoreBand, etc.) and commit the resulting whitespace/quote/indentation changes so CI passes. Ensure you use the repo Prettier config (or npm script) to avoid differing settings.src/components/ResearchPerf01Page.tsx (1)
1-1254:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winRun Prettier on this file before merge.
CI reports formatting/style warnings for this file; please run
prettier --writeto keep the branch clean.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/components/ResearchPerf01Page.tsx` around lines 1 - 1254, Prettier formatting is required for this file; run the formatter and commit the updated file. Specifically, run `prettier --write` (or your repo's format script) on the file containing ResearchPerf01Page and its helpers (e.g. ResearchPerf01Page, useActiveSection, ComparisonChart, ResultsTable, PerfBand, PipelineHero, ThreeGateDiagram) so that CI formatting/style warnings are resolved, then stage and push the reformatted file.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@scripts/generate-sitemap.js`:
- Line 22: Update the sitemap entry object for the '/research' URL in
scripts/generate-sitemap.js so its priority matches the generated sitemap.xml:
change the object { url: '/research', changefreq: 'monthly', priority: 0.55 } to
use priority: 0.6 (to match public/sitemap.xml) to avoid regeneration drift and
inconsistent SEO metadata.
In `@src/components/ResearchPage.tsx`:
- Around line 1-377: This file fails the project's formatting checks; run
Prettier to fix styling for the ResearchPage component and its subcomponents
(e.g., ResearchPage, PaperRow, DotGridBackdrop, Stat, Rule, ExtMono) by
executing prettier --write on the file (or your repo's format script), review
the resulting changes, and commit them so CI no longer reports formatting/style
warnings.
- Around line 367-373: The live branch currently wraps the <li> with <Link>
causing the <ol> to contain anchors rather than list items; change the JSX so
the <li> remains the direct child of the <ol> and move the <Link> inside the
<li> (preserve existing className="block" and render {inner} inside the Link) —
update the conditional around live && paper.href in ResearchPage.tsx to return
an <li> that contains the <Link to={paper.href}> instead of returning <Link>
that contains the <li>.
---
Outside diff comments:
In `@src/components/ResearchComparison01Page.tsx`:
- Around line 1-1213: This file fails CI formatting — run the project's Prettier
formatter (e.g. prettier --write) on this file so it matches the repo style;
specifically reformat the exported component and its helpers
(ResearchComparison01Page, CoverageChart, ScatterChart, ResultTable, ScoreBand,
etc.) and commit the resulting whitespace/quote/indentation changes so CI
passes. Ensure you use the repo Prettier config (or npm script) to avoid
differing settings.
In `@src/components/ResearchPerf01Page.tsx`:
- Around line 1-1254: Prettier formatting is required for this file; run the
formatter and commit the updated file. Specifically, run `prettier --write` (or
your repo's format script) on the file containing ResearchPerf01Page and its
helpers (e.g. ResearchPerf01Page, useActiveSection, ComparisonChart,
ResultsTable, PerfBand, PipelineHero, ThreeGateDiagram) so that CI
formatting/style warnings are resolved, then stage and push the reformatted
file.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: c182b577-eba2-4d66-bcc5-8836a8a64038
📒 Files selected for processing (9)
public/sitemap.xmlscripts/generate-sitemap.jsscripts/prerender.jssrc/App.tsxsrc/components/AboutPage.tsxsrc/components/ResearchComparison01Page.tsxsrc/components/ResearchPage.tsxsrc/components/ResearchPerf01Page.tsxsrc/components/ScrollToTop.tsx
| if (live && paper.href) { | ||
| return ( | ||
| <Link to={paper.href} className="block"> | ||
| {inner} | ||
| </Link> | ||
| ); | ||
| } |
There was a problem hiding this comment.
Keep <li> as the direct child of <ol>; move the link inside it.
Right now, live rows render as <Link><li /></Link>, so the <ol> contains anchors instead of list items. This breaks list semantics and hurts accessibility.
Suggested fix
- if (live && paper.href) {
- return (
- <Link to={paper.href} className="block">
- {inner}
- </Link>
- );
- }
- return inner;
+ if (live && paper.href) {
+ return (
+ <motion.li
+ initial={{ opacity: 0, y: 16 }}
+ whileInView={{ opacity: 1, y: 0 }}
+ viewport={{ once: true, margin: '-60px' }}
+ transition={{ duration: 0.5, delay }}
+ className="grid grid-cols-[60px_1fr_auto] gap-x-6 sm:gap-x-10 py-9 lg:py-12 group"
+ >
+ <Link to={paper.href} className="contents">
+ {/* existing columns/content */}
+ </Link>
+ </motion.li>
+ );
+ }
+ return inner;🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@src/components/ResearchPage.tsx` around lines 367 - 373, The live branch
currently wraps the <li> with <Link> causing the <ol> to contain anchors rather
than list items; change the JSX so the <li> remains the direct child of the <ol>
and move the <Link> inside the <li> (preserve existing className="block" and
render {inner} inside the Link) — update the conditional around live &&
paper.href in ResearchPage.tsx to return an <li> that contains the <Link
to={paper.href}> instead of returning <Link> that contains the <li>.
The sitemap library rounds priority to one decimal place, so the script's 0.55 emitted as 0.6 in sitemap.xml — a drift CodeRabbit flagged. Use a clean one-decimal value so script and generated XML agree.
Summary
Publishes research paper #2 (
/research/comparison-01) and rebuilds both research pages with an academic-paper layout, inspired by the supermemory research page.New — comparison paper #2
/research/comparison-01— the head-to-head benchmark of Refactron against jscodeshift, Comby, ESLint --fix, and LibCST onvar → const/letandformat → f-string. Built on the measured dataset from Refactron_Lib_TS PR #27.Layout — both research pages
Restructured
/research/perf-01and/research/comparison-01to a shared academic-paper shell:CONTENTSsidebar with scroll-spy active-section highlight[n]citations + numbered referencesAlso in this branch
ScrollToTop— resets scroll on route change (the committedApp.tsxalready imported it; this lands the component)AboutPage— hero navbar-clearance padding, chip-card label contrast, lifted backgroundTest plan
npm run buildgreen — all research pages pre-render/research/comparison-01and/research/perf-01Summary by CodeRabbit
New Features
Style
Chores