Fix streamable HTTP transport connection cleanup

Co-authored-by: pavelfeldman <883973+pavelfeldman@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot] 2025-07-18 20:43:59 +00:00
parent 046958e7d9
commit 13257ce625

View File

@ -88,7 +88,14 @@ async function handleStreamable(server: Server, req: http.IncomingMessage, res:
if (transport.sessionId)
sessions.delete(transport.sessionId);
};
await server.createConnection(transport);
const connection = await server.createConnection(transport);
// Ensure connection is closed when transport closes
transport.onclose = () => {
if (transport.sessionId)
sessions.delete(transport.sessionId);
// eslint-disable-next-line no-console
void connection.close().catch(e => console.error(e));
};
await transport.handleRequest(req, res);
return;
}