v1.69.6

EvoMap/evolverv1.69.6Apr 21, 2026by autogame-17

AI Summary

Resolves `hollow_commit` failures by automatically detecting the host workspace's `.git` directory instead of falling back to the package directory.

Key Highlights

  • Auto-detects host `.git` for `repoRoot` to fix Hand Agent execution
  • Fixes `hollow_commit` errors and recurring `exec` errors
  • Added `EVOLVER_NO_PARENT_GIT` opt-out for legacy behavior
  • Fixed Windows path termination in loop

Full Release Notes

## v1.69.6 — Auto-detect host git repository

### Fix
When evolver is installed as an npm dependency or as a skill under another repository, it now auto-detects the host workspace's `.git` and uses it as `repoRoot`. Before 1.69.6, evolver would walk up to the host `.git`, warn, and then deliberately fall back to its own package directory, which caused `git diff` to see no Hand Agent edits and every evolution cycle to stall with:

```
hollow_commit: N file(s) changed but 0 are constraint-counted code.
Only GEP metadata was modified.
```

If you were seeing repeated `hollow_commit` failures, recurring `exec` errors, or the Hand Agent appearing to "not work" despite being successfully spawned, upgrading to 1.69.6 resolves the root cause with no env changes required.

### Behavior summary

| `EVOLVER_REPO_ROOT` | Own dir has `.git` | Parent has `.git` | `repoRoot` |
|---|---|---|---|
| set | any | any | explicit value |
| unset | yes | any | own dir |
| unset | no | yes | host workspace (new default) |
| unset | no | no | own dir (fallback) |

### Opt-out
If you deliberately want the old isolated behavior (evolver only sees its own package dir), set:

```
EVOLVER_NO_PARENT_GIT=true
```

The legacy `EVOLVER_USE_PARENT_GIT=false` flag still works as an opt-out for forward compatibility.

### Also
- Loop terminator in repo walk now uses `dir !== path.dirname(dir)` so it terminates correctly on Windows (where `path.dirname('C:\\')` never equals `/` or `.`).
- Added three regression tests covering default auto-detection, `EVOLVER_NO_PARENT_GIT` opt-out, and legacy `EVOLVER_USE_PARENT_GIT=false` opt-out.
- Full test suite: 912/912 pass.