Support conversation/thread mode (~16d)

The rust-imap lib does not support the THREAD command for now, I opened an issue https://github.com/jonhoo/rust-imap/issues/221.

Using the new backend trait feature system, we can implement IMAP thread features when the imap lib supports it.

#email-lib (~13.5d)

  • Add new feature ListThreadedEnvelopes that returns a Vec<ThreadedEnvelope>. A ThreadedEnvelope is just an Envelope with a children: Vec<ThreadedEnvelope>. (~1d)
  • Implement ListThreadedEnvelopes feature for IMAP. (~1d)
  • Implement ListThreadedEnvelopes feature for Maildir. (~2d)
  • Implement ListThreadedEnvelopes feature for Notmuch. (~1d)
  • Add new feature ReadThreadedEnvelope that reads an envelope and all its thread in a tree. (~1.5d)
  • Implement ReadThreadedEnvelope feature for IMAP. (~1d)
  • Implement ReadThreadedEnvelope feature for Maildir. (~1d) -Implement ReadThreadedEnvelope feature for Notmuch. (~1d)
  • Add new feature ReadThreadedMessage that reads a message followed by its children. (~1d)
  • Implement ReadThreadedMessage feature for IMAP. (~1d)
  • Implement ReadThreadedMessage feature for Maildir. (~1d)
  • Implement ReadThreadedMessage feature for Notmuch. (~1d)

#himalaya (~2.5d)

  • Add new option --thread to the list command to list threaded envelopes. In table mode, display the latest envelope. If it contains children, display an icon in a new column. (~1.5d)
  • Add new option --thread to the read command to read a threaded message. (~1d)
Assigned to
1 year, 5 months ago
8 months ago
0:mou 1:email-lib 2:himalaya 3:cli