|
|
5c801cef4b
|
Fix spam folder not found: add Junk Email to candidate names
|
2026-04-12 09:59:58 +01:00 |
|
|
|
b5f8b7300b
|
Fix spam folder detection — search two levels deep, try common names
|
2026-04-12 09:50:24 +01:00 |
|
|
|
27c6d12183
|
Stop grid jumping: event-driven refresh instead of 5-second timer
|
2026-04-12 09:19:47 +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 |
|
|
|
cd9adc5a54
|
chore: remove placeholder icons (generated at runtime)
|
2026-04-07 11:47:56 +01:00 |
|
|
|
98e2da745a
|
feat: wire up Program.cs with DI, background services, and tray UI
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-04-07 11:47:01 +01:00 |
|
|
|
f907f9e8f1
|
feat: add system tray UI with status icon, tooltip, and context menu
|
2026-04-07 11:45:20 +01:00 |
|
|
|
a3a8f2e4be
|
feat: add ActivityLogForm with color-coded DataGridView
|
2026-04-07 11:45:10 +01:00 |
|
|
|
3401cfce34
|
feat: add InboxMonitorService with classification pipeline and spam moving
|
2026-04-07 11:44:14 +01:00 |
|
|
|
807b3ebb7f
|
feat: add programmatic tray icon generation (green/yellow/red)
|
2026-04-07 11:42:49 +01:00 |
|
|
|
7568d3d288
|
feat: add TrustedSenderService to scan Sent folder for trusted contacts
|
2026-04-07 11:42:40 +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 |
|
|
|
78f5ca864d
|
feat: add ImapClientFactory for IMAP connection management
|
2026-04-07 11:40:27 +01:00 |
|
|
|
b45d6dffc1
|
feat: add thread-safe ActivityLog with bounded capacity
|
2026-04-07 11:40:18 +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 |
|
|
|
0ee0a43b6a
|
feat: add configuration model and appsettings.json
|
2026-04-07 11:38:07 +01:00 |
|
|
|
ad87e1c2c5
|
feat: add EmailSummary, ClassificationResult, and ActivityEntry models
|
2026-04-07 11:38:04 +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 |
|