Skip to content

Releases: 0then0/batterybridge

BatteryBridge v0.4.0

Choose a tag to compare

@github-actions github-actions released this 31 Oct 13:49
43ac340

Changed

  • Stopping or restarting the service (including OS shutdown and reboot, which it
    cannot tell apart) no longer writes "no limit" to native thresholds. Linux
    sysfs, Lenovo conservation mode and Intel BCLM keep the saved limit; a
    temporary top-up or target is replaced by it. Gates, forced discharge, the
    MagSafe light and the idle-sleep override are still always released. Before this
    change every orderly stop cleared Linux thresholds, so upgrading a package
    or rebooting briefly lifted the limit.
  • Each hardware release now has an explicit scope (daemon-held overrides or
    everything). Pause and Reset release everything; Reset is acknowledged only
    after the hardware accepted it and the empty policy was saved. Cleanup steps
    are independent, and a failure names every step that failed.
  • Debian and RPM removal now starts a stopped service, runs batterybridge reset,
    stops the service and checks it exited cleanly before disabling it. Failure stops
    removal.
  • After macOS wake, status reports that hardware state is unverified until the
    first reconciliation finishes. Sleep preparation steps no longer skip each other.
  • Shutdown refuses queued requests with an explicit error instead of dropping them
    (the request is read first, and the drain is limited to five seconds).
  • batterybridge status labels the saved limit as configuration and prints the
    device's own threshold readback separately where the driver exposes it.
  • The app's colors now follow the icon's greens in light and dark themes instead of blue,
    and the tray icon is plain white (a black template on macOS, which the menu bar
    recolors). The app icon is a horizontal battery with a limit marker.
  • The paused-control message lists what pause releases and that a restart ends it,
    in all seven languages.

Fixed

  • A failed reconciliation (for example an unreadable battery percentage) no longer
    writes "no limit" to a native threshold; it releases daemon-held overrides and
    re-applies the saved threshold. Previously it cleared Linux and Lenovo limits until
    the next successful 30-second check.
  • Selected items in drop-down lists keep readable text in both themes.
  • The app no longer silently drops an action issued while another request is
    running or leaves the previous success banner in place; it shows a message.
  • Service troubleshooting names the correct socket group for Debian and RPM packages.

Compatibility

  • IPC (version 3) and the saved policy format are unchanged.
  • The persistence of any threshold or gate while the computer is off is
    unverified on every device; no hardware validation report exists. SIGKILL,
    power loss and forced OS shutdown run no cleanup. See lifecycle.
  • Version 0.4.0 rather than a patch release: the protocol and configuration are
    compatible, but observable stop and removal behavior changed.

BatteryBridge v0.3.1

Choose a tag to compare

@github-actions github-actions released this 25 Oct 12:38

Added

  • Optional Launch at login setting in all seven GUI languages. It starts the
    current user's GUI in the tray, independently of the charging service. On macOS
    it requires a bundled app and macOS 13+; the rest of the app still supports macOS 11+.
  • Public contribution, conduct and security policies, an EditorConfig, issue forms
    and a pull request template.

Fixed

  • Closing the macOS window into the tray now retains the native event loop, so
    the tray menu and Open BatteryBridge continue working after repeated closes.
  • Hidden startup loads the saved language before creating its first tray menu
    and opens a window if no usable tray is available.
  • GUI autostart registration is serialized with graphical macOS uninstall.
    The Windows uninstaller removes matching startup records from loaded user profiles.

Compatibility

  • Charging policy format and IPC are unchanged from 0.3.0. Install over the existing
    package to preserve charging settings. See installation for
    login-item approval and removal behavior.
  • macOS and Windows installers remain unsigned; Apple SMC and Lenovo WMI charging
    control remain experimental. Firmware may reset charging gates during sleep.

BatteryBridge v0.3.0

Choose a tag to compare

@github-actions github-actions released this 24 Oct 11:47

BatteryBridge 0.3.0

Native Rust desktop app

The GUI now uses egui and eframe. Selected fastframe modules provide the tray,
window lifecycle, font fallback and system language detection; macOS also uses
its Dock visibility helper. System light/dark appearance, all seven languages,
read-only fallback, charging settings, compatibility reports and graphical macOS
uninstall remain available.

