jq merge overwrites existing SessionEnd hooks instead of merging arrays
The install script uses jq -s '.[0] * .[1]' to merge the new SessionEnd hook into an existing hooks.v1.json. The * operator recursively merges objects, but SessionEnd is an array. When the existing config already contains a SessionEnd key (populated by another plugin), the merge will silently replace its array with the new one, discarding existing hooks. This contradicts the stated goal of preserving "other project hooks" and can lead to lost functionality. A safe merge should concatenate the SessionEnd arrays while still deep-merging other keys.