test/build: add eslint-plugin-react-hooks exhaustive-deps rule - #91
Open
jamesa94 wants to merge 1 commit into
Open
test/build: add eslint-plugin-react-hooks exhaustive-deps rule#91jamesa94 wants to merge 1 commit into
jamesa94 wants to merge 1 commit into
Conversation
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.
Background
The ESLint configuration in
frontend/.eslintrc.cjsincludesplugin:react-hooks/recommended, which enables thereact-hooks/exhaustive-depsandreact-hooks/rules-of-hooksrules. However, these rules are set towarnby default in the recommended preset, meaning missing dependencies inuseEffect(like the bug in PR-F03 whereCodeDashboardhas a stale closure) are only warnings, not build-blocking errors.This allows subtle bugs to slip through CI and reach production.
Changes
Added explicit rule configuration to elevate both React Hooks rules from
warntoerror:react-hooks/exhaustive-deps: error (catches missing dependencies in useEffect/useCallback/useMemo)react-hooks/rules-of-hooks: error (catches hooks called conditionally or outside components)Before
After
Notes
After enabling this rule, running
npm run lintwill likely surface existing violations (e.g., theCodeDashboard.tsxuseEffect with a staleloadSessionsclosure). Those should be fixed in follow-up PRs usinguseCallbackwrappers or proper dependency arrays. This PR is intentionally minimal: it only changes the ESLint config, not the code that violates it.