Repository navigation
v0.1.7
v0.1.7 — Worktree isolation hardening
Concurrency audit of specialist sub-agents running in isolated git worktrees — three real bugs found and fixed:
Fixes
- Merge race: a conflicting merge is now aborted inside the same serialized merge slot. Previously the abort ran outside the chain, so the next specialist's merge could start while conflict markers were still in the index (
Merging is not possible because you have unmerged files). - Conflict detection: conflict paths are read from the index before the abort wipes them — real conflicts are now reported as
Merge conflict ... Conflicting paths: ...instead of a vague refusal. - Poisoned merge chain: one failed merge can no longer silently skip every later specialist's merge.
- Fresh-machine identity: when no
user.name/user.emailis configured anywhere, both the worktree commit and the main-tree merge commit now fall back to a neutral author (Agent Gitu <agent@agentgitu.dev>). Previously only the worktree commit had a fallback — the merge still died withCommitter identity unknown. Validated end-to-end with git identity fully unset.
Validation
- 156 tests pass (3 new: same-file collision, merge-after-failure, no-identity machine), typecheck clean.
- E2E on release build: two specialists colliding on one file → exactly one clean merge + one detected conflict; a disjoint-file specialist finishing after the failure merges cleanly; no leftover worktrees or
hermes-sub-*branches;.hermesstate never merged back.
Installers
- Windows x64 NSIS installer + portable build.