1c6c0d4092
Telegram has no public hotlinkable media URL the way Twitter's CDN does, so there's no "direct" option: self-host downloads via the logged-in account and stores locally; proxy re-fetches live through that same account on each view via a new /media/telegram-proxy route (small in-memory cache to absorb repeat views), without persisting anything. Adapter no longer downloads media eagerly at ingestion — it only records lightweight refs (message id, kind, mime type, dimensions); publish.ts resolves those into a servable url per the admin's chosen mode, same timing as Nitter's tweet media resolution. New "Telegram (message media)" panel added to the admin Retention tab alongside the existing Nitter one. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014c1L8ghNBFjfiH64UMViP8