NEWS

Summary

Maintainability
Test Coverage
0.10:
* various fixes with mailcap handling
* info: alot now depends on the new-style cffi bindings (notmuch2, available under notmuch/bindings/python-cffi)
* config: new option search_threads_rebuild_limit (to speed up "move last" in large search buffers)


0.9.1:
* focus in search mode is preserved when refreshing
* feature: new 'togglemimepart' cmd in thread mode toggles between plain and html alternative
* feature: add "togglemimetree" command to thread mode
* envelope mode: "unattach" command is now "detach"
* feature: respect mailcap entry for text/plain to enrich plaintext parts with ANSI codes

0.9:
* feature: interpret ANSI escape codes (e.g.for colours) when displaying messages
* config: configure message-id domains for each account
* feature: new envelope commands txt2html, html2txt, removehtml
* info: updated signature of hooks 'reply_prefix' and 'forward_prefix', now include a named parameter for the message being replied/forwarded

0.8:
* Port to python 3. Python 2.x no longer supported
* support for notmuch's named queries. This adds a new 'namedqueries' mode and accompanied commands
* config: new option replied_tags
* config: new option passed_tags
* feature: new command "retagprompt" in thread buffers
* extra: update zsh completion

0.7:
* info: missing html mailcap entry now reported as mail body text
* feature: Allow regex special characters in tagstrings
* feature: configurable thread mode message indentation
* new thread buffer command "indent" (bound to '[' and ']')
* config: new option thread_indent_replies
* config: new option exclude_tags
* config: new option encrypt_to_self
* config: update behaviour of encrypt_by_default

0.6:
* feature: Add command to reload configuration files in running session
* feature: new command "tag" (and friends) in EnvelopeBuffer to add additional tags after sending
* feature: Themes can now be loaded from system locations
* bug fix: GPG signatures are acutally verified
* feature: option to use linewise focussing in thread mode
* feature: add support to move to next or previous message matching a notmuch query in a thread buffer
* feature: Convert from deprecated pygppme module to upstream gpg wrappers
* feature: Verify signatures/decrypt messages in multipart/mixed payloads

0.5:
* save command prompt, recipient and sender history across program restarts
* new config option: "handle_mouse" to enable interpretation of mouse events
* prompt for unsent messages before closing
* enable variable interpolation in config file
* Add encryption to CC addresses
* Add bufferlist, tablist and pyshell subcommands to the command line interface
* new hook: "loop_hook", that runs periodically
* new config option: "periodic_hook_frequency" to adjust how often to fire "loop_hook"

0.4:
* signal: refresh current buffer on SIGUSR1
* signal: exit interface on SIGINT
* interpret C-g keybinding in prompts
* new config option:encrypt_by_default
* new config option: thread_authors_order_by
* indicate untrusted PGP signatures in thread view
* more flexible account selection for replies

0.3.7:
* new config option: msg_summary_hides_threadwide_tags
* new config setting: thread_subject
* new hook: sanitize_attachment_filename
* new hook: exit()
* list replies (new command parameter and config setting: auto_replyto_mailinglist)
* new config setting for accounts: encrypt_by_default
* new config setting for accounts: alias_regexp
* new config setting for abooks: shellcommand_external_filtering
* switched to setuptools
* detached urwidtrees library into separate project (and new dependency)

0.3.6:
* implement vim-style "move last" command (bound to G)
* fixes in reply/forwarding
* add option "--tags" to taglist command to display only a subset of the tags
* fix: safely interrumpt a command sequence
* use suffix ".eml" for temporary email files when editing
* interpret "compose mailto:foo@bar" commands
* new "tomorrow" colour theme
* Add some Emacs keybindings for prompts

0.3.5:
* full support for PGP/MIME [de|en]cryption and signatures
* add missing "unattach" command in envelope buffer
* honor 'Mail-Followup-To' header and set if for selected mailinglists
* better handling of replies to self-sent messages
* make auto_remove_unread configurable
* rewrite thread buffer
* improved global move commands: first/last line, half-page up/down
* tree-based movement in threads (first/last reply, next/previous unfolded/sibling, parent)
* fold/unfold messages based on query string in thread mode
* respect mailcap commands that expect stdin
* Support different libmagic APIs
* new hooks called before/aftr buffer open/close/focus
* new global repeat command

