Repository navigation
#542 AC1 follow-up: drop React dependencies - #589
Merged
MaximumTrainer merged 1 commit intoOct 25, 2026
Merged
MaximumTrainer merged 1 commit into
MaximumTrainer merged 1 commit into
Conversation
AC1 (PR #587) deleted every file in the surviving tree that imported React, React DOM, @react-three/*, @testing-library/react, the React testing renderer, @vitejs/plugin-react, the two React ESLint plugins, jest-dom's matcher shim, @shaderfrog/glsl-parser (the GLSL files it parsed left with the three.js scene), and `postprocessing` (reached only through the deleted `@react-three/postprocessing`). None of these packages are reachable any more — grepping the whole tree returns zero non-package imports. `react-chartjs-2` likewise: `chart.js` is used directly from one Svelte component now. Kept: `chart.js`, `maplibre-gl`, `meshoptimizer`, `supercluster`, `three` (still used by `src/components/rower3d/rowerAppearance.ts` and `src/components/rower3d/sceneryClearance.ts` plus their tests — `src/lib` is three-free, this is the last pocket) + the Svelte + testing + build devDependencies. `npm install` removed 110 packages. The audit count is unchanged (all open advisories are transitive through `maplibre-gl` / `supercluster`, not from this change). Local gates: `lint`, `tsc`, `tsc -p tsconfig.playwright.json`, `vitest` (213 files · 2081 pass · 8 skip) all green. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q5D9BTXmu7SeMa3LghJD8b
MaximumTrainer
deleted the
claude/project-thread-lddi4g-ac1-dep-cleanup
branch
October 25, 2026 16:34
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The follow-up to #587: now that nothing in the tree imports them, remove the React / three.js-React / React-testing / Vite-React / React-ESLint packages from
package.json.Gone from
dependencies:react,react-dom,@react-three/drei,@react-three/fiber,@react-three/postprocessing,postprocessing(reached only through@react-three/postprocessing),react-chartjs-2(chart.jsis used directly from one Svelte component now).Gone from
devDependencies:@react-three/test-renderer,@testing-library/react,@testing-library/jest-dom(its matcher shim was dropped fromsetupTests.tswith #587 — no surviving test uses it),@types/react,@types/react-dom,@vitejs/plugin-react,eslint-plugin-react-hooks,eslint-plugin-react-refresh,@shaderfrog/glsl-parser(the GLSL files it parsed left with the three.js scene).Kept:
chart.js,maplibre-gl,meshoptimizer,supercluster,three+@types/three(still used bysrc/components/rower3d/rowerAppearance.tsandsrc/components/rower3d/sceneryClearance.ts—src/libis three-free, this is the last pocket), and the Svelte + testing + build devDependencies.npm installremoved 110 transitive packages. The audit count is unchanged; all open advisories are transitive throughmaplibre-gl/supercluster, not from this change.Local gates:
lint,tsc,tsc -p tsconfig.playwright.json,vitest(213 files · 2081 pass · 8 skip), coverage threshold all green.Test plan
next/svelte-webgpunpm ci && npm run dev && npm run buildstill boot the Svelte app (the lock-file prune is where a missed transitive dep would show up)Generated by Claude Code