Skip to content

Releases: MustardSeedNetworks/foundation

v0.5.5

Choose a tag to compare

@msn-ci-bot msn-ci-bot released this 05 Sep 07:12
9d1f709

0.5.5 (2026-09-05)

Continuous Integration

  • give release-please's gh calls a repository (#27) (844d077), closes #26

v0.5.4

Choose a tag to compare

@msn-ci-bot msn-ci-bot released this 05 Sep 06:44
5e30b6d

0.5.4 (2026-09-05)

Continuous Integration

v0.5.3

Choose a tag to compare

@msn-ci-bot msn-ci-bot released this 04 Sep 12:52
832e0b8

0.5.3 (2026-09-04)

Continuous Integration

  • add CodeQL analysis and gate on its open alerts (#21) (145a1c5), closes #20
  • automate releases with release-please (#19) (24e88d4), closes #18
  • give main pushes their own concurrency group (#17) (b2bf510), closes #16
  • give the shared security core the gates its consumers already have (#15) (4dcf1a9), closes #14

v0.5.2 — detect redaction from the data

Choose a tag to compare

@krisarmstrong krisarmstrong released this 24 Aug 23:12
5cb024b

A scan could return with every SSID and BSSID stripped and still be reported as success, because the check was the authorization status alone.

CoreWLAN redacts according to the calling process's own client identity. A bundled executable launched directly rather than through LaunchServices is a different client from its bundle — so the manager can truthfully report that the bundle holds the grant while the scan it returns is stripped. Observed on macOS 27.0: status authorized, 13 networks, not one identifier among them, no error.

DecodeScan now also returns ErrLocationDenied when a scan found networks and named none of them. A real observation always carries a BSSID, so that state is unambiguous. An empty airspace stays a successful empty scan.

This is the failure the package exists to prevent: silently recording signal strengths against nameless BSSIDs, which for a survey looks exactly like data.

v0.5.1 — authorization prompt correction

Choose a tag to compare

@krisarmstrong krisarmstrong released this 24 Aug 21:57
6e62191

Corrects the documented reason a background agent is not prompted for Location Services.

v0.5.0 claimed the consent alert only presents for a foreground application. That was wrong. A background agent is prompted normally, provided its bundle carries com.apple.security.personal-information.location.

Under the hardened runtime — which notarization requires — locationd registers the client and then declines to display the dialog without that entitlement, logging "Client has supported the hardened runtime but doesn't have the entitlement". Because the client is still registered, the bundle appears in System Settings and can be enabled by hand, which is why the missing entitlement reads as a platform limitation.

Comment-only; no behaviour change.

v0.5.0 — Location authorization

Choose a tag to compare

@krisarmstrong krisarmstrong released this 24 Aug 21:57
9c3eac9

Adds AuthorizationStatus and RequestAuthorization, plus an Authorization type that names the state instead of leaking a raw CLAuthorizationStatus.

Requesting is what registers an application with locationd, which is what makes it appear in System Settings at all — until it has been called once the permission cannot even be offered.

v0.4.0 — interface control

Choose a tag to compare

@krisarmstrong krisarmstrong released this 24 Aug 21:57
d029965

Extends the binding past scanning so consumers need no shell-outs at all.

Adds Interfaces, SavedNetworks, Associate, Disassociate, SetPower and Forget. SavedNetworks reads CWConfiguration.networkProfiles.

Forget rewrites the stored configuration, an administrative operation that fails without the system-configuration right rather than silently leaving the profile in place.

Uses the instance -[CWWiFiClient interfaceNames]; the class method of the same name has been deprecated since macOS 13.

v0.3.0 — CoreWLAN binding

Choose a tag to compare

@krisarmstrong krisarmstrong released this 24 Aug 21:57
55f994d

Adds pkg/corewlan, the shared Apple CoreWLAN binding.

macOS 26 removed the airport CLI that every Mustard Seed product shelled out to for Wi-Fi work. CoreWLAN is the supported replacement and carries no deprecation attributes in the macOS 27 SDK.

CoreWLAN redacts SSID and BSSID unless the process holds Location Services authorization, and a redacted scan does not fail — it returns the right number of networks with correct RSSI and channel and every identifier emptied. DecodeScan maps that onto ErrLocationDenied rather than reporting an empty airspace.