472 Commits

Author SHA1 Message Date
Christian Krakau-Louis dadfd4ae3c Merge pull request #66 from christianlouis/copilot/fix-internal-server-error
style: fix isort and flake8 lint failures in main.py
2026-03-29 21:47:23 +02:00
copilot-swe-agent[bot] c48050ea04 style: suppress F811 on app = create_app() in main.py
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/88ca66b3-326b-4d37-8f4e-ae6f1f18c324

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 19:44:40 +00:00
Christian Krakau-Louis e033e11e34 Merge branch 'main' into copilot/add-gmail-api-mail-source 2026-03-29 21:44:05 +02:00
semantic-release 27b74d26a6 chore(release): v1.4.1 2026-03-29 19:43:16 +00:00
Christian Krakau-Louis 7f3c908f71 Merge pull request #65 from christianlouis/copilot/implement-database-backed-key-storage
fix: resolve SQLAlchemy mapper error and add CI auto-format step
2026-03-29 21:42:24 +02:00
copilot-swe-agent[bot] 5a753ef3cf style: fix import ordering in main.py to satisfy isort
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/ebb5eb3f-a4d4-4834-a144-9bd81b6c7ada

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 19:40:06 +00:00
copilot-swe-agent[bot] 551d604b8f fix: address code review - clarify plaintext note, fix misleading template ternary
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/0c63851e-a69a-4a76-8dd8-25618e825b8c

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 19:37:10 +00:00
copilot-swe-agent[bot] 874bc9110a fix: shorten User import comment and add auto-format step to CI
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/45434d6e-ae81-49d9-ba7e-0fd50f683ce4

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 19:34:21 +00:00
copilot-swe-agent[bot] 6bae2f8146 chore: remove accidental pip install artifact files
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/0c63851e-a69a-4a76-8dd8-25618e825b8c

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 19:34:17 +00:00
copilot-swe-agent[bot] 25b3567414 feat: implement Gmail API mail source with OAuth2, ingestion tracking, and UI
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/0c63851e-a69a-4a76-8dd8-25618e825b8c

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 19:34:03 +00:00
copilot-swe-agent[bot] 4b2b904421 fix: import all SQLAlchemy models in main.py to prevent mapper initialization error
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/de847912-dc10-4124-9de5-61d4ea53a53e

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 19:28:53 +00:00
copilot-swe-agent[bot] f0c62ea95d fix: import User model in main.py to resolve SQLAlchemy mapper initialization error
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/c771e0e6-8cd2-447f-9a51-1b609ef14707

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 19:24:05 +00:00
copilot-swe-agent[bot] 2d32830270 Initial plan 2026-03-29 19:23:33 +00:00
copilot-swe-agent[bot] fb82643747 Initial plan 2026-03-29 19:21:53 +00:00
copilot-swe-agent[bot] 5edfac0397 Initial plan 2026-03-29 19:20:52 +00:00
semantic-release 6eeda1c5bd chore(release): v1.4.0 2026-03-29 19:18:18 +00:00
Christian Krakau-Louis 298ca938ec Merge pull request #62 from christianlouis/copilot/check-dns-data-in-dashboard
fix: repair corrupted dns_resolver.py to pass black --check (py310 target)
2026-03-29 21:17:25 +02:00
Christian Krakau-Louis 0bdd789944 Merge pull request #61 from christianlouis/copilot/debug-mail-sources-500-error
fix: GET /mail-sources 500 — unhashable type: 'dict' in Jinja2 template cache
2026-03-29 21:16:47 +02:00
Christian Krakau-Louis af457e4e48 Merge pull request #60 from christianlouis/copilot/handle-report-management
Fix Black formatting in report_store.py
2026-03-29 21:09:09 +02:00
copilot-swe-agent[bot] 2247115a7e test: add coverage for mail_sources_page TemplateResponse fix
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/bf182279-fe6a-4efc-87a5-5eaefabd2e3a

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 19:07:57 +00:00
copilot-swe-agent[bot] 087c2b375b fix: remove stray fragments and duplicate _sanitize_for_log definitions in dns_resolver.py
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/8ad92992-343e-4e81-a830-cd83efcb2437

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 19:06:36 +00:00
semantic-release 8480b18b95 chore(release): v1.3.1 2026-03-29 19:00:04 +00:00
Christian Krakau-Louis a77a89f475 Potential fix for code scanning alert no. 120: Log Injection
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2026-03-29 21:00:04 +02:00
Christian Krakau-Louis 8d5b713bf1 Potential fix for code scanning alert no. 119: Log Injection
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2026-03-29 20:59:52 +02:00
Christian Krakau-Louis 23d5377a50 Potential fix for code scanning alert no. 118: Log Injection
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2026-03-29 20:59:39 +02:00
Christian Krakau-Louis 76e5e4d8f7 Merge pull request #64 from christianlouis/copilot/check-data-persistence
fix: ensure data persistence across container reinstallations
2026-03-29 20:59:12 +02:00
copilot-swe-agent[bot] 6294e4c935 Fix black formatting in report_store.py
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/f917b2ae-df6c-4852-b3e1-4c7ea8f68996

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 18:58:07 +00:00
copilot-swe-agent[bot] a04006f75b fix: address code review — narrow exception types, computed dkimLiveText getter
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/19d17518-732d-4644-889b-cc63256e19b1

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 18:56:08 +00:00
Christian Krakau-Louis 1c94844602 Merge pull request #63 from christianlouis/copilot/fix-domain-detail-errors
Fix domain detail page: quote domain_id in Alpine.js x-data attribute
2026-03-29 20:55:19 +02:00
copilot-swe-agent[bot] 0d1a4fdac3 feat: real DNS lookups, manual DKIM selectors, Cloudflare-ready DNS provider architecture
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/19d17518-732d-4644-889b-cc63256e19b1

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 18:53:35 +00:00
copilot-swe-agent[bot] 423c596c28 fix: ensure data persistence across reinstallations
- Add entrypoint.sh: creates /app/data, stamps legacy DBs, runs alembic upgrade head
- Update Dockerfile to use new entrypoint and pre-create /app/data
- Change default DATABASE_URL to sqlite:///./data/dmarq.db
- Add _ensure_sqlite_dir() to database.py for automatic directory creation
- Update docker-compose.yml with app_data named volume for /app/data
- Add 6 tests for _ensure_sqlite_dir and updated default URL

Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/2bac317b-97a2-450b-84f1-3e316f7ef54c

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 18:53:00 +00:00
copilot-swe-agent[bot] 7c471b2800 Initial plan 2026-03-29 18:45:20 +00:00
copilot-swe-agent[bot] dd9aeb0aac Fix domain detail page: quote domain_id in Alpine.js x-data attribute
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/e56426a2-da63-4f8a-95cc-e05972be9e51

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 18:44:33 +00:00
copilot-swe-agent[bot] 15bbe5f137 Initial plan 2026-03-29 18:43:15 +00:00
copilot-swe-agent[bot] 4e4db14d36 Initial plan 2026-03-29 18:41:44 +00:00
copilot-swe-agent[bot] 53d543f49c Add report deduplication and single-report deletion
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/37d68c2c-7cc8-45e4-bac3-e2e6f1611c6a

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 18:28:52 +00:00
copilot-swe-agent[bot] d2a557354f fix: correct TemplateResponse call in mail_sources_page to use new Starlette API
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/16838094-12d6-4279-9c94-58b7fb4ad3d7

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 18:26:49 +00:00
copilot-swe-agent[bot] e67375770f Initial plan 2026-03-29 18:24:03 +00:00
copilot-swe-agent[bot] c251a58340 Initial plan 2026-03-29 18:23:02 +00:00
semantic-release 24d7a7fd19 chore(release): v1.3.0 2026-03-29 18:22:31 +00:00
Christian Krakau-Louis a679459f5c Merge pull request #57 from christianlouis/copilot/fix-not-found-error
Fix 404 on /domains/{domain_id} page route
2026-03-29 20:21:37 +02:00
Christian Krakau-Louis a0cbdb7b43 Merge pull request #58 from christianlouis/copilot/fix-namespace-issue-in-dmarc-parser
Fix XML namespace handling in DMARCParser for web.de/gmx.net reports
2026-03-29 20:21:18 +02:00
Christian Krakau-Louis 22946d619b Merge pull request #59 from christianlouis/copilot/add-drag-and-drop-dmarc-upload
feat: Multi-file drag-and-drop upload with automatic sequential ingestion
2026-03-29 20:21:04 +02:00
copilot-swe-agent[bot] a64ed4acb3 feat: multi-file drag-and-drop upload with auto sequential ingest
- Add `multiple` attribute to file input so users can select/drop
  multiple DMARC report files at once
