Auto-Verify Pipeline with Two Mac Minis and Parallel Agents
Auto-Verify Pipeline with Two Mac Minis
One Mac Mini builds. The other verifies. The pipeline runs continuously, catching regressions before they reach users. This setup sounds simple until you deal with session management across reboots and coordinating parallel agents between machines.
The Two-Machine Setup
Machine A runs build agents. They compile code, run unit tests, and produce artifacts. Machine B runs verification agents. They install the artifacts, exercise the application through accessibility APIs, and report whether the build actually works.
Separating build and verify onto different machines prevents a subtle problem: the build environment accumulating state that makes things work locally but fail on a fresh machine. Machine B is always a clean-ish environment that more closely resembles a user's machine.
Session Management Across Reboots
macOS requires a logged-in user session for accessibility API access. If a Mac Mini reboots - due to an OS update, power interruption, or intentional restart - the agents cannot interact with the UI until someone logs back in.
The fix: configure auto-login, set up a launchd daemon that starts the agent pipeline after login, and add a health check that alerts you when either machine is down. The health check should verify not just that the machine is reachable but that the GUI session is active and accessibility access is working.
Coordinating Parallel Agents
Build agents on Machine A need to signal verification agents on Machine B when a new artifact is ready. A simple approach: Machine A writes the artifact to a shared location (NFS, or synced via rsync) and touches a trigger file. Machine B watches for the trigger file, picks up the artifact, and starts verification.
More sophisticated setups use a message queue or a simple HTTP endpoint. But file-based coordination is surprisingly robust and easy to debug - you can inspect the state by listing the directory.
The pipeline catches bugs that unit tests miss: installation failures, permission issues, UI rendering problems, and accessibility tree changes that break automation.
Fazm is an open source macOS AI agent. Open source on GitHub.