From 22e5611c94e340e07d3dac174990be5a7ac89ef6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8D=A1=E8=8B=A5AI?= Date: Fri, 26 Jun 2026 20:51:03 +0800 Subject: [PATCH] fix: keep MCP transport alive when stdin closes --- src/server.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/server.js b/src/server.js index 63df830..a78f181 100755 --- a/src/server.js +++ b/src/server.js @@ -1112,9 +1112,12 @@ rl.on('line', async (line) => { /** Cursor 可能关闭 MCP stdin;挂起 poll 期间禁止 exit,否则 Hub 仍 waiting 但无 poller */ let activeWaitToken = null; +let idleKeepAliveTimer = null; process.stdin.on('end', () => { log('stdin end', { activeWait: activeWaitToken }); - if (!activeWaitToken) setTimeout(() => process.exit(0), 200); + if (activeWaitToken) return; + if (!idleKeepAliveTimer) idleKeepAliveTimer = setInterval(() => {}, 60 * 1000); + log('stdin end ignored: keep alive while idle to preserve transport'); }); process.on('SIGTERM', () => process.exit(0));