The app no longer requires Node.js, WebView2 or WebKitGTK. The former local glib
backport is removed with that dependency graph. The source uses released egui and
pins fastframe to v0.14.1. GUI builds require Rust 1.98+.

Battery care and compatibility

This release adds temporary charge targets, hold/pause/resume controls, automatic
discharge, battery-temperature protection, calibration, calendar schedules,
MagSafe light settings and an idle-sleep assertion where hardware permits them.
Telemetry includes battery temperature, voltage, current, power and cycle count
when provided by the device. Shortcuts can invoke the documented CLI commands.

The IPC protocol changes from version 2 to 3. Upgrade the GUI, CLI and background
service together using the platform installer; a 0.2 client or service cannot
communicate with its 0.3 counterpart.

Configuration versions 0 and 1 migrate to version 2 while preserving the saved
limit and leaving new care features disabled. Version 2 is saved on the next
successful settings update. Back up configuration before upgrading: older
binaries cannot read version 2. For rollback, restore that backup along with the
older application and service. See the configuration guide for manual conversion.

Installation

  • macOS 11+: one universal .pkg includes Intel and Apple Silicon GUI, CLI and daemon. Bundle build 5; Installer receipt 0.3.0.5. Install over an existing package to preserve charging settings.
  • Windows 10/11 x86_64: NSIS installs the GUI and protected SYSTEM task. Remove through Windows Settings. Normal charging is restored before removal.
  • Linux x86_64: native .deb and .rpm include the app and systemd service, with OpenGL/EGL and X11/Wayland dependencies. Existing sudo/wheel members can control charging. Noto CJK fonts are recommended for Japanese.

Developer archives contain the native GUI executable and system integration
resources. macOS and Windows installers are unsigned; macOS is not notarized.
SHA256SUMS.txt covers every downloadable package and archive.

Hardware boundaries

Charging capabilities remain hardware-dependent. Intel SMC and Apple Silicon
SMC control, and Lenovo WMI conservation mode, remain experimental. Temperature
protection and calibration require device-level validation. Before sleep, the
service requests inhibition for percentage targets below 100%; Apple Silicon
firmware may reset the charging gate while asleep, so a closed-lid percentage
limit is not guaranteed. The idle assertion does not prevent lid-close or manual
sleep.

BatteryBridge v0.2.0

Choose a tag to compare

@github-actions github-actions released this 23 Oct 19:15

BatteryBridge 0.2.0

Native installation on each platform

  • macOS: one BatteryBridge-macos-universal.pkg for Intel and Apple Silicon, macOS 11+. GUI, CLI and daemon all contain native arm64 and x86_64 code. Open the package in Finder and approve the administrator prompt. Use the app's uninstall action for complete removal.
  • Windows 10/11 x86_64: BatteryBridge-windows-x86_64-setup.exe installs the GUI and a protected SYSTEM background task. No PowerShell setup is needed. Remove through Windows Settings; the uninstaller restores normal charging first.
  • Linux x86_64: .deb and .rpm include the GUI and systemd service. Open the package in a compatible graphical package manager. Debian packages authorize existing sudo group members; RPM uses wheel. No users are added to groups. Requires systemd and compatible WebKitGTK 4.1 libraries. Package removal disables the daemon and retains configuration for reinstallation.

Updates preserve saved charging settings. The macOS app build is 4; the Installer receipt is 0.2.0.4. Install the new package over an earlier release. Developer archives remain available but do not install the background component themselves.

Intel charge control

Intel Macs now probe compatible SMC interfaces. A readable, valid BCLM key enables experimental firmware-managed thresholds from 50% to 100%, with write readback and temporary full charge. BCLM does not provide an adjustable start threshold or forced discharge. Compatible binary gates remain an experimental fallback. Unsupported hardware retains battery monitoring and reports capabilities explicitly.

Compilation and automated tests on Intel are not validation of charging on every Intel Mac. Physical Intel charging, sleep and firmware behavior still require device-level testing. Apple Silicon binary gates can be reset by firmware during sleep; a closed-lid percentage cap is not guaranteed. Lenovo WMI charge control remains experimental and fixed at 80%.

Linux dependency security

