Releases: leecdiang/Silemetry-mac
Release list
Silemetry v0.2.2
v0.2.2 — FFI soundness + IOReport leak fixes
Fixed
- Rust/Swift FFI soundness (PR #2): removed aliasing `&mut` references and a use-after-free window across the telemetry boundary.
- Memory leak (PR #4): `IOReportCreateSamples` return value is now released.
Packaging
- DMG now ships the drag-to-Applications shortcut.
Install: download the DMG, drag Silemetry onto Applications. Ad-hoc signed, arm64, macOS 14+.
Silemetry v0.2.1
Silemetry v0.2.1 — Stability & Data Integrity
Tests: 70/70 passing · CI: #15 success · Min macOS: 14.0 (Apple Silicon) · Signing: ad-hoc
🔧 Telemetry handle lifecycle & concurrency
All Rust-handle FFI (create/start/wait/stop/destroy) now runs on one serial queue; stop is enqueued behind in-flight reads so wait_next returns before destroy — no concurrent alias / use-after-free. The actor never touches the raw pointer again. The handle is wrapped in an @unchecked Sendable box so the invariant is type-checked.
🎯 Per-metric validity masks
Rust available_mask is now per-metric (sensor count + is_finite + sane ranges), no more blanket valid. First sample no longer skipped (seq starts at 1).
🛑 Stop / Discard / failure finalization
Discard after a failed save deletes the run explicitly — no orphan records. Failure state and archive write errors surfaced in UI.
📦 JSONL archive integrity & streaming summaries
Archive load cross-checks disk file vs stored summary; stored Complete degrades to Partial when missing/truncated/corrupt. Streaming 64 KB line-by-line decode cuts peak memory in Compare.
⚖️ Compare comparability & corrupt-data checks
Verdict uses disk-effective raw status so summary/details/banner can never contradict. Tighter comparability rules (ambient diff >2°C, both-unknown conditions, both-legacy metadata now warn).
🔄 SwiftData rollback & file transactions
Failed inserts roll back immediately; History deletes/renames roll back with files restored; sample dirs staged in Trash, purged only after the DB save succeeds.
💻 Dynamic device, power changes & true startedAt
Power source / Low Power Mode recorded at start+end with change flags; Compare warns on mid-test AC↔battery or low-power switches. createdAt reflects real test start. Battery-unreadable runs stay Unknown.
✅ Validation
7/7 acceptance from the final DMG: Quick Check, GPU Only, Combined, Monitor Only, Stop Save, History restart, Compare.
Assets: drag-to-install DMG, ZIP, and SHA256SUMS.
Silemetry v0.2.0
Added🌟
GPU workload bridge 🔥
- Added
GPUWorkloadManager - Added native Metal compute workload
- Added two GPU levels: Moderate and Maximum
- Added continuous command-buffer submission during GPU load phases
- Added correct GPU start/stop behavior across completion and interruption
Stress Type 🤔
Added three workload modes:
- CPU Only
- GPU Only
- CPU + GPU
The selected mode now controls workload startup, visible configuration fields, phase labels, and result semantics.
Core Target 🤖
Added CPU workload targeting for:
- all cores
- performance cores
- efficiency cores
The native workload API now accepts a core type and maps it to macOS QoS classes.
Custom Test
Added a complete custom-test configuration view with:
- Stress Type
- Core Target
- GPU Level
- baseline duration
- load duration
- cooldown duration
- sample interval
- ambient temperature
The internal transition phase remains fixed at 5 seconds and is no longer exposed as a user-facing setting.
Dynamic device profile 💻
Added DeviceProfile and connected it to:
- Home
- Diagnostics
- History
- Results
- Compare
- interrupted-run persistence
Detected fields include model identifier, chip name, CPU core count, P/E topology, memory, macOS version, and Metal device.
Saved runs now keep the device information captured during the test.
Improved
Battery status
Added reusable BatteryStatusIcon.
It now distinguishes:
- charging
- running on battery
- unavailable state
- Low Power Mode
The icon and battery percentage use the same power-source snapshot.
Phase status
Added reusable StatusPill.
It uses adaptive labels and prevents phase names such as Monitoring from wrapping inside the capsule.
Home
- Replaced hardcoded Apple M4 device text with dynamic device information
- Updated battery and thermal status presentation
History
- Added device summary to each run
- Preserved compatibility with legacy records
Compare
- Added compatibility checks for the new device fields
- Added legacy fallback behavior
- Improved different-device identification
Silemetry v0.1.0
Silemetry v0.1.0 Preview 1
This is the first public preview of Silemetry, a native Apple Silicon thermal and sustained-performance recorder for macOS.
This is an early-access build. It is useful today, but the UI, hardware compatibility, telemetry semantics, exports, and analysis may still change.
Included in Preview 1
Telemetry
- CPU hottest readable thermal-zone temperature
- CPU average readable thermal-zone temperature
- GPU hottest readable thermal-zone temperature
- GPU average readable thermal-zone temperature
- CPU power
- GPU power
- package power where available
- P-cluster frequency
- E-cluster frequency
- per-core CPU utilization
- macOS Thermal State
- AC/battery and test metadata where available
Testing and recording
- Quick Check
- Standard Test
- Sustained Test
- Extended Test
- Monitor Only for external workloads
- native CPU workload
- live phase and sample tracking
Results and data
- live temperature, power, frequency, and core views
- persisted Results
- persistent History
- reopen runs after restarting the app
- rename saved runs
- delete saved runs
- basic A/B comparison
- sampling coverage and data-quality information
- local export features included by the release candidate
Architecture and privacy
- native SwiftUI app
- embedded Rust telemetry core
- no Homebrew required for release users
- no Python runtime
- no
sudo - no kernel extension
- no SIP modification
- no external telemetry process
- no telemetry upload
- no analytics or advertising SDK
Validated configuration
The preview has been developed and primarily tested on:
- 15-inch MacBook Air
- Apple M4
- 10-core CPU: 4 performance + 6 efficiency
- 24 GB unified memory
- macOS 26.5.2
Other Apple Silicon models may work, but are not yet equally validated.
Important metric notes
CPU Hottest is not an official Apple junction temperature
It is the maximum among the valid readable CPU thermal-zone sensors exposed to the embedded telemetry implementation.
CPU Average uses the same sensor group
It is the arithmetic mean of the valid readable CPU thermal-zone sensors.
Thermal State is a separate system signal
macOS Thermal State may remain Nominal while an individual readable sensor is hot. It must not be interpreted as a direct 100°C or 105°C threshold.
Frequency labels matter
P-cluster and E-cluster frequencies are cluster-level metrics. They are not automatically ten independent instantaneous core frequencies.
Known limitations
- Preview-quality software may contain functional and UI bugs.
- Apple Silicon telemetry interfaces can change across macOS versions.
- Some fields can be unavailable on other chips.
- Quick Check does not establish thermal steady state.
- Compare is only meaningful when test conditions match.
- Ambient temperature and background activity can materially affect results.
- Some compact-window and localization issues may remain.
- Thermal State may remain Nominal during a hot CPU run.
- Export features may still be refined.
- Signing and notarization status must be checked on the release page.
Safety
Silemetry intentionally creates sustained CPU load.
The enclosure may become hot. macOS thermal protection remains enabled. Silemetry does not change voltage, clocks, power limits, fan policy, or SMC settings.
Application icon attribution
Silemetry uses ai-chip-robot-flat from the Streamline Flex Color icon collection.
- Author: Streamline
- Source: https://icon-sets.iconify.design/streamline-flex-color/ai-chip-robot-flat/
- License: CC BY 4.0
- License text: https://creativecommons.org/licenses/by/4.0/
No visual modification was made. The artwork was only converted and resized for the macOS AppIcon asset catalog.
Release assets
Expected assets:
Silemetry-v0.1.0-preview.1-arm64.dmgSilemetry-v0.1.0-preview.1-arm64.zipSilemetry-v0.1.0-preview.1-SHA256SUMS.txt
Verify the SHA-256 checksum before installing or mirroring a binary.
Installation
- Download the DMG from this GitHub Release.
- Verify its SHA-256 checksum.
- Open the DMG.
- Drag Silemetry into Applications.
- Launch Silemetry.
When the build is not notarized, use Control-click → Open or approve it in System Settings → Privacy & Security. Do not disable Gatekeeper globally.
Feedback
When reporting a bug, include:
- Mac model and chip
- macOS version
- Silemetry version/build
- telemetry-core version
- test mode
- reproduction steps
- screenshot
- exported Diagnostics when available
Do not post private or unrelated data in a public issue.