Fix all mypy and eslint errors, add copilot lint instructions

Backend (mypy - 56 errors fixed):
- database.py: Fix async generator return type to AsyncGenerator
- database_models.py: Add type annotations for SQLEnum columns
- middleware.py: Use explicit Optional for exempt_paths parameter
- mail_processor.py: Fix type narrowing in fetch_emails, add Dict type annotation for KNOWN_PROVIDERS
- users.py, auth.py, providers.py, tasks.py: Add type: ignore comments for SQLAlchemy Column assignment patterns

Frontend (eslint - 3 errors, 2 warnings fixed):
- login/page.tsx: Replace any with unknown + type narrowing, prefix unused vars with underscore
- register/page.tsx: Replace any with unknown + type narrowing

Add .github/copilot-instructions.md with lint-check requirements

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
Agent-Logs-Url: https://github.com/christianlouis/pop_puller_to_gmail/sessions/dac7ab78-fe27-4fe4-890f-32c6c1c6d881
This commit is contained in:
copilot-swe-agent[bot]
2026-03-23 10:48:16 +00:00
parent a918421945
commit 27c50e49cf
11 changed files with 98 additions and 59 deletions
+31
View File
@@ -0,0 +1,31 @@
# Copilot Instructions
## Linting Requirements
Before committing any changes, always run the relevant linters and fix all errors:
### Backend (Python)
```bash
# Check code formatting
black --check backend/
# Lint with ruff
ruff check backend/
# Type check with mypy
mypy backend/app --ignore-missing-imports
```
### Frontend (TypeScript/React)
```bash
cd frontend
npm run lint
```
## Conventions
- **Python**: Follow PEP 8. Use `black` for formatting. All ruff and mypy errors must be resolved before committing.
- **TypeScript**: Follow the ESLint configuration. Avoid `any` types — use `unknown` with type narrowing instead. Remove unused variables and imports.
- **SQLAlchemy**: Use `# type: ignore[assignment]` for Column attribute assignments and `# noqa: E712` for `== True` comparisons in SQLAlchemy queries (these are valid ORM patterns).