diff --git a/src/cursor-sdk-process-error-guard.ts b/src/cursor-sdk-process-error-guard.ts index 52b3f34..bd15b1d 100644 --- a/src/cursor-sdk-process-error-guard.ts +++ b/src/cursor-sdk-process-error-guard.ts @@ -35,7 +35,7 @@ function shouldSuppressProcessError(event: string | symbol, args: readonly unkno const classification = classifyCursorConnectError(error); if (!classification) return false; if (classification.kind === "abort") return hasActiveAbortSuppression(); - return activeProviderTurns.size > 0 && isCursorProvenance(classification.source); + return activeProviderTurns.size > 0 && (classification.kind === "network" || isCursorProvenance(classification.source)); } function installProcessEmitPatch(): void { diff --git a/test/cursor-sdk-process-error-guard.test.ts b/test/cursor-sdk-process-error-guard.test.ts index 434fdbd..d871fa4 100644 --- a/test/cursor-sdk-process-error-guard.test.ts +++ b/test/cursor-sdk-process-error-guard.test.ts @@ -225,7 +225,7 @@ describe("Cursor SDK process error guard", () => { } }); - it("does not suppress non-Cursor network ConnectErrors", () => { + it("suppresses generic connect-node network ConnectErrors while a provider turn is active", () => { const suppression = installCursorSdkProcessErrorGuard(); let listenerCalled = false; const listener = () => { @@ -235,7 +235,7 @@ describe("Cursor SDK process error guard", () => { try { const emitted = process.emit("uncaughtException", makeNonCursorNetworkConnectError(), "uncaughtException"); expect(emitted).toBe(true); - expect(listenerCalled).toBe(true); + expect(listenerCalled).toBe(false); } finally { process.removeListener("uncaughtException", listener); suppression.dispose();