Skip to content

Expose an allowAllUnixSockets input: SRT's AF_UNIX block cuts the agent off from system daemons (nix) #1197

Description

@worktrunk-bot

shared/steps/sandbox_runtime.mjs passes SRT a filesystem/network config but sets neither allowUnixSockets nor allowAllUnixSockets, so SRT's Linux default applies: the vendored seccomp filter blocks socket(AF_UNIX, …) with EPERM for the whole lifecycle (@anthropic-ai/sandbox-runtime@0.0.75 README, "Unix Socket Restrictions (Linux)"). That is correct as a default, but it silently removes an adopter's ability to talk to a system daemon from sandbox_setup: or from the agent — and there is no lever to grant it back.

Concrete case, on a repo pinning 0.2.5: max-sixty/worktrunk's tend-weekly bumps the Rust toolchain and refreshes flake.lock with nix flake update rust-overlay. Its setup: action installs Nix multi-user precisely so the tool crosses the boundary — root owns /nix, and /nix/var/nix/profiles/default/bin is a system path that survives tend's PATH derivation. But the client reaches the store by connecting to /nix/var/nix/daemon-socket/socket, which needs a fresh AF_UNIX socket. Under the filter that call returns EPERM.

The failure mode is quiet rather than loud. command -v nix still resolves, so the adopter's sandbox_setup: probe passes and the lifecycle starts normally; the breakage surfaces only in the one weekly job that actually runs nix, as an errno the session has to work backwards from.

Ask: expose the SRT lever as an action input. On Linux only allowAllUnixSockets: true has an effect — the README notes allowUnixSockets path allowlisting is ignored there, since seccomp can't filter by path — so the honest shape is a single blunt opt-in (allow_unix_sockets: false by default), not a path list that would work on macOS and no-op on the runners tend targets. An adopter enabling it is knowingly trading the IPC restriction for daemon access; documenting it that way seems better than the current position, where the only way to find out is a red weekly job.

Happy to send a PR if the input shape sounds right.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions