v9.1.0
Internal
- Strict hexagonal architecture: All GUI views now receive infrastructure dependencies via injection — no view imports adapter-layer code directly
UCDevice—find_lcd_devicesinjected asdetect_fnfrom composition root (trcc_app.py)UCThemeWeb—CloudThemeDownloaderinjected asdownload_fnUCSystemInfo—SysInfoConfiginjected;SensorBinding/PanelConfigmoved tocore/modelsUCThemeMask—is_safe_archive_membermoved tocore/paths(pure function, no adapter dep)UCLedControl—LED_STYLES/PmRegistryimported fromcore/models(was adapters)
SystemService._mem_clock_cache: Module-level mutable global eliminated — cache moved to instance variable, sentinel pattern preserved- CPU baseline logging:
psutil.ImportErrornow logs a warning instead of silently setting fn to None;builder.pygets a proper logger