- WpWebhook: inject media_id into context before calling BotRouter so MediaTranscriber can download audio/image (was passing caption='') - BotRouter: use context['media_id'] for transcription (non-breaking fallback) - AiBot::processMedia: fix canUpload to include permType 1 (solo reporta) - AiBot::buildFlowCatalog: include text flows that have nlu_description set - DashboardController + index.php: add nlu_description field per flow card Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>