cac288a0c3
Housekeeping subtypes (channel_join/leave/topic/name/purpose, convert_to_private/public, pins, deletions) are not a person speaking, yet _prefilter_inbound only rejected message_changed/message_deleted, so each of them started a full agent turn in free-response channels. Replace the denylist with an allowlist: a message passes when subtype is absent, file_share, thread_broadcast or me_message; everything else is dropped. Fixes #110778.