Repository navigation
Highlights
Major frontend framework upgrade — React 18 → 19, Vite 7 → 8, TypeScript 5 → 6, ESLint 8 → 10 — plus post-upgrade cleanup to remove dead dependencies and wire up previously orphaned lint rules.
Added
- React 19 with idiomatic
createRoot/StrictModenamed imports - Vite 8 build toolchain
- TypeScript 6 with
src/vite-env.d.tsfor CSS side-effect imports - ESLint 10 with flat config
@typescript-eslintv8 (fixes 6 high CVEs from minimatch ReDoS in v6)eslint-plugin-react-hooksv7 — enforcingrules-of-hooks(error) andexhaustive-deps(warn)eslint-plugin-react-refreshv0.5 — enforcingonly-export-components(warn)@testing-library/reactv16 andjsdomv29- Re-enabled
tsc --noEmitandnpm auditchecks in CI
Changed
- React 18 → 19, react-dom 18 → 19
- Vite 7 → 8, @vitejs/plugin-react 4 → 6
- TypeScript 5 → 6
- ESLint 8 → 10, @eslint/js 9 → 10
- @testing-library/react 14 → 16, jsdom 23 → 29
main.tsxmodernized to use named importsimport.meta.envno longer needsas anycast
Removed
react-router-dom— was never imported in source; phantom dependency removedautoprefixer— redundant with Tailwind CSS v4eslint-plugin-react— incompatible with ESLint 10 and unused- Duplicate root-level
vite-env.d.ts— consolidated intosrc/
Fixed
- ESLint plugins installed but not configured — now enforced
- CI was skipping
tsc --noEmitandnpm audit— both re-enabled (pass clean) - 6 high-severity CVEs resolved via
@typescript-eslintv6 → v8
Full Changelog: v1.5.0...v1.6.0