diff --git a/src/plugins/hooks.ts b/src/plugins/hooks.ts index fb4faa0986d..b80365951ef 100644 --- a/src/plugins/hooks.ts +++ b/src/plugins/hooks.ts @@ -175,6 +175,12 @@ export function createHookRunner(registry: PluginRegistry, options: HookRunnerOp /** * Execute a single async handler with the configured timeout. * Throws on timeout; callers catch via handleHookError. + * + * NOTE: On timeout, the underlying handler promise is NOT cancelled — it + * continues running in the background until it settles. The current plugin + * hook contract (`() => Promise`) does not accept an `AbortSignal`, so + * cooperative cancellation is not yet possible. If the plugin API evolves + * to accept a signal, wire it through here for proper cleanup. */ async function callHandlerWithTimeout( fn: () => Promise,