The image job failed on PR #252 and passed on main with no code difference between them that touches CI. The runner is the difference: run 434 built on mac2 and passed, run 441 built on mac1 and failed at "staging postgres never became ready", on the same two commits. mac1 has the smaller OrbStack allocation, and the gate starts three sibling containers on the host daemon. The job now names mac2 rather than taking whichever runner is free. The gate also prints the container's state and log when Postgres does not come up. "Never became ready" covered both a Postgres still starting and a container that never ran, which need different fixes, and mac1 said nothing further, so 90 seconds of waiting read as a relay bug. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>