Issue-driven patch release. Closes #149 (Levita right-side notch), #150 (HID-debug partial-init crash), #151 (Help link 404), and publishes the disconnect-recovery + persistent-log infrastructure to PyPI / distro packages so pip-installed users no longer have to install from source.
Highlights
- #149 — Thermalright Levita right-side camera notch. Reporter oranura's Levita (87AD:70DB Bulk, PM=64 SUB=3) was masquerading as LM30 in a flat (PM, SUB) lookup. Replaced with a VID/PID-scoped
_VARIANT_REGISTRYsourced from the C#ADDUserButtondispatcher; addedPanelCutoutfield onDeviceInfo+ render-pipeline mirror for right-side cutouts; newRenderer.flip_horizontalport + Qt backend. - #150 —
hid-debugpartial-init crash on Debian / Proxmox. Moved the fivefrom .<proto>_protocol import …lines out offactory.py's module bottom and into eachProtocolFactory.make()method. Cycle broken in both directions; reporters who hitcannot import name 'HidProtocol' from partially initialized moduleare unblocked. - #151 — Help button 404. GUI Help button now opens
doc/GUIDE_TROUBLESHOOTING.md(renamed in an earlier doc reshuffle). - #148 —
trccddaemon blank display. Already on main; publishes to PyPI + distro packages. - TRACE log level + RotatingFileHandler. Per-frame log spam moved below
DEBUG; file appends + rotates (10 MiB × 2 backups) instead of truncating on every start — so freezes captured in flight survive the restart cycle. - Disconnect recovery folded forward (was post-v9.6.4 commit
4cd9c99c)._guarded_sendclassifiesENODEV/EBADF/ENXIO, closes the stale transport after threshold, lazy-reopens on next send. Users whose USB device transiently disconnects recover transparently. - Test suite: 27 stale failures → 0. Five root causes fixed at the test boundary: metrics-unification,
_pyusb_findseam,_populatedgating on LED tick, pynvml_pnalias, VID/PID lookup signature. dev/smoke_variant_resolution.py— 347 lookups + 225 enrichments + 60 asset checks across every registered(VID, PID, PM, SUB)tuple. The canary for the next variant addition.
Install
Replace <url> with the asset URL from this release page after CI uploads the packages.
- Fedora / RHEL / Rocky:
wget -c <url>.rpm && sudo dnf install ./trcc-linux-*.rpm - Arch / CachyOS / Manjaro:
wget -c <url>.pkg.tar.zst && sudo pacman -U trcc-linux-*.pkg.tar.zst - Ubuntu / Debian (24.04+):
wget -c <url>.deb && sudo dpkg -i trcc-linux_*.deb - Ubuntu / Debian (legacy):
wget -c <url>.legacy_all.deb && sudo dpkg -i trcc-linux_*.legacy_all.deb - pip (any distro):
pip install --upgrade trcc-linux
Full changelog: doc/CHANGELOG.md