--- /dev/null
+Return-Path: <amdragon@mit.edu>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+ by olra.theworths.org (Postfix) with ESMTP id 8CE7F431FAF\r
+ for <notmuch@notmuchmail.org>; Wed, 6 Aug 2014 10:07:01 -0700 (PDT)\r
+X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: -2.3\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=-2.3 tagged_above=-999 required=5\r
+ tests=[RCVD_IN_DNSWL_MED=-2.3] autolearn=disabled\r
+Received: from olra.theworths.org ([127.0.0.1])\r
+ by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
+ with ESMTP id erLWDMylNGod for <notmuch@notmuchmail.org>;\r
+ Wed, 6 Aug 2014 10:06:56 -0700 (PDT)\r
+Received: from dmz-mailsec-scanner-7.mit.edu (dmz-mailsec-scanner-7.mit.edu\r
+ [18.7.68.36])\r
+ (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))\r
+ (No client certificate requested)\r
+ by olra.theworths.org (Postfix) with ESMTPS id 5B566431FAE\r
+ for <notmuch@notmuchmail.org>; Wed, 6 Aug 2014 10:06:56 -0700 (PDT)\r
+X-AuditID: 12074424-f79146d00000067c-7c-53e260af966e\r
+Received: from mailhub-auth-2.mit.edu ( [18.7.62.36])\r
+ (using TLS with cipher AES256-SHA (256/256 bits))\r
+ (Client did not present a certificate)\r
+ by dmz-mailsec-scanner-7.mit.edu (Symantec Messaging Gateway) with SMTP\r
+ id EE.76.01660.FA062E35; Wed, 6 Aug 2014 13:06:55 -0400 (EDT)\r
+Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11])\r
+ by mailhub-auth-2.mit.edu (8.13.8/8.9.2) with ESMTP id s76H6rw8000480; \r
+ Wed, 6 Aug 2014 13:06:54 -0400\r
+Received: from awakening.csail.mit.edu (awakening.csail.mit.edu [18.26.4.91])\r
+ (authenticated bits=0)\r
+ (User authenticated as amdragon@ATHENA.MIT.EDU)\r
+ by outgoing.mit.edu (8.13.8/8.12.4) with ESMTP id s76H6ovc017161\r
+ (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT);\r
+ Wed, 6 Aug 2014 13:06:52 -0400\r
+Received: from amthrax by awakening.csail.mit.edu with local (Exim 4.80)\r
+ (envelope-from <amdragon@mit.edu>)\r
+ id 1XF4fq-00051B-60; Wed, 06 Aug 2014 13:06:50 -0400\r
+Date: Wed, 6 Aug 2014 13:06:48 -0400\r
+From: Austin Clements <amdragon@MIT.EDU>\r
+To: Gaute Hope <eg@gaute.vetsj.com>\r
+Subject: Re: [PATCH] Add configurable changed tag to messages that have been\r
+ changed on disk\r
+Message-ID: <20140806170647.GA13893@mit.edu>\r
+References: <1396800683-9164-1-git-send-email-eg@gaute.vetsj.com>\r
+ <87fviiiuzn.fsf@maritornes.cs.unb.ca>\r
+ <CABKe4Mv6p77i5dBT9BV41hxmtrE4UPLR3NjZfpLuZDoE1KWYyA@mail.gmail.com>\r
+ <20140801185505.GS13893@mit.edu>\r
+ <CABKe4MskJk6JuJ29A8o1-U-5Sz-xUCTJXJqvq22PqodGQKRZdw@mail.gmail.com>\r
+MIME-Version: 1.0\r
+Content-Type: text/plain; charset=us-ascii\r
+Content-Disposition: inline\r
+In-Reply-To:\r
+ <CABKe4MskJk6JuJ29A8o1-U-5Sz-xUCTJXJqvq22PqodGQKRZdw@mail.gmail.com>\r
+User-Agent: Mutt/1.5.21 (2010-09-15)\r
+X-Brightmail-Tracker:\r
+ H4sIAAAAAAAAA+NgFprKKsWRmVeSWpSXmKPExsUixG6nors+4VGwQddxTYsbrd2MFk2fL7Fa\r
+ XL85k9liX7+/A4vHj3/NbB7PVt1i9pgyay67x5ZD75kDWKK4bFJSczLLUov07RK4Mo48nM5W\r
+ 8Ea0YnnHHcYGxj7BLkYODgkBE4krn0K6GDmBTDGJC/fWs4HYQgKzmSROXFfrYuQCsjcwSky9\r
+ coQJwjnFJLH27yxGCGcJo0R/x0Z2kBYWARWJRS+2MoHYbAIaEtv2L2cEsUUElCUuvdnPDGIz\r
+ C5RJ9D6ZC7ZCWCBOYtrlHUwgV/AK6Eh0bHKAmDmLSWLO6iVgM3kFBCVOznzCAtGrJXHj30uw\r
+ emYBaYnl/zhAwpwCgRInZ0wFWyUKdMKUk9vYJjAKzULSPQtJ9yyE7gWMzKsYZVNyq3RzEzNz\r
+ ilOTdYuTE/PyUot0zfVyM0v0UlNKNzGCQ99FZQdj8yGlQ4wCHIxKPLwz4x8GC7EmlhVX5h5i\r
+ lORgUhLlDY1+FCzEl5SfUpmRWJwRX1Sak1p8iFGCg1lJhFfcBijHm5JYWZValA+TkuZgURLn\r
+ fWttFSwkkJ5YkpqdmlqQWgSTleHgUJLgrY8HahQsSk1PrUjLzClBSDNxcIIM5wEaHgVSw1tc\r
+ kJhbnJkOkT/FqCglzrscJCEAksgozYPrhaWmV4ziQK8I86aDVPEA0xpc9yugwUxAg8107oMM\r
+ LklESEk1MEY0HH2gvkja7fsGv7efuWe0zJwg+uaH2Ga1I6t2u77k3jK9q0TqlZPLrLeCk+p9\r
+ zJ8JuS3Quan/vu5oMN+alJVznv+YpreF++ezL72FTdbiGRNNq9XnBZoFX6/S+PThefPs4M/q\r
+ E6MeS17adtli2fyS/Z9Xv5x5Vfrk1Y0Bf7OnTFub+ObJiqteSizFGYmGWsxFxYkAKYrP6SgD AAA=\r
+Cc: notmuch <notmuch@notmuchmail.org>\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.13\r
+Precedence: list\r
+List-Id: "Use and development of the notmuch mail system."\r
+ <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
+ <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
+ <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Wed, 06 Aug 2014 17:07:01 -0000\r
+\r
+Quoth Gaute Hope on Aug 06 at 11:02 am:\r
+> On Fri, Aug 1, 2014 at 8:55 PM, Austin Clements <amdragon@mit.edu> wrote:\r
+> > I have a prototype implementation of message modification times on my\r
+> > lastmod-v1 branch at\r
+> >\r
+> > https://github.com/aclements/notmuch/tree/lastmod-v1\r
+> >\r
+> > It builds on my database features series that's currently awaiting\r
+> > review [1].\r
+> >\r
+> > The series uses a monotonic revision number, rather than wall-clock\r
+> > time, for reasons related to Xapian's concurrent control and detailed\r
+> > in the main commit's commit message. The implementation isn't quite\r
+> > useful from the CLI yet because I haven't added any way to query the\r
+> > database's current revision number. (I'm still thinking about how I\r
+> > want to do this, since search/show don't have a good way to deliver\r
+> > "additional" information right now. I might just add the last\r
+> > modification for each individual message/max of all messages in a\r
+> > thread, similar to what Thomas Jost's patch did long ago.)\r
+> >\r
+> > [1] id:1406859003-11561-1-git-send-email-amdragon@mit.edu\r
+> \r
+> \r
+> Hi,\r
+> \r
+> this should allow me to do what I wish to accomplish. The message\r
+> deletion is still a problem though, I can see two options at the moment:\r
+> \r
+> a) output during notmuch new to a hook or a list somewhere deleted files.\r
+> if list: notmuch will not handle this list, only append to it and\r
+> the user must\r
+> purge it when it is safe to do so.\r
+> \r
+> if hook: for my purposes I would just create a hook appending to the\r
+> list. as a minimum I think thread_id, message_id and revision number\r
+> should be included.\r
+> \r
+> \r
+> b) maintain a full list of deleted / dead messages. a user initiated\r
+> purge can clean this from the database. a tag could be used for this,\r
+> so that clients can ignore unlinked/deleted/dead messages. this\r
+> differs from a 'deleted' message (IMAP/Maildir context) that has not\r
+> yet been expunged so there is confusion to be avoided.\r
+> \r
+> a garbage collection function and interface must also be set up, but\r
+> this one is probably simple.\r
+> \r
+> \r
+> in most cases I think a) would be sufficient, and probably much easier\r
+> to do. it might be slow in cases where large amounts of messages have been\r
+> deleted, but this is seldom the case for me at least.\r
+\r
+I have a separate branch (also sitting on top of the features branch)\r
+that implements "ghost" messages. The main intent is to fix a bug we\r
+currently have in threading, but it puts us in a good position to\r
+maintain state for messages we don't have the content of, including\r
+last modification times for deleted messages and pre-seeded tags for\r
+undelivered messages (useful for pre-tagging sent messages as sent,\r
+nmbug, notmuch insert, etc.)\r