Well, you can change the libraries dealing with seen to not pay attention to the username. If you want it to be stored with the other global flags it is somewhat more complicated.Over the weekend, it struck me that a patch to make 'seen' global could be as simple as commenting out the calls to the code that treats '\Seen' as a special-case global variable, and adding 'Seen' to the list of global flags. Somewhere. Unfortunately, when I had a look at the source code, I could find libraries dealing with Seen, but no list of global flags or obvious hook for the 'seen' per-user code.Is it that simple? Where should I be looking?
To do this right, you want an option to store FLAG_SEEN as part of system_flags in the cyrus.index file. (Likewise, you probably want an option to store FLAG_DELETED as per-user state---so really you want to abstract out the idea of \Seen being special.)
Larry