pxx 2.3.6
The "init-watchdog" follow-up, re-scoped by the evidence: the pre-loop network
ops (memory-embed 30s, MCP-handshake 30s, model-fingerprint 2s) are already
individually bounded — but pxx's git subprocess helpers were not, so a
wedged git or a blocking git hook (a pre-commit prompt, a credential helper)
could hang a run, most dangerously at the safety-net tie which runs at startup,
before the run's own wall-clock budget exists.
Fixed
- Every git subprocess in the run path is now time-bounded and killed +
reaped on timeout (gitenv.communicate_bounded), matching what the test-runner
and worktree helpers already did. The three previously-unbounded helpers —
safety_net._git(startup safety net, pre-budget),loop._git(per-round
changed-paths/diff), andgoal._git(task-DAG git) — degrade on timeout
(git-unavailable / non-zero) instead of hanging. Bound isPXX_GIT_TIMEOUT
seconds (default 60; positive-finite, else the default).