v0.7.5 — Phase 6 tools + environment fluency
The harness grows better limbs, and learns the machine it's running on.
New actions & mechanisms
- run_tests — one action runs the project's REAL test suite (auto-detected — no guessing pytest vs npm) and returns a COMPACT digest: the counts line, which tests failed, the assertion, and your files in the traceback. It parses pytest/unittest/go/cargo/jest and filters site-packages noise out of the frames — surfacing exactly the short summary that a raw-output cut buries. A known runner you invoke by hand via bash is digested too.
- Atomic multi-edit —
edit_filelearns anedits:[{old,new},…]array applied validate-first, all-or-nothing: a rename + its call sites in one turn instead of one edit per turn. Also fixes a loop-detector false-positive on consecutive distinct edits to one file. - Background-process supervisor — a crashed background server is now visible the instant it dies (pushed into context unprompted), and a live roster of pids/logs rides bash observations so they survive compaction.
Environment fluency
The harness knows the OS but now also its behavioral differences: on macOS it surfaces the BSD-vs-GNU userland quirks (timeout→gtimeout, sed -i needs a suffix arg, no readlink -f/date -d), naming the GNU tools actually installed, and error hints gain OS-gated recovery lines. It also detects the project's real interpreter (.venv/uv/poetry) so "use python3" becomes "use .venv/bin/python".
Stdlib-only, zero runtime deps. 450 tests green.