Certainly a very interesting problem and I very much hear you on it and agree this permission should be group based.
Sadly this is a big change due to the way we designed a lot of the internals.
On the face of it, it may seem like a simple change… just re-write these two methods:
But the internals the change in Discourse runs quite deep.
We even have this column that tracks the highest_post_number_including_whispers… but it is called highest_staff_post_number
The other complexity here is that we would need a group check to determine if a user can see a whisper and now the check is cheaper cause we simply head to the user record.
I am bookmarking this for internal discussion and will see if there is anything we can do here, but unfortunately the complexity is quite high.