diff --git a/src/plugins/contracts/run-context-lifecycle.contract.test.ts b/src/plugins/contracts/run-context-lifecycle.contract.test.ts index 56935b80696..9ce098550cc 100644 --- a/src/plugins/contracts/run-context-lifecycle.contract.test.ts +++ b/src/plugins/contracts/run-context-lifecycle.contract.test.ts @@ -489,7 +489,7 @@ describe("plugin run context lifecycle", () => { }); await vi.advanceTimersByTimeAsync(0); expect(cleanup).toHaveBeenCalledTimes(1); - await vi.advanceTimersByTimeAsync(5_000); + await vi.advanceTimersByTimeAsync(PLUGIN_HOST_CLEANUP_TIMEOUT_MS); await expect(resultPromise).resolves.toMatchObject({ failures: [ { diff --git a/src/plugins/host-hook-runtime.ts b/src/plugins/host-hook-runtime.ts index 2bde1dba413..77018544e74 100644 --- a/src/plugins/host-hook-runtime.ts +++ b/src/plugins/host-hook-runtime.ts @@ -98,7 +98,10 @@ function trackAgentEventHandler(runId: string, pending: Promise): void { state.pendingAgentEventHandlersByRunId.set(runId, handlers); void pending.finally(() => { handlers.delete(pending); - if (handlers.size === 0) { + if ( + handlers.size === 0 && + getPluginHostRuntimeState().pendingAgentEventHandlersByRunId.get(runId) === handlers + ) { state.pendingAgentEventHandlersByRunId.delete(runId); } });