1 Write a "notmuch tag" command to add/remove tags from messages
2 matching a search query.
4 Write a "notmuch show" that displays a single thread.
6 Fix to use the *last* Message-ID header if multiple such headers are
7 encountered, (I noticed this is one thing that kept me from seeing the
8 same message-ID values as sup).
10 Think about this race condition:
12 A client executes "notmuch search"
13 Then executes "notmuch show" on a thread
14 While user is reading, new mail is added to database for the thread
15 Client asks for the thread to be archived.
17 The bug here is that email that was never read will be
18 archived. That's bad. The fix for the above is for the client to
19 archive the individual messages already retrieved and shown, not
20 the thread. (And in fact, we don't even have functions for removing
23 But this one is harder to fix:
25 A client executes "notmuch search"
26 While user is reading, new mail is added to database for the thread
27 Client asks for a thread to be archived.
29 To support this operation, (archiving a thread without even seeing
30 the individual messages), we might need to provide a command to
31 archive a thread as a whole. The problem is actually easy to fix
32 for a persistent client. It can onto the originally retrieved
33 thread objects which can hold onto the originally retrieved
34 messages. So archiving those thread objects, (and not newly created
35 thread objects), will be safe.
37 It's harder to fix the non-persistent "notmuch" client. One
38 approach is to simply tell the user to not run "notmuch new"
39 between reading the results of "notmuch search" and executing
40 "notmuch archive-thread" (or whatever we name it).