Christian Krakau-Louis
f808d6262d
Merge branch 'main' into copilot/fix-mailbox-connectivity-issues
2026-05-04 00:21:59 +02:00
copilot-swe-agent[bot]
92f60c6052
fix: retry POP3/IMAP, DNS 8.8.8.8 fallback, debug counter, notification backoff
...
Agent-Logs-Url: https://github.com/christianlouis/InboxConverge/sessions/5ad49738-4b0b-4ed7-8686-07adb0ba9e5d
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-05-03 22:06:12 +00:00
copilot-swe-agent[bot]
a21e2f7df6
fix: add sender_email to UserSmtpConfig to fix SMTP From header (501 bad sender address)
...
Agent-Logs-Url: https://github.com/christianlouis/InboxConverge/sessions/dc853384-976a-46e5-945b-60c9a9cce638
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-05-03 21:46:47 +00:00
copilot-swe-agent[bot]
2a005d9103
feat: add Send Test Email button for SMTP Fallback config
...
Agent-Logs-Url: https://github.com/christianlouis/InboxConverge/sessions/9485ffb9-ce3d-4c6b-9d2c-9144dd4287ff
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-05-03 20:58:32 +00:00
copilot-swe-agent[bot]
db893d05e9
feat: add friendly error messages, MailDebugRecorder, clear-error endpoint, debug_logging column
...
Agent-Logs-Url: https://github.com/christianlouis/InboxConverge/sessions/5d2918de-630e-4a66-8355-1b036c620b1c
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-05-03 18:43:06 +00:00
copilot-swe-agent[bot]
f7caa05c8f
Fix provider logos, improve Fetch button UX on mail accounts page
...
Agent-Logs-Url: https://github.com/christianlouis/InboxConverge/sessions/058b6481-f8eb-43ed-8f5f-715c19c4a377
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-28 20:03:19 +00:00
copilot-swe-agent[bot]
412e7bc6f5
fix: make NotificationConfigBase.name optional with default 'My Notification' to match DB default
...
Agent-Logs-Url: https://github.com/christianlouis/InboxConverge/sessions/7640aaa6-61f4-4c65-8eb7-f33c2d3eb755
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-26 19:34:38 +00:00
Christian Krakau-Louis
b824095bf5
Merge branch 'main' into copilot/add-apprise-alerting-capabilities
2026-03-26 19:39:27 +01:00
Christian Krakau-Louis
64b8e788ce
Merge pull request #90 from christianlouis/copilot/add-google-import-labels
...
Add configurable Gmail import labels with opinionated defaults
2026-03-26 19:36:57 +01:00
copilot-swe-agent[bot]
0bc08b9825
feat: add Apprise alerting capabilities with user and admin notification channels
...
Agent-Logs-Url: https://github.com/christianlouis/pop_puller_to_gmail/sessions/858e72a6-5282-4ce8-b38a-db4b9e2e6f65
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-26 18:25:21 +00:00
copilot-swe-agent[bot]
5711a56569
feat: add configurable gmail import labels
...
Agent-Logs-Url: https://github.com/christianlouis/InboxConverge/sessions/4d504045-2740-4bab-b51e-960fe4dafe4b
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-26 18:20:09 +00:00
copilot-swe-agent[bot]
fd45c838fc
feat: Add logging and reporting capabilities with GDPR compliance
...
Agent-Logs-Url: https://github.com/christianlouis/pop_puller_to_gmail/sessions/d6e65ca9-f07f-43a2-bac2-09eb44588ded
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-26 18:12:22 +00:00
copilot-swe-agent[bot]
bbd2febfc1
Add Apprise alerting capabilities (backend)
...
- Add name + apprise_url columns to NotificationConfig model
- Add AdminNotificationConfig model for system-wide alert channels
- Create NotificationService with send_user_notification,
send_admin_notification, and test_notification helpers
- Replace stub notifications.py with full CRUD + /test endpoint
- Add admin notification config CRUD + /test to admin.py
- Update NotificationConfig schemas: name required, apprise_url
optional, config optional (default {})
- Add AdminNotificationConfig* schemas
- Integrate send_user_notification into process_mail_account task
for Gmail revocation, forwarding failures, and exceptions
- Update CHANGELOG.md
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-26 18:06:05 +00:00
copilot-swe-agent[bot]
979b7b6cec
Add admin interface, auto-promote admin email, fix sender name
...
Agent-Logs-Url: https://github.com/christianlouis/pop_puller_to_gmail/sessions/98c1f90b-0287-4908-a0be-ad066c453cc5
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-26 15:53:24 +00:00
copilot-swe-agent[bot]
8cf0d101bf
Make all mailbox fields editable; pre-populate username from API response
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
Agent-Logs-Url: https://github.com/christianlouis/pop_puller_to_gmail/sessions/20fa7a89-23e5-462c-8b4d-9c6cdb4d0501
2026-03-25 23:06:04 +00:00
copilot-swe-agent[bot]
caa8eecd0a
feat: Gmail OAuth flow, per-user SMTP, message dedup, account disable toggle
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
Agent-Logs-Url: https://github.com/christianlouis/pop_puller_to_gmail/sessions/b77800ca-b452-4427-b0bf-63403e906916
2026-03-25 11:34:52 +00:00
copilot-swe-agent[bot]
a15216c630
feat: add account toggle, message dedup tracking, SMTP per-user and Gmail OAuth flow plan
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
Agent-Logs-Url: https://github.com/christianlouis/pop_puller_to_gmail/sessions/b77800ca-b452-4427-b0bf-63403e906916
2026-03-25 11:20:22 +00:00
copilot-swe-agent[bot]
fbfb4f0f41
Fix DBAPIError: use DateTime(timezone=True) and timezone-aware defaults in database models
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
Agent-Logs-Url: https://github.com/christianlouis/pop_puller_to_gmail/sessions/608dd6ae-4c0c-4076-a2e3-dec62c9923f3
2026-03-24 19:05:38 +00:00
google-labs-jules[bot]
3a58410c6a
🧹 [code health improvement] Silence unused imports in models/__init__.py and fix frontend ESLint dependency
...
- Updated `backend/app/models/__init__.py` to use explicit re-exports (e.g., `from app.models.database_models import User as User`) to satisfy static analysis tools (PEP 484).
- Alphabetized the imports and `__all__` list in `backend/app/models/__init__.py` for better maintainability.
- Fixed a broken dependency specification in `frontend/package.json` where `eslint` was set to `^10` (which does not exist yet), downgrading it to `^9` to resolve a CI blocker.
🎯 **What:** The code health issue addressed is "unused imports" in `models/__init__.py` being flagged by static analysis tools, and an invalid ESLint version in the frontend.
💡 **Why:** This improves maintainability and silences linting noise while maintaining the package's public API. Correcting the ESLint version was necessary to unblock CI.
✅ **Verification:** Confirmed via code review and manual inspection. The explicit re-export pattern is the standard, idiomatic way to handle this in Python.
✨ **Result:** Cleaner backend code and a functional frontend CI environment.
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-23 16:19:01 +00:00
copilot-swe-agent[bot]
702650376e
Add database-backed configuration (AppSetting model, ConfigService, settings API)
...
- Add AppSetting model for key-value settings storage in PostgreSQL
- Create ConfigService with DB-first, env-var-fallback resolution
- Add admin-only /api/v1/settings CRUD endpoints
- Update tasks.py to use ConfigService for SMTP config
- Seed default settings on application startup
- Add 24 unit tests for ConfigService (all passing)
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
Agent-Logs-Url: https://github.com/christianlouis/pop_puller_to_gmail/sessions/ce88d4a8-d8c2-49b3-95a1-30592105a769
2026-03-23 13:35:52 +00:00
copilot-swe-agent[bot]
f439f887d0
fix: address multiple code quality improvements across backend and frontend
...
Backend fixes:
- Fix JWT sub claim: encode as str(user.id), decode with int() cast (python-jose requirement)
- Replace all deprecated datetime.utcnow() with datetime.now(timezone.utc)
- Replace deprecated FastAPI @app.on_event() with modern lifespan context manager
- Replace deprecated Pydantic class Config with model_config = ConfigDict(...)
- Replace deprecated Pydantic .dict() with .model_dump()
- Fix overly broad except (GmailInjectionError, Exception) → except Exception
- Remove unused GmailInjectionError import
- Fix TokenPayload schema sub field type from int to str
Frontend:
- Create frontend/src/lib/api.ts — API client module with auth, user, mail accounts, processing runs APIs
- Add !frontend/src/lib/ to .gitignore negation
Tests:
- Add 3 new JWT tests (sub string encoding, access token type, refresh token type)
- Update test_token_payload_schema for string sub claim
- All 128 tests pass
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
Agent-Logs-Url: https://github.com/christianlouis/pop_puller_to_gmail/sessions/e0b13eb0-8de7-4f02-81e4-e202cbba4608
2026-03-23 13:09:23 +00: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]
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
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]
130b53d37f
Add backend foundation: database models, security, and mail processing service
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-02-01 12:44:22 +00:00