Skip to content

Releases: maxweilbuchner/nomail-releases

v0.7.7

Choose a tag to compare

@maxweilbuchner maxweilbuchner released this 10 Aug 15:39
  • 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

Choose a tag to compare

@maxweilbuchner maxweilbuchner released this 10 Aug 14:16
  • 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

Choose a tag to compare

@maxweilbuchner maxweilbuchner released this 09 Aug 14:30
  • 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

Choose a tag to compare

@maxweilbuchner maxweilbuchner released this 09 Aug 12:45
  • 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

Choose a tag to compare

@maxweilbuchner maxweilbuchner released this 09 Aug 07:46
e7ec220
  • 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

Choose a tag to compare

@maxweilbuchner maxweilbuchner released this 09 Aug 07:24
e7ec220
  • 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

Choose a tag to compare

@maxweilbuchner maxweilbuchner released this 08 Aug 13:06
e7ec220
  • 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 +N overflow, 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. ⇧H then
    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).ext instead of
    silently doing nothing, and attachments that would share a filename — two
    invoice.pdf from 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+R on Windows/Linux)
    instead of ⌘R, so it can't happen by accident.

v0.6.1

Choose a tag to compare

@maxweilbuchner maxweilbuchner released this 07 Aug 00:41
e7ec220
  • Maintenance release. No user-facing changes since 0.6.0 — internal test and
    documentation updates only.

v0.6.0

Choose a tag to compare

@maxweilbuchner maxweilbuchner released this 06 Aug 15:39
e7ec220
  • Release notes are easier to read: bold and keys now 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

Choose a tag to compare

@maxweilbuchner maxweilbuchner released this 06 Aug 12:58
e7ec220

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 reads Code: 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. Press g f to 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...

Read more