- 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
3.2 KiB
3.2 KiB
Changelog
All notable changes to inBOXER will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[2026-04.2] - 2026-04-23
Added
- IMAP client package (
src/internal/imap/):- Secure connection management (TLS & STARTTLS) with auto-reconnect
- Fetch unseen messages with envelope and body snippet extraction
- Batch fetching by UID range for catch-up processing
- Message move/copy operations (RFC 6851 UID MOVE)
- Ensure folder existence before operations
- Unit tests covering error paths (connection failures, not-connected scenarios)
- Background worker package (
src/internal/worker/):- Steady-state mode: polls unseen emails at configurable interval
- Catch-up mode: processes backlog in batches with cooldown
- Per-user processing with isolated IMAP connections
- Test mode support (logs without moving emails)
- AI classifier interface (placeholder routes everything to "Other")
- Graceful shutdown with signal handling
- Unit tests for classifier and lifecycle
- Database:
GetUsersWithAutoStart()method for worker user discovery
Changed
- Replaced placeholder background worker with full IMAP-driven implementation
- Worker now creates target folders automatically on connect
- Email processing respects per-user poll interval and batch size
Fixed
- N/A (initial release)
Added
- Initial repository structure per
PROJECT_PLAN.md - Go module initialization with core dependencies (go-imap, gorm, sqlite, slog, gorilla)
- Git repository setup with remote configuration using
.envcredentials - Basic documentation files (README, CHANGELOG, LICENSE, AGENTS.md)
- Directory hierarchy for modular packages:
src/cmd/- Main orchestratorsrc/internal/auth/- OTP authentication packagesrc/internal/imap/- IMAP client (placeholder)src/internal/ai/- DeepSeek AI integration (placeholder)src/internal/db/- SQLite database with GORM models and encryptionsrc/internal/worker/- Background worker (placeholder)src/web/- Web interface (templates + static)src/pkg/- Shared utilities (config loader)bin/- Compiled binary and configuration
- Modular authentication package:
- OTP generation & hashing (bcrypt)
- SMTP sender with
.envcredentials - Session cookie management (gorilla/sessions)
- Database-backed OTP store
- Mobile-first frontend:
- Responsive CSS with modern design system
- Go HTML templates (login, verify, dashboard, settings)
- Authentication flow (email + OTP)
- Database schema:
- User model with OTP storage
- Mailbox settings with encrypted passwords
- Processed email tracking
- Configuration system:
- YAML configuration file (
bin/config.yaml) - Environment variable loading (
.env) - Secret management for session encryption
- YAML configuration file (
- Web server with routing:
- Gorilla mux router with middleware
- Authentication middleware for protected routes
- Static file serving
- Makefile with build, run, test targets
- Unit tests for authentication package
Changed
- N/A (initial release)
Fixed
- N/A (initial release)