Commit graph

5 commits

Author SHA1 Message Date
766e3e3de6 Phase 4: Polish, settings fix, 7-way AI classification & empty-inbox guarantee (Version: 2026-04.5)
- Fixed settings form silently dropping fields (multipart/form-data parse)
- Fixed IMAP test connection (multipart parse + raw field logging)
- Added IMAPUsername field throughout (model, settings, handlers, worker)
- Replaced smtp.SendMail with custom sendMail (explicit HELO + STARTTLS)
- Added From header to OTP/Welcome emails (RFC5322 compliance)
- Worker now processes ALL INBOX emails (FetchBatch instead of FetchUnseen)
- Fixed go build . compiling debug scripts instead of src/cmd/main.go
- Added Notifications, Finance, Social classification folders (7 total)
- Refined AI prompt with precise category descriptions
- Added session guardrail to AGENTS.md
2026-04-23 18:35:30 +00:00
742fae8b95 Phase 4: Settings & IMAP connection flow fixes (Version: 2026-04.4)
- Fix settings password bug: only update when non-empty, remove form 'required'
- Fix dashboard stats: correct TotalProcessed template path, add setup banner
- Implement TestConnectionHandler with real go-imap connect+login
- Implement ProcessNowHandler: signals worker for immediate processing
- Add Worker.ProcessNow() with buffered signal channel
- Pass worker reference to Handler for process-now coordination
- Restructure main.go: create worker before handlers, start after wiring
2026-04-23 11:33:53 +00:00
283faddb05 Phase 3: AI Classification via DeepSeek (Version: 2026-04.3)
- DeepSeek API client with configurable model, temperature, max tokens
- Prompt template engine: loads bin/prompt.txt at runtime, substitutes {sender}/{subject}/{body}
- Response parser validates folder names (Important/eCommerce/Spam/Other) and confidence scores (1-100)
- Graceful fallback to placeholder classifier if prompt file/API key missing
- Email body text limit increased to 4000 chars for AI context
- Replaced EmailSummary.Snippet with EmailSummary.Body
- Wired real AI classifier into main.go init
2026-04-23 11:13:10 +00:00
8bb9ff067b Phase 2: IMAP Client & Background Worker (Version: 2026-04.2)
- IMAP client package with TLS/STARTTLS connection management, unseen fetching, batch fetching by UID range, message move/copy operations, folder management
- Background worker with steady-state (unseen polling) and catch-up (UID range backlog) modes, per-user IMAP connections, test mode support, placeholder AI classifier
- Database: GetUsersWithAutoStart() for worker user discovery
- Wired worker into main.go with graceful shutdown
2026-04-23 11:02:02 +00:00
065129493d Phase 1: Foundation, OTP Auth & Mobile Frontend (Version: 2026-04.1) 2026-04-23 08:26:32 +00:00