8ed7c180d7
send_voice built its own discord.File from the audio bytes and never ran the size preflight, so an oversized audio attachment still burned the doomed 413 round-trip that #50846 is about. Route it through the same _reject_oversized_upload helper as _send_file_attachment. The limit constant and _discord_upload_limit_bytes lived on the adapter facade while every consumer is in adapter_media.py; the facade+sibling layout puts topic code in the sibling, so they move there.