Background
eslint-plugin-react-hooks is temporarily pinned to 7.0.1 because 7.1.1's React-Compiler-powered rules flag 19+ pre-existing violations across packages/backend.ai-ui and react (react-hooks/set-state-in-effect, react-hooks/refs, react-hooks/immutability, react-hooks/preserve-manual-memoization), which breaks CI lint.
Known offenders (from the 7.1.1 run): BAIFetchKeyButton, BAIGraphQLPropertyFilter, BAIModal, BAIProjectResourceGroupSelect, BAIRowWrapWithDividers, BAINameActionCell, BAITableSettingModal, BAIFileExplorer, plus multiple react/src components.
What to do
- Fix the flagged patterns (mostly setState-in-effect → derive state during render /
useEffectEvent / external-store subscription; refs-in-render; mutation of memoized values) per .claude/rules/use-effect-event.md.
- Bump the catalog back to
^7.1.1 and regenerate the lockfile consistently (all importers on one version).
- Confirm
backend-ai-ui-vitest / react-vitest CI jobs pass.
JIRA Issue: FR-3338
Background
eslint-plugin-react-hooks is temporarily pinned to 7.0.1 because 7.1.1's React-Compiler-powered rules flag 19+ pre-existing violations across
packages/backend.ai-uiandreact(react-hooks/set-state-in-effect,react-hooks/refs,react-hooks/immutability,react-hooks/preserve-manual-memoization), which breaks CI lint.Known offenders (from the 7.1.1 run): BAIFetchKeyButton, BAIGraphQLPropertyFilter, BAIModal, BAIProjectResourceGroupSelect, BAIRowWrapWithDividers, BAINameActionCell, BAITableSettingModal, BAIFileExplorer, plus multiple react/src components.
What to do
useEffectEvent/ external-store subscription; refs-in-render; mutation of memoized values) per.claude/rules/use-effect-event.md.^7.1.1and regenerate the lockfile consistently (all importers on one version).backend-ai-ui-vitest/react-vitestCI jobs pass.JIRA Issue: FR-3338