Windows runtime: LibreHardwareMonitor bundled + log-rotation noise gone
LibreHardwareMonitor was missing from the Windows installer
The PyInstaller bundle was shipping with wmi, pynvml, and psutil, but not HardwareMonitor (the Python wrapper for LibreHardwareMonitorLib). That meant any sensor not covered by the three above came back blank: CPU temperature, GPU temperature on AMD/Intel, fan RPM, motherboard voltages — all gone. The GUI sidebar still showed CPU% (psutil), but theme overlays on the LCD device that referenced an LHM-only sensor rendered as empty space. Result: device displayed the theme image with no metric text drawn on it.
Fix:
pyproject.toml[windows]extra now declaresHardwareMonitor>=1.1.0,pythonnet>=3.0.3,pywin32>=306windows.ymladds--hidden-import HardwareMonitor,--collect-all HardwareMonitor,--collect-all clr_loaderto both the CLI and GUI PyInstaller invocations- The bundle verification step now fails the build if
LibreHardwareMonitorLib.dllisn't present indist/trcc— so if a future config drift drops it again, CI catches it before the tag
Linux / macOS / BSD packaging is unchanged. They use hwmon / IOKit / sysctl natively.
trcc report was printing tracebacks instead of useful output
Running trcc (CLI) while trcc-gui.exe was open produced walls of --- Logging error --- tracebacks from RotatingFileHandler.doRollover. Python's stdlib handler can't rename a file open in another process on Windows (WinError 32), and the default error path prints the whole traceback to stderr and drops the log record.
__main__.py now installs a _SafeRotatingFileHandler subclass on win32 only that swallows PermissionError / OSError from rotation. The record still lands in the (un-rotated) file. No traceback escapes. Linux / macOS use the vanilla stdlib handler — they don't have this problem.
Upgrade
Download trcc-9.6.0-setup.exe from this release and run the installer (or use the fixed-name alias trcc-latest-setup.exe). The first launch will repopulate ~\.trcc\assets\gui\ automatically.