Skip to content

Commit edb0289

Browse files
sauerdanieltriklozoid
authored andcommitted
fix(mcp): close existing client before reassignment to prevent leaks (anomalyco#8253)
1 parent df9dda9 commit edb0289

1 file changed

Lines changed: 14 additions & 0 deletions

File tree

packages/opencode/src/mcp/index.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,13 @@ export namespace MCP {
266266
status: s.status,
267267
}
268268
}
269+
// Close existing client if present to prevent memory leaks
270+
const existingClient = s.clients[name]
271+
if (existingClient) {
272+
await existingClient.close().catch((error) => {
273+
log.error("Failed to close existing MCP client", { name, error })
274+
})
275+
}
269276
s.clients[name] = result.mcpClient
270277
s.status[name] = result.status
271278

@@ -523,6 +530,13 @@ export namespace MCP {
523530
const s = await state()
524531
s.status[name] = result.status
525532
if (result.mcpClient) {
533+
// Close existing client if present to prevent memory leaks
534+
const existingClient = s.clients[name]
535+
if (existingClient) {
536+
await existingClient.close().catch((error) => {
537+
log.error("Failed to close existing MCP client", { name, error })
538+
})
539+
}
526540
s.clients[name] = result.mcpClient
527541
}
528542
}

0 commit comments

Comments
 (0)