Repository navigation
What's Changed
Berthly 1.6.1 targets Apple's container 1.6.1 and adds the features that release introduced.
Requires container 1.6.1
- Berthly now requires container daemon 1.6.1 and is built against the 1.6.1 package (containerization 0.53.0). If your daemon is older, the System page offers the update. 1.6.1 includes two upstream security fixes:
- a build-context symlink issue (GHSA-fqxg-rrf3-358v)
- verification of images pulled by digest (GHSA-vgrw-36j7-r93w)
New
- Commit to Image. Snapshot a running or stopped container's filesystem into a new local image, from the container's detail header or its right-click menu. The image runs the container's command by default. Volumes and mounts aren't included. (#206)
- DNS aliases on networks. Each network row in the Run sheet has an Aliases field (
--network <name>,alias=…). Malformed aliases are caught before the run starts. Attached aliases appear in the container detail and the network's endpoint list. (#207) - Machine accounts. Create Machine → Advanced lets you set the machine's user, UID, GID and home directory. It defaults to your Mac user, as before. Invalid values are rejected before the image download. If an image already has a clashing account, the error now names it. (#208)
- Platform from the image. Run/Create picks the platform from the image, as the 1.6.1 CLI does. An amd64-only image now runs under Rosetta without touching the Platform field; before, it failed with "does not support linux/arm64". Multi-platform images still run natively. (#209)
Fixed
- Logs tab stopped following. After a container or machine went quiet for half a second, the Logs tab silently stopped showing new lines while still saying "Following". It now keeps tailing until you leave the tab. (#205)
- Builder start resilience. A stopped builder that fails to restart is now recreated instead of failing the build. A
container buildrunning at the same moment in the CLI no longer makes Berthly's build fail. (#210)
Under the hood
- The test suite no longer intermittently crashes the test host with a file-descriptor double close (#215), and the running-container export E2E test runs instead of always skipping (#212).
- PARITY.md is re-audited against container 1.6.1 (#195).
Testing
This release shipped only after its gate run passed on the release commit:
- 611 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
28 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.5.1...v1.6.1