pxx 2.3.5
Security: close the run_shell auto-mode gap surfaced while documenting the hook
contract in 2.3.4 (see R-029). The README claimed "shell commands are gated";
auto mode didn't honor it.
Security
run_shellis now fail-closed inautomode, matchingedit.scope
confines only the file tools (a shell command has no path target), so an
unattendedpxx runcould execute arbitrary model-authored shell with no
PreToolUse hook and no sandbox —auto's profile allows the shell class and
onlyeditenforced the hook requirement. Nowrun_shellin either write-
capable mode requires one explicit safeguard — arun_shellPreToolUse hook,
sandbox_shell, or the new opt-inallow_ungated_shell(PXX_ALLOW_UNGATED_SHELL)
— else it is deniedHOOKS_MISSING.ask/planstill never permit shell.
This also relaxeseditslightly:sandbox_shell(containment) now satisfies
the gate there too, not only a hook.
Added
allow_ungated_shellconfig key /PXX_ALLOW_UNGATED_SHELL(default
false) — explicit, named risk-acceptance for an unhooked, unsandboxed shell,
so the fail-closed default has a deliberate escape hatch rather than a silent one.
Changed
README.mdtruthed up: "shell commands are gated in every write-capable
mode" — the claim now holds for unattendedrun.