v1.67.4

EvoMap/evolverv1.67.4Apr 18, 2026by autogame-17

AI Summary

Fixes a schema incompatibility in the Claude Code adapter where the generated settings file was rejected due to incorrect hook structure.

Key Highlights

  • Fixed `.claude/settings.json` schema incompatibility for Claude Code 2.1.87
  • Updated `buildClaudeHooks` to wrap commands in `HookMatcher` structure
  • Added regression test to prevent future schema mismatches

Full Release Notes

## Bug Fixes

- **setup-hooks / Claude Code adapter**: Fix `.claude/settings.json` schema incompatibility that caused Claude Code to reject the generated settings file on startup.

  Claude Code expects `hooks[event]` to be an array of `HookMatcher`
  (`{ matcher?, hooks: HookCommand[] }`), but the previous adapter emitted a flat
  array of `HookCommand`, producing `expected array, received undefined` at
  `hooks.SessionStart[0].hooks` during Zod validation.

  `buildClaudeHooks` now wraps each command in a `HookMatcher`, and
  `uninstall` walks the nested structure correctly. Verified against the
  real Zod `HooksSchema` from Claude Code 2.1.87 (`src/schemas/hooks.ts`).

  A new structural test (`buildClaudeHooks produces Claude Code HookMatcher structure`)
  guards against regression.

No API changes for users. After upgrading, re-run `evolver setup-hooks` (or delete
the old `.claude/settings.json` block tagged `_evolver_managed` and re-install).