hooks: keep Husky v9 hooks running when Entire chains them
Commit

Husky v9 sets core.hooksPath=.husky/_ and its per-hook wrapper sources
h, which finds the user's hook from the wrapper's own file name. Entire
renamed each wrapper to <hook>.pre-entire and executed it, so h looked
for .husky/<hook>.pre-entire, found nothing and exited 0: every Husky
hook silently stopped running.
When the backup is exactly a Husky v9 wrapper, Entire now sources it in a
subshell, keeping $0 so Husky finds .husky/<hook>; other backups are
executed as before. ENTIRE_CHAINED_HOOK makes entire hooks git <hook>
skip when the user's Husky hook also calls Entire, and the Husky-form hook
unsets it before its own Entire call so nested git operations are not
suppressed. Hooks in the previous exec form over a Husky wrapper read
Outdated so agent turns and doctor repair them; hand-edited hooks never
match. The Husky warning uses v9 wording only when core.hooksPath is
.husky/_.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com Entire-Checkpoint: 01M3ZWXD6SR9WY0TQA94NWSFK0