gnus: Agent and flags

 
 6.9.8 Agent and flags
 ---------------------
 
 The Agent works with any Gnus back end including those, such as nnimap,
 that store flags (read, ticked, etc.) on the server.  Sadly, the Agent
 does not actually know which backends keep their flags in the backend
 server rather than in ‘.newsrc’.  This means that the Agent, while
 unplugged or disconnected, will always record all changes to the flags
 in its own files.
 
    When you plug back in, Gnus will then check to see if you have any
 changed any flags and ask if you wish to synchronize these with the
 server.  This behavior is customizable by
 ‘gnus-agent-synchronize-flags’.
 
    If ‘gnus-agent-synchronize-flags’ is ‘nil’, the Agent will never
 automatically synchronize flags.  If it is ‘ask’, which is the default,
 the Agent will check if you made any changes and if so ask if you wish
 to synchronize these when you re-connect.  If it has any other value,
 all flags will be synchronized automatically.
 
    If you do not wish to synchronize flags automatically when you
 re-connect, you can do it manually with the
 ‘gnus-agent-synchronize-flags’ command that is bound to ‘J Y’ in the
 group buffer.
 
    Technical note: the synchronization algorithm does not work by
 “pushing” all local flags to the server, but rather by incrementally
 updated the server view of flags by changing only those flags that were
 changed by the user.  Thus, if you set one flag on an article, quit the
 group then re-select the group and remove the flag; the flag will be set
 and removed from the server when you “synchronize”.  The queued flag
 operations can be found in the per-server ‘flags’ file in the Agent
 directory.  It’s emptied when you synchronize flags.