This is an intermediate step in being able to assign new members added to an announcement subchannel either the `Voiced` role or the `Members` role.diff introduces a new thread permission, `VOICED_IN_ANNOUNCEMENT_CHANNELS`. We also create a propgated/filtered version of this permission, `descendant_toplevel_voiced_in_announcement_channels.
The idea here is that if the user-surfaced VOICED_IN_ANNOUNCEMENT_CHANNELS permission is granted, For now,we give the role both of these permissions. this thread permission only gives permission / removes pIn `makePermission to speak in a `COMMUNITY_ANNOUNCEMENT_ROOT`Blob`, andwe can the next diff should cover using this forn grant `voiced` for an announcement subchannelsthread in a really easy way.
**I will be adding a `updateRolesAndPermissionsForAllThreads` migration once at the end of this entire stack, so that's why I didn't add it here**
This is the first part to [[ https://linear.app/comm/issue/ENG-5637/assign-voiced-or-default-role-when-adding-members-based-on-their | ENG-5637Addresses [[ https://linear.app/comm/issue/ENG-5785/introduce-voiced-in-announcement-channels-thread-permission | ENG-5785 ]]
Depends on D9901