When the client goes online, the remote roster should be synchronized to the local roster, that is
Newly added peers should be added remotely
Deleted peers should be removed remotely
If either of these fail, a signal should be emitted
The delay between adding/removing a peer locally while offline and the synchronization can be long (days +) if the user doesn't go online in this time. We concluded that this is acceptable.
When the client goes online, the remote roster should be synchronized to the local roster, that is
The delay between adding/removing a peer locally while offline and the synchronization can be long (days +) if the user doesn't go online in this time. We concluded that this is acceptable.