go-imap icon indicating copy to clipboard operation
go-imap copied to clipboard

imapserver: Add CONDSTORE and QRESYNC extension support

Open dejanstrbac opened this issue 6 months ago • 4 comments

Implementing changes requested

dejanstrbac avatar Jun 06 '25 10:06 dejanstrbac

Ref https://github.com/emersion/go-imap/pull/687 which contained the previous version of this PR.

emersion avatar Jun 09 '25 14:06 emersion

I notice that this branch produces:

UID FETCH 1:* (FLAGS) (CHANGEDSINCE 123) VANISHED

I believe the following to be correct:

UID FETCH 1:* (FLAGS) (CHANGEDSINCE 123 VANISHED)

From: https://datatracker.ietf.org/doc/html/rfc7162#section-3.2.6:

The VANISHED UID FETCH modifier MUST only be specified together with the CHANGEDSINCE UID FETCH modifier.

WhyNotHugo avatar Oct 23 '25 15:10 WhyNotHugo

There's also an example in that section of the RFC:

   C: s100 UID FETCH 300:500 (FLAGS) (CHANGEDSINCE 12345
       VANISHED)

WhyNotHugo avatar Oct 23 '25 15:10 WhyNotHugo

Could we try merging CONDSTORE first, then do QRESYNC as a second step? Both at the same time are a bit much to review, especially since commits aren't split into semantic chunks. (I'd suggest opening a new draft PR based on this one for QRESYNC, then dropping the QRESYNC stuff from this PR. I can help with that if needed.)

emersion avatar Oct 23 '25 18:10 emersion