--- /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 9190B431FBC\r
+ for <notmuch@notmuchmail.org>; Tue, 22 Oct 2013 12:51:13 -0700 (PDT)\r
+X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: -0.7\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=-0.7 tagged_above=-999 required=5\r
+ tests=[RCVD_IN_DNSWL_LOW=-0.7] 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 x7c-y-bNc1qh for <notmuch@notmuchmail.org>;\r
+ Tue, 22 Oct 2013 12:51:07 -0700 (PDT)\r
+Received: from dmz-mailsec-scanner-8.mit.edu (dmz-mailsec-scanner-8.mit.edu\r
+ [18.7.68.37])\r
+ by olra.theworths.org (Postfix) with ESMTP id 458E8431FD7\r
+ for <notmuch@notmuchmail.org>; Tue, 22 Oct 2013 12:51:07 -0700 (PDT)\r
+X-AuditID: 12074425-b7f1c8e0000009c7-88-5266d7288e9c\r
+Received: from mailhub-auth-1.mit.edu ( [18.9.21.35])\r
+ by dmz-mailsec-scanner-8.mit.edu (Symantec Messaging Gateway) with SMTP\r
+ id CF.B5.02503.827D6625; Tue, 22 Oct 2013 15:51:04 -0400 (EDT)\r
+Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11])\r
+ by mailhub-auth-1.mit.edu (8.13.8/8.9.2) with ESMTP id r9MJp3vw015067\r
+ for <notmuch@notmuchmail.org>; Tue, 22 Oct 2013 15:51:04 -0400\r
+Received: from drake.dyndns.org (31-33-57.wireless.csail.mit.edu\r
+ [128.31.33.57]) (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 r9MJp0fl005184\r
+ (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NOT)\r
+ for <notmuch@notmuchmail.org>; Tue, 22 Oct 2013 15:51:03 -0400\r
+Received: from amthrax by drake.dyndns.org with local (Exim 4.77)\r
+ (envelope-from <amdragon@mit.edu>) id 1VYhym-0006yb-Gv\r
+ for notmuch@notmuchmail.org; Tue, 22 Oct 2013 15:51:00 -0400\r
+From: Austin Clements <amdragon@MIT.EDU>\r
+To: notmuch@notmuchmail.org\r
+Subject: [PATCH 0/8] Improve tag change completion\r
+Date: Tue, 22 Oct 2013 15:50:49 -0400\r
+Message-Id: <1382471457-26056-1-git-send-email-amdragon@mit.edu>\r
+X-Mailer: git-send-email 1.8.4.rc3\r
+X-Brightmail-Tracker:\r
+ H4sIAAAAAAAAA+NgFupnkeLIzCtJLcpLzFFi42IR4hRV1tW4nhZkcOiLpcX1mzOZHRg9nq26\r
+ xRzAGMVlk5Kak1mWWqRvl8CVsfXmRJaCyVwVFzcfYGxgXM3RxcjJISFgIvG7czM7hC0mceHe\r
+ erYuRi4OIYF9jBIfF/1khHDOM0r8WP0CrEpI4AmTRMMfGYjEbkaJJZPPsoAk2AQ0JLbtX84I\r
+ YosISEvsvDubFcQWFjCS+Lx3D1gzi4CqxJefS5hBbF4BB4lNd5axQqxWklh4ahvrBEaeBYwM\r
+ qxhlU3KrdHMTM3OKU5N1i5MT8/JSi3Qt9HIzS/RSU0o3MYL8ze6iuoNxwiGlQ4wCHIxKPLwP\r
+ WtKChFgTy4orcw8xSnIwKYnyRlwFCvEl5adUZiQWZ8QXleakFh9ilOBgVhLhbfYFyvGmJFZW\r
+ pRblw6SkOViUxHlvcdgHCQmkJ5akZqemFqQWwWRlODiUJHiFrgE1ChalpqdWpGXmlCCkmTg4\r
+ QYbzAA0/BrKYt7ggMbc4Mx0if4pRUUqcVxikWQAkkVGaB9cLi8dXjOJArwjzcoJU8QBjGa77\r
+ FdBgJqDBU5aADS5JREhJNTAme4Y+/8GTselZ79Ov5eKZDe9mHt5za1v752O+id9+z5Pcdrfk\r
+ YM2UK9zJfbYLtZS0l9yqvNtt2iAnsOr05+AagQoOLe0UteCrS9fYrdiZet5Tvfypj9S1y+/v\r
+ VnvH3Gy9+FFxSfkicynll/v+yq8vPXLH5ub16gN3vBaFKmxW6M2dv0b02tVkJZbijERDLeai\r
+ 4kQAFlZD+KICAAA=\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: Tue, 22 Oct 2013 19:51:13 -0000\r
+\r
+This series improves tag change completion in various ways for\r
+commands like +, -, and *.\r
+\r
+>From a user perspective, this provides command-specific prompts like\r
+"Tag message" and "Tag all" instead of the generic "Tag" prompt, and\r
+bases tag removal completions on the tags that are in the buffer,\r
+rather than the current tags in the database, providing a more\r
+predicable experience.\r
+\r
+>From an implementation perspective, this new tag removal completion\r
+behavior improves efficiency and eliminates a road block to fixing the\r
+tagging race bug (which otherwise results in massive queries just to\r
+compute removal completions). The new code is also more "Elispy" and\r
+predictable because all tag change prompting now occurs at the\r
+interactive entry points, rather than buried under several layers of\r
+non-interactive calls.\r
+\r
+This is a spiritual successor to\r
+id:1354263691-19715-1-git-send-email-markwalters1009@gmail.com, though\r
+it takes a very different approach. This is also a prerequisite to\r
+the tag race fix in\r
+id:1381185201-25197-1-git-send-email-amdragon@mit.edu and I plan to\r
+send an updated version of that series when this one is accepted.\r
+\r
+Patches 1, 5, and 6 could be pushed on their own. They fix bugs or\r
+sort of bugs that get in the way of the rest of the series.\r
+\r