Skip to content

v0.20.2

Choose a tag to compare

@airut-app airut-app released this 29 Mar 06:19
· 115 commits to main since this release
105603b

Highlights

Email channel reliability overhaul — Fixed a family of bugs across IMAP and SMTP that could cause message corruption, silent reconnection failures, and broken email threads.

  • IMAP sequence number invalidation — All IMAP operations now use UID commands instead of sequence numbers. When multiple emails queued during a poll cycle, deleting a message shifted subsequent sequence numbers, causing wrong messages to be deleted, duplicates to be re-processed, and BAD Invalid messageset errors. UIDs are stable across mailbox modifications and mandatory in IMAP4rev1. (#459)
  • IMAP error handlingOSError (socket timeout, connection reset) in delete_message/mark_as_read now correctly triggers reconnection instead of propagating as a raw exception. idle_done no longer false-matches "OK" as a substring in words like BROKEN or TOKEN. IMAPConnectionError from per-message operations is now re-raised to trigger reconnection instead of being swallowed by a broad exception handler. (#460)
  • SMTP fixes — XOAUTH2 auth callback returns empty string on server error challenge per spec instead of re-sending credentials. Attachment MIME types now use correct Content-Type (image/png instead of application/png). Error replies maintain thread continuity with conversation ID tag and References chain. (#461)

Bug Fixes

Other Changes

  • Config editor layout — Dict key labels now stack above value inputs for consistent width regardless of key name length. (#457)
  • Test infrastructure — Fixed IMAP test server teardown deadlock that wasted ~30s per integration run. (#463)