What’s changed
Features, improvements and fixes, release by release.
1.3.1
Fixed
- The menu panel uses dark glass so its text stays clear over light windows. It opens in the center on the first click as well as later clicks.
- The website has a saved light or dark theme, visible phone navigation, clear section landing points and aligned email signup controls. Background motion respects Reduce Motion.
- Refresh, Settings and Voice at the top of the menu panel now light up clearly when the pointer is over them, press in when clicked, and show a ring only when you move to them with the keyboard.
1.3.0
Changed
- MailBridge is now Liamia. Same app, new name. "Liamia" is "AI Mail" spelled backwards. The menu bar, every window, the send dialog, the Claude plugin and the desktop extension all say Liamia now.
- Nothing to redo. Your license, your trial, your settings, your connected assistants and your stopped senders all stay as they are. The agreements you accepted still count.
- If macOS asks again for Full Disk Access, switch Liamia on in System Settings, Privacy & Security, Full Disk Access. It is the same app, so most Macs will not ask.
- The website moves to liamia.devxgroup.io. The old address keeps working, and updates still arrive the same way.
1.2.2
Fixed
- A name alone means the sender. "American Express emails, the last 5" lists only emails from American Express, not a newsletter that mentions it. Say "about American Express" to find every email that mentions it. A topic search like "flight confirmation" still finds every airline, even when one sender has "Flights" in its name.
1.2.1
Fixed
- The first hands-free answer is spoken. Right after the microphone stopped, the Mac's speaker could refuse to start for a moment and the first answer was skipped in silence. MailBridge now waits a moment and tries again.
- A slow move in Sweep is confirmed when Mail finishes it. After the Mac sat idle, Mail could take longer than Sweep watched, and Sweep said it could not confirm the move. Sweep now looks again a little later and, when the email is in Archive, Trash or Junk, clears the warning and offers Undo.
- "Find my emails from OpenAI" finds OpenAI. When dictation wrote "Open AI", Ask searched for "AI" and listed every AI newsletter. Names split in two, like "Open AI" or "Abacus AI", now count as one sender, and a sender alone lists that sender's newest emails first.
- Sender, day and count together. "Show me two emails from November 5th from OpenAI" keeps all three. "The 5th of November" and "Nov 5" work too, a day without a year never means a day in the future, and "emails from yesterday" lists yesterday's mail.
- No gap after the first spoken word. The voice now starts once a moment of audio is ready, so a busy screen can no longer make it stop after one word.
- Sweep says what Mail is doing. A moving card shows a spinner and the whole line, such as "Moving this email to Trash in Mail", and says when Mail is slow to answer.
Changed
- Voice questions send sooner. The pause after you stop talking is 1.7 seconds, or 2.7 seconds after a word like "and" or "from".
1.2.0
Added
- Ask shows your emails on top and the conversation underneath. The emails an answer finds fill the top of the Ask window, with a line that says what is shown, such as "From ZipRecruiter, 12 emails". What you said and what MailBridge answered sit underneath in their own area, so the list never jumps while you talk. Drag the line between them to make either part bigger; Ask remembers it.
- Act on a row and it updates in place. Archive, mark or move an email to Trash and that row slides out while the rest of the list stays. A new question that asks for different mail replaces the list.
- Ask by voice from the menu bar. A mic button just right of Settings in the MailBridge panel opens Ask already listening for one question.
- Delete one email by voice. Say "delete the ZipRecruiter one" and MailBridge opens that email in Mail and asks "Move this email to Trash?" out loud and on screen. Say yes or click Delete and it goes to Trash, its Mail window closes, and Undo puts it back for a minute. Say no, or say nothing, and it stays. More than one email always needs your click.
- Clear out spam or a sender by voice. "Get rid of all my spam" or "clear out everything from ZipRecruiter" lists those emails in Ask and shows the usual confirmation that names each one. Nothing moves until you click.
- Talk over the answer. With Hands-free on, start talking while MailBridge is speaking: the voice stops at once and your next question starts with the words you already said.
- Hands-free waits for you. Hands-free keeps listening through up to 2 minutes of quiet and shows Still listening after 30 seconds. After 2 minutes it turns itself off and says so on screen.
- Listening keeps going. If speech recognition stops by itself, or you put AirPods in or take them out mid-sentence, Ask keeps every word you said and carries on listening.
Changed
- Hands-free sits next to the question field, with the mic, instead of in the toolbar.
- A simpler Ask window. The top of Ask now shows only its name and New. Everything else moved to where you would look for it: - Choosing the model, and downloading one picked for your Mac, are in Settings > Assistants. - Read answers aloud is a checkbox in Settings > Voice. While Ask is reading an answer, click the glowing ball next to the question field, or press Escape, to stop it. - Is This Real? is in the More menu of each email Ask lists, and checks that one email.
- The panel header is easier to use. The Ask by voice mic sits to the right of Settings, so the Settings label never covers it, and the MailBridge icon next to the name is larger.
- Rows in Ask's list are a little taller, with text one point larger.
- Asking MailBridge to empty the Trash or delete for good gets a plain answer: MailBridge only moves mail to Trash, and Mail erases the Trash on its own schedule. One button opens Mail's settings, where you choose when (Accounts, Erase deleted messages).
- Ask waits while you think. After you stop talking, Ask sends your question after about 2 seconds, or about 3 seconds when your last word sounds unfinished, like "and", "um" or "from". The ring on the Listening pill fills over the real wait. Click the mic again to send right away.
- MailBridge no longer hears itself. The microphone now uses the Mac's own echo cancellation and noise suppression, and the natural voice plays through the same audio path while the microphone listens, so the spoken answer and most background music stay out of your question. Other audio is turned down as little as possible while you talk.
- The voice gets straight to the answer. It no longer repeats your question back to you, waits a short beat before it speaks, and the first word is no longer cut off.
1.1.0
Added
- Updates wait for you, no pop-ups. When MailBridge finds a new version on its own, an Update button appears at the top of the MailBridge panel. Click it to read what is new and install. If MailBridge already downloaded the update, the button reads Restart to Update and finishes in one click.
- Update choices in Settings. Settings > Setup has two checkboxes, Check for updates automatically and Download and install updates automatically, and a line that says when MailBridge last checked.
Changed
- Setup never sits still. While MailBridge waits for Full Disk Access, for Mail to finish setting up, or for your answer to the Mail control prompt, the step shows a spinner and says what it is waiting for. Setup rows in Settings show a spinner while they are being checked.
1.0.0
The first stable version. From here, a fix is 1.0.x, a new feature 1.x.0, and a change that breaks an existing setup 2.0.0.
Added
- Version and build in Settings. The bottom of the Settings window reads "MailBridge 1.0.0" and its build number; point at it for the exact source commit. Select it to copy it into a support email.
Changed
- The build number is now a whole number that rises with every build, as the version policy above says. Releases up to 0.8.1 used the version as the build.
Fixed
- No more blue focus squares around buttons and icons, in the panel and in every MailBridge window. The Settings button still shows its label when keyboard focus reaches it.
0.8.1
Added
- Act once, gone everywhere. Press Done, Junk or Delete on an email in any MailBridge window and it leaves every list: the panel's Waiting on you and its count, Today, Sweep's deck and lanes, Ask's results, Triage and Cleanup's counts. Undo brings it back everywhere. A move Mail could not confirm still shows Check; nothing is hidden on a guess.
- Handled, Snooze and Keep. In every row's More menu and as icons on Sweep cards (each says its name when you point at it). Handled clears it from the waiting lists and leaves it in Mail. Snooze hides it until later today, tomorrow or next week, lists it under Snoozed in the panel, and brings it back on time, also after the Mac slept. Keep is for important mail that is not a to-do: it is listed under Kept in the panel. Nothing in Mail moves for any of them, and nothing clears by age.
- After you send a reply in Sweep, it asks: Waiting on them, or Handled.
- Not Junk in the More menu of a row listed from Junk: back to the Inbox, after you confirm.
- Larger text. An Appearance setting makes reading text larger throughout the app and stays saved.
- Release notes on the website, generated from the dated releases in this file.
Changed
- The main panel opens centered on its screen and is wider, with stronger slate text for readability over glass.
Fixed
- Sweep keeps the card in front of you while Mail moves it. Nothing jumps ahead on a slow move; the card shows Moving in Mail and the result replaces it. A pile that only partly moved keeps the emails that stayed, Retry moves only those, and Undo puts back exactly what moved. Delete sits beside the card's actions (Skip is in More), and Mail's own words about a move that could not be confirmed stay readable in the receipt instead of being cut short.
- Junk lands in the account's own Junk or Spam mailbox, and says where: "Moved to Gmail Spam", "Moved to Yahoo Bulk", "Moved to iCloud Junk". MailBridge moves only into the mailbox Mail itself lists as that account's junk mailbox, and moves nothing when Mail does not name one. The button is still called Junk; its tooltip says "Move to Junk (Spam)".
- Ask always searches when you ask it to find something. "Can you search all of my emails and find my spectrum bill?" runs the search itself, with the words that matter, instead of waiting for the local model to decide (it sometimes printed the request back or asked for details). Actions, replies and overviews still go to the model.
- Search finds the email you meant, or says it found none. "Find my Spectrum bill" now lists the Spectrum statements, newest first, instead of a Medium digest that only said "bill". The word that names something (a company, a person, a sender) has to match; mail that holds only everyday words like "bill" is never passed off as the answer. Bill, statement, invoice, payment, autopay and receipt count as one another. A word in the sender's name or address ranks highest. When nothing matches, Ask says so: "No email from or about Comcast found."
- "Last 2 emails from Apple" means the two newest from Apple. "from:apple" looks only at the sender's name and address (apple.com and its subdomains), never at a subject that says Apple, and never at Hide My Email relays. "last N", "latest" and a sender on its own list newest first.
- Ask's line after a search is written from the results, so it never claims the emails are about something they are not. Connected assistants get the same honesty: the first line of every `search_mail` result says which words matched.
Changed
- Voice: one question per press. Press the mic, talk, and about 1.5 seconds after your last word the question sends itself. A ring on the Listening pill fills while it waits; talk again and it empties; Send now skips the wait; Stop keeps your words in the field without sending. The answer is shown and spoken in a short form ("Found 2 emails: ... from today and ... from yesterday"), and the microphone is already off. Press again to ask again. Hands-free stays as it was, now with the same 1.5 second pause and ring, and keeps listening after each answer until you turn it off or press Stop.
- A search you can watch. While Ask searches, a card shows the accounts it is reading, the words it is looking for, and three rows that breathe where the results will land. Only real facts, no made-up progress. Calm and still with Reduce Motion.
- Icon buttons say what they do. Point at the speaker, hands-free or download icon in Ask and a short label slides out ("Voice on", "Hands-free", "Get a model"). The Today card's speaker says "Listen", and while it reads it shows a live waveform and "Stop".
- The panel shows the MailBridge icon next to its name.
0.8.0
Added
- Sweep: your mail as a short deck of cards. One card at a time, most urgent first: replies you owe, bills, deliveries, appointments, school, newsletter piles, follow-ups that came due, rules worth setting and emails that look like scams. Each card leads with what happens if you wait ("Pay $84 by Fri"), shows the email's own sentence behind every date and amount, and says "Check" with the reason when MailBridge is not sure. Act with one key; Undo stays for 60 seconds, also when Mail is slow to show a move, and an Undo that puts back only part of a pile keeps the rest undoable. Open it from the panel ("Sweep 12 things"), File > Sweep or Shift Command S.
- I owe and Waiting on them at the top of Sweep, with whose move it is ("unclear" is never guessed), and a next-7-days strip of pay-by, reply-by and return-by dates.
- Archiving is not answering. Archive a reply you owe and it stays in I owe until MailBridge finds the reply you sent.
- A receipt at the end of a Sweep: accounts checked, when, what you handled, what is still owed and what MailBridge was unsure about. It says "All clear" only when a fresh read finds nothing left; otherwise "Session done, N more waiting" with a button for the next ones. No score, no streak.
- Quick replies in your voice, written on this Mac by your local model from how you write in Sent. Up to three, never with a link, address, phone number or letters from a script you do not use; you edit and approve every send in the usual dialog. A long email is quoted only as far as the dialog can show, so a short reply is always ready to send.
- Follow-up reminders and suggested rules. "Nudge me" on any Waiting on them row (Tomorrow, In 3 days, Next week) brings that sent email back in Sweep if nobody replied by then; senders you keep archiving unread get a Stop sender card. Stop sender sets its rule only in the account their mail is in, and asks per account when it is in more than one.
- Newsletter piles follow Cleanup's rules: a pile is checked again when you archive it, and anything flagged, kept or otherwise protected since is left alone and named.
- Row actions everywhere. Read, Done (archive), Junk and Delete on each row in the panel, Ask's found list and Today, with keys and a batch bar for several rows at once. Junk and Delete ask first; everything undoes for 60 seconds.
- A listening pill with Stop while the microphone is on in Ask.
- A natural voice for spoken answers. Ask can read answers with Phonon, a small voice model that runs on this Mac through Ollama, about six times faster than the Mac voice. Pick a voice in Settings > Voice (Hadley is recommended) or keep the Mac voice. Nothing leaves the Mac.
- `sweep` tool for assistants: the same deck, lanes, dates and receipt, read only.
Changed
- Cleanup counts every email in scope, not the newest 5,000, and says so ("Sorted all 24,840 emails"). Each count is read two ways after a run; when they disagree the row says Check with the reason. Sender rows say "never opened" only when that is true.
- Cleanup archives 25 emails per Mail script instead of one, so a 200-email run is much faster.
- Dictation is faster: about 1.6 s from the end of speech to text (was 3.6 s), with words appearing while you speak.
Fixed
- Ask no longer hangs on a long streamed answer and no longer flashes back to the setup page after one slow check of the local model.
- A deleted email leaves the list at once, and Undo brings a row back under the id Mail gave it.
- One confirmation at a time: the assistant cannot open a second one over yours, and the confirm button waits half a second after a new request appears.
0.7.0
"Daily companion". Built and in review; not released. Plan: `docs/plans/2026-10-15-daily-companion.md`.
New
- Today. A card at the top of the panel and a Today window show bills due, deliveries, appointments, school dates, people waiting on you and mail that looks suspicious, all found in the mail already on this Mac. Nothing is looked up online and nothing is saved to disk. A speaker button reads it out with this Mac's voice. "Not a bill" hides a message for good.
- Cleanup. A one-off plan of your Inbox in three piles: Ready to archive, Check these and Protected. Flagged mail, people you wrote to, the last 7 days, real attachments, money, security, health, legal, government, school, travel and senders you kept are always protected, and suspicious mail goes to Check, never Ready. Cleanup only archives, at most 200 per click, re-checks every message at the click, shows a progress bar and the count Mail's server has confirmed ("Mail is still syncing 12"), and offers Undo for 60 seconds. The Check pile is grouped by sender with Archive all and Keep. Optional and off by default: confident bulk older than 180 days goes to Trash instead. An optional weekly schedule prepares a plan and never moves mail.
- Stop this sender. One sheet per sender, or a list from Bulk senders, with the choices the sender's own unsubscribe header allows. An unsubscribe email goes through the send dialog (one per sender, titled "3 of 12"; Cancel skips that sender; two Cancels in a row stop the run). A web page opens in your browser. "Stop seeing this sender" makes a Mail rule that moves their new mail to Archive, marked read. Archiving their Inbox mail now is a separate box, off by default. A Stopped senders list shows whether each one really stopped (Stopped after 10 quiet days, Quiet so far, Still sending), with Resume to remove the rule.
- Scam check. A "Looks suspicious" chip with plain reasons: a brand name on someone else's address, replies going elsewhere, look-alike domains, a failed or missing authenticity check, pressure words, money from a stranger. It reads headers only, never opens a link and never moves mail. Junk and Trust sender are your clicks. Triage Inbox shows the chip, Ask has an "Is this real?" button.
- Subscriptions. MailBridge finds the plans you pay for in the receipts already on your Mac: what each costs a month, how often it bills, when it renews, and trials ending or prices rising in the next 30 days. Totals are per currency and never added across currencies. A Subscriptions window and a panel row show them. Nothing leaves the Mac.
- Add to Calendar and Remind me. A small sheet with the title, date and time filled in from the mail (9:00 when the mail gave only a day; bills and deliveries all-day). Reminders default to 3 days before a renewal. The note says only "From <sender>. Found by MailBridge in your mail." macOS asks for access the first time you click Add, never at launch. Events use write-only access: MailBridge can add an event but cannot read your calendar, and the event goes to your default calendar. If access is off, "Create .ics instead" opens the event in Calendar with no access needed.
- Toasts. One short receipt at a time at the bottom of a MailBridge window: what you just did, with Undo or Open when it applies; errors in red stay until dismissed. Hover pauses it, Escape dismisses it, VoiceOver announces it. No macOS banner, no sound.
- Five new assistant tools, 25 in all. `today`, `cleanup_plan` (counts and reasons, no subjects; it moves nothing, archiving still goes through `act_on_messages` and its dialog), `list_subscriptions`, `check_message` and `stop_sender`. `stop_sender` makes the Stop seeing rule for one sender only after you click "Stop seeing sender" in MailBridge's dialog; Cancel is the default and no answer in 3 minutes is a cancel. It never emails the sender.
Improved
- Undo on Yahoo, iCloud and other IMAP accounts now checks that the email really went back: it says "Undone" only once the mail server has the returned copy. When the server has not confirmed it within 10 seconds, it says "Mail reports it back in the Inbox, but the server has not confirmed yet. Check <account> in a minute." instead. Gmail undo is unchanged.
- Moving an email into a folder on those accounts no longer offers Undo; the result says to open it in Mail to move it back. Archive, Junk and Trash keep Undo.
- Cleanup, Today and Subscriptions windows, a Stopped senders list and the weekly Cleanup rule are reachable from new rows in the panel's Mail group. The weekly rule runs on the panel's existing 5 minute timer and a toast waits for the next time the panel opens.
- Stop this sender replaces the old unsubscribe sheet everywhere: the panel's Bulk senders row, Triage Inbox and Cleanup.
- Triage Inbox rows show the sender over the subject, with a "Stop This Sender" row action.
- Text contrast pass in the panel, Ask, Jev activity, the found list, the confirm sheet, action buttons and Triage Inbox: secondary text and error lines are easier to read, and small text is 12 pt or larger.
- Cleanup's plan takes under a second on a large mailbox (it took 27 seconds before a fix to how cached Triage answers were read).
- Today's Bills include subscriptions that renew, end a trial or change price in the next 7 days, marked "Renews Oct 19", "Trial ends tomorrow" or "New price Oct 20".
- Once a day the panel checks whether stopped senders really stopped and which subscriptions renew in the next 3 days, and leaves a note for the next time the panel opens. It only reads mail.
- Today's suspicious rows have "Stop This Sender" in their menu.
- Polish: the Today card shows its counts as icons with numbers; Cleanup's tiles line up and a line explains why the button archives 200 when more are ready; panel buttons are larger and long rows wrap instead of cutting off; Refresh in Today and the end of a Triage sort each show what was found.
- Final UI pass: the Today card has the date as its title, an Open Today button and three equal count chips (bills, deliveries, waiting on you) that never cut off; Ask, Triage Inbox and Today share one icon column and button edge; Cleanup and Subscriptions rows show the window's name over what it found. Windows open larger (Ask 640 by 720, Triage Inbox 900 by 760, Today 680 wide, Cleanup 760 wide, Subscriptions 600 wide) and shrink to fit a 13 inch MacBook Air, where their content scrolls.
Fixed
- Opening Today, Cleanup, Subscriptions, Ask or Triage Inbox from the panel closes the panel, so it no longer covers the new window's buttons. The panel opens scrolled to the top every time, and a Welcome window left open after setup is done closes when the panel opens.
- The panel's Refresh and Open buttons and the Today card's Open Today button have spoken names, and the Today window builds only the rows on screen, so VoiceOver stays fast with dozens of bills.
- A message whose scam check could not be read is now treated as unknown, never clear, so Cleanup keeps it out of Ready.
- Clicking Archive on a Check row always archives, even with the old-bulk Trash option on.
- Embedded speech commands in an email subject can no longer make the Mac's voice pause or change.
- A "PayPal Security" style sender on an address with no registered domain is now flagged as suspicious instead of only "be careful".
- A calendar file made by "Create .ics instead" now strips every line break and control character from the title and note.
- A local build made without a Developer ID (`scripts/build-app.sh`) launches again: it is no longer signed with the hardened runtime, which refused the bundled Sparkle framework. Release builds are unchanged.
Security
- No new network destinations. Today, Cleanup, the scam check, Subscriptions and Calendar read only what is already on this Mac. There is still no one-click unsubscribe request.
- Cleanup never deletes: it archives, and Trash is a move you must turn on. The weekly schedule prepares a plan and never moves mail.
- Calendar and Reminders access is asked only when you click Add, never at launch. Events are write-only, so MailBridge cannot read your calendar. The app now carries the Calendars permission that macOS requires for this.
- All five new assistant tools are locked after the trial like the rest. `stop_sender` always waits for your click in a dialog.
- The files MailBridge keeps for these features (cleanup plan, stopped senders, trusted senders, hidden Today items, subscription amounts) are private to you, hold no email subjects or bodies, and are written atomically.
0.6.4
Changed
- Connected assistants are asked to start any answer that used MailBridge with one short line, *Via MailBridge*, so you can tell which answers came from your mail.
- Every MailBridge tool result now opens with one short line, such as "MailBridge · 6 emails found" or "MailBridge · read 1 email", before the data. Scripts that read the JSON should take the last text item of the result.
Removed
- The Mac notification for each change an assistant made, its Undo button and the panel checkbox for it. Changes are still listed under Recent activity in the panel, with Undo for a minute.
0.6.3
0.6.1 and 0.6.2 were never published, so coming from 0.6.0 you also get everything listed
under them below.
Fixed
- Undoing an archive, move, junk, not junk or trash right after it happened could lose the email on IMAP accounts such as Yahoo: Mail later put it in Recovered Messages, off the server. Undo now waits until Mail has finished the move on the server (a few seconds at most); if it has not, it says "Mail is still moving it to the server. Try Undo again in a few seconds." and Undo stays available. A new move of an email still being moved waits too.
Security
- Taking an email out of Junk now always waits for your click when the Ask window or a connected assistant asks for it, even for one email, so a crafted email cannot get an assistant to move phishing into your Inbox. Not spam in Triage Inbox still acts at once, because you picked the row yourself.
- When MailBridge cannot tell whether an account is Gmail or Google Workspace, it now treats it as one and refuses moves into a folder there, the older move_message tool included, since Gmail only adds a label and leaves the email where it was.
- A move that Mail runs but MailBridge cannot see leave its mailbox now says it could not confirm the move, with no undo, instead of saying it moved.
0.6.2
Added
- Connected assistants (Claude, Codex, Cursor and others) can now do what you do in Mail: mark read or unread, flag, archive, move to a folder, junk, not junk or trash, for one email or up to 200, with undo_last_action for a minute. One email changes at once; more than one, and anything going to Junk or Trash, opens a MailBridge dialog on your Mac that lists each email, and nothing changes until you click. There is still no permanent delete.
- Every MailBridge tool is now titled "MailBridge · ..." in your assistant, and every change starts with "MailBridge: ..." so you can see MailBridge did it.
- Recent activity in the panel lists what assistants changed, with Undo for a minute. A notification names the assistant ("Codex archived 3 emails through MailBridge."); a checkbox turns notifications off. Changes from the Ask window are listed but never notify.
- Ask can move mail to a folder and take mail out of Junk, and moves now work for mail in Archive, Sent or Gmail's All Mail; undo returns it where it was.
- Not spam in Triage Inbox also takes the email out of Junk in Mail when Mail had filed it there.
- Select emails in Triage Inbox and act on them in Mail at once. Click, Command-click, Shift-click, Command A or a section's Select all, then Read, Unread, Flag, Archive, Junk or Trash. Hover a row for the quick actions, or right-click it for all of them. The change happens in Mail, so you never redo it there. Undo stays for a minute, and any email that could not be changed is listed with the reason. There is still no permanent delete.
- Right-click a row to move it to Needs action, People, Updates or Bulk, or mark suspected spam as not spam. The email moves right away and MailBridge remembers the sender on this Mac, so the next sort puts their mail there too. Forget My Correction undoes it.
Fixed
- On Gmail, a move to a label is refused with the reason and "use archive instead". Mail only added the label and left the email in the Inbox, and undo could not take the label off.
- Undo of a move finds the email by MailBridge's own id, never by a header a sender could copy.
- A move can no longer reach Trash, Junk, Drafts or Sent through another spelling of their name.
- LinkedIn and other social network messages from a person ("Roberta just messaged you") now sort to People instead of Bulk.
- No-reply notices that were landing in Bulk now sort to Updates: account and data notices, legal notices, TestFlight and build emails.
- Declined payments, overdrawn or negative balance, insufficient funds and margin call notices now sort to Needs action.
- Pressing Not Junk on an email in Mail now always takes it out of Suspected spam, even when an earlier sort had called it junk.
- The on-device model no longer calls a person's cold sales email junk.
0.6.1
Changed
- Voice answers voice. Ask a question out loud (the mic, or Talk mode) and the answer is spoken. Type a question and the answer stays on screen, with no voice at all.
- The speaker button in the Ask window now mutes spoken answers. It is on by default; each answer's Read aloud button still reads any answer you pick.
- "Flag the BA email" now works when search found it in Archive, Sent or Gmail's All Mail. You can flag it or mark it read or unread there; moving it out of those folders is not offered yet.
Fixed
- When the assistant searched twice for one question, two emails could open and two lines were spoken. Now at most one email opens and one line is said.
- "Here's your reply to ..." is said only once the draft is saved or the send dialog is opening, never when the request was refused.
0.6.0
Added
- Search all past mail. Ask "find my BA case" and MailBridge looks through every account's mail of any age by subject, sender and preview text, not just the last few days of the inbox. Trash, Junk and Drafts are skipped.
- One match opens in Mail right away. Several are listed under the answer with date, sender and subject; double-click one, or press Return, to open it.
- Connected assistants get two new tools: `search_mail` and `open_message`.
Changed
- Shorter voice lines. MailBridge repeats what you asked ("On it, searching for ..."), says what it found in one line, and reads one headline sentence of other answers instead of a list. Before a reply it says "Here's your reply to ..."; only your click in the send dialog sends.
- The found line is said the moment the list appears, not after the assistant's written answer.
Fixed
- Stop silences the voice too, and pressing Return on a new question stops the last answer being read, the same as clicking Ask.
0.5.5
Added
- Antigravity has its own Connect button. Google moved free and Google One accounts from Gemini CLI to Antigravity in June, and Antigravity keeps its MCP servers in a different file (`~/.gemini/config/mcp_config.json`), so the Gemini CLI button never reached it. MailBridge adds itself to that file and keeps everything else in it. The Antigravity app, Antigravity IDE and the `agy` command all read it.
- After connecting Antigravity, the Full Disk Access card names the Antigravity app or the terminal you run `agy` in.
Changed
- The Gemini CLI button stays, for Code Assist Standard or Enterprise and paid API key users.
- Permission error messages now name Antigravity among the apps that may need access.
0.5.4
Changed
- Triage Inbox scans of 250, 500 and 1,000 emails now work with Jev off. The built-in rules sort those on the Mac; the local model still sees at most 6 emails per scan that the rules cannot place, and the rest stay Unsorted.
- The panel's update button now reads "Check for Updates…".
Fixed
- On a Mac with more than one display, the menu bar panel sizes itself to the display it opens on, not the display with the active window.
- Pressing Ask again for a blocked microphone or speech permission no longer freezes the app while macOS resets the permission.
0.5.3
Added
- Built-in sorting rules that run on the Mac with no model and no network (`TriageRules.swift`). They read what Mail already keeps: the unsubscribe and List-Id headers, Mail's junk flag, whether you wrote in the thread or to the sender before, whether you already answered, the sender's address, the subject, and Mail's own categories where macOS has them. Rows marked "Rule". Without Jev they place about 85 to 93 of the newest 100 inbox messages; only the rest go to the local model, and then to Unsorted.
Changed
- Triage order is now: cache, Jev (ticked accounts only, sends exactly what it sent before), the rules, then the local model. A confident Jev answer still wins for ticked accounts; an unsure one now meets the rules before the local model.
0.5.2
Native panel redesign (Liquid Glass controls, quiet disclosures, compact
assistant details, clearer Jev triage) plus site conversion and analytics
fixes from the 2026-09-27 launch UX and native candidate audits.
Added
- Native Liquid Glass panel controls with an older-Mac fallback (`NativeControls.swift`).
- Quiet setup and assistant disclosures, more compact assistant detail rows.
Changed
- Panel layout reworked for clearer Jev triage presentation (`MailBridgeApp.swift`, `NeuStyle.swift`).
- Site CTA copy simplified for clearer conversion paths; lead storage verified end to end.
Fixed
- Menu bar panel no longer flickers on open, stays pinned under its icon, is 460pt wide and fits small screens.
- Email row hover highlights the full row without moving anything.
- Sorting shows progress in the toolbar instead of covering rows.
- Secondary, warning and error text meet about 5:1 contrast; body text is 13pt or larger.
- Waiting on you and Waiting on them fold at 6 rows with Show N more.
- Connecting Codex, Claude Code or Gemini installed through npm works when MailBridge is opened from Finder.
- After connecting, the app says which app also needs Full Disk Access.
- Welcome no longer gets stuck when Mail has never been opened; Mail and System Events permission errors say what to do.
- Exchange and POP accounts are labeled not supported yet instead of showing an empty inbox.
- Zero Mail accounts shows what to do instead of Ready; a moved app shows Reconnect.
- Move to Applications clears quarantine; translocated copies are never written into assistant settings.
- Claude Code reconnect never loses a working entry; a broken Claude Desktop config gets a clear message and a backup.
- Destructive actions ask first; keyboard shortcuts, VoiceOver labels, Reduce Motion and Increase Contrast fixes.
- Links in local assistant answers are shown as plain text.
- Closing Welcome with the close button counts as Done.
- Blocked browser storage no longer breaks CTA attribution or immediate event flushing.
- Copy-install tracking and analytics failure reporting corrected.
0.5.1
Changed
- License checks now refresh during use, so a long-running session stays current.
- Invalid or revoked keys show a clearer explanation.
Fixed
- Billing reliability fixes. Seven-day trial and optional extra day are unchanged.
0.5.0
Added
- Ask window living orb that glows with your voice; click Talk, ask out loud, and MailBridge states what it is checking once, then reads a short highlight of what matters most, with the full answer on screen. Stop and Skip are always available.
- Welcome window that walks through setup in three steps.
- Gemini CLI as a one-click connector, joining Claude Desktop, Claude Code, Codex and Cursor; each connected assistant shows when it last used MailBridge.
Changed
- Triage Inbox puts mail needing action first and is easier to read, with a plain statement of what Jev sees and what never leaves your Mac.
Fixed
- Many layout, reliability and permission fixes.
0.4.1
Added
- MailBridge can read answers aloud with installed premium and enhanced Mac voices.
- Daily check for signed updates, with a manual check in the menu bar.
0.4.0
Added
- Jev Triage phase 2: a Triage group between License and Mail with an opt-in switch (off by default), a field for your own TypeSafe key, a per-account checkbox, and a receipt counting what left the Mac, read from the same file the decisions are cached in (`triage.json`).
- "Waiting on you" ranking across the panel, `digest` and `waiting_on_you`: cache first, Jev for ticked accounts while the switch is on, the local Ollama model with the body (loopback only) for the rest, six per digest.
Fixed
- Phase 1's parser read the wrong response shape (TypeSafe nests answers under `answers`).
0.3.6
Added
- MCPB desktop extension (`mcpb/`) for the Anthropic directory; every tool carries a top-level title.
- Site comparison table states the no-token angle. Raycast registry entry drafted.
Removed
- Vercel Web Analytics script (was never on and would bill per event on Pro); the growth database is the metric source.
0.3.5
Fixed
- Seat-binding fix, one-click unsubscribe, the order webhook and the macOS 26 dictation engine, committed earlier and deployed in this release after a predeploy audit (one P0 and five P1s) was resolved.
Added
- `scripts/growth-probe.sh`: hostile probes of the growth database and the site functions, now a standing release gate.
0.3.0
Removed
- Free-reads tier. A 7-day full trial, one extra 24 hours, then every tool refuses.
Fixed
- Keys are now checked against MailBridge's own store and product, closing a hole where any Lemon Squeezy key unlocked the app.
0.2.0
Added
- "Ask your Mac": a local model (Ollama, qwen3:8b recommended, any tool-capable model on disk selectable, cloud models never listed) answers questions about the mail through the same tools and the same send dialog as every connected assistant.
- Universal bundle, so Intel Macs are covered by the same DMG.
0.1.3
Added
- License gate sealed: a hand-typed `config.json` no longer opens paid tools; the helper re-reads the record on every call. `scripts/license-probe.py` is the standing gate.
- Codex CLI as a fourth connector, proven from a real `codex exec` session.
- `scripts/release.sh`: one-command notarized release.
Changed
- App icon redrawn on the macOS icon grid; also used as the favicon and navbar mark.
- Cursor button states when Cursor is not installed.
0.1.0
Added
- First public release. Lemon Squeezy product live ($39 one-time, license keys, 3 activations), site deployed to `mailbridge.devxgroup.io` on Vercel, DMG download with range requests, activate page.