[FEATURE] Suppress async hook completion message for Stop/SubagentStop events

Resolved 💬 3 comments Opened Mar 8, 2026 by jaceyang97 Closed May 24, 2026

Preflight Checklist

  • [x] I have searched existing requests and this feature hasn't been requested yet
  • [x] This is a single feature request (not multiple features)

Problem Statement

Async hooks for SessionStart, PreToolUse, and PostToolUse events suppress the "Async hook {event} completed" message by default. However, Stop and SubagentStop hooks do not have the same treatment. This causes a disruptive └ Async hook Stop completed message to appear during the user's next interaction turn, since Stop hooks fire at the end of a turn and complete asynchronously after the user has already moved on.

Proposed Solution

Add the same suppression condition for Stop and SubagentStop in the async_hook_response render logic:

// Current (cli.js)
case "async_hook_response": {
  if (A.hookEvent === "SessionStart" && !K) return null;
  if ((A.hookEvent === "PreToolUse" || A.hookEvent === "PostToolUse") && !Y) return null;
  return createElement(MD, null, "Async hook ", ...);
}

// Proposed
case "async_hook_response": {
  if (A.hookEvent === "SessionStart" && !K) return null;
  if ((A.hookEvent === "PreToolUse" || A.hookEvent === "PostToolUse") && !Y) return null;
  if (A.hookEvent === "Stop" || A.hookEvent === "SubagentStop") return null;
  return createElement(MD, null, "Async hook ", ...);
}

Alternative Solutions

_No response_

Priority

Medium - Would be very helpful

Feature Category

Interactive mode (TUI)

Use Case Example

An organization deploys a tracing hook as a managed Stop hook to collect observability data. The hook runs async and takes 2–3 seconds to POST traces. During that time the user starts their next prompt. When the POST completes, └ Async hook Stop completed appears mid-conversation, interrupting the user's reading flow. The user has no action to take on this information — Stop hooks are fire-and-forget by nature. The message is pure noise.

Additional Context

_No response_

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