Skip to content

Tags: dkorunic/iSMC

Tags

v0.17.2

Toggle v0.17.2's commit message
feat(sensors): add M4/M4 Pro mappings from Mac16,x reports

Validated src/temp.txt against the new Mac16,{7,10,12} dumps and add
evidence-backed rows:

- Tp0Z as Core 9 max: M4 base regroups Tp0U-Tp0f triplets on a
  different grid than M4 Pro, so Core 9 previously resolved to probe B
  (10+ degC understated under load); document the grid mismatch
- TH0p, TT0P, TVm2, TVh0-2 (high confidence, 2+ dumps each)
- TPSD, TUVR, Ta0p, Tm0B (medium confidence names, solid values)
- drop dead SSD Proximity 2:TS1p:M4 row (key exists only on A18)

Also strip the three new reports down to temperature keys, matching
d4be516 precedent.

v0.17.1

Toggle v0.17.1's commit message
docs(smc): tighten comments to intent, drop narration

Compress doc comments added since 4cc6e71: keep the why (undocumented
firmware sort order, sentinel floor/ceiling rationale, issue refs) and
drop restated code, per-machine data dumps, and line-by-line narration.

v0.17.0

Toggle v0.17.0's commit message
fix: address AI-review findings, clean up lint, tighten comments

Findings:
- influx: quote free-text string field values and only split unit when the
  prefix parses as a number; fixes corrupted/truncated hardware lines
- smc: omit battery/fan entries on read failure instead of phantom zeros
- gosmc: read SMC keys via a stack [5]C.char (no per-read alloc, bounds-safe
  for short keys)
- platform: nil-check C.malloc before sysctl writes
- guess: one SMC connection + single key enumeration per run; sample only
  T-prefixed keys instead of re-walking the namespace each snapshot
- smc: memoize LookupTempDesc per family
- src/temp.txt: drop duplicate Tp%P/TN%D rows and fix %v wildcards;
  regenerate sensors.go to match

Linting:
- disable architecture-conflicting linters (paralleltest, testpackage,
  ireturn, gochecknoinits, gomoddirectives); retire deprecated wsl -> wsl_v5
- fix genuine issues: err113 sentinels, gosec G115, goconst, testifylint,
  staticcheck, nonamedreturns, noinlineerr, dupword, godot, errchkjson
- scoped nlreturn exclusion for cgo files (skewed positions)

Comments: tighten production doc/inline comments to intent, drop narration.

v0.16.7

Toggle v0.16.7's commit message
Update dependancies.

Update deps:
- golang.org/x/text to v0.40.0
- github.com/jedib0t/go-pretty/v6 to v6.8.2
- golang.org/x/sys to v0.47.0

v0.16.6

Toggle v0.16.6's commit message
build(goreleaser): add homebrew_casks alongside formula

Migrate the deprecated brews-only setup to also emit a Homebrew cask via
homebrew_casks, while keeping the formula in Formula/. The cask strips the
com.apple.quarantine xattr post-install so the CLI runs without Gatekeeper
prompts. Also clear pre-existing deprecations: pin version 2, rename
snapshot.name_template -> version_template and format_overrides.format ->
formats.

v0.16.5

Toggle v0.16.5's commit message
Update dependancies.

Update deps:
- github.com/jedib0t/go-pretty/v6 to v6.8.0
- github.com/mattn/go-runewidth to v0.0.24
- golang.org/x/sys to v0.45.0

v0.16.4

Toggle v0.16.4's commit message
fix(sensors): rewrite M2 mappings against real SMC dump; fix test race

