v1.85.3
EvoMap/evolverv1.85.3May 23, 2026by autogame-17
AI Summary
A hotfix release addressing install-path regressions. It fixes a syntax error in the Codex session-end hook and corrects the `getRepoRoot()` function to prevent it from finding an unrelated outer `.git` directory.
Key Highlights
- Fixes Codex `session-end` hook crash caused by duplicate `path` declaration.
- `getRepoRoot()` now stops walking at the parent of `node_modules` to avoid picking up outer git repos.
- New `node --check` regression suite prevents parse-time failures from shipping.
Full Release Notes
## v1.85.3 — Hotfix release
This release fixes two install-path regressions reported in [#540](https://github.com/EvoMap/evolver/issues/540) and [#541](https://github.com/EvoMap/evolver/issues/541) / [#542](https://github.com/EvoMap/evolver/issues/542). Both were silent breakages that landed in the v1.85.1 / v1.85.2 line and only surfaced under specific install layouts.
### Fixed
- **Codex `session-end` hook no longer crashes with `SyntaxError: Identifier 'path' has already been declared` on fresh install ([#542](https://github.com/EvoMap/evolver/issues/542)).** Previous releases ran `evolver setup-hooks --platform=codex` and produced a parse-broken hook — Codex `session-end` was entirely blocked with no user-side workaround. The duplicate `const path = require('path')` is removed, and a new `node --check` regression suite now guards every file in `src/adapters/scripts/` plus the CLI entry, so a parse-time failure in entry-point scripts (which the existing vitest suite never loads) cannot reach npm again.
- **`getRepoRoot()` no longer escapes `node_modules` to pick up an unrelated outer `.git` ([#541](https://github.com/EvoMap/evolver/issues/541)).** A global install (e.g. macOS Homebrew at `/opt/homebrew/lib/node_modules/@evomap/evolver`) used to walk past its own `node_modules` and resolve `repoRoot` to `/opt/homebrew/.git`, silently sending `workspaceRoot` / `memoryDir` / `evolutionDir` to a directory that doesn't belong to the user. The walk now stops at the parent of the nearest `node_modules` ancestor: local installs still find the user project's `.git`, global installs fall back to the install dir, dev clones keep the original unbounded walk. `EVOLVER_REPO_ROOT` remains the explicit override.
### Upgrade path
```bash
npm install -g @evomap/evolver@latest
```
After upgrade, re-run `evolver setup-hooks --platform=codex` if you previously hit the SyntaxError to regenerate a clean hook script.