Fixed inconsistent error handling in ai_provider.py and memory.py by:
- Adding optional logger parameter to PerplexityProvider and ConversationMemory classes
- Replacing all print() statements with proper logger.error() calls
- Updating chatbot.py to pass logger instance to both components
- Ensuring consistent logging architecture across the codebase
This improves error visibility and integrates with the existing logging infrastructure.
- Log extracted content to help debug empty content issue
- Add warning when content is empty after mention extraction
- Display extraction info in dashboard for better visibility
Helps diagnose why bot detects mentions but doesn't respond
- Replace PySimpleGUI 5.0.8.3 with FreeSimpleGUI 5.1.1
- FreeSimpleGUI is a community fork without license requirements
- PySimpleGUI 5.x requires paid license after trial period
- Remove compatibility fallback code (no longer needed)
- Update documentation to reflect FreeSimpleGUI usage
Fixes: AttributeError 'module PySimpleGUI has no attribute theme'
- Fix CI/CD failure due to PySimpleGUI 4.60.0 being removed from PyPI
- Upgrade to PySimpleGUI 5.0.8.3 (latest stable version)
- GUI code uses basic features that should remain compatible
Changes:
- Create setup_wizard.py with interactive configuration flow
- Validates Twitch OAuth token via IRC test
- Validates Perplexity API key with test request
- Guides user through all required settings
- Creates .env file and necessary directories
- Update config.py system prompt to reflect Kene's personality
- Bot now responds AS Kene (first person)
- Includes tech expertise (Bambu X1C, H2C, coding/bots)
- Reflects political stance (left-leaning, anti-right)
- Maintains authentic conversational style
- Update README.md with setup wizard instructions
- Clear step-by-step for Option 1 (wizard)
- Lists wizard features and benefits
This commit implements the full Eugen bot based on specifications in CLAUDE.md and eugen_claude.md.
Features implemented:
- Smart name recognition (@Eugen, Eugen:, etc.)
- Persistent conversation memory per user (max 25 messages, 1 hour retention)
- Perplexity Sonar API integration for AI responses
- Live monitoring dashboard with PySimpleGUI
- Setup wizard for first-time configuration
- Comprehensive logging (main log + API debug log)
Files added:
- config.py: Configuration management from .env and config.json
- utils.py: MentionDetector and Logger utility classes
- memory.py: ConversationMemory for persistent chat history
- ai_provider.py: PerplexityProvider for API integration
- gui.py: Dashboard and SetupWizard GUI components
- chatbot.py: Main EugenBot orchestrator with IRC handling
- requirements.txt: Python dependencies
- .env.example: Template for environment variables
- .gitignore: Renamed from gitignore for proper Git usage
Updated:
- README.md: Complete usage instructions and documentation
The bot is ready to use - users just need to add their API keys and run python chatbot.py