What changed
- resolve
.git/*commit-message paths throughgit rev-parse --git-path - resolve the effective hooks directory for main checkouts and linked worktrees
- install and remove hooks through that resolved directory
- make this repository's own commit-msg hook worktree-safe
- add real linked-worktree integration tests
Why
Git worktrees use a .git pointer file. Treating it as a directory caused gitlint --edit .git/COMMIT_EDITMSG to fail with ENOTDIR, blocking valid commits in downstream Stacks worktrees.
Closes #550.
Validation
bun run buildbun test: 47 passedbun run typecheckbun run lint: 0 errors, 7 existing documentation warnings- this commit itself passed the regenerated worktree-safe commit-msg hook