Skip to content

v0.7.3 — Trial fixes + send() decomposition

Choose a tag to compare

@hackspaces hackspaces released this 10 Jul 16:07

Fixes surfaced by a live end-to-end trial (a real 7B and 30B model fixing a buggy project through the CLI), plus a readability refactor of the core loop.

Trial-driven fixes

  • edit_file now hands back a ready-to-use line-anchored template when the old snippet doesn't match, so models don't have to reproduce it byte-exactly (they routinely can't).
  • detect_test_cmd recognizes a bare root-level test_*.py / *_test.py, so the synchronous done-gate auto-verifies for the common small-project layout.
  • Accurate stuck message on a single-model ladder ("no stronger local model to escalate to" instead of a false "even after escalating").
  • write_file ensures a single final newline (quieter diffs).

Refactor

  • The 500-line send() loop is decomposed into named single-responsibility methods (_begin_turn, _prepare_and_generate, _handle_malformed, _execute_and_record, _handle_failure, _escalate, _do_fleet_send, _log_step). Control-altering phases use explicit signals so the loop's early-exit semantics are preserved exactly — verified by the full test suite AND real 7B/30B inference.

Stdlib-only, zero runtime deps. 419 tests green.