- Add BotMonitor class for tracking requests, errors, and health status
- Track request success/failure, response times, error rates
- Add !status command (admin) for detailed metrics with embed
- Add !health command (anyone) for quick health check
- Add rotating file logging support (LOG_FILE config)
- Auto-detect unhealthy status when errors exceed threshold
- Record errors with timestamps and context for debugging
- Show actual error message in code block for debugging
- Add 'tech wizard needs to take a look' notice
- Content policy violations don't show tech notice (user issue)
- Extract image URLs from AI responses
- Send images as Discord embeds
- Support standalone URLs and markdown image syntax
- Clean image URLs from text to avoid duplication
- Handle multiple images in a single response
- Detect credit/quota exhaustion and show helpful message
- Handle authentication errors gracefully
- Handle model not found errors
- Handle content policy violations
- Fall back to generic error for unknown issues
- Add ImageAttachment dataclass for image metadata
- Update Message to support list of image attachments
- Update all providers (OpenAI, Anthropic, Gemini, OpenRouter) for vision
- Extract images from Discord attachments and embeds in ai_chat.py
- Supports PNG, JPEG, GIF, and WebP formats
- Bot now knows who is talking to it (display name, username, nickname)
- Bot recognizes other users mentioned in messages
- Includes user's display name, username, nickname, and top role
- Context is added to system prompt for AI awareness
- Add searxng.py service for web queries via SearXNG API
- Integrate search into ai_chat.py with AI-driven search decisions
- AI determines if query needs current info, then searches automatically
- Add SEARXNG_URL, SEARXNG_ENABLED, SEARXNG_MAX_RESULTS config options
- Update documentation in README.md, CLAUDE.md, and .env.example
- Add gemini.py provider using google-genai SDK
- Update config.py with gemini provider and GEMINI_API_KEY
- Update ai_service.py factory to support gemini
- Add google-genai to requirements.txt
- Update .env.example, README.md, and CLAUDE.md documentation
- Remove admin.py and search.py cogs
- Remove searxng.py service and rate_limiter.py utility
- Update bot.py, ai_chat.py, config.py, and ai_service.py
- Update documentation and docker-compose.yml