Summary
The CI lint step reports ~10 React Compiler rule violations across History, MuscleMap, and Report. These fall into three categories: calling setState synchronously inside a useEffect (can cause cascading renders in concurrent mode), accessing refs during render (refs are not stable during the render phase), and accessing variables before declaration. None cause visible bugs today under React 19 without the compiler enabled, but they are anti-patterns that can fail under concurrent rendering features and will become hard errors if the React Compiler is ever turned on.
Priority
Low — no current user impact; becomes blocking if React Compiler is adopted.
Acceptance criteria
Out of scope
Summary
The CI lint step reports ~10 React Compiler rule violations across History, MuscleMap, and Report. These fall into three categories: calling setState synchronously inside a
useEffect(can cause cascading renders in concurrent mode), accessing refs during render (refs are not stable during the render phase), and accessing variables before declaration. None cause visible bugs today under React 19 without the compiler enabled, but they are anti-patterns that can fail under concurrent rendering features and will become hard errors if the React Compiler is ever turned on.Priority
Low — no current user impact; becomes blocking if React Compiler is adopted.
Acceptance criteria
History.jsx:65— setState called synchronously in effect: refactorHistory.jsx:235— setState called synchronously in effect: refactorMuscleMap.jsx:344— setState called synchronously in effect: refactorMuscleMap.jsx:179(×3) — ref accessed during render: refactorReport.jsx:101— setState called synchronously in effect: refactorReport.jsx:113— setState called synchronously in effect: refactorReport.jsx:114,117(×2) — variable accessed before declaration: refactornpm run lintreports 0 React Compiler warnings after the changeOut of scope
react-hooks/exhaustive-depswarnings — tracked separately in As a developer I want to resolve react-hooks/exhaustive-deps warnings so stale closure risks are either fixed or explicitly documented #159react-refresh/only-export-componentswarnings — intentional multi-export module architecture, no change planned