The Linux GUI includes the upstream memory-safety fix for glib's VariantStrIter
(GHSA-wrw7-89jp-8q8g / RUSTSEC-2024-0429) through a documented source override.
Tauri 2 still depends on glib 0.18.5, so the version number is unchanged and
version-only scanners may continue to flag it. The optimized iterator regression
runs in Linux CI. macOS and Windows do not use this GTK dependency.

Distribution

Windows and macOS installers are unsigned; macOS is not notarized. Review origin and platform security prompts. Do not disable Gatekeeper or other system protections. Managed devices may prohibit unsigned installation.

SHA256SUMS.txt covers all downloadable assets. The README lists direct links for each installer and developer archive.

BatteryBridge v0.1.1

Choose a tag to compare

@github-actions github-actions released this 23 Oct 14:59

BatteryBridge 0.1.1

This patch adds graphical macOS removal and corrects charging-policy transitions around sleep.

Changes

  • Uninstall without Terminal: choose Uninstall BatteryBridge at the bottom of the macOS app, confirm and approve the administrator dialog. The app restores normal charging, unloads the service, and removes the installed app, helpers, saved policy and log. Removal stops if charging restoration or service unloading fails. Moving the app to Trash alone still leaves the service installed.
  • Sleep and resume: preparing for sleep no longer briefly releases the saved charging limit. Charging inhibition is retained after wake until the resume threshold is reached, instead of reopening the gate inside the hysteresis band.
  • Visible diagnostics: errors preparing for sleep survive successful awake polling. The UI identifies a percentage as a saved setting and warns when telemetry shows charging above it outside an explicit top-up.
  • New messages and removal controls are translated into English, Russian, Spanish, German, French, Japanese and Brazilian Portuguese.
  • The README includes direct downloads and checksums for each published platform.

Install or update

On an Apple Silicon Mac with macOS 11 or newer, download BatteryBridge-macos-apple-silicon.pkg, open it in Finder and follow Installer. Open Applications → BatteryBridge after installation. Updating closes the running app, restarts the service and keeps the saved charge policy. No Terminal commands are required.

CLI, GUI and service use version 0.1.1. The macOS bundle build is 3; the Installer receipt is 0.1.1.3. These versions replace 0.1.0 and the earlier preview without removing saved settings.

Windows and Linux assets are developer archives with manual charging-service setup. SHA256SUMS.txt covers every downloadable asset.

Hardware and distribution limitations

Apple Silicon SMC and Lenovo WMI charge control remain experimental. The sleep-transition regression is covered by automated tests, but this release has not been validated through a real closed-lid charging cycle. Private SMC gates can be reset by firmware during sleep: this patch does not establish a firmware-managed limit or guarantee a closed-lid percentage cap. Firmware may also refuse writes while awake. A saved setting alone is not proof of enforcement.

The macOS package is unsigned and not notarized. If macOS blocks it, review its origin and use System Settings → Privacy & Security → Open Anyway only if you trust this release. Do not disable Gatekeeper. Intel Mac charging control is unsupported. Only local administrator accounts can change charging settings.

To report a problem, include the OS version, device model and a reviewed compatibility report from the app. Reports exclude serial numbers and network identifiers.

BatteryBridge v0.1.0

Choose a tag to compare

@github-actions github-actions released this 23 Oct 09:54

BatteryBridge 0.1.0

Battery status, device-aware charging limits and a desktop tray app for macOS, Linux and Windows.

Languages and appearance

  • English, Russian, Spanish, German, French, Japanese and Brazilian Portuguese.
  • Automatic system-language detection with a saved language selector at the bottom of the app. Changing language keeps unsaved charging inputs intact.
  • Localized labels, battery states, capability explanations, notices and tray actions. The macOS Installer welcome and completion pages also follow the system language.
  • System light/dark appearance and layouts that adapt to the minimum 320 px window width.
  • Compatibility JSON, CLI output and verbatim OS/firmware diagnostics retain their original format for support and automation.

Install or update on an Apple Silicon Mac

  1. Download BatteryBridge-macos-apple-silicon.pkg below. Open it in Finder and follow Installer.
  2. Enter an administrator password when prompted. The package installs both the app and charging service; Terminal is not required.
  3. Open Applications → BatteryBridge from a local administrator account. Choose a stop percentage and apply the limit.

