d4dab061a8
The server-side .git/config sets receive.denyCurrentBranch=updateInstead, which auto-updates the worktree but bypasses the post-receive hook entirely. Changing it to false restores hook execution; adding git reset --hard HEAD inside the hook compensates for the lost auto-update so the build uses the just-pushed source code.