Repository navigation
feat(packs): recharts 2 → 3 candidate pack - #105
lucasbraum wants to merge 2 commits into
Conversation
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AFXK727TTb22LDSsUriVuc Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AFXK727TTb22LDSsUriVuc Signed-off-by: Claude <noreply@anthropic.com>
|
Rerun on 2026-10-14: this PR's two commits cherry-picked onto current main (40e870b), scripts off.
The blockers in the PR body (diagnostics of a shared cause not folded for destructured-parameter and intersection types; hyperdx Existing packs, same run: Retry when the engine folds shared-cause diagnostics or compiles workspace packages. Generated by Claude Code |
|
Rerun on 2026-10-15: this PR's two commits cherry-picked onto current main (0db5640, which includes #138 "respect TypeScript project compile scope"). Conflicts were only in
Retry when the engine folds shared-cause diagnostics (destructured-parameter and intersection-type cases) or compiles workspace packages. Generated by Claude Code |
|
Rerun on 2026-10-16: this PR's two commits cherry-picked onto current main (5298b85, "pin the Uptide Action to v0.14.0"). Conflicts were only in
The blockers in the PR body (shared-cause diagnostics not folded for destructured-parameter and intersection types; hyperdx Retry when the engine folds shared-cause diagnostics or compiles workspace packages. Generated by Claude Code |
|
Rerun on 2026-10-17: this PR's two commits cherry-picked onto current main (4c3dc23, "warn on low per-rule rewrite precision (UPT-65)"). Conflicts were only in
The engine blockers in the PR body are unchanged, so I did not touch the engine, rules, expectations or ground truth. Existing packs, breaking (sites) precision / recall:
Retry when the engine folds shared-cause diagnostics or compiles workspace packages. Generated by Claude Code |
|
Rerun on 2026-10-18: this PR's two commits cherry-picked onto current main (ae175a9, "an oversized PR body is shortened (UPT-106)"). Conflicts were only in
The engine blockers in the PR body (shared-cause diagnostics not folded for destructured-parameter and intersection types; hyperdx Existing packs: only Retry when the engine folds shared-cause diagnostics or compiles workspace packages. Generated by Claude Code |
|
Rerun on 2026-10-19: this PR's two commits cherry-picked onto current main (e48373d, "catch silent billing-mode changes end to end (UPT-113)"). Conflicts only in
The engine blockers in the PR body (shared-cause diagnostics not folded for destructured-parameter and intersection types; hyperdx Existing packs (breaking sites, precision/recall): Retry when the engine folds shared-cause diagnostics or compiles workspace packages. Generated by Claude Code |
Pack
recharts,>=2 <3→>=3 <4. Status: candidate (2 public repositories, breaking precision 21%, recall 31%). Not verified: 67 false positives among breaking findings. No pack-request issue; firsttodoentry ofpacks/queue.json.Sources
@deprecatednotes in the 3.x type declarations (Cell,Pie.activeShape/inactiveShape); 2.15.1 declarations foralwaysShow(deprecated in favor ofifOverflow="extendDomain")Rules and behavior notes
Rules (
checkclaims them by compiler message or type-diff path):categorical-chart-state(breaking, agent):CategoricalChartState,chartX/chartY/activePayloadon mouse handlers,chart.setState.tooltip-content-props(breaking, agent): customTooltipcontent typed withTooltipProps; useTooltipContentProps.legend-payload(breaking, agent):Legendpayloadremoved; custom legend content typed withDefaultLegendContentProps.active-index(breaking, agent):activeIndexremoved;shapewithindex.internal-props(breaking, agent):Scatter/Areapoints.pie-blend-stroke(breaking, agent):blendStroketostroke="none".always-show(breaking, rewrite):alwaysShowtoifOverflow="extendDomain"; declines computed values and elements that already setifOverflow.unused-props(breaking, rewrite): removesisFront(reference elements) andanimateNewValues(Area,Funnel), documented as no-ops.cell(deprecated, agent) andpie-active-shape(deprecated, agent).Behavior notes (all
decision):accessibility-layer,render-order-z-index,legend-order,axes-rendering,cartesian-grid-axis-id,area-null-values,scatter-tooltip-colors,customized-props,environment-requirements.No official codemod exists for this major. The two rewrite rules rest on fixtures and the guide only (no ground-truth repository uses those props).
Ground-truth repositories
f900bd57d0d197d22b1a620bc43c964cb44a73ef(parent of the merged feat: update chart to recharts v3 shadcn-ui/ui#8486), recharts 2.15.1 to 3.8.0, 45 expected findings. Installs at the repository root (pnpm).a33686ef239757e39831323adf3659ecb2974081(parent of hyperdxio/hyperdx@d137eaa), recharts 2.13.3 to 3.9.1, 20 expected findings (Yarn Berry).$commentinground-truth.jsonlists what was left out and why.uptide pack testoutputThe 149 false positives (67 breaking, all in shadcn-ui/ui; the rest are
unverifiedtype-diff sites in hyperdxio/hyperdx) are printed bypnpm uptide pack test recharts.Existing packs, same run (
pnpm uptide pack test, main plus this branch):ai,stripe,vitestandzodpass and are unchanged.reactfails withverification.json does not match this run, an environment issue, not a regression: tldraw/tldraw cannot install in this sandbox (corepack rejects its pinned yarn@4.7.0), so one public repository was scored. This branch does not touch the react pack.pnpm lint(one pre-existing warning infix/report.test.ts),pnpm typecheckandpnpm test(core 1373, cli 431) pass.Why it is a candidate (what is missing)
chart.tsxgive 8 breaking sites each (payload/labelmissing on the tooltip props, implicitanyfurther down,Pick<LegendProps>,.lengthof{}), plus 21<ChartLegend content={<ChartLegendContent />} />sites with TS2741. The folding of missing-member diagnostics into one finding (feat(check): one finding when call sites trace to a member declared in a repository augmentation #60) does not cover these destructured-parameter and intersection-type cases. I did not touch the engine and did not move expectations to match it.packages/appis not compiled:22 of 33 files cannot resolve their imports at the installed version; compile signal skipped(workspace packages are not built, scripts off). Its compiler-visible sites (chartX,CategoricalChartState,Cell,ReferenceAreaprops) are false negatives of the compile signal; its type-diff sites show asunverifiedfalse positives in the overall score (not breaking).checkcannot install a subdirectory (--directory) whose lockfile is at the repository root (UNSUPPORTED_PACKAGE_MANAGER), so both repositories are scored at their root.Not covered
genericin the ground truth, no rule because no source lists them):ReferenceAreano longer acceptsfill,strokeWidth,strokeOpacity(3.6+ declarations),Barlayout,dataKeyacceptingsymbol,Label/LabelList/tick/dotrender function prop types,ResponsiveContaineronResizeparameters.marginobjects gainingtop/bottom,ResponsiveContainerinitialDimension, a changed axis tick CSS class in an e2e selector.react-iswas added by the hyperdx upgrade as a peer of recharts 3;withis empty because it was added, not moved.Tooling friction
uptide checkfrom the CLI in source mode fails its worker (Cannot find module .../errors.js imported from check/worker.ts);pack testruns in process and is unaffected.packs:truth --directoryfails for monorepo subdirectories (see 3 above).packs:truthoutput would save most of the time.Supersedes: none (no earlier pack-candidate PR).
🤖 Generated with Claude Code
https://claude.ai/code/session_01AFXK727TTb22LDSsUriVuc
Generated by Claude Code