Emacs interface (notmuch.el)
----------------------------
+Switch the notmuch-search view to use "notmuch search --format=json"
+to fix large classes of bugs regarding poorly-escaped output and lame
+regular expressions. (The most recently found, unfixed example is the
+sender's name containing ';' which causes emacs to drop a search
+result.) This may require removing the outer array from the current
+"notmuch search --format=json" results.
+
Enhance '+' and '-' in the search view to operate on an entire region
if set.
a reply, or a forward). This again may require a notmuch-message-mode
that extends message-mode.
+Stop hiding the headers so much in the thread-view mode.
+
+Allow opening a message in thread-view mode by clicking on either
+line.
+
+Automatically open a message when navigating to it with N or P.
+
+Change 'a' command in thread-view mode to only archive open messages.
+
+Add a binding to open all closed messages.
+
+Make all authors and subjects available to isearch, (hidden by default
+but with magic expansion while isearching).
+
+Fix notmuch-hello as follows:
+
+ 1. Change the "notmuch" and message count in the welcome sentence to
+ not be buttons.
+
+ 2. Put the saved searches (if any) before the search bar.
+
+ 3. When `notmuch-hello' (or even `notmuch' when it gets its new name)
+ is invoked directly, move to the first button, (go to point-min and
+ then call widget-forward). That is, if the user has any saved
+ searches, then point will be on the first one. If the user has no
+ saved searches, then point will be on the search bar.
+
+ 4. Fix refresh of notmuch-hello to leave point in the same logical
+ place, (the same saved-search widget at least).
+
+Change the 'a'rchive command in the thread view to only archive open
+messages.
+
Emacs saved-search interface
----------------------------
Here's a proposal Carl wrote (id:87einafy4u.fsf@yoom.home.cworth.org):
Provide a ~me Xapian synonym for all of the user's configured email
addresses.
+Add symbol hiding so that we don't risk leaking any private symbols
+into the shared-library interface.
+
+Audit all libnotmuch entry points to ensure that all Xapian calls are
+wrapped in a try/catch block.
+
+Fix the "count" functionality to be exact as Olly explained in IRC:
+
+ ojwb> cworth: if you set the check_at_least parameter to the
+ database size, get_matches_estimated() will be exact
+
+Search syntax
+-------------
+Implement support for "tag:*" to expand to all tags.
+
+Fix "notmuch search to:" to be less confusing. Many users expect this
+to search for all messages with a To: header, but it instead searches
+for all messages with the word "to". If we don't provide the first
+behavior, perhaps we should exit on an error when a configured prefix
+is provided with no value?
+
+Support "*" in all cases and not just as a special case. That is, "* "
+should also work, as well as "* and tag:inbox".
+
+Implement a syntax for requesting set-theoertic operations on results
+of multiple searches. For example, I would like to do:
+
+ "tag:inbox" SET-SUBTRACT "tag:muted"
+
+ as well as:
+
+ "tag:notmuch and <date-range>" SET-INTERSECT
+ "tag:notmuch and not (tag:merged or tag:postponed)"
+
+ See id:3wdpr282yz2.fsf@testarossa.amd.com for more details on the
+ use cases of the above.
+
Database changes
----------------
Store a reference term for every message-id that appears in
Investigate why the notmuch database is slightly larger than the sup
database for the same corpus of email.
+
+Makefile should print message teaching user about LD_LIBRARY_PATH (or
+similar) if libdir is not set to a directory examined by ldconfig.
+
+Fix notmuch build system to work with gold, (apt-get
+binutils-gold). Need the notmuch binary to explicitly link againsts
+libraries it depends on, (rather than just getting them via
+libnotmuch).