Hi,
TLDR: It is common practice for CSI (Client State Indication)
implementations to withhold (and deduplicate) PEP notifications and/or
headline messages. Due to the rise of XEPs such as Message Displayed
Synchronization (MDS) those implementations need to be changed to
immediately let through PEP notifications from nodes that are on the
account itself.
I noticed the MDS problem in theory a while ago but didn’t care too
much because due to a lack of implementations I’m not using MDS on a
daily basis. (MDS needs to be able to dismiss notifications even if
the client is in background)
However today I ran into a related problem with Bookmarks 2 and User Nickname.
I was writing code that actually performs a rename in a MUC if the
desired nick changes (either pulled from the bookmark or if that one
is unset from XEP-0172) instead of only using these sources on initial
join. I think it is somewhat obvious that the rename should be done
fairly instantly on all clients once a client has made the change
(either to the bookmark or to 0172). Otherwise other users would see
the user as being joined multiple times with different nicks until all
clients have come to the foreground.
I guess letting through all PEP notifications from the account
(instead of allow listing certain nodes) is good enough. That’s
beneficial for Nick, Bookmarks, OMEMO. The only one for which we
technically don’t need it is Avatar. But how often do you change that
one (meaning how many false positives would you generate?!)
cheers
Daniel