8 Commits

Author SHA1 Message Date
387c0dc155 Commit pre-existing working changes (multi-account, blocked domains, overrides) 2026-04-12 10:10:58 +01:00
4d8342b658 Fix activity log refresh losing scroll position and selection 2026-04-12 09:13:43 +01:00
66cca61b21 fix: address code review findings (critical + important + minor)
Critical fixes:
- C1: Fix GDI handle leak in IconGenerator (lazy singletons + DestroyIcon)
- C2: Add appsettings.json to .gitignore, provide template
- C3: Properly dispose IHost on exit

Important fixes:
- I1: Add SpamGuardOptionsValidator for startup config validation
- I3: Use UID range queries instead of SearchQuery.All
- I4: Only scan recent Sent messages after initial full scan
- I5: Atomic file writes (write-to-temp, then rename)
- I6: Set 30s HTTP timeout and base address on HttpClient
- I7: Remove duplicate AddSingleton<EmailClassifier> (DI conflict)
- I8: Better HTML stripping (script/style removal, entity decoding)

Minor fixes:
- M1: Delete placeholder UnitTest1.cs
- M2: Wire MaxActivityLogEntries config to ActivityLog constructor
- M4: Log warnings instead of bare catch blocks
- M5: Dispose JsonDocument instances
- M8: Use AppContext.BaseDirectory for appsettings.json path
- M9: Truncate NotifyIcon.Text to 127 chars

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 11:57:12 +01:00
bd42cc3382 feat: add EmailClassifier with Claude API integration and response parsing
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-07 11:41:45 +01:00
f0760aa32b feat: add TrustedSenderStore with case-insensitive lookup and persistence
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-07 11:39:37 +01:00
b11aea93d6 feat: add ProcessedUidStore with persistence and pruning
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-07 11:39:31 +01:00
05afcbde6a fix: set net8.0-windows target and UseWindowsForms for WinForms support 2026-04-07 11:37:25 +01:00
75dd1662b2 feat: scaffold SpamGuard solution with project structure 2026-04-07 11:35:41 +01:00