X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=TODO;h=c5c748f65f92f6180c8ebb9ef26bf05652a17b02;hb=c690420076b5b2597311085b7cde82f64deabe88;hp=8f9a1a98c5ae13e925c30bcc90777d64525abec0;hpb=e8d8906d9c912d02adbf9ab5ed66f5d6d579fa99;p=notmuch diff --git a/TODO b/TODO index 8f9a1a98..c5c748f6 100644 --- a/TODO +++ b/TODO @@ -1,12 +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). -Fix "notmuch restore" to delete the old tags from a message/thread -before adding new ones. This will require someway to temporarily -'disconnect' a notmuch_message_t from the database, (that it, disable -automatic sync for add_tag, etc.), and then reconnect it. That is, the -removal and subsequent addition of tags to the message/thread needs to -be transactional. +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.