X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=TODO;h=3a62dc71afd69ed15976c936a0703610285beae2;hb=c9ba61bebef7733c4bf12adf94222e57621fdcf6;hp=572dac8ee3e3709d5a78fb7ddb496a04950bc6bc;hpb=3f8dfc36c470afa2ae0a342cee45c510281c77f9;p=notmuch diff --git a/TODO b/TODO index 572dac8e..3a62dc71 100644 --- a/TODO +++ b/TODO @@ -36,6 +36,45 @@ Fix i-search to open up invisible citations as necessary. Make '=' count from the end rather than from the beginning if more than half-way through the buffer. +Fix to automatically wrap long headers (for RFC compliance) before +sending. This should probably just be fixed in message-mode itself, +(but perhaps we can have a notmuch-message-mode that layers this on +top). + +Implement Fcc and use it for all messages, (whether a new composition, +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). + Emacs saved-search interface ---------------------------- Here's a proposal Carl wrote (id:87einafy4u.fsf@yoom.home.cworth.org): @@ -128,6 +167,20 @@ provide more MIME-structure information in its output first). Replace the "notmuch search-tags" command with "notmuch search --output=tags". +Fix to avoid this ugly message: + + (process:17197): gmime-CRITICAL **: g_mime_message_get_mime_part: assertion `GMIME_IS_MESSAGE (message)' failed + Warning: Not indexing empty mime part. + + This probably means adding a test case to generate that message, + filing an upstream bug against GMime, and then silencing the + notmuch-generated portion of the warning (so that once GMime is + fixed, this is all silent). + +Simplify notmuch-reply to simply print the headers (we have the +original values) rather than calling GMime (which encodes) and adding +the confusing gmime-filter-headers.c code (which decodes). + notmuch library --------------- Add an interface to accept a "key" and a byte stream, rather than a @@ -152,8 +205,6 @@ Fix to use the *last* Message-ID header if multiple such headers are encountered, (I noticed this is one thing that kept me from seeing the same message-ID values as sup). -Add support for the user to specify custom headers to be indexed. - Add support for configuring "virtual tags" which are a tuple of (tag-name, search-specification). The database is responsible for ensuring that the virtual tag is always consistent. @@ -187,8 +238,59 @@ notmuch searches. Here was one proposal made in IRC: 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. + +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 " 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 +References. We just started doing this for newly-added documents, but +at the next convenient database-schema upgrade, we should go back and +fix old messages to be consistent. + +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 ana 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). + Test suite ---------- +Start testing --format=json. + Achieve 100% test coverage with the test suite. Modularize test suite (to be able to run individual tests). @@ -199,6 +301,9 @@ Fix the insane quoting nightmare of the test suite, (and once we do that we can actually test the implicit-phrase search feature such as "notmuch search 'body search (phrase)'" +Test "notmuch reply" choosing the correct email address from the +Received header when no configured email address appears in To or Cc. + General ------- Audit everything for dealing with out-of-memory (and drop xutil.c).