fix(macos): lower swift helper deployment target from 14.0 to 12.0 - #132
Merged
Conversation
14.0 (#126) was chosen to stop the runner-default target (macOS 15) from leaking into the binary, not because the code needs macOS 14 APIs. The actual floor is macOS 12: Swift concurrency (Task) needs 10.15 and Date.now needs 12; the helper compiles cleanly at 12.0 for both x86_64 and arm64, and fails at 11.0 and below. Lowering the floor keeps the helper usable on Monterey-era machines (Intel Macs back to ~2014-15) ahead of restoring x86_64 bundle builds (ActivityWatch/activitywatch#1263), and matches the bundle repo which now builds everything with MACOSX_DEPLOYMENT_TARGET=12.0 (ActivityWatch/activitywatch#1363). Still fixes the #125 Sonoma dyld crash, which only required an explicit target <= the user's OS. Verified locally: swiftc -target arm64-apple-macosx12.0 builds and otool reports 'minos 12.0'.
Greptile SummaryThis PR lowers the Swift helper’s minimum supported macOS version to 12.0.
Confidence Score: 5/5This looks safe to merge.
Important Files Changed
Reviews (2): Last reviewed commit: "fix(macos): lower swift helper deploymen..." | Re-trigger Greptile |
TimeToBuildBob
approved these changes
Jul 22, 2026
TimeToBuildBob
left a comment
Contributor
There was a problem hiding this comment.
Reviewed the full diff and CI. This correctly makes 12.0 the single default across the Makefile, macOS build/package jobs, and the Mach-O minos assertion. The measured API floor and ActivityWatch/activitywatch#1363 now agree; all CI is green and Greptile is 5/5. LGTM.
Member
Author
|
@greptileai review |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
The 14.0 target from #126 was chosen to stop the runner-default target (macOS 15) from leaking into the binary — not because the code needs macOS 14 APIs. The measured floor is macOS 12: Swift concurrency (
Task) needs 10.15 andDate.nowneeds 12. The helper compiles cleanly at 12.0 for both x86_64 and arm64, and fails at 11.0 and below.Lowering to 12.0:
MACOSX_DEPLOYMENT_TARGET=12.0(fix(ci): bump MACOSX_DEPLOYMENT_TARGET from 10.9 to 12.0 activitywatch#1363) — previously the bundle's env override (?=) and this repo's default/CI check disagreed about the floorv0.14.0b1is built for macOS 15.0 #125 Sonoma dyld crash, which only required an explicit target ≤ the user's OSChanges
Makefile:MACOSX_DEPLOYMENT_TARGET ?= 14.0→12.0.github/workflows/build.yml: build/package env and theotoolminoscheck updated to matchVerified locally:
swiftc -target arm64-apple-macosx12.0builds andotool -lreportsminos 12.0.