Some people i communicate with regularly break threads when replying. This is a major pain. I'd like to be able to tell notmuch (perhaps programmatically) how to connect these threads. I know we've talked about being able to join threads, but no one has made such a change in notmuch, afaict. One of the major concerns people have about joining threads is that the action seems irreversible. If it were reversible (if it were easy to split a joined thread back into its original threads), maybe it would be less scary to have a "join thread" implementation? i see two ways to do this: a) store an "original thread" attribute for each message that has been joined, and just reset it when an unjoin is requested or b) when an unjoin is requested, do a graph analysis of every message in the thread's In-Reply-To and References headers, and recreate distinct threads from the connected components. the problem with (a) is that once threads are joined, and a new message is added to the joined thread, it's not clear which it should have as its "original thread". So what do folks think about (b)? If that was implemented, would it be less-scary to have a "join thread" operation? From the CLI, it would look something like: notmuch join-threads THREAD_A THREAD_B [ THREAD_C ... ] notmuch split-thread THREAD_X What do people think about this approach? --dkg