Commit Graph

134 Commits

Author SHA1 Message Date
copilot-swe-agent[bot] 4e4db14d36 Initial plan 2026-03-29 18:41:44 +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
Christian Krakau-Louis c631c5abbc Merge pull request #56 from christianlouis/copilot/fix-clear-text-logging
fix: remove clear-text logging of API key
2026-03-29 19:52:11 +02:00
copilot-swe-agent[bot] 9bd64c0429 fix: remove clear-text logging of full API key
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/add3a51d-8235-4d29-8020-589bffa8ebb5

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 17:45:02 +00:00
semantic-release 4210450d2e chore(release): v1.2.1 2026-03-29 17:44:47 +00:00
copilot-swe-agent[bot] 33918ebc21 Initial plan 2026-03-29 17:44:05 +00:00
Christian Krakau-Louis af8620fecc Merge pull request #55 from christianlouis/copilot/fix-internal-server-error
Fix 500 on all page routes: update TemplateResponse calls to Starlette 1.0.0 API + black formatting
2026-03-29 19:43:55 +02:00
copilot-swe-agent[bot] d91f424f3f style: auto-format main.py with black to fix CI lint failure
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/c36f34ee-49c9-4875-9fb9-4bc70aeeb43f

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 17:32:46 +00:00
semantic-release ae55ef46ea chore(release): v1.2.0 2026-03-29 17:31:15 +00:00
Christian Krakau-Louis a67900902b Merge pull request #53 from christianlouis/copilot/refactor-imap-config-storage
Fix CodeQL security alerts and improve mail sources test coverage
2026-03-29 19:30:23 +02:00
copilot-swe-agent[bot] 2a2fc9bfd5 fix: update TemplateResponse calls to Starlette 1.0.0 API to fix 500 error
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/2ec7d964-c658-4489-9d06-9ea78596cddd

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 17:11:30 +00:00
copilot-swe-agent[bot] 84117abd13 fix: resolve CodeQL alerts, improve test coverage, fix StaticPool for HTTP tests
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/07b58025-2aeb-4e81-a168-7a6fccdc3569

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 17:08:39 +00:00
copilot-swe-agent[bot] 078e33d273 Initial plan 2026-03-29 17:04:01 +00:00
semantic-release 4350bdcc16 chore(release): v1.1.0 2026-03-29 17:00:23 +00:00
Christian Krakau-Louis fca3eb3061 Merge pull request #54 from christianlouis/copilot/add-health-check-for-k8s
feat: add /health and /healthz root-level endpoints for Kubernetes probes
2026-03-29 18:59:30 +02:00
copilot-swe-agent[bot] 42d93e7f84 feat: add /health and /healthz root-level endpoints for Kubernetes probes
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/74214dce-9171-424f-bafb-ee7032870801

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 16:52:55 +00:00
copilot-swe-agent[bot] 834de600df Initial plan 2026-03-29 16:50:42 +00:00
copilot-swe-agent[bot] 883d54a428 fix: address code review - Alpine.js $set, SQLAlchemy bool filter style
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/f141cd3b-8d0a-4c7e-b479-ee973c209c11

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 16:20:11 +00:00
copilot-swe-agent[bot] 6d9392e5e7 feat: refactor IMAP config to DB, add multi-account mail sources admin UI
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/f141cd3b-8d0a-4c7e-b479-ee973c209c11

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 16:18:15 +00:00
copilot-swe-agent[bot] 7a0444a619 Initial plan 2026-03-29 16:08:22 +00:00
Christian Krakau-Louis 276cea7732 Merge pull request #44 from christianlouis/copilot/fix-alembic-migration-errors
Fix: normalize postgresql+asyncpg:// DATABASE_URL to psycopg2 for Alembic and sync SQLAlchemy engine
2026-03-29 18:06:40 +02:00
copilot-swe-agent[bot] 70dc77011a Fix ModuleNotFoundError for asyncpg by normalizing async DB URLs to psycopg2
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/d1890838-1770-4d5f-886f-f210df761fae

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 16:03:18 +00:00
copilot-swe-agent[bot] c3ee0d8f5e Initial plan 2026-03-29 15:56:22 +00:00
Christian Krakau-Louis 1b83b2cce1 Merge pull request #30 from christianlouis/copilot/build-dashboard-visualizations
Replace mock dashboard data with real database queries and report-derived timelines
2026-03-29 17:49:50 +02:00
copilot-swe-agent[bot] 6329d3aa35 Use timezone-aware UTC datetimes for timestamp conversions
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/ea784ce3-2c1c-45f8-ad6d-46e92cf15ed7

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 15:45:26 +00:00
copilot-swe-agent[bot] e51fbe755e Replace mock dashboard data with real database queries and report-derived timelines
- Replace mock statistics in stats_summarizer.py with real SQLAlchemy queries
  against DMARCReport, ReportRecord, and Domain models
