402183765c
- Rewrite tray to run on main thread (pystray owns message loop, uvicorn in background thread) — fixes unresponsive confirmation dialogs - Use native Windows MessageBoxW instead of tkinter (embedded Python has no tkinter) - Pin numpy <2.0 to fix soundcard's numpy.fromstring (removed in 2.0) - Strip transitive numpy 2.x wheels in build script - Installer copies config.example.yaml as config.yaml on fresh install - Suppress noisy screen_brightness_control warnings