BUG: SkillScannerPlugin cannot be converted to PyQt6.QtCore.QObject
CAUSE: BasePlugin inherits from ABC, not QObject. Qt signals (pyqtSignal)
must be defined in a QObject subclass.
FIX:
1. Created SignalHelper(QObject) class to hold all signals:
- hotkey_triggered
- update_status_signal
- update_session_table_signal
- update_counters_signal
- enable_scan_button_signal
2. In SkillScannerPlugin.initialize():
- Create self._signals = SignalHelper()
- Connect signals from self._signals (not self)
3. In get_ui():
- Connect enable_scan_button_signal after scan_page_btn is created
4. Updated all signal emits to use self._signals.emit()
This allows the plugin to use Qt signals for thread-safe UI updates
without requiring BasePlugin to inherit from QObject (which would
break other plugins).