Castle Wall macOS full-scope re-drill (signed v876) - 2026-06-20

Status: done. Erik-present, Mini1, coordinator-orchestrated with drill-acceptance applied (the coordinator ran the operator side directly and independently verified the captured evidence; Erik ran the agent side at the console, with raw curl connection failures shown).

This record exists to satisfy the thesis-gate rule: the macOS Castle Wall enforcement claim traces to drill evidence on a freshly signed binary, not to a release-tag git commit. It is the freshest evidence behind the “Egress enforcement: macOS (Castle Wall Phase 1)” row in ASSURANCE_MATRIX.md. It does not widen the proven claim; it re-grounds it on a binary built one commit behind main.

The result - thesis-gate enforcement re-proven on a freshly signed build

A fresh Dev-ID-signed + notarized build v876 (git 75a48c5794b5, which includes the #653 native posture-board embed and the #596 async-init crash fix) was deployed to Mini1 (system extension v858 -> v876, activated + enabled, notarized/stapled, spctl “Notarized Developer ID”). The wall was armed against a fresh default fortress (fortress-89f3be3fba10e102), enforced by the safe-mode boot daemon (agent-deny-by-default; request signing via the root helper / global pin c3f22755).

Clean per-uid allow/deny demonstration to the same destination (https://www.apple.com), deterministic across three trials each:

uid role result
501 (agentmac) operator 3/3 ALLOWED (HTTP 200)
502 (sanctuary-agent) agent 3/3 BLOCKED (curl (7) Couldn't connect to server, port 443)

This is the macOS enforcement re-prove: capability traced to drill evidence on a freshly signed binary. The drilled tree 75a48c5794b5 is the #658 merge commit - one commit behind main at the time of the drill (2c5e3e86, #659, which is a process-liveness/observability change per its commit message, not itself re-drilled). This materially tightens the earlier “the proof attaches to the drilled tree 053093963dbf, not current origin/main” bound from the 2026-06-16 re-drill.

Also confirmed

Honest bounds (must NOT be claimed beyond)

Finding carried forward - systemic fortress key-loss

The real Mini1 default fortress was found ORPHANED at the start of the window (neither the keychain/file passphrase nor the on-disk recovery-key.txt unlocked the master, which had been rotated after the recovery key was minted; encrypted state unrecoverable with the credentials on hand). It failed CLOSED correctly and was torn down (preserved aside), with a fresh fortress provisioned and its credentials preserved off-host. This is a recurring structural gap, not a one-off; the durable fix is tracked separately (recovery-key preservation: confirm-captured-off-host before a fortress is usable; refuse master-rotation unless the new credential is confirmed-captured first).