fix: restore CI by resolving dependency conflicts and cleaning lint/type errors - #18
Merged
Merged
Conversation
…ype errors - Downgrade eslint and @eslint/js from ^10.5.0/^10.0.1 to ^9.39.4 so eslint-plugin-react@7.37.5 (supports eslint up to 9.7) is compatible. - Downgrade eslint-plugin-react-hooks from canary 7.1.1 to stable 5.2.0; the canary introduced experimental React Compiler rules that crashed lint. - Add missing @expo/vector-icons dependency used throughout the app. - Exclude desktop/ and backend/ from root tsconfig.json; desktop has its own package.json and dependencies and should not be type-checked by the root. - Replace StyleSheet.absoluteFillObject with explicit absolute positioning in FocusMode, SideDrawer, SwipeableTaskCard (type-safe equivalent). - Fix no-case-declarations warnings by scoping case blocks in SearchScreen and TableView. - Fix no-empty warnings by adding explanatory comments in VoiceInput and WhiteNoisePlayer. - Clean up unused variables/imports across screens and shared components. - Fix React Hook dependency warnings in App.tsx, HomeScreen.tsx, and TaskDependencies.tsx; suppress intentionally stable mount effects. Validation: - npm ci: pass - npm run lint: 0 errors, 88 warnings (remaining no-explicit-any warnings) - npm run typecheck: pass - npm run build:web: pass
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.
This PR fixes the broken CI on
mainand cleans up the most pressing code-quality issues.Root cause
eslint@^10.5.0is incompatible witheslint-plugin-react@7.37.5(peer range^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7), causingnpm cito fail withERESOLVE.eslint-plugin-react-hooks@7.1.1was an experimental canary that crashed ESLint with internalreact-hooks/*rules.@expo/vector-iconswas imported everywhere but missing frompackage.json.tsconfig.jsonwas type-checking thedesktop/Electron sub-project, whose dependencies live in a separatepackage.json.Changes
eslint/@eslint/jsto^9.39.4andeslint-plugin-react-hooksto stable^5.2.0.@expo/vector-icons: ^14.1.0.desktop/andbackend/from roottsconfig.json.StyleSheet.absoluteFillObjectwith explicit absolute positioning in 3 components.no-case-declarations/no-emptywarnings.Validation (local)
npm cinpm run lintno-explicit-any)npm run typechecknpm run build:webThe remaining 88 warnings are all
@typescript-eslint/no-explicit-anyin prototype code; they do not block CI.