v1.7.2 (2026-07-27)

Patch release: fixes the release pipeline so the signed macOS Castle Wall app can actually launch. No server-side code changes, no new capability, no breaking changes, no config migration.

Why this release exists

The CI-built macOS app attached to the v1.7.0 and v1.7.1 releases was signed and notarized but could not launch on any Mac. macOS refused to spawn it (“Launchd job spawn failed”, RBS error 5): the binaries claim restricted entitlements (system extension install plus the NetworkExtension content filter provider), and AMFI kills a restricted-entitlement binary whose bundle carries no embedded provisioning profile. Direct execution of the v1.7.1 asset’s host binary dies instantly with SIGKILL.

The local operator build embedded two provisioning profiles before signing, one at Contents/embedded.provisionprofile in the outer app and one inside the nested .systemextension bundle, from files that live on the build machine. The CI workflow had no copy of either file, and the build script’s missing-profile branch printed a warning and kept going. Signing, notarization, stapling, and spctl all pass on a profile-less bundle, so the pipeline had no step that could catch it.

What changed

Install

Install the cooperative Sanctuary CLI:

npx @sanctuary-framework/mcp-server

or explicitly pinned:

npx -y -p @sanctuary-framework/mcp-server@1.7.2 sanctuary

Install the macOS Castle Wall enforcement app from the attached release asset:

Capability bounds

The smoke test proves the shipped bundle can be spawned and executes application code on a stock macOS CI runner, which is the exact check that killed the v1.7.0/v1.7.1 assets. It does not prove filter enforcement, system extension activation (which needs a one-time console consent), or a GUI launch from Finder; those remain hardware-verified separately. All other macOS Castle Wall bounds are unchanged from v1.7.1: per-uid allow/deny plus attended boot-survival are proven; there is no per-flow rule-attributed audit trail; the hardware re-drill of the combined same-boot plist self-heal is still pending.