Repository navigation
Releases
0.4.0-beta1
coati-nuntia (0.4.0-beta1) unstable; urgency=medium
-
Phishing detection overhaul
- Contacts in the address book are fully exempted when SPF/DKIM/DMARC
pass. Legitimate mail from friends no longer triggers alerts. - New three-level classification (legit / suspicious / phishing) via
overall_level(), replacing the previous binary high/medium/low logic. - Banners and sounds are now driven by overall_level(); a single low
signal no longer shows a banner or plays a sound. - free_sender_impersonation only triggers on a real link to the brand
or a combined bait + urgency signal. - brand_typosquat thresholds tightened (length >= 5, distance <= 1,
trusted domains excluded). "mail.com" no longer matches "free". - New random_subdomain_hosting rule: detects random subdomains on
free hosting platforms (godaddysites.com, wixsite.com, etc.). - URL normalization (href_for_parse) catches links inserted without
a scheme (e.g. "example.com" instead of "http://example.com").
- Contacts in the address book are fully exempted when SPF/DKIM/DMARC
-
Performance
- Instant startup: the window is shown immediately, Inbox is built
500 ms later in a background pass, mail cache loads after 2 s. - Sidebar IMAP folder listing moved to a background thread. This was
the real cause of the ~4 s freeze after the sync popup closed. - Composer window opens in ~22 ms instead of ~1050 ms: the
RichTextEditor (WebKit) is now created lazily 100 ms after the
window is mapped. - Mail list build batched (20 rows per cycle) with
freeze_child_notify() to avoid layout thrash. The 50 most recent
threads are rendered by default. - Reduced redundant queue_resize()/queue_draw() calls in the mail
list, removing a second major source of UI freezes.
- Instant startup: the window is shown immediately, Inbox is built
-
User interface
- "What's New" window: compact, resizable-free, closing via the
title-bar X now properly marks the version as seen. - "Insert link" is now a Gtk.Popover attached to the toolbar button
instead of a Gtk.Dialog (cleaner, native-looking, Enter validates). - Text color picker replaced with a native Gtk.ColorButton: full
color palette instead of a hard-coded blue. - Sidebar: "Refresh" context menu item is now available on every
folder (Archive, custom folders), which removes the empty white
rectangle that previously appeared when right-clicking. - Sidebar labels: counter and trash icon are now grouped in a
horizontal box, so the count is aligned and displayed before the
trash icon. - Window size is now persisted across restarts (written on
delete-event, restored at startup). - "Deleted Messages" (iCloud) is correctly recognized as the Trash
folder and offers "Empty folder (permanent deletion)". - Folder icons: custom folders and Archive now show a proper
folder-symbolic icon instead of a broken empty square. - Settings window, About, Filters and Contacts are now built lazily
on first visit instead of at startup, saving several hundred
milliseconds. - Interface sounds are now controlled by a dedicated preference
("Enable interface sounds" in Settings > Interface), with distinct
cues for sent mail, incoming phishing alerts, going offline, and
emptying the trash. ← NEW
- "What's New" window: compact, resizable-free, closing via the
-
Filters
- New Thunderbird-style filter editor: name, account selector,
"when to apply" checkboxes, ET/OU logic (match all / match any),
dynamic condition rows, dynamic action rows. - New condition fields: To, Cc, Body, X-Spam-Status, X-Spam-Score.
- New operators: not_contains, not_equals.
- New actions: Move to, Copy to, Label, Mark as read.
- "Run on existing messages when saved" checkbox: applies the filter
to already-cached mail (inbox, sent, drafts, junk, archive) when
creating or editing a filter. - Filter editor state (ET/OU, when-to-apply checkboxes) is now
correctly saved, restored, and applied by the filter engine.
- New Thunderbird-style filter editor: name, account selector,
-
Composer
- Per-account signature is correctly swapped when the "From" account
changes (signature is now wrapped in a
and replaced reliably). - Cci (Bcc) field now actually appears when the Cci button is
toggled. - Fixed duplicate call to sidebar.set_size_request(260, -1) left
over from a previous merge.
- Per-account signature is correctly swapped when the "From" account
-
Internationalization
- 7 languages fully covered (fr, en, de, es, ja, pt, th, zh).
- New fix_sidebar_keys.py helper restores sidebar keys lost when
running extract_i18n.py. - i18n.install_translation(_LANG_PREF) is now actually called at
module level, so changing the language in Settings takes effect
after the automatic restart.
-
Bug fixes from user reports (0.3.0-beta2 -> 0.4.0-beta1)
- WebKit2 4.0 -> 4.0/4.1 fallback added to pages.py (deepin 25 and
any distribution shipping only WebKitGTK 4.1). - CREATE INDEX on email_labels moved after CREATE TABLE email_labels
in store.py, fixing init_db() on fresh installs. - GitHub URLs corrected everywhere (ZengDevapps -> coatimundiapps).
- WebKit2 4.0 -> 4.0/4.1 fallback added to pages.py (deepin 25 and
0.3.0-beta1
*** First beta pre-version ***
✨ Key features
IMAP/SMTP support for any provider (Gmail, iCloud, Outlook, custom domains…)
Conversation threading – group emails by thread
Labels with colors and per-label counters
Automatic filters – move, label, or mark emails as read based on rules
Phishing detection – built-in analysis of suspicious emails
Per-account signatures
Multi-account with a unified inbox
Spam filter – block or allow senders
8 languages: 🇫🇷 FR, 🇬🇧 EN, 🇩🇪 DE, 🇪🇸 ES, 🇯🇵 JA, 🇵🇹 PT, 🇹🇭 TH, 🇨🇳 ZH
Dark mode following the system theme
Native Deepin integration – follows your accent color