All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
v0.8.13 - 2026-01-04
This release:
- fixes severe issue when calling gettimeofday with a tz arg that may result in segfaults
- fixes AUTHENTICATE use in imap backend when SASL-IR is not available
- adds other misc fixes
- updates various dependencies to newer versions
- adds tab_width option to specify how many spaces a tab character should occupy
- adds support for mbox files with meli view /path/to/file command
Contributors in alphabetical order:
- Manos Pitsidianakis
- nrxr
d668e98dAdd tab_width option for terminal drawinga588a4a3melib/email: allow mbox byte content in Mailin PR#645"tab chars"
800f751cmelib/utils: remove tz arg in gettimeofdayin PR#639"melib/utils: remove tz arg in gettimeofday"faac9f13melib/imap: fix AUTHENTICATE when lacking SASL-IRin PR#628"melib/imap: fix AUTHENTICATE when lacking SASL-IR"a4386827meli/terminal/cells: Fix Display impld5916c77meli/terminal/cells: fix box drawing logiccdb02110compose: fix reply-to-all + multiple Reply-Toin PR#636"compose: fix reply-to-all + multiple Reply-To"5d538da7melib/imap/parser: unescape quoted stringsin PR#623"fix-imap-unescaping-quoted-strings"e35c6304listing: don't panic if updated env was deletedc5fcd7b1melib/maildir: use canonical paths for hashes401f774cmeli/state: properly clean float message box area5aecd639melib/email/parser: fix BytesExt::replace
2ad65c0fmelib/email/parser: inline BytesExt methods7d057ae0Update MSRV to 1.80.001217f51Update "notify" crate to 8.x.x33929949Update bitflags to 2.9.xd4d0f64dUpdate native-tls to 0.2.14c8a78303Use minor version for libc dependencyf36c81dfUse minor versions for serde dependencies0f3214aaUpdate nix to 0.30db13f163melib: derive Default for NetworkErrorKindin PR#651"test_cli_subcommands: remove backspace assert"bef124afUpdate smallvec to v1.15.1044e11d5Update smol to v2.0.297d9c4f3Update serde to v1.0.2280f8bc91fUpdate polling to v3.7.4574afcd1Update socket to v0.6.1b75b1145Update indexmap to v2.12.0f5622537Update rusqlite to v0.37.05a29a611Update itoa to v1.0.151465b93fUpdate libc to v0.2.177dc3d7a29Update flate2 to v1.1.5240639c5Update futures to v0.3.31c1c29b5eUpdate uuid to v1.16.0c0346875Update async-fn-stream and async-io86416099Update msrv to 1.85.0in PR#652"Update a bunch of dependencies"90b580afmeli/Cargo.toml: Relax assert_cmd version depin PR#654"meli/Cargo.toml: Relax assert_cmd version dep"
d2c16678Remove unused_attributes2df58d5dmelib/mbox: fix clippy::result_large_err lint5dae3733Fix clippy::uninlined_format_args warnings46808e0dmelib/gpgme: allow unnecessary_transmutes lint in bindingse5a7276emelib/error: homogenize error messagesin PR#631"Minor fixups"cd42abe3Fix 1.89.0 lints29fd4acbMove common deps to workspace Cargo.tomlda53143dmelib/jmap: silence clippy::struct_field_names65024d13meli/terminal: allow unreachable_code after fork1fc0c78aFix clippy::large_enum_variante9c567cdFix clippy::struct_field_names91e64685Fix clippy::unbuffered_bytesa1e15157Fix 1.90.0 Clippy warningsin PR#638"update-deps"2978f7bbFix clippy::use_self1ec27b8emeli/sqlite3: fix rebuilding trace message
2acee637docs: correct sample configs for send_mail optionin PR#622"docs: correct sample configs for send_mail option"fe94c08bdocs/meli.conf.5: fix .It without preceding .Bl2de6e1aedocs: remove empty input line in manpages17d3b564docs: fix meli.conf.examples.5 Nm valuein PR#634"man-fixes"
0500b33fmelib: log to stderr for binary testse6c63c02melib/imap: fix test_imap_watch490d4042melib/tests: use 127.0.0.1in PR#635"melib/tests: use 127.0.0.1"4e83b9d9melib/tests/jmap: add debug print in assertin PR#632"fix-box-rendering"d53046d9melib/email/parser: add test for BytesExt trait89a17103test_cli_subcommands: remove backspace assert
9577c10bAdd tag:msrv annotation975ef5fbAnnotate cstr literal use with ref:msrve7c0948aRun cargo-sortin PR#653"fixes"
5fa7a24dci: update cargo-nextest version to 0.9.996310ac90ci: fix Makefile.lintin PR#629"ci: update cargo-nextest version to 0.9.99"d9201664CI: check melib MSRV before melib58c3080ci: bump cargo-msrv to 0.18.4ed8b8576ci: save rust toolchain cache on lints workflowc7790ea4ci: fix off-by-one error in check_dco.shin PR#633"ci: fix off-by-one error in check_dco.sh"
v0.8.12 - 2025-04-21
This release fixes compilation under macos which was broken with the previous release, v0.8.11.
a2bc4420Fix compilation under macos
v0.8.11 - 2025-04-21
This is mostly a fixups release.
Contributors in alphabetical order:
- Guillaume Ranquet
- Manos Pitsidianakis
- n4n5
Highlights:
-
2870624dcontacts: add notmuch address book supportin PR#551"contacts: add notmuch address book support"The new
notmuch_address_book_queryaccount setting defines a query passed tonotmuch addresscommand to import contacts into meli.Contacts are parsed and imported read-only.
Example query to import all contacts in the past 6 Months:
notmuch_address_book_query = "--output=recipients --deduplicate=address date:6M.."
-
IMAP connections now use connection pools to prevent an on-going operation blocking other operations. This is because IMAP connections are stateful and we cannot re-use a single TCP connection for parallel operations. The
use_connection_poolaccount setting can be used to disable this behavior. -
Add setting for UI notifications (as opposed to system notifications).
These are the notifications that appear as a floating dialog on the UI.
The new
notifications.ui_notificationssetting has three possible values:show(default)hidesystem(show them as system notifications)
-
Fixed invalid terminal behavior by turning line wraparound mode off.
-
Replying to self now sets e-mail receiver to previous recipients instead of self.
-
IMAP now supports overriding server subscriptions in configuration.
-
Composer now shows attachments after headers, making them more visible.
-
mboxparsing is now more rigorous by not allowing mixed format behaviors and requiring a given format to parse. -
Remote account watching has been refactored to be more fault-tolerant and hiding errors from user if retrying is successful.
2870624dcontacts: add notmuch address book supportin PR#551"contacts: add notmuch address book support"bb4fc023melib/imap: add ConnectionMutex struct632a1db1melib/imap: add conn pool to ConnectionMutex919fd00cmelib/error: hardcode native-tls error check5bcd62cdwidgets: don't add padding by skipping cols in FormWidget9417f3d0melib/error: add TLSConnectionFailed kind variantin PR#578"Misc fixes"c5c56b59notifications: add DisplayMessageBox::arm()3e5fe792conf: add notifications.ui_notifications setting6c1194a5notifications: add DisplayMessageBox::deactivate()4a03c667notifications: add DisplayMessageBox::show_{prev,next}()9f2e4384notifications: make update_xbiff() a methodin PR#581"Addnotifications.ui_notificationssetting to hide UI notifications or show them as system notifications"009c5379melib/imap: add FIXME comment about imap-codec26cb414dmelib/jmap: add serde(default) to Identity::idf9fa10f8melib/jmap: s/Id::new_uuid_v4()/Id::new_random()48ae7687melib/jmap: add serde(default) to Identity::may_delete99c0f5a3melib/jmap: Add State::new_random() method7a1ff0d2melib/notmuch: add FFI config types bindings335f0229melib/notmuch: add notmuch_database_reopen()e8420862melib/notmuch: add Message::msg_id_str() methodc2b648afmelib/notmuch: add Message::find_message_by_path()5846c867melib/notmuch: impl From<NotmuchError> for Error648cf6abmelib/imap: add use_connection_pool conf optiondf19008dmelib/jmap: add session object to backend metadata3565f682melib: convert MailBackend::watch into a streame2ddbb7bmelib/maildir: switch backend.rs and mod.rs18812159melib/maildir: enhance filesystem/IO error metadatabc99dfa9melib/maildir: add ErrorKind::NotImplemented to unimplemented errors6d06da21melib/maildir: s/MaildirPathTrait/MaildirFilePathExt/55d9bb8dmelib/maildir: Add MaildirMailboxPathExt::validate_fs_subdirs()6c8bf721melib/smtp: add ReplyCode::value() method14f64167listing: don't forward events to self.component twicea5f9b3eclisting/offline: don't accumulate repeated messages28f3f5e2melib/error: add ErrorKind::is_disconnected()f5afcf77melib/imap: add support for LITERAL- extensionin PR#604"melib/imap: add support for LITERAL- extension"07603558composer: add custom_compose_hooks only once4a1dff4bshow error summary if not emptyin PR#586"show error summary"09467034themes: impl BitOr<Attr> for ThemeAttributec11bda5cBreak metadata json lines in account statuse6d115famelib/logging: manually redact http auth infoin PR#570"melib/logging: manually redact http auth info"778c4baamail/listing: restore selection when refreshing same mailboxin PR#571"mail/listing: restore selection when refreshing same mailbox"
30c599abMakefile: fix some minor logic/UX issuesin PR#559"Add some doc comments inmelicrate"1b300805pager: fix one-by-off error when drawing scrollbar5a02e81amelib/imap: fix ImapLineIterator splitting literalsd2b2253amelib/mbox: require MboxFormat for parsing5ffeb7c1tools: fix mboxparse binary compilatione12412f9melib/email: fix base36 conversiondb93e324melib: fixup TryFrom<&[EnvelopeHash]> for EnvelopeHashBatch implc3a93f91melib/jmap: Fix SetResponse struct definition8b374cacmelib/maildir: split create_mailbox_sync()6e09a7efmelib/datetime: parse RFC2822 date without secondsin PR#599"melib/email/parser: elaborate Address parsing errors"007628e3melib/tests/jmap: fix errata from RFCin PR#602"misc-fixes"7ee89450melib/nntp: fix error message typos1164f61dFix clippy::sliced_string_as_bytes752d3908melib: fix encoded-word encode and add testsin PR#612"melib: fix encoded-word encode and add tests"0cc52727melib/mailto: fix parsing header values with '?'in PR#613"melib/mailto: fix parsing header values with '?'"8307a5f0melib/tests: feature gate test_maildir_config0e1d9f00melib/imap: add FETCH items variants in RequiredResponsesin PR#580"IMAP fixes"e8e52bd1melib/imap: only process parsed untagged responsesd27e5d32melib/jmap: don't abort refresh if Mailbox has no email_query_statee0bac37aaccounts: don't return after exec refresh_commandin PR#597"conf/tests: flush config file to disk"4b5ad739terminal: disable wraparound modein PR#616"terminal: disable wraparound mode"
94d04023compose: s/attachments/attachment when # is 11207217ccompose: s/Option<AccountHash>/AccountHash in EditAttachmentsaa363be6utilities: respect scroll_{left,right} shortcuts in Form/Button widgets99f6b17bmelib/imap: retry IDLE with exponential backoff629e6938compose: don't pad EditAttachments area269c2cdbterminal/screen: Screen::resize*() optimizationin PR#568"mail/status.rs: restore AccountStatus scrolling"6e0502f0melib/imap: impl Default for ImapProtocol1cf11d11melib/mbox: update totals when fetchingin PR#591"melib/mbox: update totals when fetching"73102337melib/mbox: check for CRLF when parsing94f4bbd2melib/gpgme: allow unused_unsafe on std::env stuff930296d2melib/jmap: derive Clone for MailboxObjectfee3d758melib/notmuch: split symbol name in call!() macrod8f4bb7cmelib/imap: make keepalive at least 30 minutesin PR#592"misc-fixes"3c26c9bdmelib: impl From for BackendEventcb72e5cdmelib: impl TryFrom<Vec> for BackendEvent9e405c5amelib/maildir: validate fs path in list_mail_in_maildir_fs()f94adfddmelib/maildir: split MaildirPathTrait177e4928melib/maildir: log error instead of debug_assert!46e405f3melib/maildir: use async channel in watch()94a458famelib/maildir: return path in save_to_mailbox()9f83c0a8melib/maildir: calc MailboxHash from cache in watch()3887d999melib/jmap: impl Deserialize for Filter, Query3ccf499fmelib/jmap: impl Serialize for EmailObject6bf0844cmelib/email/parser: elaborate Address parsing errorse89ee209melib/nntp: increase tcp keepalive to 30 minsa67299ebmelib/nntp: set appropriate ErrorKind to errors5c9651c6melib/nntp: convert block comments to line592e06b1melib/nntp: retry fetch if disconnectedcdce705bmelib/nntp: try connect first before attempting operationse2e793d2composer: allow empty default header values1a3f6179melib/nntp: run rustfmt55e8b41ecomposer: use rfc5536 format for User-Agent value08e53da1composer: replying to self should reply to previous recipientscb47b212conf: impl DotAddressable for ComposingSettingsin PR#605"Misc composer stuff"9eba4c1fmelib/imap: BEGIN IMMEDIATE transactions2663c076melib/imap: support server subscriptions overridefd19cabdcontacts/editor: use AccountHash instead of indexe11ab834view/envelope: use Context's cmd_bufin PR#615"misc"6cd5bacdmelib/text: allow empty generated unicode tables22985e1bmelib/jmap: ser/de SetError manuallyin PR#594"JMAP fixups"ed1aca57melib/jmap: fix Get ser/dec9d1ae21melib/maildir: remove stream module83892e9dFix clippy::manual_ok_erra94ebd11accounts: check if online on watch errors37edaea6compose: rewrite to draw attachments after headers
6d998f54melib/backends: remove obsolete ReadOnlyOpef3313cemelib/contacts: fix formatting of a log::warn line2f0afd14melib/email/headers: add #[inline] to small methods2a46c970melib/backend: remove BackendOpf3470919melib/imap/connection.rs: remove unnecessary letd06f1882compose: rename Cursor to Focus5468835bmelib/email: move imap stuff to melib::imap module5e3c1a2fmain.rs: use unbounded channel for thread eventsin PR#565"Misc"483edecfmail/status.rs: restore AccountStatus scrollingfe362a14melib/imap: fix mailbox update logic on expungein PR#567"melib/imap: fix mailbox update logic on expunge"f3caea36mail/listing: don't move cursor to top when refreshingin PR#572"mail/listing: don't move cursor to top when refreshing"fe522f7aFix new clippy complexity lint warning55062fd4mail/listing.rs: forward unhandled eventse93704c8mail/listing.rs: fix y offset calc in menu cursor with collapsed9d3c2f81Rename ForkType to ForkedProcess21e19403types: replace ForkedProcess::Finished with UIEventa2b7f1ccstate.rs: rewrite State::try_wait_on_child()c9c125efstate.rs: refactor kill_child() into method0d780354state.rs: refactor try_wait_on_child() into methodc1e46c01state.rs: use ForkedProcess::{kill, try_wait} on State::dropea74055dmain.rs: try wait on all forked process on SIGCHLDin PR#579"Refactor handling of forked processes"26a86961melib/imap: remove unnecessary RequiredResponses constsb46e1311melib/imap: rename {EXAMINE,SELECT}_REQUIRED3dbeba1cmelib/imap: rename NO_REQUIRED to NO7272f8fetools: fix lints and compilationin PR#587"melib/mbox: check for CRLF when parsing"ee051a24melib/imap: allow lint on init_cache() arg4cdc1dbfmelib: move base36 to utils mod9d40e136melib/jmap: s/IdentityObject/Identity4c723d5cmelib/notmuch: remove Clone derive from Message2a7a8003melib/jmap: process destroyed ids in Email/changesin PR#595"JMAP fixups"25b582c9melib/maildir: Remove root_mailbox from MaildirWatch0cf72830melib/maildir: fix save_to_mailbox() error msgd7b3f57cmelib/notmuch: rewrite watching logicdae9ebd8compose: remove extra dot from dialog message0a3791ccmelib/email/parser: change ParsingError display9f53de4fcomposer: remove extra_identity_addresses from To:a23b3dbccompose.rs: fix compilation error without gpgmec9d46617Fix clippy::len_zero324dd969Fix clippy::literal_string_with_formatting_args63230603Fix clippy::double_ended_iterator_last4e99a6c1Fix clippy::needless_option_takein PR#611"compose.rs: fix compilation error without gpgme and clippy lint fixes"ccb5505bmelib/contacts: remove Contacts::{created,last_edited}f3348f33accounts.rs: Remove std module imports83b0e5afmail/compose.rs: remove duplicate field init6acdf521listing: move cmd_buf logic to Context0710822cstate: make Context children field take ForkedProcessf4289f3fscripts/rfc_to_rs_mdoc.py: reformat4021ab19version_migrations: use array in const assertsin PR#614"Misc"13551a02melib/accounts: add #[inline] attribute to methods2f265404melib/collections: add #[inline] to small methods
0cd0864fdocs: add more doc comments to version_migrations mod1f647155docs: add more doc comments to conf modc34465badocs: add more doc comments to utilities::widgets modbd461fa8docs: fix example in custom_compose_hooksin PR#561"docs: fix example incustom_compose_hooks"ce40bc5cdocs/meli.conf.5: describe what "notifications" entaild37df5a5docs/meli.conf.5: add missing "Optional" quantifierc3193324docs/meli.1: add manage-jobs commanda56b024adocs/meli.1: add manage-mailboxes command767ee791DEVELOPMENT.md: explain how to run CI checks locallyc0a1d154DEVELOPMENT.md: document DCO requirementin PR#583"Minor doc additions"875aee85README.md: update install instructions0d5dc707README.md: minor touch-upsin PR#590"README.md: update install instructions"8fc885d0README.md: mention matrix channelin PR#603"misc-fixes-minor"91677f50melib/email/headers: add documentation(s)816f3e41notifications: add missing DisplayMessageBox docs6ccbd574notifications: add missing NotificationCommand docs81429941melib/notmuch: add doc comments to Message methods407e8e6bmelib/smtp: add some rustdoc comments
1fa33cc3tests/test_cli_subcommands: purge subprocess envsin PR#574"tests/test_cli_subcommands: purge subprocess envs"1d1cf5femelib: add test_imap_watch()f632adaamelib: add test_jmap_refresh()67d082b5melib: add test_maildir_watch()84f31d73melib: add test_notmuch_watch()9679c80fmelib: add test_notmuch_refresh()in PR#582"ConvertBackend::watchfunction to returnStream"a69f4c4bmelib/smtp: add an SMTP transaction teste466d026conf/tests: speedup test_conf_theme_key_values()in PR#589"conf/tests: speeduptest_conf_theme_key_values()"e4957f8fconf.rs: do not run migrations in unit testsdc5bff8dconf/tests: flush config file to disk
220bdb62tools: run cargo-update
3c92dd6fCI: Trigger build/lint workflows when */tests/* change0d64e019ci: add --all-features flag to cargo-msrv checksf2f72c3fci: install notmuch dependencies for testing6be8c0c0ci: remove obsolete test exclusionin PR#600"melib/smtp: add an SMTP transaction test"
fba30f3cRevert "accounts: cancel any previous mailbox fetches"
v0.8.10 - 2024-12-06
Highlights:
- added
pipe-attachmentcommand - added sample scripts for using
melias amailtoscheme handler incontrib/ - fixed GPG encryption with libgpgme
Contributors in alphabetical order:
- Manos Pitsidianakis
- Matthias Geiger
5e77821fmail/view: add pipe-attachment commandin PR#540"mail/view: add pipe-attachment command"fa896f6bcontrib: add mailto: scheme handler scripts00ce9660melib/backends: add as_any/as_any_mut methods to BackendMailboxfd243fa5maildir: add mailbox creation testsde65eec3meli/accounts: add mailbox_by_path() testsin PR#535"Rework maildir mailbox path logic, add tests"6b363601melib/gpgme: impl Display for gpgme::Key
60c90d75melib/attachments: ensure MIME boundary prefixed with CRLF3433c5c3compose/pgp: rewrite key selection logicin PR#541"More gpgme/PGP fixes again"12de82e7melib/conf: fix mutt_alias_file not being validatedin PR#550"Remove sealed_test dependency"c8e055a7Fix version migrations being triggered backwardsin PR#557"Fix version migrations being triggered backwards"efab99fdterminal: check for NO_COLOR env var without unicode validation36a63e88melib/maildir: rewrite create_mailbox()fcab855fview: ensure envelope headers are always populatedin PR#538"view: ensure envelope headers are always populated"84564f44mailcap: don't drop File before opening itin PR#552"mailcap: don't drop File before opening it"
ed85da51Remove sealed_test dependency
03df2ac1meli/utilities: add print utilities for tests18e9d5c1conf.rs: impl From<melib::AccountSettings> for AccountConf1f2fec19Fix 1.83.0 lintsin PR#536"CI: Add action to check for DCO signoffs in PRs"192ecea2compose/gpg.rs: Fix msrv regression
4a61a4b8melib: include README.md as preamble of crate rustdocs80e53471BUILD.md: move melib specific stuff to melib/README.md91a17ecemelib/README.md: mention sqlite3-static featureb77a691bmeli/README.md: Add cargo features sectionin PR#549"Document cargo features in READMEs"91dc271dcontrib: add a README.md file2e900be6contrib/README.md: add section about oauth2.py07812d2ccontrib/README.md: elaborate a bit about mailtoin PR#545"Add external mailto: handler support via scripts in contrib"e784e8d2scripts: add markdown_doc_lints.py
77629851CI: Add action to check for DCO signoffs in PRsf944ebedCI: Add error msg when cargo-derivefmt check failsd49344f9CI: Move MSRV checks from manifest to lintsin PR#553"ci-workflow-fixes"ece6bfc2CI: non-zero exit if cargo-derivefmt-* targets fail2257b91bCI: add actions/cache stepsin PR#554"CI: add actions/cache steps"a1c9524fCI: fix check_dco.sh not working with other reposin PR#555"CI: fix check_dco.sh not working with other repos"
v0.8.9 - 2024-11-27
This is mostly a fixups release.
cf16bf65meli/sqlite3: add tests for reindexinga389772daccounts: suggest tips on mailbox_by_path error
25f0a3f8conf/terminal: fix serde of ProgressSpinnerSequencec375b48eterminal: fix Synchronized Output response parsed as inputin PR#523"terminal: fix Synchronized Output response parsed as input"b7e215f9melib/utils: fix test_fd_locks() on platforms without OFD supportin PR#524"melib/utils: fix test_fd_locks() on platforms without OFD support"25c32a6bmeli/docs/meli.conf.examples.5: fix .Dt macro arguments18ae5848meli: fix reindex of previously indexed account with sqlite3 backend13e917d9Fix some compilation errors with cfg feature attrsin PR#531"accounts: suggest tips on mailbox_by_path error"8c176d38contacts/editor: fix crash on saving contactin PR#532"contacts/editor: fix crash on saving contact"fb5a88c2melib/collection: ensure mailbox exists when inserting new envelopesin PR#529"Small account stuff fixes"
7f8f1cf6melib/gpgme bindings renewalin PR#533"melib/gpgme bindings renewal"9b7825bcUpdate futures-util dep, remove stderrlog dep4be69360Remove obsolete "encoding" dependencyin PR#530"Remove/update obsolete dependencies"
5af6e059meli/accounts: use Arc<str> for account name567270e1melib: use Vec instead of SmallVec for search results2bd8d7baconf/tests.rs: Rename test functions to follow path convention
97242482meli/docs: add meli.conf.examples to CLI and tests0f096338README.md: Update ways to install, add gitlab mirror linkin PR#528"Integratemeli.conf.examples.5into CLI and build, also update README with installation instructions"
630df308CI: Add arm64 runners in job matricesin PR#527"CI: Add arm64 runners in job matrices"49ecbb56CI: .gitea/Makefile.lint: check if nightly exists
v0.8.8 - 2024-11-19
WARNING: This release contains a breaking change in the configuration file: a global composing option is not required anymore. Now, composing options are per account.
f3d59ebfaccounts: add force: bool arg to load()33836a32melib/error: add WrapResultIntoError helper trait3216324cmelib/mbox: impl FromStr for MboxFormat94f345d7Implement mailbox renaming command8d45ecc1melib/error: add related_path fieldbf3a4c5derror: add ErrorChainDisplay struct for better output6be5fd26themes: add inheritance, and use themes when initializing grids0ee7fc4dPrint clickable path links with subcommandsaed7a60fsamples: add ibm-modern themein PR#469"conf-refactor"4bbf446butils: add unix file locks module6fbf569fsearch: add Message-ID, and other header search support26d33ce5address: add separator argument to display_slice()32e3be8bsqlite3: add optional directory field in DatabaseDescriptiondbbb1529Add missing ComponentUnrealize handlers87d2cec9Add sealed_test dependency604ae111Impl From<&[u8]> for u64-based hash newtypes8205c7f5melib: add JsContact modulein PR#479"view-filters"2af5c8b6terminal: add QuerySynchronizedOutputSupport WIP5c4faea5Add transpose shortcut and tests for text fielde9b87b2emelib/maildr: add rename_regex config option8f0e1d66Add human-readable identifiers in temp draft files601e3711Add vCard exports719e2eb2listing: add customizable view divider like sidebar'sin PR#485"listing: add customizable view divider like sidebar's"ba3ad8edlisting: always show mail_view_dividerin PR#486"listing: always show mail_view_divider"46b2c3b1Add listing.thread_layout config flagin PR#487"Add listing.thread_layout config flag"aaea3a5anntp: add timeout conf flagd4636bccnntp: interpret IMPLEMENTATION cap as metadata5f120309nntp: add select_group_by_name() method9a9cd03dnntp: add NntpType::article_message_id() method7cfcbb7aAdd patch_retrieve modulein PR#489"Addpatch_retrievemodule"c82341f3File: try trimming filename if ENAMETOOLONG23395491compose/pgp: add encrypt_for_self flag0b6988b7gpgme: add always trust flag to encrypt opbe3b3ef8melib/utils: add fnmatch(3) interface32f7e50fAdd version migration supporta6c7621cjscontact: add {created,updated} fields39592ad0jmap: implement changing mailbox subscriptionca7eb792jmap: Implement deleting emailb8e841bbjmap: implement mailbox deletion77e7c3dfAdd support for signaturesin PR#500"Add support for signatures"dba5b68bcomponents: add prelude modulef656aff0composer: add discard-draft command789a88b2shortcuts: add select_motion equivalent to select_entrycb2dd5delisting/threaded: impl missing select functionalityin PR#514"listing/threaded: impl missing filter functionality"c1901c96melib/email/compose: add Content-Type header for utf8 text plain attachments0e77bd5bmelib/email/compose/tests: add multipart mixed attachment testin PR#515"Fix incorrect multipart/mixed rendering when sending text with attachments under certain circumstances"7b1be139melib: make mbox backend build by default7ff1db14manage-mailboxes: add delete optionin PR#520"manage-mailboxes: add delete option"
6b05279aUpdate time dep to fix 1.80.0 breakage2084ce93Fix invalid cfg feature combinations for macosin PR#471"Fix invalid cfg feature combinations for macos"4707ec9ftext/line_break: fix ReflowState::{No,All} break86e25bc0sqlite: fix database reset sequence4d4e189cimap: code style fixups335cca88listing: fix highlight_self flag off by one errorin PR#477"listing: fix highlight_self flag off by one error"80915832mailto: rewrite parsingin PR#480"mailto-rewrite"65b32e77subcommands: Fix wrong help info in imap-shell promptd0c81749conf::data_types: minor style and error msg fixups7dbee81dview: fix nested filter jobs never being completedf78884cemelib/nntp: fix an ancient FIXMEe0cfe8e4Fix compilation for 32-bit architecturesin PR#492"Fix compilation for 32-bit architectures"1b708a99melib: attempt FromSql from Blob for u64 hashin PR#506"melib: attempt FromSql from Blob for u64 hash"6c315580compose: fix add-attachment-file-pickerc6e9e424listing/threaded: impl missing filter functionalitye7a164deConfigure some gpgme stuff under gpgme feature
8e300c46melib/jmap: call req text(). asap374ea8baaccounts: extract tests to tests.rs file7020cd66meli: derive PartialEq/Eq for some types69065859accounts: split mailbox to enum out of JobRequest14f2d911melib/backends: change RefreshEvent field decl order56b1bf28meli/accounts: batch process refresh events6513c188melib/imap: on sync only update exists/unseen if loadeda8dad317melib/imap: renamed cache module to sync9e9c04a3Update indexmap dep to 2.3.02b3828d8Update futures dependency to 0.3.3084812941melib/jmap: do not serialize server-set fields in Set createeda6620cjmap: detect supported Auth schemes on connectin PR#467"jmap: detect supported Auth schemes on connect"35f12b15embedded: prevent double-close of pty fdin PR#468"embedded: prevent double-close of pty fd"0bed37b5melib: use IndexMap in conf fieldsf3ad824dmeli: use itoa to format offset indices in listings1cfb0b15Update nix dependency to 0.29.09c1b4424jobs: make cancel flag an AtomicBoolf06a9072jmap: fetch mailbox with receivedAt descending sort53b0d035accounts: cancel any previous mailbox fetches60833ee5accounts: make mailbox available as soon as possible28f45805mail/view: try cancel env fetch on Drop2bb9b20dmail/view: do not highlight reply subjects in threada4f344b3Use create_new to avoid overwriting filesd6197e8blisting: clear count modifier on Home/Endb798ca4aimap: return cached response in {select,examine}_mailbox()151fcebeimap: use BTreeMap for message sequence number storee48fcc33imap/protocol_parser: also populate other_headers1e11c29cimap: resync cache first when fetching a mailbox1779ad5dimap: interpret empty server response as BYE2d320688mail/listing: pre-lookup conf values4e967280nntp: don't needlessly select group before ARTICLEin PR#473"Various"67b88d24Update polling dependency from "2.8" to "3"14d74f36Update smol dependency from "1" to "2"b950fceamelib: Use IndexMap in VCard32acc347view: show signature verification properlyac1349b8command: alias pwd to cwd7c056e4bRetry loading mailbox on recoverable errorin PR#481"Retry loading mailbox on recoverable error"cbafdcf7terminal: color report WIP4a26cfa1logging: disable tracing from output90974e7cimap: cache miss if row env hash != row hash4c44c440melib: #[ignore] shellexpand testsdc9e91dfcontacts/editor: Use FormButtonAction in formc0511901Update debian/meli.{docs,examples} and Cargo exclude592ce159mbox: use Uuid::nil() as default envelope from6eeb4571nntp: make all fields publicb27bac7fnntp: use DEFLATE when available by default128b959fnntp: prepend Newsgroups header if missing on NntpType::submit()a69122f8pgp: use default sign/encrypt keys when no keys are selectede6fa7093view/envelope: trim headers values to 3 lines maximum7f0157a9compose: make dialogs bigger in heightin PR#490"pgp: use default sign/encrypt keys when no keys are selected"e032acfaview: pass filtered body to Composer as reply textin PR#493"view: pass filtered body to Composer as reply text"49dcbc5eterminal: Extend Ask default actions, promptscd2e4bf3melib/utils: vendor urn crate5915f125backends: use IsSubscribedFn in method signatures4f927bbenntp: properly return all nntp mailboxesb930cb49maildir: do not use rename_regex when only updating flags27486f29Accept newer versions of base64 dependencyc3cac77dUpdate imap-codec dependency to 2.0.0-alpha.405f404bajobs: do not use AtomicU64in PR#505"jobs: do not use AtomicU64"46916895melib/gpgme: s/NULL/NUL when referring to NUL byte81ace71bterminal/embedded: lift error checking earlier24114811manage: parse scroll_{left,right} actionsd2559e42imap: return all mailboxes, not just subscribed onesin PR#509"compose: fix add-attachment-file-picker"320fddadmelib/gpgme: disable layout tests on non-x86_64 hostsin PR#511"melib/gpgme: disable layout tests on non-x86_64 hosts"bcbcb012melib/email/compose: ensure boundary always prefixed with CRLFd21c686dmelib/attachments: Make AttachmentBuilder::set_raw genericd5d34579melib/email/compose/tests: normalise test fn namese9ec6761melib: make base64 dep mandatory30405216melib: make notmuch feature depend on maildir feature35fa8e94melib/imap: gracefully retry without DEFLATE on BYEin PR#517"Fix some unrelated bugs I found while debugging build failure on armhf"
20d73292melib: replace async-stream dep with async-fn-stream201081b6meli/command: move tests to tests.rs84cfa358conf: remove need for global send_mail setting7be8912cCargo.tomls: make formatting more consistente6877e89melib/jmap: refactor some parser importsf7ec6d6bmelib/jmap: implement mailbox rename15d24ab0meli/jobs: refactor spawn_{blocking,specialized} to spawn()6ee148c0Fix 1.80.0 clippy lintsde72bc6amelib/error.rs: move network stuff to submodulea214a35cconf: refactor into submodules978cefbbReplace Escape ascii char with hex literal4b959f5cRemove pcre feature/dependency036586a2Update serde dependency to 1.0.205191725b5Fix some borrow checker error/warnings from upcoming 2024 edition11798be8Replace Envelope::message_id_display() with Display impls394236baemail/address: Refactor References structa7c73fc8gpgme: refactor Rust interface, add tests41e1fdd5Fix cargo-derivefmt lintsa44486d9imap: fix minor clippy lint0c0f8210Add a "move to Trash" shortcutd20a9d0aFix new clippy lintse9a72072Remove unused/obsolete plugins code and mentions2ddd28eemain.rs: always send a JobFinished event to all components571ae390pager.rs: don't set self dirty after filter selectorin PR#488"view: fix nested filter jobs never being completed"6bc0caf4melib: remove redundant get_path_hash macrofc3308e4melib: Add Mail::as_mbox() methodb1f24cbeview/filters: forward events on child filters1b201bf6Remove GlobMatch trait, replace usage with Fnmatch8af003abRename addressbook stuff to "contacts"2069b4daerrors: impl From<xdg::BaseDirectoriesError>7dee32aecontacts: refactor Card to its own module6d0d9680jmap: move EmailObject state to Store0c590bbccontact-editor: remove empty spacein PR#495"Add version migration support"b2200ec3Remove unused smtp testsin PR#501"Apply patches from upstream debian package"ae294945remove unused module file3558db51Move jobs and mailbox management Components together3a931035command: move Composer actions under TabActions441fda56terminal: move TextPresentation trait to melibee897942lints: deny clippy::or_fun_call0d088962lints: Address clippy::too_long_first_doc_paragraphecc9b482Small repo cleanups
a83b4176meli.1: small fixes72dea6f3Manpage fixesa55f65e1meli.conf.5: Fix wrong default value type in default_header_values57b45a9cdocs/historical-manpages: add DEP5 copyright file00236b86docs: add meli.conf.examples(5) WIPb88dc441Comment out svgfeature; no need to ship itin PR#482"milestone/0.8.8"b048c95aBUILD.md: add instructions for Android build593ed22bpgp: perform gpgme's sign+encrypt manuallyin PR#494"pgp: perform gpgme's sign+encrypt manually"50922d97melib/README.md: update and fix feature tableb912aabcdocs: add examples of file picker usagein PR#516"docs: add examples of file picker usage"
b55edd47debian: update meli.docs and add meli.manpages
1232e16ascripts/make_html_manual_page.py: don't prettify6d520605Vendor vobject crateb33433e4Don't create backends as Box<dyn MailBackend>, but as Box<Self>2001b4ddMake subscribed_mailboxes conf val optional6cfe4da0Enable rusqlite feature "modern_sqlite" always707a129eCoalesce repeating TUI notification messagesf036f95escripts: add generate_release_changelog_entry.sh
4684b601CI: remove env vars from action namesin PR#458"Minor QoL fixes"7419b465CI: unpin rust version after updating time dependencyin PR#460"Updatetimedep to fix 1.80.0 breakage"77da86ebCI: Update cargo-derivefmt version1b3f2732CI: Move build.yaml actions to Makefile.build598a70f9CI: move lints.yaml actions to Makefile.lint7e800a8fCI: move manifest_lints.yaml actions to Makefile.manifest-lints98652110CI: prepend printf commands with @ad79bf84.gitea/Makefile.lint: attempt cargo-fmt with +nightly
v0.8.7 - 2024-07-30
Contributors in alphabetical order:
- Andrei Zisu
- Damian Poddebniak
- Herby Gillot
- Manos Pitsidianakis
9fcb0a04Add cargo-deny configuration file deny.toml7e8d19afAdd Envelope::sender_any9ab404c5Add pgp signed attachment supportb4579075Allow XOAUTH2 string passed as string0ffe7fa5Add text/plain or text/html arg for text decodinge107d613Add prelude module for import cleanup7200589aAdd ErrorKind::NotFound8c880dc7Add {Error,ErrorKind}::is_recoverable()eb27773bAdd pager.named_filters setting84d93d65Add support for ID extension (opt-in)af6838c2Add metadata field to MailBackendCapabilitiesd1499242Add From<Infallible> impl814af0e9Add --gzipped flag to man subcommand475860c9Accept - for stdio in {create,test}_config86f9b213Add timeout conf field in validate()dd525bd9Use Error::is_recoverable6e1fea80Show suggestions on Unauthorized error38620866Detect DNS lookup std::io::Errora330ff96Retry on DNS failure2429f17bOn invalid conf value, print what value is expected6379fbe8Add support for Undercurl attributea13bf13fAdd stub Undercurl supportf5f1e068Add UIDPLUS supportafccebf3Add AUTH=PLAIN support9fb5bc41Impl AUTH=ANONYMOUS (RFC4505)
ff3fe077Fix new 1.79.0 clippy lints430cbdfdFix python errorse3c1656eFix LOGINDISABLED supporta82d1e1eFix RowsState::rename_env stale data8dc4465cFix toml value ser after update of toml dependency39e903b1Fix issues with ShellExpandTrait608301dcExpand save-to paths asap100fa8b3Fix edge case in ShellExpandTraita85b3a08Allow default_mailbox to be any mailbox0dc24623Fix one by off error on menu unread count073aef86Fix lints/errors when compiling specific feature combos12695a00Fix MSRV breakage27ac3061Fix tag support not being printed97af00cdRespect timeout value from user configuration824de287Fix make_address! usef2e9cac3Use suggested minimum for maxObjectsInGet41d07fbcNewState in EmailImportResponse cannot be null197132ccSupport fetching with BODY[] for buggy servers91fdef98Return NotFound on cache miss96cc02a0Do not use ErrorKind::Configuratione96e9789Don't discard pre-auth capabilities122a2a4dDrain event_queue when mailbox made available
27c4876fPrevent log flooding when drawing listing entries7bdc8f52Highlight_self also when self is senderc4f7b77aRework attachment rendering logic with filters1cce8c11Accept invalid "+" CRLF cont reqc04b593bUse BODY instead of RFC822084a222aRemove subscribed mailboxes list5b6c1aa8Don't show all background jobsf9a3b333Return NotFound on empty FETCH15f3a3fbRetry fetch envelope only if err.is_recoverable()15eeac51Enable dns_cache, tcp_keepalive & tcp_nodelay06437e60Set not_yet_seen to 0 when inserting existing0b113cdbUse MELI_FEATURES in all cargo invocations
7856ea33Transition more to imap-codec6f61176aRemove unecessary mut modifier3251e7bdScrub skip_serializing_if from attributesebc1fa3bMove module to self dir5110813eRefactor MaildirOp and watch()a9122c6eDraw with x range argument3ebf5510Pass entire screen area when drawing overlay2dc1721aMove signal handling stuff to submodule738f7c46Execute Opt subcommand in Opt::execute()46df4b57Remove unused function stub52c75e92Use HeaderName constants6da4e2ecReplace stringify! in Debug impls with type checked macro85a55ed6Add some missing ErrorKinds to errors8b568f6eAdd if_in_state argument in Set::new()1e2e3da0Treat color input "; ;" as "; 0 ;"7c47f702Extract test and parser modules to filesd40ee692Extract tests mod from protocol_parser1e50911cAdd utils module to protocol_parserd3a45b34Make default shared lib name a consta9e9d952Change termination_string arg to Optionfd76df78Use MELI_CONFIG env var in mock tests8552e499Replace std::mem::{replace,take}
dfc2bb43Add link to MacPorts page for meli97aa6a8eReplace obsolete .Tn macro with .Ema8e82a30Add missing entries from JMAP
bbe2cffaAdd rust-bindgen's friends.sh to scripts/a8956bafUpdate to imap-codec v2.0.0-alpha.1c99633e1Update futures dependency 0.3.28 -> 0.3.30fe604bf0Update "openssl" dependency to 0.10.649daf9437Add test_cli_subcommands.rs9f783d9aPin assert_cmd ver to 2.0.13b7da1d0fCheck all targets in cargo-msrv verify test8a74920dPin rust version to 1.79.0
v0.8.6 - 2024-06-08
Contributors in alphabetical order:
- euxane
- Manos Pitsidianakis
735b44f2Add 'highlight_self' theme attributee187bb3fAdd tools subcommand with smtp shell for debugging571bd984Add proper imap-shell in tools subcommand for debugging0e1e5b9eAdd support for Alternate Scroll Mode (xterm)fe08d52aAdd force_text_emoji_presentation option
3de4908dman.7 Fix typo for toggle_expand_headersa8c7582fFix ENVELOPE parsing in untagged responsesc65635efFix compilation for macos06ec2790Fix str slice index panicf2b59a76Add RequestUrlTemplate type7eed944aFix screwed up rfc8620 module split74a3539fFix degenerate OOB cell accesse8e76970Fix edge case with strings/linebreaking81955187Fix decryption error not shown
a9c3b151Impl highlight_self in all index styles57e3e643Remove excessive right padding in flagsa4ebe3b7Add ErrorKind::Platform4bdfb3a3Disable Nagle's algorithm by default4148aee5Refactor smtp,draft errors and email testsed5a6b04Add a symbols range to is_emoji checkfc1122a2Rename to backend_mailbox.rs50ecade7Merge rfc8620/tests.rs to tests.rsa78f3f26Move submodules to jmap/f7838b1dSplit to methods.rs and objects.rs74f0d12aRemove obsolete imapshell.rs and smtp_conn.rsdce3852fAdd capabilities module7ba7dc70Imports cleanup in all modules45bfcf87Minor refactors77867aeeUnwrap object module33999fc6Re-add Submission to USING6be25ac3Don't use client field for get/posts
4722d7ccAlso mention server_password_command for jmap
2bfe6086Hide self from "add contacts" options9ca34a68Update MSRV to 1.70.050ff16c4Add LIGHT, DARK constant theme keys1abce964Add Envelope::recipient_any method671d35e2Update mailin-embedded dependency to 0.8.239fbb164Change info_message_{next,prev} shortcuts to <, >58d73271Change new mail text contentf0d1b9cfAdd ayllu mirror link3bab5324Improve Debug impl for ContentType etce9dd6becComment out content8dd87c1aAdd ContentType::is_text_plain()01bc62e0Add new_plaintext method
v0.8.5 - 2024-05-05
Contributors in alphabetical order:
- Andrei Zisu
- Ethra
- Geert Stappers
- Guillaume Ranquet
- Manos Pitsidianakis
0e3a0c4bAdd safe UI widget area drawing API0114e695Add next_search_result and previous_search_result shortcuts0b468d88Improve Error messages5af2e1eeAdd subcommand to print config file location62aee464Add subcommand to print log file locatione2cdebe8Add option to highlight self in mailing list threadscd448924Add clear-selection command3a5306e9View manpages in pager inside melia37d5fc1Implement a key to command mappingce4ba06cAdd a flag set/unset command148f0433Implement flag set/unset action in UI417b24cdPrint invalid command on error4e941a9eAdd default_mailbox setting974502c6Impl Hash for Cardba7a97e9Add x axis scroll supportccf6f9a2Remember previous set [index_style] preferences
bcec745cFix command and status bar drawing62b8465fFix ThreadView for new TUI API28fa66ccFix ThreadedListing for new TUI API2c6f180dFix macos compilation24971d19Fix compilation with 1.70.0 cargo34a2d52eFix rustdoc::redundant_explicit_linksf63774faFix new clippy lints (1.75)33408146Fix feature permutation mis-compilations found with cargo-hacke3351d27Fix set unseen updating all mboxes8185f2cfAdd deny clippy lints and fix them7861fb04Fix typos found with typos tool64e60cb0Fix select modifier regression60f26f9dFix some old pre-intradoc rustdoc links1fe36192Make conf validation recognize AccountSettings extra keysc332c2f5Fix new clippy lints (mostly clippy::blocks_in_conditions)070930e6Fix auto index build when missing26928e3aFix compilation for macos3884c0daSmall typographic fixupsb820bd6dRemove unused imap_trace! and fix compa88b8c5eDebian/changelog warning fix4ce616aeFix lints.yaml rustup install step264782d2Various unimportant minor style/doc fixups475609feMake {prev,next}_entry shortcut behavior consistenta69c674cFix new 1.77 clippy lints48cb9ee2Fix compilation for macos8a16cf6dFix wrong column index crashbc1b6531Fix constant redrawing29cc1bceRemove obsolete file melib/src/text/tables.rs.gzab041898Fix new warnings for 1.78.046e40856Fix UIConfirmationDialog highlight printing3b93fa8eDon't draw messages above embedded terminal684fae3eCopy old content to new buf when resizing5d915baaUse Screen::resize instead of CellBuffer::resize6a66afe9Make add contact dialog scrollable on overflowaa5737a0Prevent drawing pager on embedded mode07072e2ePrevent panic if envelope is deleted8ddd673dUpdate all mailboxes3691cd29Send EnvelopeUpdate event after self.collection.update_flags()1fcb1d59Remove rerun when build.rs changes933bf157Ack \ as an atoma1cbb198Return Results instead of panickingb5ddc397Remove unwrap() from get_events() loop
61a0c3c2Do not clear selection after action9af284b8Don't hide unread count for mailboxes that are partly truncated35408b16Run pager filter asynchronouslye80ea9c9Changed default manpage install path742f038fMove sent_mailbox to settings86bbf1eaRefresh NotmuchMailbox counts when setting flagsf0866a39Make config error more user-friendly11f3077bAdd more possible values for manpage names1eca34b3Set lowest priority to shortcut command UIEvents484712b0Check for unrecoverable errors in is_online8ec6f220Use ShellExpandTrait::expand in more user-provided paths
0500e451Add missing EnvelopeRemove event handlerab14f819Make write_string_to_grid a CellBuffer methode0adcdfeMove rest of methods under CellBuffer0a74c7d0Overhaul refactor3b4acc15Add tests7eedd860Remove address_list! macrof3e85738Move build.rs scripts to build directory77325486Remove on-push hooks for actions w/ run on-pr08518e1cRemove obsolete position.rs moduleddab3179Move tests to tests module79520068Remove doctests, add tests module4e7b6656Sqlite caching refactorb5fd3f57Make self.view an Optiona3aaec38Remove unused imports11a0586dRemove num_cpus dependency8f3dee9bExtract mod manpages to standalone file89c7972eAdd suggestions to BadValue variant35a9f33aExtract common FlagString logic1b0bdd0aSplit queries and mailbox into submodules506ae9f5Add ErrorKind::LinkedLibrary variantebe1b3daWrap *mut struct fields in NonNull<_>ca7d7bb9Use message freeze/thaw for flag changes4026e254Add some doc comments808aa494Rename text_processing to text for the whole brevity thingbebb473dDerive extra traits for enumsab1b946fDon't print details if it's an empty string.f685726eAdd backtrace field to ParsingError73d5b24eMerge integration tests in one crate31401fa3Add LazyCountSet::contains method0270db01From<&[u8]> -> From<B: AsRef<[u9]>>873a67d0Replace erroneous use of set_err_kind with set_kind51e3f163Use Url instead of String in deserializing8014af25Reduce debug printsf31b5c40Don't print raw bytes as escaped unicode41e965b8Split mbox/job stuff in submodulesec01a441Turn some sync connections to unsync3e914465Store children process metadatac53a32deRe-enables horizontal thread view36b7c00bPut doc text type names and co. in backtics634bd191Convert log prints to traces1048ce68Add hostname() utility function7645ff1bRename write_string{to_grid,}c2ae19d1Return Option from current_posb61fc3abAdd HelpView struct for shortcuts widget3495ffd6Change UIEvent::Notification structure23c15261Abstract envelope view filters away031d0f7dAdd area.is_empty() checks in cell iteratorse37997d6Store Link URL value in Link typeb6f769b2Add field names to row_attr! bool values0da97dd8Check row_updates in is_dirty()6506fffbRewrite email flag modifications23507932Update cache on set_flags470cae6bUpdate thread cache on email flag modifications84f3641eRe-add on-screen message display54d21f25Re-add contact list and editor support458258e1Re-enable compact listing style1c1be7d6Add display_name(), display_slice(), display_name_slice() methods5dd71ef1Upgrade JobsView component to new TUI APIb5cc2a09Upgrade MailboxManager component to new TUI APIed8a5de2Re-enable EditAttachments component77a8d9e2Make ModSequence publicly accessible64898a05Make UIDStore constructor pub
e4818803Various manpage touchups and URL updates38bca8f8Mention use_oauth2=true for gmail oauth2660022ceAdd mailaddr.7 manpagec5e9e676Add historical-manpages dir5afc0785Update README.md, DEVELOPMENT.md and create BUILD.mdd018f07aRetouch manual pages3adba40eAdd macos manpage mirror url
cd2ba80fUpdate metadata5f8d7c80Update deb-dist target command with author metadata59c99fdcUpdate debian package metadata97eb6363Add dpkg --print-architecture to deb filename7412c238Bump meli version to 0.8.5-rc.3500fe7f7Update CHANGELOG.md5ff4e8aeRun builds.yaml when any manifest file changes0a617410Split test.yaml to test.yaml and lints.yaml3ba1603aAdd manifest file only lints workflow1617212cAdd scripts/check_debian_changelog.sh lintc41f35fdUse actions/checkout@v3876616d4Use actions/upload-artifact@v32419f4bdAdd debian package build workflow10c3b0eaBump version to 0.8.5-rc.1d16afc7dBump version to 0.8.5-rc.2da251455Bump meli version to 0.8.5-rc.2
c4344529Add .git-blame-ignore-revs filef70496f1Add codemeta.jsonb3079715Disable flakey test_smtp()8a95febbSet debuginfo=0 in test/lint builds81d1c053Add mandoc_lint.sh8de8adddAdd cfg for musl builds70fc2b45Update nix dependency to 0.27fd64fe0bUpdate codeberg.org URL30a3205eAdd clippy::doc_markdownc7aee725Add clippy::doc_markdownb8b24282Update all instances of old domains with meli-email.orgae96038fMake unicode-segmentation a hard dependency255e9376Update linkify dep from 0.8.1 to 0.10.0dedee908Update notify dep from 4.0.17 to 6.1.1c1c41c91Update README.md and add Codeberg mirror71f3ffe7Update Makefile63a63253Use type alias for c_charc751b2e8Re-enable conversations listing style3a709794Update minimum rust version from 1.65.0 to 1.68.2f900dbeaUse cargo-derivefmt to sort derives alphabeticallye19f3e57Cargo-sort all Cargo.toml files
v0.8.4 - 2023-11-22
ef30228eFix failing test
f81a1e23Bump version to 0.8.4
v0.8.3 - 2023-11-22
3105a037Add quit command
d3cbf184Add extra_submission_headers fields in composer form and autocomplete for Newsgroups7aec5b8eFix SMTP example docf702dc22Fix new clippy lints.688e39a6Fix clippy lints
e1b55340Show error description when TIOCGWINSZ ioctl failse95c275dRemove duplicate end sequence8a21be21Replace splice with truncate2db021faRemove regexp from default featuresfa33a946Move managesieve-client binary to tools/
e88957aeAdd extra_submission_headers field in MailBackendCapabilities struct606f487fAdd IRC channel badge0e60bdf2Add "iterator" feature to signal-hookac2a5dcdAdd display() method for Address43bfd413Update ahash dependencyaf241d25Bump version to 0.8.37387b67eEnable "static" build for C library dependencies by defaultbfc78a08Replace CRLF with LF when editing111a1160Bump version to 0.8.3
v0.8.2 - 2023-09-22
22525d40Go to end when pressing next/page down for the second time71474436Revert 22525d40 behavior when sidebar not focused
v0.8.1 - 2023-09-13
6476985cAdd Cross.toml for aarch64-unknown-linux-gnu builds45d4f611Add install-man cli subcommand to install manpages on your systema4f0dbacAdd current working directory tracking to Context
49a38a23Fix invalid Type link references85af5244Fix invalid mailto() results when body field existsc7825c76Handle dialog Esc in the parent componentdd4d0b79Fix typoc43aeb0eFix invalid address parse on folded values7e3e9386Fix out-of-bounds draw when terminal is small7e4ed2faFix some out of bounds drawing.
1b3bebe3Open earliest unread email instead of first in thread49c36009Don't initialize entire thread at once0a9c89b6Add toggle_layout shortcut64ba0459Init cursor at To: header field81974311Show current number command buffer
a337e226Refactor module structureb4f2f335Remove deflate feature; make it a hard dependency2dc29405Add feature to use cache instead of downloading unicode data0132677fIntroduce CommandError with context3344a8dbRemove unnecessary Clone derivesb673af02Move to crate root54862f86Add hide_sidebar_on_launch option
a615b470Embed xdg-utils cratef0075b86Show descriptive tab names for composer and threads6d5ebb5bSplit code into submodules, add better error reporting63abf1e8Update README.mdbb4d2000Unify toggle_* parsers9b9c38f7Don't flood user with sqlite3 errors if db is corrupted747e39bfAdd print-used-paths subcommand39e99770Use Context::current_dir() when saving files to relative pathsfe0a96f0Update to 2021 edition3944e4e6Update to 2021 edition7eed8278Bump version to 0.8.1
v0.8.0 - 2023-08-29
36e29cb6Add configurable mailbox sort order81184b18Add extra_identities configuration flagb716e438Add collapse option for mailboxes in sidebar menu3d92b410Add cli-docs feature to the default set104352e5Add table UI widget7d9cabb0Add mailbox manager tab660bacb9Add mailto command to open composer with initial values from mailto template3adf72aeAdd support for utf-7 encodingd9c07defAdd command to select charset encoding for email8c671935Add compose (pre-submission) hooks for validation/linting96537e48Add {Timer,Component}Id wrapper types over Uuidb5f205b7Add availability to use server_password_command in the nntp backend like in the IMAP backenda5770c89Add Woodpecker-CI check pipelined4e605c0Add tagref source code annotationscf9a04a5Add metadata to Jobs, and add JobManager tabbb7e119aAdd gitea CI workflows1c79786eAdd scripts/make_html_manual_page.py65e82d88Add meli/README.md symbolic link
ce2068d3Fix background watch using JSON paths incorrectlye9aaa7b0Use *const c_char instead of *const i8 for portabilityaa3524ddFix tag not being removed in set_flags()daa900ecFix embed terminal in macos7fca5f01Fix jmap build with isahc 1.7.2ed3dbc85Fix crashes when listing is empty824f614aFix HtmlView not being redrawn when parent is dirty97ff3e78Only add toml files to the themes9cb66ef8Fix all clippy warnings in meli crate0c0bee44Add missing .PHONY targets, fix missing tab indentationa73885acImprove embed terminalda9c80ccEnhance SubjectPrefix with strip_prefixes_from_list() methodaa99b0d7Implement configurable subject prefix stripping when replyingcbe593cfAdd configurable header preample suffix and prefix for editing2de69d17Fix erroneous placement of newlnes for wrap_header_preamble suffix94bd84b4Fix clippy lints for meli crateb138d9bcFix some clippy lintsc6bdda03Fix notmuch error shown on any missing backend16646976Fix reply subject prefixes stripping original prefix88a1f0d4Fix FETCH response parsing bug59b95f83Fix docs282af86eFix NAME sections manual pages for correct whatis(1) parsingbd22f986Fix clippy lints5ba7b2cdFix clippy lints for meli binary7924aa8bFix compilationb9030a68Fix selection not appearing immediately and invalid motions4f45b109Fix tag updates not showing up right awayabc56eaeFix SEEN flag update hiding mail view momentarily40c6647dFix multipart/related with main text/html part not displayed correctly11140b4aFix test output3a10953fUpdate fix-prefix-for-debian.patch939dc15eFix melib tests39d9c2afFix test smtp server logic34bb532eMention w3m dependencyb1a71887Clippy fixes1f8ac228Fix ftplugin location and add example mail.vim file1eea8babFix test_imap_fetch_response.daf42fd4Fix build error with quote 1.0.286388bea9Fix &[u8] index in HeaderMapc5ecaceaFix some search criteria in Query type27a4dcb9Fix some rustdoc lintsfdc0861aFix expanded_hash argument off by one error0c0a678cFix overlay widgets not being reaped after Unrealize event65179d48Fix cursor/widget focus scrolling logice64923eeFix debug_assert condition5f29faa6Clippy lint fixes0b258a1fClippy lint fixesba7f5dceFix display of threaded conversations tree structure1dc1d868Fix infinite loop buge8e49e74Fix wrong per message offsete3dfeaadFix compilation error when building without gpgme feature7998e1e7Add missing LC libc constants for openbsd target_osb5657201Fix doctest compilation errorsc2ed3e28Fix Source::* view showing only envelope bodyd93ee413Add timestamp_to_string_utc6086a378Fix libgpgme segfault error and re-enable gpgab418c1dRefresh documentation, fix encryption/signing0219dc87Respect max_objects_in_get when fetching email6280bc75Fix blob download URL formatting2df73547Fix overflow substracts8e698cabFix unreachable-pub and disjoint-capture lint errors40d4ecefAccept invalid (non-ascii) address comment text4e654d2dLimit LIST ACTIVE command length to 512 octets84081f4eMinor style fix97d36868Use Happy Eyeballs algorithm Ꙭ96f0b3e6Fix shortcut section order64982b4cFix page{up,down} event bubbling up8551e1baFix new 1.72 default clippy lints
8563bccdDon't cache CellBuffer, only row info0f6f3e30Add IMAP config in config parse testce269c64Don't fail on server_password_command9dc4d405Add focus_{left,right} shortcuts to switch focus4b96bd59Add ColorCache constructor to deduplicate codec06c3f58Draw gap between list and mail viewc9d26bb4Add configurable custom hooks with shell commands02e86d1fCheck for subject overflow on draw8cab9d9dAdd option to hide consecutive identical From values inside a thread363f4930Add {previous,next}_entry shortcuts to quickly open other mail entries342df091Don't set all thread to seen when opening a thread entry74e15316Open message/rfc822 attachments in subview instead of new tab369c1dbdShow open command in status bar519257b0Add relative_menu_indices setting for menubar8abc9358Add newline after Version: 1 header561ba9c8Add relative_list_indices setting for thread listing52874f9aCancel previous jobs on MailView drop/update9037f084Replace hardcoded Key::{Home,End} values with shortcut values31aa9ad2Autogen mbox filename when exporting mail to directories
330a2b20Flush stdout in Ask() after printing340d6451Add config setting for sidebar ratiod0de0485Add {in,de}crease_sidebar shortcutsf5dc25aeCheck that all conf flags are recognized in validationd3e62e3dUse conf shortcuts for scroll {up, down}23c23556Fill and align shortcut table columns5823178cAdd test that looks in source code for invalid theme key references9205f3b8Handle a per account mail order parameterd921b3c3Use mail sorting parameters from configf4e0970dAdd ability to kill embed processbde87af3Refactor filter() method in Listing traita42a6ca8Show notifications in terminal if no alternativeeb5949dcSwitch summary<->details identifiers8c7b001aAdd thread_subject_pack command to pack different inner thread subjects in entry title388d4e35Add in-progress messages while connecting in IMAP787c64c2Remove expect()s from create_config_file()b87d54eaImpl Into<BTreeSet<EnvelopeHash>> for EnvelopeHashBatche450ad0fRemove unused structc54a31f7Break line for error messages7935e49aCheck properly if mailbox request is an error117d7fbeMake private fields publicffb12c6dMake all public struct fields public46a038dcRemove interactive messages when #[cfg(test)]803d3414Implement some rfc5804 commandsb776409dAdd thread, env hash index fieldscc439b23Add RowsState structdb227deaAdd error messages if mandoc,man binaries are missingee9d458bImplement mailbox {un,}sub actions7af89359Replace use of Self::DESCRIPTION with Shortcuts struct constseaecc5eaRemove hardcoded major .so version for non linux/macos target_osf63ce388Move ManageMailboxes to Tab Actions3c847ad2Add beginning of sieve parser5443b7e8Remove literal_map() parse combinator12cb717bAdd server_password_command to jmap428f752bRemove obsolete crate::components::mail::get_display_name()91557c2cPrevent list blank when refreshing accountd332e457Add proper Display impl for HeaderNamef537c249Move text field to its own moduled33f9d54Remove unreachable!() in Key::serialize330887c4Introduce imap-codec.4da53669Remove bincode dep, use serde_json for sqlite3 values155fb41bRemove unused Component::set_id method575509f1Move mail view to listing parent component6858ee1fMove subcommand handling to its own moduleb0e867ebMove src to meli/src48a10f72Remove unused BackendOp::fetch_flags() method073d43b9Move data files to data subdir1e084c1dMove backends out of the backends modulea5446975Move braille and screen to their own module files005bf388Move components/utilities -> utilities64ab65ddMove components/contacts -> contacts7c9a4b4bMove components/mail -> maildf638cceRemove stale failing doc code exampleda8e8104Remove leftover debug printsa1e70061Move Sort{Order,Field} to utils mod66c21ab1Move StandardHeader to its own module946309c6Do some small parser refactoringb95f7783Move JmapSession to its own module
a866b294Update valid shortcut entries from src/conf/shortcuts.rsf76f4ea3Add meli.7, a general tutorial document5fa4b626Add more screenshots7c711542Complete guide document30cc5d3dAdd edit-config in manpages24103f33Add external-tools.md documentb6c93e49Add use_tls option in IMAP connection settings34a54d3cAdd some TODO(#222)s.
671ce9f6Add missing build dependencies
25805229Log vcard parsing failures5f003a31Parse vCards with just LF instead of CRLF line endingsd8e9a005Add quoted REFERENCES field in parsing of responses81d12656Escape IMAP passwords properly0d8bedd2Make is_online() await for connectiond4b690d5Send password as byte literal on LOGIN2eb22a29Stop hardcoding certain component colors2c23ca34Update most Cargo dependencies721891c2Update nom dependency4fdc90b3Use open instead of xdg-open in macos9558b2aeParse Cp1253 as windows1253 encoding6a843d49Export list_mail_in_maildir_fs() functiond6355a30Impl Debug for ParsingErrordc5afa13Use osascript/applescript for notifications on macose6d6e1f5Don't unwrap if pseudoterminal creation failsca84906dEscape all quotes in applescript on macos4a79b202Update dependency versionse29041f7Rename src/bin.rs to src/main.rs7650805cBring stripped binary size down to 7MiBca488968Add strip option to profile.release10497952Wrap stdout in BufWriter29042abaAdd mbox date format parse480000ebShow error if account directory does not contain ".notmuch" subdirectorya484b397Show informative error messages if libloading fails4a20fc42Update CHANGELOG.mda72c96a2Add 8BITMIME support to smtp client3c0f5d82Add BINARYMIME support to smtp client36883692Add smtp test9cbbf71eAdd DecodeOptions struct for decoding0df46a63Show error if sqlite3 search backend is set but doesn't exista7a50d30Box<_> some large fields in biggest typesd8d43a16Add html_open config setting0ed10711Add new_mail_script optionc3fdafdeDocumentation touchups347be543Add NetworkErrorKind enum0c08cb73Mark mailboxes as subscribed on personal accounts129573e0Rename root_path to root_mailbox7e09b180Replace _Ref deref unwraps with expect()55ed9624Use server_url instead of server_hostname + server_port in config0ef4dde9Wrap serde_json deserialize errors in human readable errorsdd0baa82Spawn user-given command strings with sh -c ".."3697b7d9Don't use LC_ category in place of LC_ masks in libc calls6d20abddAdd #[allow(deref_nullptr)] in bindgen tests17b42b1aAdd json deserialization tests64346dd3Add map_res, quoted_slice, is_a, alt, take, take_literal56fc43bcAdd As{Ref,Mut} impls for RwRef{,Mut}63179841Add --bin flag to meli cargo build targetded9addeMore descriptive "Unimplemented" messages2224a710Reset imap cache on init error252d2bdfReplace hardcoded /bin/false with 'false'2427b097Make tag_default background lighter on light theme7382e301Convert EnvelopeHash from typedef to wrapper struct259aeb00Convert {Account,Mailbox}Hash from typedef to wrapper struct5634f955Rename MeliError struct to Error7606317fAdd support for virtual mailbox hierarchy2878bbb8Add parser for mutt alias filede2f46feRustfmt changesf9ac9b60Temporarily disable libgpgme functions because of a bug256a3e25Update minimum supported rust versionfbc1007fDeserialize null to empty vec for messageIdd7ec97f0Small rustfmt change2447a2cbAvoid relying on hardcoded hash valuesd679a744Implement Bearer token authentication47e6d5d9Add edit-config CLI subcommand that opens config files on EDITOR3a02b6fbMention how to override w3m with html_filter85d4316aReplace old logging module with the log create1f1ea307On draw() set dirty on return77020e0cUpdate CHANGELOG.md682ea554Add .idea (CLion) to .gitignore.f63f6445Improve error message when m4 executable is missing.cc27639fUse Envelope attachments when editing and don't add already existing headers30866f75Bypass rustfmt bug.235fceafAdd standard heeder constants in email::headersaebff3d3Implement mailto RFC properly954329d8Set file extensions to temp files, use open in macos58889bcaAdd show_extra_headers option23d95973Add search.rs module6bf1756dImplement more search criteria in Query type299c8e0fRestructure pub use melib::* importsf8623d4bImplement more ResponseCode casesb92a80a2Resync even if UIDVALIDITY is missing from cachebf615e7dCheck for case when envelope has its own message id in References and In-Reply-Toe0257c9dRun cargo-sortd7e6b40bAuto re-index sqlite3 database if it's missingcd85d833Replace timestamp with Date value in message/rfc822 Display579372b4Improve readability of Envelope.6c6d9f4bImprove ordering of flag_impl!s.8f14a237Put imap-codec logic under the imap_backend featurefd0faadeAdd connection instance id string for debugging in logs5c9b3fb0Impl Component for Box<dyn Component>45bac6ebTidy up use of debug!5699baecAdd utils::{futures, random}b05d9299Impl exponential backoff when retrying connectionf5cfbd32On set_flags, update {un,}seen sets in all mailboxesf0d88005Change message/rfc822 Display reprf98e36ceReplace old-style /*! module doc comments with //!1bcc0bbeAdd mbox parsing test619fbef1Recursively calculate update_show_subject()957abf4eUpdate cargo dependencies9d51b6bdUpdate imap-codec.7c33f899Use published imap-codec 0.10.0.3803d788If auth is false checks if config has password entry866166ebDon't print parsing error for empty bytes5b5869a2Re-enable print to stderr ifdef MELI_DEBUG_STDERR13fe64a0Cache pgp signature verification results5ceddf41Update CHANGELOG.md4e55fbc9Add SEEN flag to all envs, since NNTP has no flagse9cd800fAdd support for storing read status locally53cba4beUpdate README.md relative file pathsc4c245eeRespect danger_accept_invalid_certs setting29b43e2cReplace mktime with timegm4874e30fAdd smtp-trace feature51e9fbe8Add account_name identifier to sqlite3 index database name129f1091Rename imap_backend feature to imapfe027fa3Rename maildir_backend feature to maildirfe7dcc50Rename notmuch_backend feature to notmuche9f09a15Rename mbox_backend feature to mbox7db930caRename jmap_backend feature to jmap89c90f22Add nntp featureb65934faAdd nntp-trace feature8ecdb6dfAdd imap-trace feature9216e7bcAdd opt id string for tracingae25ffbaDon't do plain EHLO before starting Tls connection8cb2a515Use localhost in lieu of 127.0.0.1 for CI0ee1b6e0Start background watch job in init448e0635Log error when command length exceeds 512 octetsbf543855Add PartialEq<str> for MessageID7c7f6e19Don't increase Thread length for duplicates5c2b0471Normalize std::fmt::* imports0f60009eAdd RUSTFLAGS with -D warnings6578a566Update cargo install directions4f6081b6Update to imap-codec 1.0.0-beta.dc2b0044Run rustfmt and cargo-sortb3858de2Impl From<io::ErrorKind> for ErrorKindf93adb68Replace change_color uses with change_themef193bdf6Add column headers and sorting095d24f9Add PULL_REQUEST_TEMPLATE.mdab57e942Add delete_contact shortcut3963103dPrevent duplicate contact creationf162239fChange on: conditions for test.yaml974b3a53Update bitflags, rusqlite dependencies4d22b669Update dependenciesffba203aAdd support for Home and End key navigation3433f7c4Update PULL_REQUEST_TEMPLATE.mdf7a4741bAdd jmap-trace featurec875dda4Add last_method_response field to Connection37a787e6Use IndexMap instead of HashMap6ebdc7f9Add Id<_>::empty() contructor4f9b9773Rename EmailImport to EmailImportObject11432ba2Make null fields into Option<_>sd9467d5fSave all core capabilities to session store31982931Use Argument<OBJ> (value or resultreference) where appropriate29fd8522Implement Backend::create_mailbox()5d8f07c8Rename some objects better38bc1369Add an Identity type.59513b26Implement Backend::submit(), server-side submission5459a84fUpdate to imap-codec 1.0.0 (w/o -beta)290cfb86Add a highlighted_selected theme key46636d87Bump version to 0.8.0
1d0405edAdd env vars6e27edcbUse cargo-nextest67d2da0fDisable smtp::test::test_smtp in test.yaml
alpha-0.7.2 - 2021-10-15
- Add forward mail option
- Add
url_launcherconfig setting - Add
add_addresses_to_contactscommand - Add
show_date_in_my_timezonepager config flag - docs: add pager filter documentation
- mail/view: respect per-folder/account pager filter override
- pager: add
filtercommand,Escto clear filter - Show compile time features in with command argument
- melib/email/address: quote
display_nameif it contains "," - melib/smtp: fix
CcandBccignored when sending mail - melib/email/address: quote
display_nameif it contains "."
alpha-0.7.1 - 2021-09-08
- Change all
Down/Upshortcuts toj/k - add
GB18030charset - melib/nntp: implement refresh
- melib/nntp: update total/new counters on new articles
- melib/nntp: implement NNTP posting
- configs: throw error on extra unused conf flags in some imap/nntp
- configs: throw error on missing
composingsection with explanation
- Fix compilation for netbsd-9.2
- conf: fixed some boolean flag values requiring to be string e.g. "true"
alpha-0.7.0 - 2021-09-03
Notable changes:
- add import command to import email from files into accounts
- add
add-attachment-file-pickercommand andfile_picker_commandsetting to use external commands to choose files when composing new mail - ask confirm for delete
- add
export-mboxcommand - add
export-mailcommand - add TLS support with nntp
- add JMAP watch with polling
- add
reload-configcommand - add
import-mailcommand - imap: implement gmail
XOAUTH2authentication method - imap: implement
OAUTH2authentication - compose: treat inline
message/rfc822as attachments - add gpg support via
libgpgme
- Loading notmuch library on macos
- Limit dbus dependency to
target_os = "linux" - IMAP, notmuch, mbox backends: various performance fixes
alpha-0.6.2 - 2020-09-24
- Add customizable mailbox tree in sidebar
- Make dbus dependency opt-out (feature is
dbus-notifications) - Implemented JMAP async, search, tagging, syncing
- Preserve account order from configuration file
- Implemented IMAP
CONDSTOREsupport for IMAP cache - Add timeout setting for IMAP
- Implement TCP keepalive for IMAP
- Rewrote email address parsers.
- Implement
copy_messagesfor maildir - Implement selection with motions
- Fixed various problems with IMAP cache
- Fixed various problems with IMAP message counts
- Fixed various problems with IMAP connection hanging
- Fixed IMAP not reconnecting on dropped IDLE connections
- Fixed various problems with notmuch backend
alpha-0.6.1 - 2020-08-02
- added experimental NNTP backend
- added server extension support and use in account status tab
- imap: fixed IDLE connection getting stuck when using DEFLATE
alpha-0.6.0 - 2020-07-29
-
Add select command to select threads that match search query
-
Add support for mass copying/deleting/flagging/moving of messages
-
IMAP: add support for
COMPRESS=DEFLATEand others Extension use can be configured with individual flags such asuse_deflate -
Rename
EXECUTEmode toCOMMAND -
add async IMAP backend
-
add in-app SMTP support
-
ui: Show decoded source by default when viewing an Envelope's source
-
ui: Add search in pagers
-
Add managesieve REPL binary for managesieve script management
-
imap:
add server_password_command -
configuration: Add per-folder and per-account configuration overrides. e.g.
accounts."imap.domain.tld".mailboxes."INBOX".index_style = "plain"The selection is done for a specific field as follows:
if per-folder override is defined, return per-folder override else if per-account override is defined, return per-account override else return global setting field value. -
themes: Add Italics, Blink, Dim and Hidden text attributes
-
ui: recognize readline shortcuts in Execute mode
-
ui: hopefully smarter auto-completion in Execute mode
-
demo NNTP python plugin
-
ui: add
auto_choose_multipart_alternative: Choosetext/htmlalternative iftext/plainis empty inmultipart/alternativeattachments. -
ui: custom date format strings
-
ui: manual refresh for mailbox view
-
ui: create mailbox command
-
fs autocomplete
-
ui: add support for
NO_COLOR -
enhanced, portable Makefile
-
added Debian packaging
-
added
default_header_values: default header values used when creating a new draft -
ui: switch between sidebar and mailbox view with
{left,right}keys for more intuitive navigation -
ui: add optional filter query for each mailbox view to view only the matching subset of messages (for example, you can hide all seen envelopes with
filter = "not flags:seen"
- Replace any use of 'folder' with 'mailbox' in user configuration
- Load libnotmuch dynamically
- Launch all user shell commands with
sh -c "..."
- notmuch: add support for multiple accounts on same notmuch db
alpha-0.5.1 - 2020-02-09
- Added in-terminal floating notifications with history
- Added mailbox creation/deletion commands in IMAP accounts
- Added
cli-docscompile time feature: Optionally build manpages to text withmandocand print them from the command line. - Added new theme keys