v0.3.0 — GPU/CPU die temperature (SMC)
Adds optional gpuTemperatureC / cpuTemperatureC (°C), read sudoless from the AppleSMC sensors.
- IOReport turned out not to expose usable temperature (M5 has no GPU-temp channels; M4's read back 0 via the documented accessor), so temperature comes from SMC — matching the MIT
mactop. SMCReaderenumeratesflt-typed sensors once by prefix (Tg=GPU,Tp/Te=CPU) — pattern-match, no per-chip key table that rots — and averages each group per sample. No new SwiftPM target (Package.swift unchanged).- Validated idle → Metal burn: M5 Max 43.6 → 72 °C, M4 Max 35.1 → 53.8 °C, both tracking GPU load.
- Rationale / deviation from the IOReport-first plan: ADR 0001.
Tested only on macOS 26 (M4 Max, M5 Max); degrades to nil elsewhere but other OS versions are unvalidated.