What's Changed
Berthly now runs against Apple's container 1.7.1. It requires container 1.7.1 or newer. If you're on 1.6.x, Berthly shows its upgrade screen with a one-click install (#238).
Builds
- Builds work with the new BuildKit builder. container 1.7.1 ships builder shim 0.13.3, whose newer gRPC library rejects requests that lack an
:authorityheader. The fix is in the build code Berthly links (apple/container#2428), so this release is how Berthly gets it (#238). - Multi-file
COPYbefore a tmpfs-mount step no longer fails. A Dockerfile likeCOPY a.txt b.txt /out/followed byRUN --mount=type=tmpfs,...used to fail with"/b.txt": not found, because only the first file reached the builder (apple/container#2414, now covered by an E2E test in #242). - The builder uses your DNS settings. Since its first release, Berthly started the build container with
1.1.1.1hard-coded as its nameserver. The CLI uses the network gateway's resolver instead. Berthly now does the same, and it also applies the new[container.dns]defaults fromconfig.toml. The first build after updating recreates an existing builder once, which clears its build cache (#239).
DNS defaults
container 1.7.1 adds a [container.dns] section to ~/.config/container/config.toml for default nameservers, search domains, options and domain.
- Containers you run from Berthly get these defaults when the Run sheet's DNS fields are empty. A value in the sheet overrides them (#238).
- The System page's property list shows them as
container.dns.*rows (#240).
CPU usage matches container stats
The Overview tab's CPU figure is now a percentage of one core, the same unit as container stats and docker stats. A container keeping two cores busy reads about 200%. Before, Berthly divided by the Mac's core count, so on a 10-core Mac that container read 20% (#241).
Clearer resource errors
Asking the Run sheet for more CPUs than the Mac has, or for less than 200 MiB of memory, now shows container's own message ("cpus must be between 1 and …", "minimum memory amount allowed is 200 MiB"), and no container is created (#238, covered in E2E by #242).
Other fixes
- ⌘Q quits reliably while a confirmation sheet is open. If you quit before the sheet had become the active window, macOS could refuse to quit. Berthly now clears the flag that blocks quitting before it quits (#228).
- PARITY.md is re-audited against container 1.7.1 (#243).
Testing
This release shipped only after its gate run passed on the release commit:
- 621 unit tests passed — 92% line coverage of the pure
logic layer (Berthly/Coremodels, mapping, and planning; 59%
including the daemon/terminal I/O plumbing, which the end-to-end suite
exercises against a real daemon instead). - 86 UI tests (deterministic mock-daemon XCUITest) and
30 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.6.1...v1.7.1