github henrywang/Berthly v1.5.0
Berthly 1.5.0

3 hours ago

What's Changed

Berthly 1.5.0 is the macOS 27 release. It fixes three bugs that appeared on macOS 27, adopts a few macOS 27 interface features, and adds Spotlight and Shortcuts support. It still requires macOS 26.0 or later, and runs on macOS 26 and 27. Features marked macOS 27 appear only there; everything else works on both.

New

  • Spotlight and Shortcuts. Your containers and machines now appear in Spotlight. Press Return on one to open Berthly on its detail pane. In Shortcuts, Berthly offers six actions: Start, Stop and Open for both containers and machines. You can use them to build automations such as "start my dev containers". The Spotlight index updates as containers start, stop, or are removed. Works on macOS 26 and 27.
  • Drag to reorder pinned items in the menu bar popover (macOS 27). The order is saved and survives relaunches. Containers and machines each keep their own order. On macOS 26, pins keep their saved order but can't be dragged.
  • Tab-style detail switcher (macOS 27). The Overview / Logs / Terminal switcher uses macOS 27's tab style. They're exposed to accessibility as real tabs, not radio buttons. macOS 26 keeps the segmented control.

Fixed

  • Escape didn't close the detail pane on macOS 27. Pressing Escape with a container or machine detail open did nothing. Berthly now handles Escape itself, scoped to the main window, so Escape inside a sheet still works as before.
  • The menu bar popover sometimes stayed open (macOS 27). After choosing an action such as Run from the popover, it occasionally didn't close (about 1 time in 8). The popover's window is now tracked from the moment it appears, so it closes every time.
  • Quit was ignored while a sheet or alert was open (macOS 27). With the Run Container sheet, Create Machine sheet, or a delete confirmation open, ⌘Q and the menu bar's Quit did nothing. They now quit normally.

Improved

  • Inactive windows look inactive. When Berthly's window is in the background, the status glyphs on compute rows and the green running count in the sidebar fade, matching Finder and Mail.
  • Run stays visible in narrow windows (macOS 26.1 and later). When the window is too narrow for the whole toolbar, Build and Pull move into the overflow menu first, and Run stays in the toolbar.

Under the hood

  • Updated Sparkle to 2.10.0 and SwiftTerm to 1.18.0.
  • Fixed two Swift 6.4 concurrency warnings that appeared when building with Xcode 27.
  • CI now runs the unit and UI test suites on both macOS 26 and macOS 27.
  • Fixed a flaky UI test (LargeInventoryTests). The cause was XCUITest's synthetic scrolling, not an app bug.
  • New AppIntentsSystemTests run Berthly's intents through the system on a developer's Mac. They're skipped in CI, which can't sign the test runner with a development team.

Testing

This release shipped only after its gate run passed on the release commit:

  • 557 unit tests passed — 91% line coverage of the pure
    logic layer
    (Berthly/Core models, mapping, and planning; 58%
    including the daemon/terminal I/O plumbing, which the end-to-end suite
    exercises against a real daemon instead).
  • 83 UI tests (deterministic mock-daemon XCUITest) and
    20 real-daemon end-to-end journeys guard the UI wiring and the
    daemon integration. SwiftUI view bodies are covered by these suites, not
    unit tests, by design.

Full Changelog: v1.4.1...v1.5.0

Don't miss a new Berthly release

NewReleases is sending notifications on new releases.