tabby-mcp-server 1.1.0 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -354,6 +354,20 @@ This project builds upon the work of [tabby-mcp-server](https://github.com/thuan
354
354
 
355
355
  ## 📝 Changelog
356
356
 
357
+ ### v1.1.2 (2026-01-22)
358
+
359
+ **Optimization:**
360
+ - 📦 Reduced npm package size by moving bundled dependencies to devDependencies
361
+ - All dependencies (express, zod, @modelcontextprotocol/sdk) are now bundled into dist/index.js
362
+ - Installing from npm/Tabby store no longer downloads unnecessary packages
363
+
364
+ ### v1.1.1 (2026-01-21)
365
+
366
+ **Bug Fixes:**
367
+ - 🔧 Fixed Streamable HTTP connection leak - connections were not being cleaned up when clients disconnected
368
+ - Added `transport.onclose` handler to properly remove closed sessions from tracking
369
+ - Enhanced SSE stream close logging for better debugging
370
+
357
371
  ### v1.1.0 (2026-01-20)
358
372
 
359
373
  **Major Fixes:**
package/dist/index.js CHANGED
@@ -17454,7 +17454,7 @@ const tabby_core_1 = __webpack_require__(1368);
17454
17454
  const mcpService_1 = __webpack_require__(7554);
17455
17455
  const mcpLogger_service_1 = __webpack_require__(9924);
17456
17456
  // Version from package.json - update on each release
17457
- const PLUGIN_VERSION = '1.1.1';
17457
+ const PLUGIN_VERSION = '1.1.2';
17458
17458
  /**
17459
17459
  * MCP Settings Tab Component
17460
17460
  */
@@ -52531,7 +52531,7 @@ let McpService = class McpService {
52531
52531
  // Initialize MCP Server
52532
52532
  this.server = new mcp_js_1.McpServer({
52533
52533
  name: 'Tabby MCP',
52534
- version: '1.1.0'
52534
+ version: '1.1.2'
52535
52535
  });
52536
52536
  // Configure Express
52537
52537
  this.configureExpress();
@@ -52576,7 +52576,7 @@ let McpService = class McpService {
52576
52576
  res.status(200).json({
52577
52577
  status: 'ok',
52578
52578
  server: 'Tabby MCP',
52579
- version: '1.1.0',
52579
+ version: '1.1.2',
52580
52580
  transport: 'StreamableHTTP + SSE',
52581
52581
  uptime: process.uptime()
52582
52582
  });
@@ -52585,7 +52585,7 @@ let McpService = class McpService {
52585
52585
  this.app.get('/info', (_, res) => {
52586
52586
  res.status(200).json({
52587
52587
  name: 'Tabby MCP',
52588
- version: '1.1.0',
52588
+ version: '1.1.2',
52589
52589
  protocolVersion: '2025-03-26',
52590
52590
  transports: ['streamable-http', 'sse'],
52591
52591
  endpoints: {
@@ -52640,7 +52640,12 @@ let McpService = class McpService {
52640
52640
  res.write(': heartbeat\n\n');
52641
52641
  }
52642
52642
  }, 15000);
52643
- res.on('close', () => clearInterval(heartbeat));
52643
+ res.on('close', () => {
52644
+ clearInterval(heartbeat);
52645
+ this.logger.info(`Streamable HTTP: SSE stream closed for session: ${sessionId}`);
52646
+ // Note: Don't delete transport here - it may still be used for POST requests
52647
+ // The transport.onclose handler will clean up when fully disconnected
52648
+ });
52644
52649
  return;
52645
52650
  }
52646
52651
  // No session - return info about how to connect
@@ -52684,6 +52689,11 @@ let McpService = class McpService {
52684
52689
  this.logger.info(`Streamable HTTP: Session initialized: ${sid}`);
52685
52690
  }
52686
52691
  });
52692
+ // Register close handler to clean up when connection is closed
52693
+ transport.onclose = () => {
52694
+ this.logger.info(`Streamable HTTP: Transport closed (onclose): ${sessionId}`);
52695
+ delete this.streamableTransports[sessionId];
52696
+ };
52687
52697
  this.streamableTransports[sessionId] = transport;
52688
52698
  // Connect to MCP server
52689
52699
  await this.server.connect(transport);