The original M2 block (#23, 2024-10-02) was added before any M2 dump
existed and used an M5-style single-key probe-B convention with five
keys (Tp0X, Tp1h/t/p/l, Tg0j) absent on real hardware. With
reports/report-m2.txt now embedded, an M2 Pro user saw 7 of 8 P-cores
at the probe-B value (1.5-2.5 C below the actual max) and 0 of 4
E-cores.

- Replace the 14-line M2 block with 53 rows: M1-style P-core triplets
  for Cores 1-8 (Tp00/04/08/0C and Tp0e/0i/0m/0q), an E-cluster
  aggregate triplet at Te04/05/06 (4 E-cores share one sensor on this
  SKU), a P-cluster aggregate at Tp0a/0b/0c (third-is-max violator
  with clean-mantissa max bytes), three GPU doublets at Tg0e/f/m/n/q/r,
  five SSD triplets at Ts0K-Ts0c, plus Ts1P/TsOP controllers.
- Add cross-platform Heatsink 6 (Th0K/L/M) under :Apple — populated on
  M2 Pro with live values, previously dropped because the Apple-tagged
  Th rows stopped at Heatsink 5 (Th0I).
- Note Tp01 == TCMb and Tp02 == TCMz byte-for-byte on M2; this is
  M2-only across every embedded dump and likely means Core 1's max
  coincides with the cluster max under load.
- Add Test_M2ProMapping with the report-m2.txt snapshot to lock in
  8 P-cores / 0 per-E-cores / 3 GPUs / 5 SSDs and verify each P-core
  resolves to its triplet's max value (not the probe-B middle).
- Include "M2" in TestKeysIntegration's family list.
- Refactor reports.ingest to take a target map parameter; the
  previous global-state mutation in TestIngest_skipsNonTKeys raced
  with TestKeysIntegration, surfacing once the M2 file invalidated
  Go's test cache.
- Capture reports/report-m2.txt SMC dump as the evidence base.

v0.16.3

Toggle v0.16.3's commit message
feat(smc): map cross-platform heatsinks, regulators, airflow zones

- Promote SoC heatsink Th** triplets from :M3 to :Apple (12 rows). M1
  Pro/Max/Ultra populate Th00-Th0E with live values but were filtered
  out by the M3-only tag. M4/M5/A18 don't populate Th**, runtime-rejected.
- Add Th0G-Th0I (M1 Max/Ultra extra triplet) and Th20-Th2I (M1 Ultra
  die-2, five triplets) — Apple-tagged for uniform scope.
- Add Mac Studio 4-corner airflow TaFL/TaFR/TaRL/TaRR as :Apple.
  Populated on M1 Ultra (30-38 °C) and M4 Max (26-30 °C); distinct
  hardware from TaLP/TaRF/TaLW/TaRW.
- Add SoC regulator triplet TSVR/TSWR/TSXR as :Apple — populated on
  M1 Pro/Max/Ultra, M3/M4/M5 Max with live values.
- Add System Disk Diode TSDD as :All (Intel/T2 + M1 Ultra + M4 Max).
- Add M1 Pro/Max TPVD power-voltage probe; Pro-tier Sensor Group
  TSG1/TSG2 (M3/M4/M5 Pro); M4 Pro/Max SoC Cooling Probe TSCP.
- Fix mislabelled section comment: M1 Ultra Tp2* range was tagged
  "die 1" — corrected to "die 2".
- Tighten ~40 temp.txt comments: drop platform prefixes redundant with
  section headers, drop sample-time temp ranges, collapse three-line
  heatsink block to one line. All comments now under 13 words.
- Capture reports/report-m1-pro-2.txt refresh and add report-m3-max-2,
  report-m4-max, report-m5-max-2 dumps as evidence base.

v0.16.2

Toggle v0.16.2's commit message
refactor(smc): rework M3 GPU fabric mapping; cover all five Tf bands

v0.16.1

Toggle v0.16.1's commit message
feat(smc): expand M1 PD/RF + Ultra die-2 mappings, M4 Pro fabric; fix…

… M5 Tp1E label

- Add TPDg-j and TRDg-j (Apple-wide): M1 Pro/Max/Ultra real readings
- Backfill M1 Ultra die-2 TpDc-j (8 keys) and TrDb-j (9 keys)
- Map M4 Pro Tp0d-w as 5 cluster-fabric triplets (53-66 °C under load)
- Relabel M5 Tp1E from "Efficiency Core Cluster" to "Performance Cluster
  Aggregate" (M5 Pro/Max has no E-cores under S+P pair signature)
- Refine Tp0u/v/w alias comment with measured per-snapshot divergence