# LibreHardwareMonitor runtime payload This directory is **third-party code**, vendored so the collector works on a machine with no internet access and no separate installation step. - Upstream: - Version: **v0.9.6** (release archive `LibreHardwareMonitor.zip`) - License: **MIT** — see the upstream repository for the full text - The files here are redistributed unmodified. ## What is here, and what is not The upstream release ships the **GUI application**, not just the library. Most of that archive is dead weight for a headless collector, so this directory carries a minimised subset. The full release is **43 files / 11.64 MB**; this directory is **17 files / 4.09 MB**. Removed (26 items) — the GUI executable, its config, debug symbols and XML docs, the plotting and WinForms control stack, the Task Scheduler component with its ten localised resource assemblies, and several transitive assemblies the library never touches. The subset was derived by **greedy removal**: starting from the full file set, each candidate was removed and a probe re-run in a fresh process; a removal was kept only when `LibreHardwareMonitorLib` still loaded and enumerated hardware. That is why `BlackSharp.Core.dll`, `System.Numerics.Vectors.dll` and `System.Runtime.CompilerServices.Unsafe.dll` are still present — they look expendable and are not. `test/trim-lhm.ps1` reproduces the whole procedure. Resulting set (17 files), which the probe verifies loads and enumerates 5 hardware nodes / 149 sensors: ``` BlackSharp.Core.dll Microsoft.Bcl.AsyncInterfaces.dll DiskInfoToolkit.dll RAMSPDToolkit-NDD.dll HidSharp.dll System.Buffers.dll LibreHardwareMonitorLib.dll System.Collections.Immutable.dll System.Memory.dll System.Numerics.Vectors.dll System.Resources.Extensions.dll System.Runtime.CompilerServices.Unsafe.dll System.Security.AccessControl.dll System.Security.Principal.Windows.dll System.Text.Encodings.Web.dll System.Text.Json.dll System.Threading.AccessControl.dll ``` ## Refreshing to a newer upstream release 1. Download the release archive and extract it over this directory. 2. Run `powershell -File test/trim-lhm.ps1`, which reports what is removable and what must stay for the new version. 3. Apply the reported set and update the version note above. ## A note on drivers Version 0.9.6 reads CPU registers through a kernel-mode driver. On this machine that worked with no separate driver installation — elevation alone was enough to populate all 51 CPU temperature sensors. If a future release requires an explicitly installed driver (upstream moved toward PawnIO), the collector degrades rather than failing: it falls back to `nvidia-smi` and the ACPI thermal zone, which need no privileges.