I actually went digging into seen state and cyrus.index a little today
for another reason, and I realized that we wouldn't have to expand/upgrade
the index file to accomodate a shared seen state. The existing field for
system flags is just a bitmask, so we could easily add a bit for shared
\Seen. We could also implement the sharedseen annotation as a mailbox
flag in the index header, just like condstore.
Based on other changes that I'm thinking about, I'm starting to like this
idea better, even thought it *may* involve more code.
Doesn't that just seem annoying having two *completely* different ways of
storing seen state? There' probably quite a few places in the code that look
for the seen state. It just seems much easier to me to have a single flag
that controls whether to open a specific users seen db, or the "anyone" user
seen db, rather than having to special case lots of code around the place
for either pulling from the seen db, or looking up a bit in the index file.
Rob