568b16122d
The previous commit removed cache_media_bytes from teams/adapter.py's import block but left one bare call at the Bot-Framework image path — a NameError that the surrounding 'except Exception' swallowed, so every BF image attachment was silently dropped (ruff F821). Route it through cache_media_bytes_async like the file's two other sites. Same bug class at the sites the sweep did not reach: - buzz _download_attachment / _localize_inbound_media: cache_media_bytes called from async methods → cache_media_bytes_async. - photon _dispatch_inbound: _normalize_binary_payload (base64 decode + cache write of possibly multi-MB payloads) ran on the loop → closure made async, helper offloaded via asyncio.to_thread. Tests: cover cache_media_bytes_async (thread-id + kwarg forwarding); teams/buzz tests re-pointed at the async seam.