Skip to content

0.2.0 - 2026-10-07

Choose a tag to compare

@github-actions github-actions released this 08 Oct 05:45
9610788

Release Notes

Added

  • (gui) Wayland app id and a Linux desktop entry (#34)
  • (daemon) one background daemon owns sync and IMAP; GUI, CLI and MCP are clients (#16)
  • (mcp) MCP server with scopes, account filter and host install (#15)
  • (gui) Backspace deletes on macOS
  • (gui) Catppuccin Mocha and Latte palettes, coloured rows and the window icon
  • (gui) activity and trash views with restore, and a key help window
  • (gui) rules view with proposals and switches; react to rules.toml and config.toml edits
  • (gui) search the account from the list with /
  • (gui) show the message body with safe links, attachments and mark-read after a second
  • (gui) archive, delete, move, read and flag with optimistic rows and rollback
  • (gui) show per-account activity, errors and history in a status bar with a theme switch
  • (gui) list threads with keyboard navigation, expansion and multi-select
  • (gui) add postbode gui with the account and folder tree
  • (config) add [ui] theme and save_theme that keeps comments
  • (rules) add set_enabled for toggling a rule in place
  • (engine) run accounts behind a lock and route commands to them
  • (sync) drain commands between passes and wake IDLE for them
  • (sync) add commands, command results and activity events
  • (sync) fetch envelopes in resumable 500-message chunks with progress checkpoints
  • (store) add initial_uid_next and thread summaries

Fixed

  • (cli) show times in local time, from a shared time module (#58)
  • (gui) explain startup errors in a window (#49)
  • (config) refuse password = { keyring = false } (#57)
  • (service) pass POSTBODE_HOME on to the service's daemon (#55)
  • (daemon) start without accounts (#47)
  • (daemon) deliver a client's own action result once (#46)
  • (gui) readable bold text in the dark theme (#44)
  • (daemon) sync every account when rules.toml changes (#45)
  • (sync) ghost rows and overwritten backups, found by model-based sync tests (#37)
  • (rules) refuse blank and overlong names and folders (#32)
  • store Homebrew's stable opt path for the daemon service and MCP hosts (#29)
  • (gui) start the read delay when the body text appears
  • (gui) keep the cursor on its thread when the thread gets new mail
  • (gui) a click on the shown message opens it
  • (gui) migrate the stores before the sync threads start
  • (gui) open rules.toml in a text editor and log a failed opener
  • (gui) offer a search hit's other folders in the move picker
  • (gui) visible pane focus, cached body text and safer attachment names
  • (gui) mark mail read only after the user opens it
  • (gui) keep the cursor on its message across reloads
  • (gui) visible focus ring on text fields and readable light-mode selection
  • (gui) never link a bare scheme and keep the read timer across a fetched body
  • (gui) stack optimistic edits per row and explain why actions are off
  • (gui) keep progress ticks out of the history and errors on the line while offline
  • (gui) keep egui widget focus out of the way of list keys
  • (sync) only count synced mail as fresh so a moved-in row cannot hide mail below it
  • (sync) mark mail in folders without rules as seen so a later body rule skips it
  • (sync) end a full pass on a lost connection instead of skipping every folder
  • (sync) clear the wake flag with acquire ordering before draining commands
  • (engine) join sync threads on drop and report a failed spawn per account
  • (sync) log a UIDVALIDITY change found between chunks
  • (sync) persist which mail the rules have seen so aborted passes still notify
  • (sync) stop draining after a lost connection and drain before INBOX-only passes
  • (sync) return the real lost-connection error and test command failure paths

Other

  • (gui) repaint from the client's subscription, not a relay thread (#52)
  • (sync) move the sync tests into sync/tests.rs (#64)
  • build Message and AccountConfig fixtures from their defaults (#62)
  • (daemon) end the own-completion test at its own account's sync (#63)
  • share the action, restore and approve steps of the CLI and MCP (#51)
  • (store) drop the unused Message-ID index (#61)
  • say what tokio is for in Cargo.toml (#60)
  • one flag check and one source of account defaults (#59)
  • (mail_ops) a move no longer claims to return the new uid (#56)
  • (daemon) keep test-only client and sync code out of the binary (#50)
  • (actions) drop fetch_bodies' unused progress callback (#48)
  • describe sync and restore as the daemon does them (#43)
  • (cli) print rule errors without faking an event (#54)
  • (daemon) make the two timing-dependent daemon tests deterministic (#53)
  • (gui) snapshot tests for the main views (#40)
  • property tests for message, rules and wire parsing (#36)
  • generate app icons from icon.svg with packaging/icons.sh (#33)
  • (mcp) sweep every tool with junk arguments (#31)
  • deny unwrap, expect and panic in shipped code (#28)
  • simplify gui selection, store folder columns and sync pass state (#14)
  • (gui) say in the key help that delete from Trash is permanent
  • describe what delete does and what the Trash view lists
  • describe the mail window and the [ui] theme
  • link the docs site and community files from the README (#12)
  • sharpen crate keywords and forbid unsafe code (#9)
  • publish the mdBook docs to GitHub Pages (#5)
  • add peach-and-mint terminal logo and app icon
  • (engine) make Engine::start infallible
  • (engine) retry taking an account lock that a concurrent spawn briefly inherited
  • (sync) a command sent while offline runs after reconnecting
  • (mail_ops) split fetch_new into search_uids and fetch_envelopes

Install postbode 0.2.0

Install prebuilt binaries via Homebrew

brew install pataar/tap/postbode

Download postbode 0.2.0

File Platform Checksum
postbode-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
postbode-x86_64-apple-darwin.tar.xz Intel macOS checksum
postbode-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
postbode-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum