From 83eb00719d611907dac11f6e2e8d3d4daba9bb7f Mon Sep 17 00:00:00 2001 From: Spencer Date: Fri, 24 Apr 2026 18:49:25 +0000 Subject: [PATCH] fix(core): prevent MCP tool wiping on background discovery failures --- packages/core/src/tools/mcp-client.test.ts | 4 ++-- packages/core/src/tools/mcp-client.ts | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/core/src/tools/mcp-client.test.ts b/packages/core/src/tools/mcp-client.test.ts index 50b17aa735..956fe6ee3e 100644 --- a/packages/core/src/tools/mcp-client.test.ts +++ b/packages/core/src/tools/mcp-client.test.ts @@ -1461,8 +1461,8 @@ describe('mcp-client', () => { // Trigger notification - should fail internally but catch the error await notificationCallback(); - // Should try to remove tools - expect(mockedToolRegistry.removeMcpToolsByServer).toHaveBeenCalled(); + // Should NOT try to remove tools when discovery fails + expect(mockedToolRegistry.removeMcpToolsByServer).not.toHaveBeenCalled(); // Should NOT emit success feedback expect(coreEvents.emitFeedback).not.toHaveBeenCalledWith( diff --git a/packages/core/src/tools/mcp-client.ts b/packages/core/src/tools/mcp-client.ts index 0441063f81..b7bb588448 100644 --- a/packages/core/src/tools/mcp-client.ts +++ b/packages/core/src/tools/mcp-client.ts @@ -1344,6 +1344,7 @@ export async function discoverTools( error, mcpServerName, ); + throw error; } return []; }