0.3.4:
* extra: zsh completion file
* thread mode: add "tags" pseudo header to message display
* case insensitive matching in Addressbook completion
* compose: interpret "attach" pseudo header
* compose: set initial message tags
* envelope: completion for 'From'
* reply/forward: more flexible construction of "From" headers (hello plussing!)
* thread mode: added bounce command for direct redirection w/o an envelope buffer
* thread mode: more robust "pipeto" command
* add config option "prefer_plaintext"
* prevent multiple 'index locked' notifications
* kill some zombies! (#325)
* search mode: bulk tagging
* less annoying multi-key bindings
* add global "move" command for scriptable cursor movement
* support for encrypted outgoing mails using PGP/MIME

0.3.3:
* interpret (semicolon separated) sequences of commands
* new input handling: allow for binding sequences of keypresses
* add ability to overwrite default bindings
* remove tempfiles (email drafts) as late as possible for better error recovery
* confirmation prompt when closing unsent envelopes
* prevent accidental double sendout of envelopes
* fix focus placement after tagcommand on last entry in search buffer
* new command 'buffer' that can directly jump to buffer with given number
* extra: sup theme
* fix tagstring sorting in taglist buffer
* update docs
* lots of internal cleanups
* search buffer theming fixes (alignment of threadline parts)
* fix help box theming
* comma-separate virtual "Tags" header added before printing mails
* fix pipeto command for interactive (foreground) shell commands
* handle possible errors occurring while saving mails
* indicate (yet uninterpreted) input queue in the status bar
* handle python exceptions that occur during 'call' command

0.3.2:
* fix bad GPG signatures for mails with attachments
* new theme-files + tags section syntax
* re-introduce "highlighting" of thread lines in search mode
* new global command "call" to directly call and bind python commands
* add new buffers to direct neighbourhood of current one
* fix sanitize --spawn for X11-less use
* add new hook 'touch_external_cmdlist'
* make statusline configurable
* fix update result count after tag operations in search mode
* add config options and hooks for reply/forward subject generation
* add config options and hook for quoting messages in replies/forwards
* allow True/False/None values for boolean command parameters
* new config option "attachment_prefix"
* various small fixes for libmagic, header encoding and decoding

0.3.1:
* use separate database for each write-queue entry when flushing
* fix behaviour of editor spawning
* fix opening of attachments in thread buffer
* fix pre_edit_translate hook
* fix opening of attachments without filename Content-Disposition parm
* clean up and complete theming (bindings help/envelope/mainframe body)
* fix datetime decoding issues
* fix abort commands on pre-hook exceptions
* fix correct default sendmail command to 'sendmail -t'
* use '> ' instead of '>' to quote in replies/fwds
* fix path completer wrt spaces in paths
* fix UI when no buffers are open
* fix issue with buffer type changing between flushes
* support multiple addresses per abook contact when using 'abook' completer
* smarter timestamp pretty printer
* new hook 'timestamp_format'
* merge multiple cc/to headers into one when displaying
* respect NOTMUCH_CONFIG env var
* smarter parsing of edited header values
* allow for singleton lists without trailing comma in config
* fix reverse-date sorted content in threadline if displayed
* emacs-style C-a and C-E in prompts
* added ability to sign outgoing mails via PGP/MIME

0.3:
* revised config syntax!
* config file validation, better feedback on malformed configs
* themes read from separate files in their own (validated) syntax
* complete mailcap compatibility
* user manual
* direct addressbook type that parses `abook`s contacts
* completion for multiple recipients via AbooksCompleter
* completion for optional command parameter
* generate and set a Message-ID header when constructing mails
* add User-Agent header by default
* add sent and saved draft mails to the notmuch index and add custom tags
* guess file encodings with libmagic
* new thread mode command: "remove" to delete messages from the index
* new thread mode command: "editnew" e.g. to continue drafts (bound to 'n')
* new thread mode command: "togglesource" to display raw messages (bound to 'h')
* virtual "Tags" header for print and pipeto commands via --add_tags parameter
* much improved pipeto command in thread mode
* --spawn parameter for reply,forward,compose,editnew in thread mode
* --no-flush parameter for delayed flushing in tag,untag,toggletags commands
* make "signature as attachment" configurable; --omit_signature parameter for compose
* new envelope command: "save" to save as draft (bound to 'P')
* --no-refocus and --spawn parameter for edit in envelope mode
* header key completion for set/unset in envelope buffer
* "Me" substitution for ones own name/address in authors string
* new search mode command and search argument: "sort"
* renamed search mode command 'toggletag' to "toggletags"
* new search mode commands: "tag" and "untag"
* custom tagstring representation: hiding, substitution, colours, multi-matching

0.21:
* avoid traceback infos from getting written on top of the ui
* new "--help" output, autogenerated manpage
* version string extracted from git for cli option "--version"
* command line subcommands: compose and search
* properly display multiple headers with the same key
* envelope.set option "--append"
* more detailed CUSTOMIZE docs
* multiple fixes for the envelope buffer
* exit on closing of last buffer is now optional
* die gracefully when config parsing fails
* random bugfixes in the ui
* determine attachments via the "Content-Disposition" header
* nicer alignment for messages in thread buffers
* deal with external commands as lists of strings instead of strings
* better filetype detection in attachments via magic numbers
* errbacks and correct calling of post-hooks for deferred commands
* add packaging info for debian
* envelope.headers stores lists of values for each key now
* default binding: 's' to 'toggletag unread' in search buffers

0.20:
* extensive API docs
* fancy shortening for authors list
* moved default location for config to ~/.config/alot/config
* message templates
* hooks for pre/post editing and RE/FWD quotestrings
* recipient completion gives priority to abook of sender account
* smarter in-string-tab completion
* added ability to pipe messages/treads to custom shell commands
* initial command configurable in config file
* non-blocking prompt/choice (new syntax for prompts!)
* usage help for every command
* bindings help
* tons of fixes

0.11:
This minor release is mostly bug fixes and some small features.
I wanted to release a more stable and usable version before I start
hacking on a thread view rewrite.

* renamed config section [tag translate] to [tag-translate]
* docs: more elaborate API docs, INSTALL and USAGE as markdown in github wiki
* more compact header displays in thread view
* command-line history (for one session)
* editor file encoding is now user configurable
* signatures for outgoing mails per account
* optional display of message content in search results
* config option for strftime formating of timestamps
* printing

* fix parse multiline headers from edited tempfile
* fix reply to unusually formated mails (e.g. no recipient)
* fix lots of encoding issues
* handle extra wide characters in tag widgets
* fixes in ui.prompt
* fix storing outgoing mails to sent_box
* more liberal header encoding for outgoing mails
* use mimetype lib to guess right content-type of attachments