BatteryControl 1.2.0
BatteryControl 1.2.0
This release finishes the daily-use controls work without changing the privileged control boundary.
What changed
- Added a clearer Battery Health section with charge state, cycle count, temperature, design capacity, full-charge capacity, and a labeled capacity-ratio estimate when telemetry is available.
- Added named charge presets: Daily (80/70), Battery Saver (70/60), Full Charge, and Custom.
- Added menu-bar quick actions for presets and temporary charging overrides.
- Temporary charge overrides are now daemon-owned and persisted atomically. They can run until the target is reached, be cancelled manually, or use a one-hour/two-hour deadline. Expired overrides restore the saved policy after a daemon restart instead of being silently extended.
- Added bounded daemon-owned event history for meaningful policy, override, verification, discharge, and capability transitions. Repeated ticks are not recorded as separate events.
- Added sanitized support-bundle export containing compatibility information and recent factual events. No upload or telemetry was added.
- Fixed GUI snapshot deduplication so polling timestamps do not cause unnecessary SwiftUI updates.
- Added CLI support for
charge start ... --for 1h|2h. - Updated documentation and compatibility wording.
Safety and compatibility
All control operations still go through the privileged daemon and the existing XPC boundary. Hardware capability detection, readback verification, unknown-hardware read-only behavior, safety-floor consent, and recovery paths remain in place.
BatteryControl does not replace macOS Optimized Battery Charging. It provides user-defined policy where the detected backend can safely verify it.
Physical validation in this release was performed on an Apple M3 MacBook Air running macOS 15.8 with mBoot-20457.1.29. The 70/60 preset, restored 80/70 policy, Full Charge deactivation/restoration, temporary override, cancellation, persisted deadline, and daemon restart recovery were exercised there. Other Apple Silicon generations and macOS versions remain capability-detected or untested rather than physically claimed.
Release artifacts
BatteryControl-1.2.0.pkg— GUI, daemon, and CLIBatteryControlCLI-1.2.0.pkg— CLI-only packageBatteryControl-1.2.0.zip— app archive and CLISHA256SUMS— checksums for all artifacts
The installer is signed with the available Apple Development identity but is not claimed to be notarized. Verify downloaded files against SHA256SUMS.