github Lexonight1/thermalright-trcc-linux v9.6.5
Release v9.6.5

4 hours ago

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_REGISTRY sourced from the C# ADDUserButton dispatcher; added PanelCutout field on DeviceInfo + render-pipeline mirror for right-side cutouts; new Renderer.flip_horizontal port + Qt backend.
  • #150hid-debug partial-init crash on Debian / Proxmox. Moved the five from .<proto>_protocol import … lines out of factory.py's module bottom and into each ProtocolFactory.make() method. Cycle broken in both directions; reporters who hit cannot import name 'HidProtocol' from partially initialized module are unblocked.
  • #151 — Help button 404. GUI Help button now opens doc/GUIDE_TROUBLESHOOTING.md (renamed in an earlier doc reshuffle).
  • #148trccd daemon 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_send classifies ENODEV/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_find seam, _populated gating on LED tick, pynvml _pn alias, 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

Don't miss a new thermalright-trcc-linux release

NewReleases is sending notifications on new releases.