Distribution
DarwinRelay is currently source-first / self-built. This release intentionally does not include a prebuilt .app or .dmg asset. New users should clone the canonical repository and follow the README Quick Start / self-build path; the zero binary-asset count is part of the current product model, not a missing release artifact.
Existing installs on v0.6.9 can use the confirmed Update DarwinRelay… menu action for future release-to-release updates, or run ./scripts/update.sh from an independent local shell. The updater remains manual; DarwinRelay does not silently auto-update.
DarwinRelay 0.6.9 adds a verified manual update flow to the menu-bar app and hardens the underlying release transaction after real-Mac lifecycle testing.
Highlights:
- adds Update DarwinRelay… to the menu bar with explicit confirmation;
- launches the canonical
scripts/update.sh latest --yesin an independent Terminal window, so update logic is not duplicated in Swift and survives the app restart; - allows only one update transaction at a time via
lockf; closing the Terminal during a transaction triggers rollback rather than leaving a partial update; - validates already-ready Accessibility, Screen Recording, and Input/Post Events through the authenticated live MCP runtime before and after app replacement, and rolls back if they do not recover;
- makes LaunchAgent shutdown/restart ownership fail-closed, including asynchronous
bootouthandling and rejection of competing DarwinRelay launchd owners; - scopes tunnel ownership to DarwinRelay's recorded
cloudflaredPID, leaving unrelated tunnels on the Mac untouched; - adds a maintainer-only exact-candidate updater harness so release candidates can be exercised on a real Mac before a public tag exists.
Validation for the exact release tree:
- final candidate tree:
3d2d154b1c9a127379085b79b890f8416ef7c552; - merge/release commit:
93d61eb97a56d9c223ef33da0581acb4695874c7; - full local core, desktop, and lifecycle suite green;
- integrity manifest: 117/117 tracked regular files;
- real-Mac injected rollback gate passed;
- real-Mac full
v0.6.6 → candidate 0.6.9 → validation → v0.6.6round-trip passed; - signed 0.6.9 app build passed
codesign --verify --deep --strictwith stable designated requirements; - PR CI, post-merge CI, JavaScript CodeQL, and Swift CodeQL all green;
- zero open GitHub code-scanning alerts at release time.
Existing installs older than 0.6.9 do not yet have the menu-bar update action. After the one-time upgrade to 0.6.9, future manual release updates can be started directly from the DarwinRelay menu bar.