- Replace random compliance timeline in domains.py with real data from ReportStore
- Remove unused `import random` from domains.py
- Add comprehensive tests for StatsSummarizer (global/domain/caching)
- Add tests for compliance timeline (deterministic, multi-report aggregation)
- Mark Dashboard Visualizations as complete in TODO.md

Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/ea784ce3-2c1c-45f8-ad6d-46e92cf15ed7

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 15:43:33 +00:00
copilot-swe-agent[bot] f8887b50f4 Initial plan 2026-03-29 15:28:52 +00:00
semantic-release e09f39954f chore(release): v1.0.4 2026-03-29 15:27:30 +00:00
Christian Krakau-Louis 91cd221ef1 Merge pull request #29 from christianlouis/copilot/fix-black-formatting-issues
fix: remove unused pytest import from test_config.py
2026-03-29 17:26:34 +02:00
copilot-swe-agent[bot] 8e6ab244ad fix: remove unused pytest import from test_config.py
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/63e79da9-2002-429a-b696-7147dc579668

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 15:15:46 +00:00
copilot-swe-agent[bot] de4d1b2b34 style: apply black formatting to test_config.py
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/a0201223-b428-496d-90c7-cd268fee7774

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 13:52:28 +00:00
copilot-swe-agent[bot] 9588ce4e0d Initial plan 2026-03-29 13:51:38 +00:00
semantic-release e057a9c013 chore(release): v1.0.3 2026-03-29 13:01:35 +00:00
Christian Krakau-Louis dd73af5d37 Merge pull request #28 from christianlouis/copilot/fix-env-variable-decoding
Fix JSONDecodeError when BACKEND_CORS_ORIGINS is set to empty string
2026-03-29 15:00:40 +02:00
copilot-swe-agent[bot] 9f99b6c6d7 fix: handle empty BACKEND_CORS_ORIGINS env var to prevent JSONDecodeError
In pydantic_settings v2, List[str] fields are JSON-parsed by the env
source before pydantic validators run. When BACKEND_CORS_ORIGINS=""
(empty string) in Kubernetes, json.loads("") raised JSONDecodeError,
crashing alembic migrations.

Fixes:
- Add env_ignore_empty=True to class Config so pydantic_settings skips
  empty-string env vars and falls back to the field default
- Update assemble_cors_origins validator to explicitly handle empty and
  whitespace-only strings (returns []), JSON array strings (parsed via
  json.loads), and filters empty tokens from comma-separated values
- Add backend/app/tests/test_config.py covering all CORS origins
  parsing scenarios including the empty-string regression case

Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/53bb1064-2a32-4691-8397-9d4663bc18a8

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 12:08:59 +00:00
copilot-swe-agent[bot] 4713e0bec7 Initial plan 2026-03-29 12:02:16 +00:00
semantic-release ea317bac32 chore(release): v1.0.2 2026-03-29 11:45:17 +00:00
Christian Krakau-Louis e471404538 Merge pull request #27 from christianlouis/copilot/fix-script-location-error
fix: initialize Alembic migrations to resolve container startup failure
2026-03-29 13:44:27 +02:00
copilot-swe-agent[bot] 2192944acf fix: add Alembic migration setup to resolve missing script_location error
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/bfb1bb7e-b0da-45b8-b034-b2331488905e

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 11:37:18 +00:00
Christian Krakau-Louis 3ae290823e Merge pull request #24 from christianlouis/copilot/update-pylint-warnings-in-main
Fix pylint/isort/flake8/black contradictions; consolidate linter config; pylint 10.00/10
2026-03-29 13:36:11 +02:00