----------------------------------------------------------
1. A new import is tagging all messages as "inbox" -- total pain
-2. Allow an easy way to get tags from directory names (if the user has them)
-
Emacs interface (notmuch.el)
----------------------------
Add notmuch-bcc and notmuch-cc for setting default Bcc and Cc values,
"notmuch search --format=json" results.
Fix '*' to work by simply calling '+' or '-' on a region consisting of
-the entire buffer.
+the entire buffer, (this would avoid one race condition---while still
+leaving other race conditions---but could also potentially make '*' a
+very expensive operation).
Add a global keybinding table for notmuch, and then view-specific
tables that add to it.
Add support for a delete keybinding that adds a "deleted" tag to the
current message/thread and make searches not return deleted messages
-by default, (unless the user asks explicitly for deleted messags in
+by default, (unless the user asks explicitly for deleted messages in
the search query).
+Add keybindings for next/previous thread.
+
Add support to "mute" a thread (add a "muted" tag and then don't
display threads in searches by default where any message of the thread
has the "muted" tag).
notmuch command-line tool
-------------------------
+Add support to "notmuch search" and "notmuch show" to allow for
+listing of duplicate messages, (distinct filenames with the same
+Message-ID). I'm not sure what the option should be named. Perhaps
+--with-duplicates ?
+
+Add a -0 option to "notmuch search" so that one can safely deal with
+any filename with:
+
+ notmuch search --output=files -0 <terms> | xargs -0 <command>
+
+"notmuch setup" should use realpath() before replacing the
+configuration file. The ensures that the final target file of any
+intermediate symbolic links is what is actually replaced, (rather than
+any symbolic link).
+
Replace "notmuch reply" with "notmuch compose --reply <search-terms>".
This would enable a plain "notmuch compose" to be used to construct an
initial message, (which would then have the properly configured name
indexing.
Replace the "notmuch part --part=id" command with "notmuch show
---part=id", (David Edmonson wants to rewrite some of "notmuch show" to
+--part=id", (David Edmondson wants to rewrite some of "notmuch show" to
provide more MIME-structure information in its output first).
Replace the "notmuch search-tags" command with "notmuch search
notmuch library
---------------
+Add support for custom flag<->tag mappings. In the notmuch
+configuration file this could be
+
+ [maildir]
+ synchronize_flags = R:replied; D*:deleted; S:~unread;
+
+In the library interface this could be implemented with an array of
+structures to define the mapping (flag character, tag name,
+inverse-sense bit (~ above), and tag-when-any-file-flagged
+vs. tag-when-all-files-flagged (* above)).
+
Add an interface to accept a "key" and a byte stream, rather than a
filename.
ojwb> cworth: if you set the check_at_least parameter to the
database size, get_matches_estimated() will be exact
+Fix the threading of a message that has a References: header but no
+In-Reply-To: header (see id:"87lixxnxpb.fsf@yoom.home.cworth.org").
+
Search syntax
-------------
Implement support for "tag:*" to expand to all tags.
Start indexing the List-Id header, (and re-index this header for
existing messages at the next database upgrade).
-Start indexing the message file's directory and make it available for
-search as "folder:" (and re-index this value for existing messages at
-the next database upgrade).
-
Add support for the user to specify custom headers to be indexed (and
re-index these for existing messages at the next database upgrade).
+Save filenames for files detected as "not an email file" in the
+database. This would allow for two things: 1. Optimizing "notmuch new"
+to not have to look at these files again (since they are potentially
+large so the detection could be potentially slow). 2. A "notmuch
+search" syntax could be added to allow the user to find these files,
+(and perhaps delete them or move them away as appropriate).
+
+Fix filesystem/notmuch-new race condition by not updating database
+mtime for a directory if it is the same as the current mtime.
+
Test suite
----------
Achieve 100% test coverage with the test suite.