If I understand it correctly, it's because NAMES only tells the bridge the highest power level of a user (the "prefix"), so the bridge does not know what their power level is when the highest is removed
Describe the solution you'd like
Implement IRCv3 multi-prefix, which is designed specifically for this, by sending all power levels of users when joining a channel.
Is your feature request related to a problem? Please describe. I just noticed this note in the code: https://github.com/matrix-org/matrix-appservice-irc/blob/b012357a6904d3d8d9b315ca745fd423a2565b4e/src/bridge/RoomAccessSyncer.ts#L309-L311
If I understand it correctly, it's because NAMES only tells the bridge the highest power level of a user (the "prefix"), so the bridge does not know what their power level is when the highest is removed
Describe the solution you'd like Implement IRCv3 multi-prefix, which is designed specifically for this, by sending all power levels of users when joining a channel.