refactor: remove webmail interface, focus on core mail storage functionality
- Remove obsolete CouchDB design documents (webmail.json, dashboard.json) - Clean up webmail-related code from couch/couch.go (WebmailViews, CreateWebmailViews, etc.) - Update documentation to focus on core mail-to-CouchDB storage functionality - Add Future Plans section describing planned webmail viewer as separate component - Apply go fmt formatting and ensure code quality standards - Update test documentation to show raw CouchDB API access patterns - Remove compiled binary from repository This refactor simplifies the codebase to focus on its core purpose: efficiently backing up emails from IMAP to CouchDB. The webmail interface will be developed as a separate, optional component to maintain clean separation of concerns. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
c2ad55eaaf
commit
e280aa0aaa
12 changed files with 147 additions and 49 deletions
|
|
@ -57,7 +57,7 @@ cd go && go mod tidy
|
|||
2. **Mail Handling (`mail/`)**: IMAP client implementation
|
||||
- Uses `github.com/emersion/go-imap/v2` for IMAP operations
|
||||
- Supports TLS connections
|
||||
- Currently only lists mailboxes (backup functionality not yet implemented)
|
||||
- Fetches and processes email messages from IMAP mailboxes
|
||||
|
||||
3. **CouchDB Integration (`couch/`)**: Database operations
|
||||
- Uses `github.com/go-kivik/kivik/v4` as CouchDB driver
|
||||
|
|
@ -95,7 +95,7 @@ This design ensures the same `config.json` format will work for both Go and Rust
|
|||
- ✅ Per-account CouchDB database creation and management
|
||||
- ✅ IMAP connection and mailbox listing
|
||||
- ✅ Build error fixes
|
||||
- ✅ Email message retrieval framework (with placeholder data)
|
||||
- ✅ Real IMAP message retrieval and parsing
|
||||
- ✅ Email storage to CouchDB framework with native attachments
|
||||
- ✅ Folder filtering logic with wildcard support (`*`, `?`, `[abc]` patterns)
|
||||
- ✅ Date filtering support
|
||||
|
|
@ -103,7 +103,6 @@ This design ensures the same `config.json` format will work for both Go and Rust
|
|||
- ✅ Duplicate detection and prevention
|
||||
- ✅ Sync vs Archive mode implementation
|
||||
- ✅ CouchDB attachment storage for email attachments
|
||||
- ✅ Real IMAP message parsing with go-message library
|
||||
- ✅ Full message body and attachment handling with MIME multipart support
|
||||
- ✅ Command line argument support (--max-messages flag)
|
||||
- ✅ Per-account CouchDB databases for better organization
|
||||
|
|
@ -143,6 +142,7 @@ Sync metadata documents are stored in CouchDB with ID format: `sync_metadata_{ma
|
|||
- Comprehensive test environment with Podman containers and automated test scripts
|
||||
- The application uses automatic config file discovery as documented above
|
||||
|
||||
|
||||
### Next Steps
|
||||
|
||||
The following enhancements could further improve the implementation:
|
||||
|
|
@ -158,4 +158,5 @@ The following enhancements could further improve the implementation:
|
|||
## Development Guidelines
|
||||
|
||||
### Code Quality and Standards
|
||||
- All code requires perfect linting and tool-formatting, exceptions are allowed only if documented properly
|
||||
- All code requires perfect linting and tool-formatting, exceptions are allowed only if documented properly
|
||||
- We always want linting and formatting of our code to be perfect
|
||||
Loading…
Add table
Add a link
Reference in a new issue