aboutsummaryrefslogtreecommitdiffhomepage
path: root/TODO
diff options
context:
space:
mode:
authorGravatar Carl Worth <cworth@cworth.org>2009-10-27 10:04:48 -0700
committerGravatar Carl Worth <cworth@cworth.org>2009-10-27 10:04:48 -0700
commitc690420076b5b2597311085b7cde82f64deabe88 (patch)
tree7257b457e564d5a1fbfb9c90a02558d63a72afd7 /TODO
parent31db02a8c1afdb025da6e0e7e62630ffffc69eb7 (diff)
TODO: Add "notmuch tag" and thoughts on avoiding races in archiving threads.
The archive-thread race condition doesn't even exist now because there's no command for modifying tags at the level of a thread (just individual messages).
Diffstat (limited to 'TODO')
-rw-r--r--TODO20
1 files changed, 20 insertions, 0 deletions
diff --git a/TODO b/TODO
index baec040d..c5c748f6 100644
--- a/TODO
+++ b/TODO
@@ -1,5 +1,25 @@
+Write a "notmuch tag" command to add/remove tags from messages
+matching a search query.
+
Write a "notmuch show" that displays a single thread.
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).
+
+Think about this race condition:
+
+ A client executes "notmuch search"
+ Then executes "notmuch show" on a thread
+ While user is reading, new mail is added to database for the thread
+ Client asks for the thread to be archived.
+
+ The bug here is that email that was never read will be
+ archived. That's bad. With the command set above, the user can
+ avoid the problem by just not running "notmuch new" while reading
+ mail, but the same problems exists with the API. One possible
+ solution would be to store an additional timestamp with each mail
+ document for the time it was added to the database. Then searches
+ could return a timestamp, and the client could pass that same
+ timestamp back to the archive command to not modify any messages
+ with a timestamp newer than what's passed.