issue: [[https://linear.app/comm/issue/ENG-7792/disallow-adding-users-to-community-roots-on-the-keyserver | ENG-7792]]
`baseMemberUserSurfacedPermissions` is used only in `getRolePermissionBlobsForCommunityRoot`. `userSurfacedPermissions.ADD_MEMBERS` permission was parsed by `getThreadPermissionBlobFromUserSurfacedPermissions` and resulted in two permissions being added to the resultant `memberPermissions`: `add_members` and `child_open_add_members`. We want the permissions for children to stay the same, so we make sure only `add_members` permission is removed.
But we have to make sure that old clients still get the `ADD_MEMBERS` permission. This is because otherwise, state check would have found many, many inconsistencies, likely resulting in socket crash loop on prod. So the client needs to get this permission in thread info, but the request to add members should fail[[https://linear.app/comm/issue/ENG-7792/disallow-adding-users-to-community-roots-on-the-keyserver#comment-3c202516 | More datails in discussion]]
Lastly, we should migrate old thread infos on the keyservers and clients. But this is very costly, so it will be done with D12062