commit 380ccdd43a5931871bb82f526836c23a7c1aafae
parent cbc14ba032e48e06710275cc305c9e4253467a5e
Author: Oswald Buddenhagen <ossi@users.sf.net>
Date: Sun, 1 Oct 2017 14:37:36 +0200
update TODO
Diffstat:
M | TODO | | | 33 | ++++++++++++++++++++++++++++++++- |
1 file changed, 32 insertions(+), 1 deletion(-)
diff --git a/TODO b/TODO
@@ -2,8 +2,21 @@ f{,data}sync() usage could be optimized by batching the calls.
make SSL (connect) timeouts produce a bit more than "Unidentified socket error".
+automatically resume upon transient errors, e.g. "connection reset by peer"
+or timeout after some data was already transmitted.
+possibly also try to handle Exchange's "glitches" somehow.
+
+add support for IMAP UTF-7 (for internationalized mailbox names).
+
uidvalidity lock timeout handling would be a good idea.
+should complain when multiple Channels match the same folders.
+
+propagate folder deletions even when the folders are non-empty.
+- verify that "most" of the folders in the Channel are still there.
+- refuse to delete unpropagated messages when trashing on the remote side.
+- refuse to delete master if it has unpropagated messages. symmetry?
+
add message expiration based on arrival date (message date would be too
unreliable). MaxAge; probably mutually exclusive to MaxMessages.
@@ -11,6 +24,21 @@ add alternative treatments of expired messages. ExpiredMessageMode: Prune
(delete messages like now), Keep (just don't sync) and Archive (move to
separate folder - ArchiveSuffix, default .archive).
+add support for event notification callbacks.
+it would be also possible to report more differentiated exit codes, but
+that seems too limiting in the general case.
+
+make it possible to have different mailbox names for Master and Slave in
+Patterns.
+- use master:slave for the pattern
+ - for quoting, use more colons: the longest sequence of colons is the
+ separator
+- this makes Groups mostly useless, as they are mostly a workaround for this
+ function being missing so far
+- this is needed for move detection, which would work only within one Channel
+
+normalize INBOX capitalization received from IMAP, to avoid anomalies.
+
kill the concept of an INBOX, it is a relic from single-channel operation.
if somebody needs it, he can have two stores with different Paths. the path
can name a single (in-)box (curr. broken with maildir). an empty box name
@@ -26,6 +54,7 @@ add daemon mode. primary goal: keep imap password in memory.
also: idling mode.
parallel fetching of multiple mailboxes.
+TLS session resumption becomes interesting then as well.
imap_set_flags(): group commands for efficiency, don't call back until
imap_commit().
@@ -49,6 +78,8 @@ and in write-only mode not before changes are made.
problem: UIDVALIDITY change detection is delayed, significantly complicating
matters.
+some error messages are unhelpful in non-verbose mode due to missing context.
+
possibly use ^[[1m to highlight error messages.
consider alternative approach to trashing: instead of the current trash-before-
@@ -61,4 +92,4 @@ however, this implies a huge working set.
consider optional use of messages-id (and X-GM-MSGID):
- detection of message moves between folders
-- recovery from unmotivated UIDVALIDITY change, or total loss of sync state
+- recovery from loss of sync state, migration from other tools