What changed
Candidate compilation, tests, runtime checks, differential comparisons and semantic parity rules now run inside the repair loop. Failures and counterexamples feed the next attempt instead of rejecting an otherwise repairable candidate after the last model review.
- Evidence: direct
ghidra-jsonexport reader, repaired legacy struct/xref/symbol parsing, shared checker evidence and bounded valid JSON. - Source identity: optional Clang compilation-database indexing, overload refusal and safer function-body replacement.
- Project reconstruction: dependency-edge ordering and cumulative class validation in a disposable project copy.
- Recovery and cost: round checkpoints, prior-attempt feedback, input fingerprints, unique per-call logs and shared call budgets.
- Isolation: remapped internal symlinks, rejected outgoing links, quoted shell placeholders, bounded output and process-group timeout cleanup.
- CLI:
doctor, differentialbenchmarkmanifests, corrected estimates and JSON/Markdown reversal output.
Validation
- 131 tests, including 40 new regression/integration cases; Ruff and strict mypy.
- Wheel/sdist builds and installation smoke test in a fresh environment.
- Three GTA SA timer functions generated and compiled, then compared with original x86 machine code under Unicorn: 21/21 observations matched.
- All three deliberately incorrect benchmark controls were detected.
The GTA experiment uses explicit adapters for three leaf functions. It is not a full game build or proof of equivalence for arbitrary code. No game binary or export is distributed.
Upgrade
python -m pip install --upgrade 'auto-re-agent[ghidra-bridge]>=0.3.0'Clang indexing is optional. Differential adapters are project-owned. Shell validation requires POSIX and remains trusted project code; an overlay is not an OS sandbox. Ambiguous definitions, outgoing symlinks and invalid acceptance configurations now fail explicitly.
Full changelog · Validation report · Configuration and migration