FIXES:
- OCR now uses lazy initialization (only loads when first used)
- Fixed PaddleOCR invalid use_gpu parameter (some versions don't support it)
- Added fallback try/except for PaddleOCR without use_gpu
- App starts immediately, OCR initializes on first scan
- Prevents long startup delays from model downloading
CHANGES:
- OCRService._init_backends() only called on first use
- Removed eager initialization from main.py startup
- Better error handling for backend failures
CHANGES:
- All plugins now disabled by default (empty enabled list)
- Settings > Plugins tab shows all discovered plugins
- Checkboxes to enable/disable individual plugins
- Enable All / Disable All buttons
- Changes take effect immediately (no restart needed for most)
- Plugin state saved to config/plugins.json
PLUGIN MANAGER:
- is_plugin_enabled() - must be explicitly enabled
- enable_plugin() - loads and initializes plugin
- disable_plugin() - unloads plugin
- get_all_discovered_plugins() - returns all available plugins
- Scan Skills window with OCR for rank + points
- Detect progress bars for decimal precision
- ESI scanner for skill gain predictions
- Track skill gains from chat messages
- Store data in JSON for analysis
- Export to CSV for graphing
- Hotkey: Ctrl+Shift+S
Dependencies:
pip install easyocr pyautogui pillow
Data stored in data/skills/ for formula analysis!