Afaict, soju doesn't have multi-device support -- ie i open a client on my phone and answer a message, and when i open my laptop at home, the messages exchanged while i was on my phone appear.
As for a possible UX, I am thinking a user can identify multiple devices using a string representing the unique device id following the character "#" (ie a "fragment") at the end of the sasl username. If any sasl users have the fragment, soju will track the last message id by device. An example sasl user would be:
maybe a less surprising format could be:
With this scheme an edge case would be logins without a fragment when the user has already defined one or more device ids. A solution to this could be to warn the user when they log in, and otherwise just treat an empty fragment as a single separate device. Could go more strict, but seems bad to block logins if there's no way to administrate devices.
CHATHISTORY could also provide a solution here, though afaict there's no way in the spec for a user to provide a device id on login.
Since I'd rely this feature, I'm up for taking a crack at it :) thanks for the great work on soju.