I’ll try and explain how this works and why is actually working as expected.
Normally a push notification is sent to the device whenever you get a mention in any channel being public, private or in a group message channel, and you get a notification for every message in a Direct message channel.
In Android every push notification is grouped by the channel id where the mention was originated and that let us use the stack notifications functionality found in Android, then when you read the messages in the channel that dispatched those notifications we send another push notification to clear those that belong to the channel and voilá notifications get cleared.
iOS is a little bit different there is no way to stack notifications per channel that means that each notification is treated as unique and cannot be grouped by channel as we do in Android, yes is true that iOS has a way to clear every notification individually but the problem here is that we are not tracking the notification id for every push notification sent in every channel, so the only way they actually get dismissed from the device is when the mention count reaches zero (0) that way we sent a push notification to the device saying there are no notifications and they get cleared.
I know it can be a little annoying we have tried to come up with a solution to this but with the need to bring the app to feature parity this has fallen in priority a little bit.
We will be more than happy if someone can come up with a way an contribute the solution to the product as this will benefit the majority of the users.