Installing over v0.1.0-dev.1 preserves the saved charge policy. The installer closes the running app and restarts the service. Open the installed app after the update. A new installation starts with the charge limit off. The service starts after a reboot and continues running when the app closes.

Distribution and hardware limitations

  • Unsigned macOS package: this release is not Developer ID signed or notarized. If macOS blocks it, review its origin and use System Settings → Privacy & Security → Open Anyway only if you trust the package. Do not disable Gatekeeper. Organization-managed Macs may prohibit unsigned installers.
  • The graphical installer supports Apple Silicon Macs with macOS 11 or newer. Intel Mac charging control is unsupported. Only local administrator accounts can change the machine-wide charging policy.
  • Apple Silicon SMC and Lenovo WMI charge control remain experimental. Firmware can refuse a write; hardware errors appear in the app. Publication of this release does not certify every laptop or firmware version.
  • Windows and Linux downloads are developer archives with native GUI builds, CLI and service definitions. Charging-service installation on these platforms remains manual. Windows GUI installers do not install that service.
  • There is no automatic updater. To restore normal charging, use Turn off in the app. Deleting the GUI alone does not uninstall the service; see the service-removal guide in the included documentation.

Downloads and support

SHA256SUMS.txt contains checksums for all assets. The macOS .pkg is the complete graphical installer; the archives are for manual installations and developers. CLI, GUI and service all use version 0.1.0; the macOS bundle build is 2 and the Installer receipt is 0.1.0.2.

For issues, include your OS version, device model and a reviewed compatibility report generated by the app. Reports exclude serial numbers and network identifiers. Avoid sharing additional personal data.

BatteryBridge v0.1.0-dev.1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 23 Oct 08:25

First developer preview

Install on an Apple Silicon Mac

  1. Download BatteryBridge-macos-apple-silicon.pkg below. The archives are intended for developers and manual installations.
  2. Open the package in Finder and follow Installer. Enter an administrator password when macOS asks.
  3. Open Applications → BatteryBridge using an administrator account. The installer includes and starts the charging service, so no Terminal commands are needed.
  4. Set a charge limit and choose Apply limit. Check that the app shows the saved limit and no policy error. The service starts after reboot and keeps running when the app closes.

Unsigned preview: this package is not Developer ID signed or notarized. macOS may block it. After attempting to open it, review the package origin and use System Settings → Privacy & Security → Open Anyway if you choose to trust this preview. Do not disable Gatekeeper. Managed Macs may prohibit unsigned packages entirely. A signed, notarized installer is required for a frictionless public release.

What is included

  • System light/dark appearance, battery status, charging settings and compatibility reports.
  • The app in /Applications/BatteryBridge.app and a root-owned launchd service.
  • Private CLI, service and launcher executables in /Library/PrivilegedHelperTools.
  • Machine-wide settings preserved across updates. A new installation starts with the charge limit off. Updating closes the previous app and restarts the service.

Limits of this preview

  • The graphical installer targets Apple Silicon Macs, macOS 11 or newer. Intel Mac charging control is unsupported.
  • Apple Silicon SMC charge control is experimental. Software checks do not establish that your firmware accepts a hardware write. A hardware refusal must be reported as an error in the app.
  • Only local administrator accounts can change charging settings. Other accounts can see read-only status.
  • Windows and Linux archives contain native GUI builds, CLI and service definitions, but service installation on those platforms is still manual. Their GUI installers do not install the charging service.
  • There is no automatic updater. Install a newer package to update. Use Turn off to restore normal charging before removing the app; dragging the app to Trash does not uninstall the service. Administrative removal is documented in docs/service.md.

Please check

Installation without Terminal, absence of “Read-only mode” under an administrator account, applying an 80% limit, visible firmware errors, Turn off, Top up, system theme changes, and reconnecting after reboot. If you already run BatteryBridge manually, quit that copy before testing the installed app.

Include your macOS version, Mac model and a reviewed compatibility report from the app when reporting an issue. Do not include serial numbers or other private identifiers. SHA-256 checksums for the downloads are in SHA256SUMS.txt.