Repository navigation
Prepare v1.0.0 - #25
Merged
Merged
Conversation
Both bundles were compiled without an explicit Swift target, so the helper Mach-O is pinned to macOS 15.0 minimum and refuses to launch on macOS 13 or 14 — directly contradicting the README's macOS 13+ promise. v0.1.3 was the first tag built with `-target arm64-apple-macos13.0` in scripts/build-wifi-scanner-app.sh. Extending the retract block steers `go get` and Dependabot away from both broken versions in addition to v0.1.0 (which was already retracted).
The Go module advertises macOS 13+ as the support floor, but CI was
only exercising `macos-latest`, so 13/14 compatibility was unverified
and could regress silently between releases.
Run the helper job across `macos-13`, `macos-14`, and `macos-latest`
and add a `macos-helper` aggregator that keeps the existing required
status check name ("macOS helper") intact, so branch protection
doesn't need re-pinning every time the matrix changes.
Wire-protocol decoding is well-covered in protocol_test.go, but the exec/socket path in macwifi.go (extract embedded bundle, launch via `open -W`, accept loopback callback, send close_request, wait for process exit) had no test coverage. A regression there would only surface in downstream consumers. The new test runs `New` then `Close` (twice, to cover Close idempotency) without ever calling Scan or Password, so it never trips Location Services or Keychain prompts on interactive machines. Skipped under -short for the same reason `make ci-go` skips the full helper bring-up.
Align CFBundleVersion and CFBundleShortVersionString with the upcoming
module version. The bundle version surfaces in System Settings →
Location Services and was a stale placeholder ("1" / "1.0") that
didn't track the module.
The signed companion will rebuild and re-sign the embedded helper for
this PR because Info.plist is one of its trigger paths.
Adds a "Versioning" section to the README committing the exported `macwifi` Go API to backward compatibility under semver across the v1.x line, with the helper wire protocol explicitly excluded. Replaces the manual "Releasing the Helper" section, which described a local Developer-ID + notarytool workflow that consumers will never need. The reality is now end-to-end automated: conventional commits → Release Please PR → signed companion rebuild → merge → tag + GitHub Release + signed bundle zip attached. The local helper rebuild snippet is preserved as a "development only" note for Swift iteration via `MACWIFI_APP`. Release-As: 1.0.0
jaisonerick
temporarily deployed
to
macos-signing
April 22, 2026 01:55 — with
GitHub Actions
Inactive
`scanner/Sources/WifiScanner.swift` and the helper tests had trailing commas in function arg lists, which is a Swift 6.1 feature (SE-0439). The macOS 13 (Swift 5.9) and macOS 14 (Swift 5.10) CI matrix runners fail typecheck because of this — the bug was hidden until the matrix expansion forced compilation on older Swift toolchains. Drop the trailing commas. The remaining code is portable across Swift 5.9 → 6.x.
jaisonerick
temporarily deployed
to
macos-signing
April 22, 2026 02:01 — with
GitHub Actions
Inactive
GitHub Actions retired the `macos-13` hosted runner label in December 2025 (actions/runner-images#13402, #13413). Jobs scheduled on it queue indefinitely without ever picking up a runner — confirmed on PR #25 where macos-13 sat queued for 14+ minutes while macos-14 and macos-latest finished in under a minute each. Drop macos-13 from the CI matrix so PRs are not blocked on a runner pool that no longer exists. The shipped helper is still pinned to `-target arm64-apple-macos13.0` in scripts/build-wifi-scanner-app.sh, which means the Mach-O LC_BUILD_VERSION pins macOS 13 minimum and the binary runs on macOS 13 (we just can't verify that on a runner). The macos-14 row preserves coverage of the Swift 5.10 toolchain, which was the row that caught the trailing-comma regression earlier today.
jaisonerick
temporarily deployed
to
macos-signing
April 22, 2026 02:18 — with
GitHub Actions
Inactive
jaisonerick
pushed a commit
that referenced
this pull request
Apr 22, 2026
jaisonerick
pushed a commit
that referenced
this pull request
Apr 22, 2026
jaisonerick
added a commit
that referenced
this pull request
Apr 22, 2026
GitHub Actions retired the `macos-13` hosted runner label in December 2025 (actions/runner-images#13402, #13413). Jobs scheduled on it queue indefinitely without ever picking up a runner — confirmed on PR #25 where macos-13 sat queued for 14+ minutes while macos-14 and macos-latest finished in under a minute each. Drop macos-13 from the CI matrix so PRs are not blocked on a runner pool that no longer exists. The shipped helper is still pinned to `-target arm64-apple-macos13.0` in scripts/build-wifi-scanner-app.sh, which means the Mach-O LC_BUILD_VERSION pins macOS 13 minimum and the binary runs on macOS 13 (we just can't verify that on a runner). The macos-14 row preserves coverage of the Swift 5.10 toolchain, which was the row that caught the trailing-comma regression earlier today.
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.
Summary
Closes the punch list for cutting v1.0.0:
go.mod— both shipped a Mach‑O pinned to macOS 15.0 and refuse to launch on the documented macOS 13/14 floor.macos-13,macos-14,macos-latest. Adds amacOS helperaggregator so the existing required status check stays valid without re-pinning branch protection.Clientexec + loopback path (New→Close× 2) end-to-end. Doesn't trigger Location Services or Keychain.scanner/Info.plistCFBundleShortVersionString/CFBundleVersionto1.0.0. Companion will rebuild + re-sign automatically because Info.plist is in its trigger paths.Versioningsection in README) and replace the stale manual "Releasing the Helper" section with a description of the now-automated CI flow. The localmake releasenotarytool path moves to a small "Local helper rebuild (development only)" note.v1.0.0 cut
The README commit's body carries
Release-As: 1.0.0. When this PR merges tomain, Release Please will open a Release PR proposing v1.0.0 (instead of the next 0.1.x), updateCHANGELOG.md, and bumpembed.go'sembeddedVersionconstant via the existing release-please marker.If you want to land these fixes without cutting v1 yet, amend that commit to drop the
Release-As: 1.0.0footer before merge — Release Please will then propose the usual semver-derived bump (likely0.2.0from thefeat-equivalent semantics or0.1.5fromfix).Test plan
Local on this machine (macOS):
make fmt-check vet test-race build— cleanmake swift-check— clean (targetarm64-apple-macos13.0)make swift-test— all helper unit tests passmake scanner-ci— ad-hoc bundle builds,VersionMin=851968(0xD0000=13.0)go test -run TestClientLifecycle -count=1 ./...— passes (~1s; launches signed embedded helper, sends close_request, waits for clean exit)plutil -lint scanner/Info.plist— OKExpected on CI:
macos-13,macos-14,macos-latest) — all three passmacOS helperaggregator — green (required for branch protection)embedded/WifiScanner.appback to this branchcodesign -dv embedded/WifiScanner.app | grep VersionMinshows851968