Internal
- Clean LED protocol routing:
LED_DEVICESprotocol changed from'hid'to'led'— single source of truth inmodels.py. Factory key updated accordingly; detector iteratesALL_DEVICESdirectly without per-registry overrides - Parallel device scan:
TrccApp.scan()connects devices concurrently (one thread per device) so USB handshakes run in parallel.bootstrap()added as single entry point for all UIs (GUI, API, CLI) - 107 new tests: per-OS platform contract tests via real adapter fixtures (no patching); per-device routing parametrized over
ALL_DEVICES;scan()/bootstrap()/device_connected/device_lostcoverage;build_os_bus()handler closures; metrics loop start/stop/tick/event dispatch; observer lifecycle - Parallel test flakiness fixed:
_restore_rendererautouse fixture saves and restoresImageService._rendereraround every test — eliminates cross-worker contamination from class-level renderer state
If this project helps you, consider buying me a beer 🍺 or Ko-fi ☕