stop-hook-fires-on-idle-agent-not-just-stop-calls

The Stop hook fires repeatedly when the agent sends minimal responses while waiting for user input (e.g., single ’.’, ‘Paused.’, ‘Holding.’), not only on actual stop() calls. This creates an infinite feedback loop where every agent pause triggers the hook, flooding the conversation with repeated hook feedback messages. The hook condition ‘Before allowing the agent to stop’ is being evaluated against non-stop events — the hook needs a guard that confirms an actual stop() invocation before running evaluation logic.