hifi/heisenbridge

Feature Request: Better handling of other user's nick changes in DMs

sergaderg opened this issue · 1 comments

Currently, nick changes seem to be handled by removing puppet/user associated by the previous name, and adding a new puppet/user with the new name. This works fine for the basics, but has some issues with DMs.

If a user changes their name, you end up with a new DM room without any of the previous history (and may even need to accept and create a new room in the event that you haven't seen this particular name before). This would be better if the bot could use the same puppet when the name changes, or to invite the new user to the DM room in place of the old one. But, absent that, giving the matrix user the permissions to invite multiple puppets into the same DM room to merge the conversations together would be an improvement. (although this might require more care and unneeded complication in the event that multiple users in a merged room are online at once) Perhaps this is already possible through the plumbing commands, but I couldn't figure out how to do it after a little poking around.

Not sure if any improvements are technically feasible with the databaseless architecture, but I thought I'd open up the conversation.

hifi commented

The main reason why things work like they do with the nicknames is that it's the only unique thing on IRC that can be mapped to a Matrix ghost.

Nickname changes essentially mean swapping the ghost user as it's impossible to follow name changes otherwise - with the exception of letter casing.

It would be somewhat possible to swap the ghost in a DM if some preconditions apply like seeing the actual change on a shared channel and not having a conflicting DM room already - but - the bridge would need to enforce a change for the PM room name when that happens I believe as it would be confusing otherwise. Maybe it should be configurable.

This is essentially what smart IRC clients do with PM windows and we can emulate that to some extent.