Christian Krakau-Louis
19f089f8f6
Update .github/workflows/ci.yml
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-03-23 13:52:23 +01:00
copilot-swe-agent[bot]
c4d8f392f8
chore: merge dependency updates from PRs #26-#49 and remove CodeQL checks
...
Backend (Python):
- pydantic 2.5.3 → 2.12.5
- pydantic-settings 2.1.0 → 2.13.1
- psycopg2-binary 2.9.9 → 2.9.11
- asyncpg 0.29.0 → 0.31.0
- stripe 7.11.0 → 14.4.1
- aioimaplib 1.0.1 → 2.0.1
- google-auth-httplib2 0.2.0 → 0.3.0
- celery 5.3.6 → 5.6.2
- redis 5.0.1 → 7.3.0
- tenacity 8.2.3 → 9.1.4
Frontend (npm):
- react 19.2.3 → 19.2.4
- @tanstack/react-query ^5.90.20 → ^5.95.0
- axios ^1.13.5 → ^1.13.6
- zustand ^5.0.11 → ^5.0.12
- eslint ^9 → ^10
- eslint-config-next 16.1.6 → 16.2.1
Docker:
- Python base image 3.11-slim → 3.14-slim
CI/CD:
- actions/setup-python v5 → v6
- actions/setup-node v4 → v6
- docker/setup-buildx-action v3 → v4
- codecov/codecov-action v3 → v5
- Python version 3.11 → 3.14, Node.js 18 → 20
- Removed CodeQL checks (was blocking builds)
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
Agent-Logs-Url: https://github.com/christianlouis/pop_puller_to_gmail/sessions/d8a6f888-1c85-4de6-a36d-55e9dcd7489e
2026-03-23 12:33:33 +00:00
copilot-swe-agent[bot]
5f5b4777dd
Initial plan
2026-03-23 12:27:48 +00:00
Christian Krakau-Louis
4338490fa3
Merge pull request #50 from christianlouis/dependabot/npm_and_yarn/frontend/lucide-react-0.577.0
...
chore(deps): bump lucide-react from 0.563.0 to 0.577.0 in /frontend
2026-03-23 13:26:05 +01:00
Christian Krakau-Louis
d1b8850fdc
Merge pull request #51 from christianlouis/dependabot/npm_and_yarn/frontend/react-dom-19.2.4
...
chore(deps): bump react-dom from 19.2.3 to 19.2.4 in /frontend
2026-03-23 13:25:53 +01:00
Christian Krakau-Louis
ec222832ef
Merge branch 'main' into dependabot/npm_and_yarn/frontend/react-dom-19.2.4
2026-03-23 13:25:46 +01:00
dependabot[bot]
8133197d35
chore(deps): bump react-dom from 19.2.3 to 19.2.4 in /frontend
...
Bumps [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom ) from 19.2.3 to 19.2.4.
- [Release notes](https://github.com/facebook/react/releases )
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md )
- [Commits](https://github.com/facebook/react/commits/v19.2.4/packages/react-dom )
---
updated-dependencies:
- dependency-name: react-dom
dependency-version: 19.2.4
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-23 12:23:49 +00:00
dependabot[bot]
33277717fa
chore(deps): bump lucide-react from 0.563.0 to 0.577.0 in /frontend
...
Bumps [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react ) from 0.563.0 to 0.577.0.
- [Release notes](https://github.com/lucide-icons/lucide/releases )
- [Commits](https://github.com/lucide-icons/lucide/commits/0.577.0/packages/lucide-react )
---
updated-dependencies:
- dependency-name: lucide-react
dependency-version: 0.577.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-23 12:23:40 +00:00
Christian Krakau-Louis
6d80be7abe
Merge pull request #23 from christianlouis/copilot/fix-password-length-issue
...
Fix bcrypt 5.x incompatibility breaking password hashing tests
2026-03-23 13:23:10 +01:00
Christian Krakau-Louis
725d7a42ea
Merge branch 'main' into copilot/fix-password-length-issue
2026-03-23 13:21:20 +01:00
Christian Krakau-Louis
7e74d98cbe
Merge pull request #25 from christianlouis/copilot/update-deployment-documentation
...
Add deployment guide with Docker Compose and Kubernetes examples
2026-03-23 13:21:04 +01:00
Christian Krakau-Louis
9217efb4db
Merge pull request #24 from christianlouis/copilot/secure-ai-agent-infrastructure
...
Milestone 1: Security & infrastructure hardening
2026-03-23 13:20:45 +01:00
copilot-swe-agent[bot]
d66af4d8ef
feat: Milestone 1 Security & Infrastructure improvements
...
- Add Dependabot configuration for pip, npm, GitHub Actions, Docker
- Update copilot instructions to require TODO.md and CHANGELOG.md updates
- Add unit tests for middleware, security, app factory, and schemas (125 total tests, 57% coverage)
- Update TODO.md with current progress
- Update CHANGELOG.md with all changes
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
Agent-Logs-Url: https://github.com/christianlouis/pop_puller_to_gmail/sessions/2f15a52f-6812-4586-9d5c-a144226c842b
2026-03-23 11:23:37 +00:00
copilot-swe-agent[bot]
a84a4fe033
Add comprehensive deployment guide (docs/DEPLOYMENT_GUIDE.md)
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
Agent-Logs-Url: https://github.com/christianlouis/pop_puller_to_gmail/sessions/0204699a-6f9d-4481-a23c-b543fee5e3fc
2026-03-23 11:18:33 +00:00
copilot-swe-agent[bot]
1402afb9ce
Initial plan
2026-03-23 11:13:45 +00:00
copilot-swe-agent[bot]
3d48bc6f66
Initial plan
2026-03-23 11:12:14 +00:00
copilot-swe-agent[bot]
5fd0914b07
fix: replace passlib with direct bcrypt calls to fix bcrypt 5.x incompatibility
...
passlib 1.7.4 is incompatible with bcrypt>=5.0.0. When passlib initializes
its bcrypt backend, it calls detect_wrap_bug() with a >72-byte test password.
bcrypt 5.0.0 raises ValueError for such passwords, crashing the initialization
before any user code runs.
Fix: replace passlib[bcrypt] with direct bcrypt==4.3.0 usage:
- security.py: use bcrypt.hashpw()/checkpw() instead of CryptContext
- requirements.txt: replace passlib[bcrypt]==1.7.4 with bcrypt==4.3.0
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
Agent-Logs-Url: https://github.com/christianlouis/pop_puller_to_gmail/sessions/a2327bbe-cc06-4c1f-9010-380fb0fd7d67
2026-03-23 11:07:25 +00:00
Christian Krakau-Louis
319282121f
Merge pull request #21 from christianlouis/copilot/clean-up-repository
...
Clean up repository structure, add standard OSS files, fix documentation accuracy
2026-03-23 12:06:59 +01:00
copilot-swe-agent[bot]
1263ed5266
Update TODO.md: document missing frontend API client, mark completed items, update progress tracking
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
Agent-Logs-Url: https://github.com/christianlouis/pop_puller_to_gmail/sessions/71f26285-5584-42b2-8255-8ad2c9e9ecb4
2026-03-23 11:02:09 +00:00
copilot-swe-agent[bot]
df69070951
Initial plan
2026-03-23 10:58:40 +00:00
copilot-swe-agent[bot]
b3a0c4bfd8
Clean up repo: move docs to docs/, add SECURITY.md, .editorconfig, update README with badges, fix cross-references, correct documentation to reflect actual project state
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
Agent-Logs-Url: https://github.com/christianlouis/pop_puller_to_gmail/sessions/71f26285-5584-42b2-8255-8ad2c9e9ecb4
2026-03-23 10:57:31 +00:00
Christian Krakau-Louis
dfc074352c
Merge pull request #22 from christianlouis/copilot/fix-unused-imports
...
Fix all CI lint failures: ruff, mypy, and eslint
2026-03-23 11:54:15 +01:00
copilot-swe-agent[bot]
27c50e49cf
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
2026-03-23 10:48:16 +00:00
copilot-swe-agent[bot]
a918421945
Fix all 33 ruff linting errors causing CI failures
...
- Remove unused imports (F401) across 17 files
- Fix f-strings without placeholders (F541) in 3 files
- Add noqa: E712 to SQLAlchemy == True comparisons (valid ORM pattern)
- Preserve alembic side-effect import with noqa: F401
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
Agent-Logs-Url: https://github.com/christianlouis/pop_puller_to_gmail/sessions/99c3a25f-3479-473d-ac95-9faaa0ddd55b
2026-03-23 10:38:39 +00:00
copilot-swe-agent[bot]
1463ad225c
Initial plan
2026-03-23 10:34:55 +00:00
Christian Krakau-Louis
46104d7d21
Merge pull request #18 from christianlouis/copilot/add-account-management-functionality
...
Fix CI: pytest module resolution, black formatting, authlib security vulnerabilities
2026-03-23 11:33:12 +01:00
Christian Krakau-Louis
29722101cd
Merge pull request #19 from christianlouis/copilot/fix-module-not-found-error
...
Fix test collection failure and patch authlib security vulnerabilities
2026-03-23 11:32:48 +01:00
Christian Krakau-Louis
5cbaacb642
Merge branch 'main' into copilot/fix-module-not-found-error
2026-03-23 11:32:39 +01:00
Christian Krakau-Louis
a0957c55fc
Merge pull request #20 from christianlouis/copilot/rebuild-actions-phased-ci-approach
...
Consolidate CI into single phased pipeline with lint → test → security → build
2026-03-23 11:31:57 +01:00
copilot-swe-agent[bot]
fd784e5816
Clean up Docker metadata tags per code review feedback
...
Remove type=ref,event=branch (redundant since build only runs on main)
and simplify SHA tag to use plain prefix instead of {{branch}}- template.
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
Agent-Logs-Url: https://github.com/christianlouis/pop_puller_to_gmail/sessions/3903cad7-10be-46e6-8e2d-619d2a874235
2026-03-23 10:30:25 +00:00
copilot-swe-agent[bot]
f7fc10f2dc
fix: bump authlib 1.6.6 → 1.6.9 to patch four security vulnerabilities
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
Agent-Logs-Url: https://github.com/christianlouis/pop_puller_to_gmail/sessions/a88d0d53-5145-4ae3-b86b-5374c55e4a2b
2026-03-23 10:30:22 +00:00
Christian Krakau-Louis
e0e6cc74e6
Merge branch 'main' into copilot/add-account-management-functionality
2026-03-23 11:29:12 +01:00
copilot-swe-agent[bot]
e952844806
Consolidate 4 workflow files into single phased CI pipeline
...
Replace lint.yml, test.yml, security.yml, and docker-build.yml with a
single ci.yml that chains: Lint → Test → Security (CodeQL) → Build.
- Phase 1 (Lint): Black, Ruff, mypy for backend; ESLint for frontend
- Phase 2 (Test): pytest with coverage, PostgreSQL & Redis services
- Phase 3 (Security): Bandit, Safety, CodeQL (Python + JS/TS)
- Phase 4 (Build): Docker build+push, only on main branch or version tags
Each phase depends on the previous one passing. Docker images are only
built when pushing to main or tagging a release.
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
Agent-Logs-Url: https://github.com/christianlouis/pop_puller_to_gmail/sessions/3903cad7-10be-46e6-8e2d-619d2a874235
2026-03-23 10:29:02 +00:00
copilot-swe-agent[bot]
5c84441195
fix: add pythonpath = . to pytest.ini to resolve ModuleNotFoundError for app module
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
Agent-Logs-Url: https://github.com/christianlouis/pop_puller_to_gmail/sessions/a88d0d53-5145-4ae3-b86b-5374c55e4a2b
2026-03-23 10:27:33 +00:00
copilot-swe-agent[bot]
9f8f63ec17
Fix authlib security vulnerabilities: upgrade 1.6.6 -> 1.6.9
...
Fixes four CVEs:
- OIDC hash binding fail-open cryptographic verification
- JWE RSA1_5 Bleichenbacher padding oracle
- alg:none signature verification bypass
- JWS JWK header injection signature verification bypass
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
Agent-Logs-Url: https://github.com/christianlouis/pop_puller_to_gmail/sessions/beb47db2-da25-416a-8fb0-c1452a3b22a7
2026-03-23 10:27:14 +00:00
copilot-swe-agent[bot]
88a44dfe73
Initial plan
2026-03-23 10:26:30 +00:00
copilot-swe-agent[bot]
39dd52b5b8
Initial plan
2026-03-23 10:25:09 +00:00
copilot-swe-agent[bot]
bcbef88803
Fix CI failures: add backend/conftest.py for module resolution and run black formatting
...
- Add backend/conftest.py that inserts the backend directory into sys.path,
fixing ModuleNotFoundError when pytest runs from the backend/ directory
(as CI does with `cd backend && pytest tests/`)
- Run black formatter on all 28 backend files that needed reformatting
- All 53 tests pass with both `pytest tests/` and `python -m pytest tests/`
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
Agent-Logs-Url: https://github.com/christianlouis/pop_puller_to_gmail/sessions/beb47db2-da25-416a-8fb0-c1452a3b22a7
2026-03-23 10:24:28 +00:00
Christian Krakau-Louis
52f1d5bcf4
Merge pull request #17 from christianlouis/dependabot/npm_and_yarn/frontend/flatted-3.4.2
...
Bump flatted from 3.3.3 to 3.4.2 in /frontend
2026-03-23 11:22:56 +01:00
Christian Krakau-Louis
be83770301
Merge pull request #16 from christianlouis/dependabot/npm_and_yarn/frontend/next-16.1.7
...
Bump next from 16.1.6 to 16.1.7 in /frontend
2026-03-23 11:22:43 +01:00
Christian Krakau-Louis
d77f29f294
Merge pull request #15 from christianlouis/dependabot/pip/backend/authlib-1.6.9
...
Bump authlib from 1.6.6 to 1.6.9 in /backend
2026-03-23 11:22:30 +01:00
Christian Krakau-Louis
b5c1b4d52a
Merge pull request #12 from christianlouis/dependabot/npm_and_yarn/frontend/multi-770cfcd984
...
Bump minimatch in /frontend
2026-03-23 11:22:17 +01:00
Christian Krakau-Louis
203d9fd895
Merge pull request #10 from christianlouis/dependabot/npm_and_yarn/frontend/ajv-6.14.0
...
Bump ajv from 6.12.6 to 6.14.0 in /frontend
2026-03-23 11:22:01 +01:00
copilot-swe-agent[bot]
8bf1019e0b
Initial plan
2026-03-23 10:20:49 +00:00
copilot-swe-agent[bot]
681e0582f6
Address code review: fix imports, salt hashing, conditional delivery message
...
- Move asyncio import to module level in gmail_service.py
- Move datetime import to module level in providers.py
- Use hashlib.sha256 for per-user salt generation (no truncation risk)
- Make delivery method message conditional in AddMailAccountModal
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
Agent-Logs-Url: https://github.com/christianlouis/pop_puller_to_gmail/sessions/de3ef930-a980-4958-8a9d-a2c802918e81
2026-03-22 19:05:41 +00:00
copilot-swe-agent[bot]
b05d489563
Fix pre-existing bugs: PBKDF2 import, test function names, salt truncation
...
- Fix cryptography import: PBKDF2 -> PBKDF2HMAC
- Fix test_security.py: use CredentialEncryption class instead of non-existent functions
- Fix salt generation to include user_id in differentiation
- Remove unavailable poplib3 dependency
- All 53 tests pass
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
Agent-Logs-Url: https://github.com/christianlouis/pop_puller_to_gmail/sessions/de3ef930-a980-4958-8a9d-a2c802918e81
2026-03-22 19:03:22 +00:00
copilot-swe-agent[bot]
40150da3a9
Add Gmail API injection, provider presets, delivery method, and frontend wizard
...
- Add gmail_service.py with Gmail API users.messages.insert() for direct email injection
- Add DeliveryMethod enum and GmailCredential model to database models
- Add delivery_method field to MailAccount schema and model
- Create providers.py endpoint with 12 provider presets (Gmail, GMX, WEB.DE, Outlook, Yahoo, AOL, T-Online, 1&1/IONOS, Freenet, Posteo, mail.de, iCloud)
- Expand MailServerAutoDetect with 30+ domain mappings
- Update Celery tasks to prefer Gmail API injection, with SMTP fallback
- Add ProviderWizard.tsx frontend component for quick provider setup
- Update AddMailAccountModal.tsx with wizard integration
- Add Google API Python client libraries to requirements.txt
- Add Gmail API config settings
- Add unit tests for Gmail service and provider presets
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
Agent-Logs-Url: https://github.com/christianlouis/pop_puller_to_gmail/sessions/de3ef930-a980-4958-8a9d-a2c802918e81
2026-03-22 19:00:30 +00:00
copilot-swe-agent[bot]
6435af3251
Initial plan
2026-03-22 18:51:20 +00:00
dependabot[bot]
1a80cbb480
Bump flatted from 3.3.3 to 3.4.2 in /frontend
...
Bumps [flatted](https://github.com/WebReflection/flatted ) from 3.3.3 to 3.4.2.
- [Commits](https://github.com/WebReflection/flatted/compare/v3.3.3...v3.4.2 )
---
updated-dependencies:
- dependency-name: flatted
dependency-version: 3.4.2
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-21 19:14:18 +00:00
dependabot[bot]
5c7f37c540
Bump next from 16.1.6 to 16.1.7 in /frontend
...
Bumps [next](https://github.com/vercel/next.js ) from 16.1.6 to 16.1.7.
- [Release notes](https://github.com/vercel/next.js/releases )
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js )
- [Commits](https://github.com/vercel/next.js/compare/v16.1.6...v16.1.7 )
---
updated-dependencies:
- dependency-name: next
dependency-version: 16.1.7
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-17 21:49:18 +00:00