agent-shell-py 0.3.2
Adds three experimental ways to watch agent runs and an explicit PID isolation option for
restricted Linux containers.
New features
HerdrExecutionHost: run each command in an owned Herdr pane.TmuxExecutionHost: run in a new session or a new window in an existing session, with
explicit placement throughTmuxPlacement.TerminalWindowExecutionHost: mirror a headless run into a graphical terminal window.LinuxPidNamespaceIsolation(mount_proc=False): retain the PID signal boundary, PID 1
reaper, and descendant cleanup when a private/procmount is unavailable. The selected
mode is probed explicitly and never silently falls back.
Compatibility and limitations
- Native execution and existing isolation defaults remain unchanged. The existing
AGENTSHELL_ISOLATION_POLICY=linux-pid-namespacevalue still mounts a private/proc. - The three visible execution hosts are experimental, opt-in, and currently support
NoIsolationonly. Their APIs may change in a later minor release. mount_proc=Falseinherits outer/procvisibility and does not create a private mount
namespace. Process tools may report PIDs that differ from the child's namespace PIDs.
This policy is not a filesystem, network, or credential sandbox.- No new Python runtime dependencies. Visible hosts require their external executables.
- Added lifecycle, compatibility, public-export, and E2E tests, plus updated API documentation.
- Stabilized the Herdr cleanup test by allowing subprocess startup time on shared CI runners;
the simulated hung command remains bounded.
Validation
- 979 unit and integration tests passed locally. CI and the tag build passed; the tag build
ran 961 tests and skipped 18 namespace tests unavailable on the hosted runner. - Both live Codex PID isolation E2E cases passed: private and inherited
/proc. - Downstream checks passed: 44 Pi extension tests and 128 relevant eval-harness tests.
Full changelog: v0.3.1...v0.3.2