v2.12.0
A feature release for macOS: headless Chromium — and with it Playwright — can
run inside the jail.
Backward compatible: every pre-2.12.0 .ai-jail keeps working.
Added
--macos-chromiumlets headless Chromium start on macOS (#194, closes
#193). Chromium's browser process registers a bootstrap service named
<bundle id>.MachPortRendezvousServer.<pid>and its child processes look
it up to receive their ports; the default profile denies the registration,
so the browser died with SIGTRAP right at startup, and Playwright with it.
--macos-host-ipccould not help: it grants every lookup but no
mach-register. The new opt-in adds exactly two rules —mach-register
andmach-lookup, both scoped to the*.MachPortRendezvousServer.<pid>
name pattern — and nothing else. Every other host service stays denied:
the reporter verified rule by rule that launchservicesd, pasteboard,
windowserver, dock, tccd and the rest are not needed. Off by default,
trusted-only (an untrusted project.ai-jailcannot enable it), dropped
under--lockdown, and covered by asandbox-execprofile-compilation
test so a malformed regex can never take every launch down. Thanks
@zanlucathiago, who traced the denial throughlog showand landed the
minimal fix.
Notes
--publish-port(#195) — the mirror of--forward-port, exposing a
jailed web UI on the host's loopback without--network— has been
design-endorsed with the full invariant list; a contributor PR is the
agreed path, like--forward-portbefore it.
Checksums (SHA256)
6448139214f75dc43584ba439a887f7fd0e53ddab31b0bb475a1d84e079aa754 ai-jail-linux-x86_64.tar.gz
45d94f6a768d9b60484e24771cc76f07a22b9f0ac655bb4f79b9e4b789b18c59 ai-jail-macos-aarch64.tar.gz
Install
brew tap akitaonrails/tap && brew install ai-jail
yay -S ai-jail-bin
cargo install --locked ai-jail