- Remove the manual "Upload Report" button; files start uploading
  automatically as soon as they are dropped or selected
- Show a per-file queue with status icons: pending (clock), uploading
  (spinner), success (checkmark), error (×) plus a result message
- Sequential upload via a while-loop that processes each pending entry
  one at a time; newly-dropped files during an active upload are
  picked up automatically on the next iteration
- "Clear all" button removes completed/failed files while keeping any
  in-flight upload untouched; individual files can be removed too
- Summary alert after the full batch completes: all-success,
  all-error, or mixed
- Use lastIndexOf for robust file-extension extraction
- Updated card description to reflect automatic multi-file upload

Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/d6fb5b08-e55f-4f96-ac9b-3e4b69b3945c

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 18:06:49 +00:00
copilot-swe-agent[bot] 0844981bc0 fix: handle XML namespaces in DMARCParser for web.de/gmx.net compatibility
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/56611674-6132-435f-ab36-728464bb9157

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 17:59:13 +00:00
copilot-swe-agent[bot] 413bdab116 Initial plan 2026-03-29 17:57:28 +00:00
copilot-swe-agent[bot] 17116d8603 Fix 404 on /domains/{domain_id} by adding plural route alias and updating template link
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/c498fef5-0a5e-4182-b765-fc3ec074b515

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 17:57:00 +00:00
copilot-swe-agent[bot] f7200d973c Initial plan 2026-03-29 17:56:22 +00:00
semantic-release 0617cd6d2d chore(release): v1.2.2 2026-03-29 17:53:04 +00:00
copilot-swe-agent[bot] e9c1cd48bd Initial plan 2026-03-29 17:52:34 +00:00