No description
Refresh regression: - refresh() only loads the latest 50 emails, so if the user scrolled further via FetchMore their selected email was not in the new list and selection fell back to index 0. Now preserve emails older than the refresh batch (previously fetched via FetchMore) by merging them back. - Also cancel pending debounce on refresh so stale pending fetches can't overwrite the correct body after selection changes. - Up-arrow now uses debounce consistently with Down-arrow. Delete off-by-one: - IMAP expunge renumbers all messages with seq > deleted seq. The app was still holding pre-delete sequence numbers, so the next FetchBody after a delete would retrieve the wrong message. After removing an email, decrement the seq of every remaining email with seq > deleted. Cleanup: remove now-unused Inbox.oldest_seq and Inbox.has_older() since oldest_seq/has_older are now computed from the merged emails list. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| src | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CLAUDE.md | ||
| config.toml.example | ||
| docker-compose.yml | ||
| MAIL_SERVER_SETUP.md | ||