When bd hooks install --chain renamed an existing bd shim to .old, subsequent bd hooks run would execute the .old shim, which would call bd hooks run again, creating infinite recursion. Two fixes: 1. installHooks(): Skip renaming to .old if existing hook is a bd shim 2. runChainedHook(): Skip executing .old if it is a bd shim 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>