Sanctuary v1.3.3 release notes

Released: 2026-05-26

Castle Wall macOS Phase 2.5 retail UX + Track 4A IPC integration + Track 4A.2 sysext socket-path discovery. Five of six Phase 2.5 tracks landed plus the full IPC integration stack: daemon wired into sanctuary wrap startup AND a shared discovery file so daemon and sysext find each other.

What’s in this release

Phase 2.5 retail UX (#361)

Track 4A IPC integration (#362)

Track 4A.2 – sysext socket-path discovery (#364)

Closes the path-agreement gap the 2026-05-25 Track 4A drill identified (Wiki/sessions/sanctuary-castle-wall-mac-phase-2-5-track-4a-ipc-drill-mini1-2026-05-25.md). The daemon binds at {fortressPath}/castle.sock; the sysext (separate process, doesn’t inherit env from sanctuary wrap) previously fell through to a sysext-context home that the user couldn’t reach. Track 4A.2 introduces a shared discovery file at /tmp/sanctuary-castle-active.json:

End-to-end IPC validation requires a new sysext bundle build + deploy to operator machines so the sysext-side Swift code becomes active. The npm package ships the daemon-side discovery code immediately.

What’s NOT yet in this release (deferral list)

Sysext bundle redeploy

Track 4A.2 added Swift code to the sysext. Operationalizing end-to-end requires a fresh sysext build + sign + notarize + install on operator machines (user clicks “Allow” in System Settings during activation). Until that deploys, the path-agreement code is live on the daemon side but dormant on the sysext side.

Track 4A drill re-firing

The 2026-05-25 drill halted twice at Step 0 (once on missing integration code, once on missing path-agreement). Both root causes are closed by PR #362 + PR #364. The drill spawn prompt (Review/Coordinator/Castle_Wall_Mac_Phase_2_5_Track_4A_IPC_Drill_Spawn_Prompt_2026-05-25.md) re-fires unmodified once the new sysext bundle deploys; the 7-rung ladder is still sound.

Drill subject definition

A small spawn-prompt clarification still pending: how to express the drill subject (a curl loop that exercises NEFilterDataProvider scope). Minor scope item; does not block the integration claim. To be addressed before re-firing.

Dashboard republish

Phase 2.5 deployed dashboard changes to Mini1 via in-place dist/ swap. This release includes those changes via npm publish so downstream npm install -g consumers receive the protected vocabulary and the new CLI verbs.

Test posture

Substrate verification

Upgrade path

npm install -g @sanctuary-framework/mcp-server@1.3.3

Existing fortresses continue to work. New sanctuary init runs bootstrap the pinned-key state automatically; existing fortresses can call sanctuary castle-wall provision-pin manually. Track 4A.2’s daemon-side discovery activates immediately on the npm install; the sysext side activates after a fresh sysext bundle deploys.

Known gaps acknowledged in release

  1. Sysext bundle redeploy required to operationalize Track 4A.2 on operator machines.
  2. Drill subject definition for Rungs 3-7 of the IPC integration drill needs clarification (curl loop semantics under NEFilterDataProvider scope).
  3. Dashboard republish closes the in-place-swap drift on Mini1.

These do not block the release; they shape the next iteration. After the sysext redeploy, re-firing Review/Coordinator/Castle_Wall_Mac_Phase_2_5_Track_4A_IPC_Drill_Spawn_Prompt_2026-05-25.md provides the end-to-end thesis-gate proof.