feat: add ESLint with TypeScript/React plugins and fix all lint errors

- Add ESLint 9 configuration (eslint.config.mjs) with TypeScript and React hooks plugins
- Add npm run lint:eslint command for code quality checks
- Expand npm run lint to check all three TypeScript configs (renderer, main, cli)
- Update tsconfig.cli.json to include src/prompts and src/types directories

Fix 29 ESLint errors:
- Remove unused updateCliActivity import in batch-processor.ts
- Convert {false && <jsx>} patterns to comments in AutoRun components
- Wrap case block with const declarations in braces (AgentSelectionScreen)
- Fix unused expression pattern in PreparingPlanScreen
- Fix conditional hook calls in FilePreview, OfflineQueueBanner, RecentCommandChips, TerminalOutput
- Add windows-diagnostics.json to PackageContents interface

Update CLAUDE.md and CONTRIBUTING.md with new linting commands and documentation.

Claude ID: 029e8abe-5734-4967-9fb4-c85078c1973d
Maestro ID: 87ffa06e-0ecd-4eb8-b327-dad1ec24f7a9
This commit is contained in:
Pedram Amini
2025-12-22 18:56:38 -06:00
parent b775a78e4e
commit a8edadbdcf
16 changed files with 2969 additions and 51 deletions

View File

@@ -33,7 +33,8 @@
"start": "electron .",
"clean": "rm -rf dist release node_modules/.vite",
"postinstall": "electron-rebuild -f -w node-pty",
"lint": "tsc -p tsconfig.lint.json",
"lint": "tsc -p tsconfig.lint.json && tsc -p tsconfig.main.json --noEmit && tsc -p tsconfig.cli.json --noEmit",
"lint:eslint": "eslint src/",
"test": "vitest run",
"test:watch": "vitest",
"test:coverage": "vitest run --coverage",
@@ -222,6 +223,7 @@
},
"devDependencies": {
"@electron/notarize": "^3.1.1",
"@eslint/js": "^9.39.2",
"@playwright/test": "^1.57.0",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.0",
@@ -234,6 +236,8 @@
"@types/react-dom": "^18.2.18",
"@types/react-syntax-highlighter": "^15.5.13",
"@types/ws": "^8.5.10",
"@typescript-eslint/eslint-plugin": "^8.50.1",
"@typescript-eslint/parser": "^8.50.1",
"@vitejs/plugin-react": "^4.2.1",
"@vitest/coverage-v8": "^4.0.15",
"autoprefixer": "^10.4.16",
@@ -244,6 +248,10 @@
"electron-playwright-helpers": "^2.0.1",
"electron-rebuild": "^3.2.9",
"esbuild": "^0.24.2",
"eslint": "^9.39.2",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-hooks": "^7.0.1",
"globals": "^16.5.0",
"jsdom": "^27.2.0",
"lucide-react": "^0.303.0",
"playwright": "^1.57.0",
@@ -252,6 +260,7 @@
"react-dom": "^18.2.0",
"tailwindcss": "^3.4.1",
"typescript": "^5.3.3",
"typescript-eslint": "^8.50.1",
"vite": "^5.0.11",
"vite-plugin-electron": "^0.28.2",
"vitest": "^4.0.15"