5c8d694491
Previously, executeStopHooks returned immediately after the first hook that produced valid JSON stdout, even if it was non-blocking. This prevented subsequent hooks from executing. This was problematic when users had multiple Stop hooks (e.g., check-console-log.js + task-complete-notify.sh in settings.json), because the first hook's stdout (which echoed stdin data as JSON) caused an early return, silently skipping all remaining hooks. Now only explicitly blocking results (exit code 2 or decision=block) cause an early return, matching Claude Code's behavior of executing all Stop hooks sequentially. Closes #1707