All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.4.0 (2026-05-27)
Features
- doctor: flag managed shims missing the executable bit (958d800)
Bug Fixes
- cmd: return {msg, 127} for missing executables (61a6690)
- hooks/test: scope :related with no matches no longer runs full suite (091b4b7)
- mix/run: validate stage against Schema before atom conversion (8e4e7d0)
- runner: honor fail_fast on parallel stage runs (831c6a2)
Performance
- runner: precompile glob patterns once per hook (0fba30c)
Refactor
- cmd: monitor the port to avoid wedging on detached stdio (5cd5f0c)
- git: handle pre-push delete refs explicitly (f8b4b54)
- hook: centralize merge_defaults helper (7b07fd8)
- hooks/test: hoist map_to_test regexes to module attrs (5aeed59)
- hooks: extract Helpers.to_result/1 for Cmd.run results (cebef86)
- installer: truncate backup timestamp via DateTime.truncate (fd4c2ab)
- runner: collapse serial result-ordering to single reverse (172530a)
- runner: move config-error rendering to the mix task (ff40ace)
0.3.0 (2026-05-26)
Features
- add mix git_hoox.bench for per-hook timing percentiles (3b4e7db)
- emit telemetry around stages and hooks (578d69d)
- shell: support {push_files} template token (1bc2add)
- stream hook stdout live via GitHoox.Cmd (1438fcb)
- telemetry: fire :hook :exception on timeout and crash (e51f2e2)
Bug Fixes
- stop parallel hooks interleaving each other's stdout (8613f5c)
- stop Shell hook running with empty token substitution (b82328f)
Refactor
- drop unreachable error clauses in install + run tasks (c222e4f)
Documentation
- shell: drop ex_doc reference to private invoke fn (f17f03c)
0.2.0 (2026-05-26)
Features
- add mix git_hoox.doctor for setup diagnostics (5969d70)
- add mix git_hoox.list to print resolved hook config (20ecd8a)
- add workflow_dispatch pre-release workflow (fed34f8)
- ci: support next-version prerelease channel (edd0ce1)
- extract Glob module with StreamData property tests (c901d82)
- validate hook-specific opts via opts_schema/0 callback (e33aa39)
Bug Fixes
- ci: make prerelease atomic and trigger publish workflow (23bb0c9)
- default Format glob to match nested files (d7334c3)
Documentation
- add examples/ directory with sample custom hooks (e85b662)
- link examples/ to GitHub to fix mix docs warning (8ccb436)
0.1.0 (2026-05-21)
Features
- dispatch files per stage and enforce hook timeouts (d646a03)
- forward :env opt to hook subprocesses (3c5b442)
- initial version with hooks, runner, installer, and CI (22c259b)
- scaffold a starter .git_hoox.exs via install --scaffold (d64f8b7)
Bug Fixes
- ci: read version from mix.exs without booting mix (02428fb)
- clear dialyzer warnings on uninstall path (30ee293)
Refactor
- address credo --strict findings (b0e381e)