Skip to content

BatteryControl 1.2.0

Choose a tag to compare

@Ednk-1312 Ednk-1312 released this 21 Sep 03:04
· 8 commits to main since this release

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 CLI
  • BatteryControlCLI-1.2.0.pkg — CLI-only package
  • BatteryControl-1.2.0.zip — app archive and CLI
  • SHA256SUMS — 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.