Releases: maxweilbuchner/nomail-releases
Release list
v0.7.7
- Login-code detection no longer mistakes tracking-link gibberish for a code:
URLs are ignored entirely when scanning for one-time codes, so newsletters
with "use the code …" wording next to tracking links stop offering a bogus
code pill. - Tips that teach a setting now carry an Open settings button that jumps
straight to the setting's row and highlights it — including the undo-send
tip, which previously offered no way to change the window it quoted. - Messages with fixed-width layouts — Gmail signatures, wide newsletter
templates — now fit the reading pane: over-wide blocks shrink and their text
wraps instead of forcing horizontal (and a spurious vertical) scrollbars on
the message. - Attachments sent from Gmail's composer now show up: the attachment row, the
thread list's paperclip, and forwarding all recognize files that carry a
Content-ID without being used inline — previously such attachments were
invisible and silently dropped from forwards. Already-synced mail is fixed on
the next launch.
v0.7.6
- Microsoft accounts now sync attachments: attached files and inline images
show up on their messages and can be opened and saved — previously every
attachment on an Outlook/Hotmail account was invisible. - Clicking a new-mail notification now opens the announced conversation in a
view that contains it, instead of just focusing the app. Digest notifications
("N new messages") open the newest thread of the batch, and in All
inboxes a notification click no longer switches you to a single account.
v0.7.4
- Hovering a conversation now highlights it with a rounded panel inset from
the list's edges instead of a full-width band; selected and open rows use
the same shape, as do drafts and outbox rows. - The thread list no longer paints a blue bar along the current row's left
edge — neither on the last clicked conversation nor while moving through
the list with the arrow keys. - The view header no longer draws a bottom border — the bar sits flush above
the list for a calmer top edge. The border still appears while searching,
where it doubles as the search field's focus outline.
v0.7.3
- The filter-bar toggle in the view header is now a labeled View settings
button sitting right of the notification bell, instead of an unlabeled
sliders icon. - Email-address links in a message now work: clicking a
mailto:link opens
a new message with the address — and any subject or body the link carries —
already filled in. - Right-clicking inside a message now offers Copy Email Address on
address links, Copy Link Address on web links, and Copy on selected
text. - The combined inbox sidebar gains a Favourites group: right-click any view
inside an account's section to add it, and it appears above Filtered
views with its account's label — one click instead of expanding the
account every time. Right-click again to remove it. - The filter/sorting bar can now be hidden with the new View settings
button beside the view name, and the choice is remembered. A blue dot on the
button warns when a hidden filter is narrowing the list. - The select-all checkbox moved from the filter bar to the left of the view
title, heading the list it selects. Its behavior is unchanged — always
visible, tri-state, Select all/Deselect all. - The combined inbox no longer paints an account-colored stripe on every row —
the list reads like a normal thread list. Pinned split-inbox sections keep
their color stripe. - The message header now shows the address a mail was delivered to next to
the recipient's name — with several accounts or aliases you can see at a
glance which address it landed on. Printed conversations list every
recipient in full. - Collapsed messages in a conversation now show just the sender's name, like
the conversation list — the email address no longer crowds the preview text. - An expanded message in a thread can now be collapsed again — click its
header to fold it back to the one-line row. - The sidebar border shows its resize cursor only when dragging would actually
change something — a row is cut off or the sidebar is wider than its minimum. - The Inbox now shows unread mail in an Unread section above the date groups
by default. Turn it off with the Unread first toolbar chip and
Update view — inboxes with a saved view customization are untouched. - The sidebar can now be widened by dragging its right border — up to the point
where its longest account or label name fits without truncating. Double-click
the border to snap back to the default width; the chosen width is remembered. - A new app icon: a sealed envelope in NoMail blue, drawn in Apple's current
icon style. On macOS 26 it renders in real Liquid Glass — including the
system's dark, clear and tinted icon modes — and older macOS versions get the
matching classic version.
v0.7.2
- The identity-color picker on account cards in Settings is now one line tall —
No color sits at the start of the swatch row instead of on its own line
beneath it.
v0.7.1
- Follow-up reminders now raise a native Reminder notification with the
thread's subject when they fire — click it to jump to the thread. It shows
even while the window is focused, and the notifications toggle and sound
setting apply as usual. - Account and view identity colors now come from a dedicated high-contrast
palette that stays clearly visible in both themes, with every color easy to
tell apart at a glance. Colors picked from the old palette map to their
nearest new equivalent automatically. - Accounts are now labelled by their email domain — GMAIL, HOTMAIL,
ICLOUD — in the sidebar, the account switcher and Settings, with the full
address alongside, so same-named accounts are easy to tell apart. Messages
you send still carry your name in the From header. - In the combined inbox, each row of the sidebar's Accounts list now reads
GMAIL (you@gmail.com)instead of the bare address, so several accounts at
the same provider or with the same local part no longer truncate to the same
string. - Hovering an account row in the combined inbox now shows the provider and the
account's full email address, even when the sidebar is too narrow to display
it. - Account cards in Settings now show how each account is connected — "Logged
in with Google", "via IMAP" — as a pill in the card's corner instead of a
provider tag crowding the account name.
v0.7.0
- Copying a detected login code can now also mark the conversation unread or
move it to Trash (undoable) — choose under Settings → Reading. Off by
default, and it works from both the conversation and the list row. - Calendar operations now retry transient Google errors with backoff and give
up after a deadline, instead of failing on the first hiccup or hanging on a
dead connection. - Fixed a rare race where a notification could be skipped when several
messages arrived in the same instant. - RSVP replies now send reliably when your name or the organizer's contains a
comma, quotes, or non-ASCII characters — those previously produced an
invalid reply header. - Opening the label popover with many labels and a large selection is
faster — the label states now come from a single query instead of one per
label. - Invite cards no longer garble event titles, locations, or descriptions
containing a backslash (e.g. file paths) — the text was previously split at
the backslash. - Inserting a snippet containing a literal placeholder like
{{constructor}}
no longer fails — unknown placeholders are left as typed. - Sending to a contact whose name contains a backslash no longer produces a
malformed recipient header that could get the message rejected. - Settings backups now restore saved views that filter on the follow-up
state — importing previously dropped those views silently. - Scheduled sends in Drafts and the Outbox now flip to the live "Sends in
N sec" countdown when they enter their final minute — previously the pill
could stay on the static "Scheduled" label all the way past the send time. - The Feedback button in the header is now a quiet outline button instead
of a solid blue one — Compose is the only filled-blue action again. - Dates in the conversation list are a shade darker, making them readable
without leaning in. - Compose popout windows now remember their size — a new popout opens at the
size you last closed one at (kept within your display), instead of always
the fixed default. - New-mail notifications now play the system alert tone. Turn it off under
Settings › General › Notification tone to get the previous silent
banners. - An optional Send tone plays a short sound the moment you press Send —
off by default, on under Settings › Composing. - Simple text emails now get a small even margin inside the white message
frame instead of running flush against its edge — most visible in dark
mode. - After a send is refused for a missing recipient, the To field no longer
shows the red error ring and the blue focus border at the same time — the
focus border takes over while you type. - Sending from a popped-out composer now closes that window right away and
shows the Undo send countdown in the main window, which comes to the
front while the send can still be undone or cancelled. Undoing reopens the
draft in the main window's compose dock. - Label chips in the reading pane now carry a small × — remove a label in
one click, with the usual undo toast, without opening the label menu. - An unfinished reply now shows in its conversation as a Draft card
instead of looking like a sent message — click it to pick up where you left
off in the composer. - The login code pill now appears on a conversation's row the moment the
mail arrives when the subject or preview text carries the code, instead of
waiting for the message body to download. - The local database no longer grows without bound: the internal event log
that feeds new-mail notifications is now pruned to the last 30 days on each
launch. - Forwarded sign-in mails now show their Copy login code pill: a forward
whose whole body is quoted history is scanned as the message itself, while
replies still never resurface a code from the quoted history below a fresh
answer. - Old unread mail no longer re-fires its notification on every app launch —
the new-mail checkpoint now survives restarts. Mail that arrived while the
app was closed still notifies once on the next launch. - Opening a conversation now shows all of its labels as chips under the
subject, so you can confirm a label was applied without scanning the list —
the row keeps its compact+Noverflow, the reading pane shows the full
set. - The follow-up reminder default (Settings › Reading) now offers Custom…:
pick an amount, a unit from hours to years, and a time of day.⇧Hthen
always arms that span at that time. - The Copy login code pill now also recognizes lowercase codes and mails
that introduce the code imperatively — "enter the below code", "Gib den
folgenden Code ein" — the way Ryanair and similar senders write their
sign-in mails. - Sign-in mails from Booking.com — and any sender whose name is itself a
commerce word — now get their Copy login code pill: the brand name no
longer counts as shopping context that suppresses the code detection. - Accepting a suggested label now always shows the result: the new label
becomes a visible chip on the row, and if it can't be applied a toast
explains why. Deleting a label also removes its pending suggestions. - Discarding a draft that had already synced to the server now removes it
from Drafts in one step — no more ghost copy to delete a second time, and
none left behind after moving a draft to another account. - Attaching the same file twice now adds it again as
name (1).extinstead of
silently doing nothing, and attachments that would share a filename — two
invoice.pdffrom different folders, say — are automatically renamed apart
so both chips (and the sent mail) stay tellable. - Labels created by the label helper now re-learn from the mail the first
organize pass actually filed, so their accuracy reflects your real mail
rather than the wizard's few examples. While setup runs, the AI panel marks
them New instead of asking for more examples. - With more than one account connected, the Settings panes that edit a single
account — Labels, your signature in Composing, and sync options in
Advanced — now show an Applies to header naming that account, with a
switcher to retarget them without leaving Settings. - Rebuild local database now asks for confirmation in a dialog and lives
on the account card in Settings › Accounts, so it always names the account
it acts on. Deleting a snippet asks first too. - The On/Off-style toggles in Settings now announce themselves to screen
readers as option groups with a checked state, take a single Tab stop, and
move their selection with the arrow keys. - Keyboard shortcuts can now be rebound without a mouse: command rows in
Settings › Shortcuts are focusable, Enter starts recording, and the
edit and reset affordances show on keyboard focus as well as hover. - Mark as read when opened now reads as one scale — Right away /
After 3 s / Never — instead of On / 3 secs / Off, where "On"
secretly meant "after half a second". - Settings rows that depend on another setting — the sending-toast options
under Undo send, the summarize scope under auto-summarize — now dim
with a note saying why instead of doing nothing or disappearing, and they
keep showing up in settings search. - Closing Settings with Escape while editing your signature no longer
silently drops the edit — it saves on close, and when retargeting the pane
to another account. - Settings polish: the General pane groups its rows under Appearance,
Behavior, and System; pressing Escape with a label or account
color picker open now closes the picker instead of all of Settings; and
buttons across the panes share one style with a visible keyboard focus
ring. - The label helper can now be re-run any time: Review labels with AI in
Settings › Labels proposes only what's new — labels for mail your current
set doesn't cover, and opt-in merges that fold two overlapping labels into
one, moving every conversation over before the duplicate is deleted. - The welcome tour now covers follow-up reminders: a new Follow-ups card shows
how ⇧H arms a reminder that resurfaces a thread if nobody replies, and
lets you pick your default horizon right on the card. - The account switcher now surfaces unread mail elsewhere: a quiet line
beneath it jumps to the other inbox with mail waiting, and the menu shows a
count on each account plus a total on All inboxes. - NoMail can now set up labels for you: after a new account syncs, a banner
offers to scan the inbox and propose a label set — review it, then one click
creates the labels and organizes your existing mail. Also available from
Settings › Labels. - Reloading the window now takes ⌘⇧R (
Ctrl+Shift+Ron Windows/Linux)
instead of ⌘R, so it can't happen by accident.
v0.6.1
- Maintenance release. No user-facing changes since 0.6.0 — internal test and
documentation updates only.
v0.6.0
- Release notes are easier to read: bold and
keysnow render properly in
"What's new" and Settings › About, and internal issue numbers no longer
appear in them. - The sidebar's update pill now shows what it wants at a glance: a ready
update gets a highlighted row with Restart…, an update on offer shows
Download…, and a download in progress shows a progress ring with a live
percentage.
v0.5.0
Added
-
Mail in the Trash can now be deleted for good. Until now the Trash was a one-way holding
pen: everything you binned stayed there forever, and the only way out was back. A binned
conversation now offers Delete forever — on its row, in the reading pane, in a
popped-out window, in the right-click menu and above a ticked selection — behind a
confirmation, and with no Undo, because there is nothing to undo. It works on IMAP
accounts (iCloud and the like), on Fastmail, and on Outlook — where it uses the deep
delete that Exchange keeps beyond "Recover deleted items", so gone means gone; on Gmail
the action doesn't appear at all rather than appearing and failing, since Gmail can't
erase mail with the access NoMail asks for today. One caveat the wording is honest
about: some IMAP servers clear deleted mail on their own schedule, so the conversation
leaves NoMail immediately but may linger briefly on the server (#228, #230) -
Tips now teach the things that hide behind a setting. Until now they covered three
features, so the rest of what NoMail can do only turned up if you went looking in
Settings. Three new ones appear at the moment they'd help: that Send holds your
message for a few seconds and the toast can pull it back, that opened mail can wait
three seconds before it counts as read (offered when you put something back to
unread), and that a reply can open in its own window instead of the docked panel.
Each carries a button that makes the change, and the one-tip-per-launch pace is
unchanged (#227) -
Right-clicking a conversation in the list now offers everything the open conversation's
⋯ menu does. Until now the row menu had two entries at most — "Print…", plus "Not spam"
if you happened to be in the Spam view — so reporting junk, moving mail back to the
Inbox or saving a copy meant opening the thread first, even though the list is where
triage actually happens. Both menus now read from one definition: Reply, Reply all and
Forward, then Move to Inbox and Report spam (or Not spam), then Download (.eml) and
Print… A reply from the row menu answers the conversation you right-clicked, not the one
you happen to have open. Which entries appear now follows the conversation rather than
the view you found it in, so a junk mail turned up by search offers "Not spam" instead
of "Report spam" (#219) -
A sign-in code now shows on its row in the message list, so copying one no longer costs
an open. The list is where you are while you wait for the mail, and the code is right
there when it lands: the row readsCode: 847213, hovering it offers Copy, and clicking
copies without opening the thread. Codes stop showing after a day, by which time they
have long expired — nothing lingers in the list that someone could read over your
shoulder and still use (#210) -
A Follow-ups view in the sidebar answers "what am I still waiting on a reply for?"
in one screen. Until now a follow-up reminder only showed on its own row, so the only
way to see everything outstanding was to scroll the Inbox — and a thread you archived
before the reminder came back was invisible entirely. The new view collects every
thread with a follow-up, whether it is still counting down or has already resurfaced,
archived ones included, and a thread drops out of it the moment the reply lands or you
clear the reminder. Pressg fto jump there (#209) -
A reply now retires a follow-up that had already come back. Before, once a reminder
had resurfaced a thread, the amber "Follow-up" pill kept insisting there was no reply
even after one arrived, until you dismissed it by hand (#209) -
A follow-up that comes back now says how long it has been waiting. The amber banner
on the conversation used to read "no reply since you set a reminder", which told you
nothing you didn't already know; it now names the date and time of the message the
silence is measured from — "Follow-up — no reply since Mon, Aug 3, 14:20" — so a
two-day wait is distinguishable from a two-week one without scrolling the thread (#208) -
Sign-in mails hand you the code. Open one and NoMail reads the verification code out
of the message and puts it above the body with a Copy button, so the six digits you
came for are one click instead of a careful drag across the mail. It only appears when
the message really is offering a login code — a booking reference, an order number or
a promo code doesn't get one — and the code stays selectable by hand either way (#205) -
Changed your mind about a reminder you set while writing? The "Reminder" pill on a
queued send, in Drafts and in the Outbox, now opens the same horizons the composer
offered — next morning, in 3 days, in a week, in 2 weeks — plus Don't remind. Until
now the pill could only drop the reminder outright, which meant a scheduled send
sitting there for days had no way to have its chase moved short of cancelling the
send. Picking a new horizon leaves the mail exactly where it is in the queue. If the
message has already gone out in the meantime, the pill says so and points you at the
conversation, where the reminder now lives (#198) -
A draft in its own window can come back. The composer window's footer carries a
button that returns the message to the compose dock in the main window, so popping
one out is no longer a one-way trip you undo by closing the window and hunting the
row down in Drafts. Everything you typed comes with it, right up to the last
keystroke, and the window closes behind it (#191) -
If you write in windows, NoMail can start you there. Settings › Composing now has
Compose opens in: keep the panel docked to the bottom right, or have C and every
reply open the message in its own window straight away — no docked panel, no second
click. Replying twice to the same conversation raises the window you already have
rather than starting another draft, and a draft opened this way now carries your
signature and the quoted history from the first keystroke (#192) -
⇧H no longer always means tomorrow. Settings › Reading now carries a Follow-up
reminder choice — tomorrow, in 3 days, next week or in 2 weeks — and ⇧H arms
whichever one you pick. The command menu names it too, so the entry reads "Remind
me in 3 days if no reply", and the confirmation gives the date it settled on
instead of the word "tomorrow". "Remind me…" still picks a one-off time for a
single conversation (#197) -
The Remind toggle in the composer footer can now be given a horizon. Clicking it
still arms the next morning in one go; the chevron beside it offers in 3 days, in a
week, or in 2 weeks instead. The choice counts from the moment the mail actually
goes out, so it holds for a send scheduled days ahead, and the Reminder pill in
Drafts and the Outbox says which horizon is waiting (#189) -
The chip on a conversation with a reminder armed now offers Change alongside Cancel.
Picking a new time — tomorrow, in three days, next week, or a date of your own —
happens right where the time is stated, instead of going back out to the command
menu. It works the same in a conversation you've popped out into its own window,
which never had the picker at all (#190) -
NoMail now offers the occasional tip: one quiet line above the conversation list
pointing at something you probably haven't found yet — snoozing a conversation
until you actually want it back, pinning a view as its own section of the Inbox,
merging two accounts into a single stream. Never more than one at a time, never
while you're still finding your feet, and each tip bows out after a few launches
whether or not you read it. Dismiss clears one for now; Never show tips ends them
for good, and Settings › General › Tips switches them back on (#5, #194) -
Search no longer pretends mail you archived doesn't exist. Results still lead with
what the open view holds, but anything the query matches elsewhere now follows under
an "Elsewhere" heading, and every one of those rows says where it lives — Trash,
Spam, All mail, Sent, Snoozed. Searching from the Inbox for a receipt you binned
last week finds it, and tells you it's in the Trash instead of coming back empty
(#180) -
Google's Gemini joins OpenAI, Anthropic, and xAI in Settings › Intelligence: pick it,
paste your own API key, and summaries, drafts, and labeling tie-breaks go to Gemini
instead of the on-device model. Labeling embeddings still never leave your Mac (#142) -
A "remind me if no reply" reminder is no longer a one-way door: while it's armed
the thread carries a chip with the time it will resurface — in the list and above
the subject — and a Cancel button next to it calls the whole thing off. "Cancel
reminder" is in the command menu too. Changing your mind no longer means waiting
for the reminder to fire (#165) -
A conversation that comes back because nobody replied now says so in the list: it
carries an amber "Follow-up" pill, the same signal the open conversation has always
shown above the subject. No more wondering why an old thread is suddenly unread
again — and asking for a new reminder clears the old one instead of stacking (#179).
The pill clears itself too: press its × to put the conversation behind you without
opening it (#186) -
Asking to be reminded if nobody replies is now one click while you write: the composer's
footer carries a Remind button that lights up when it's armed, and clicking it again calls
it off. Setting one no longer means opening the send-options menu, which is now purely
about when the mail goes out (#185) -
A reminder no longer always means tomorrow morning: "Remind me…" in the command menu
opens a picker with the horizons a chase actually needs — tomorrow, in 3 days, next
week, in 2 weeks, or any date and time you pick. ⇧H still arms tomorrow 9am on the
spot, and its confirmation now offers "Change…" if that was...