cursor-feedback 1.1.0 → 1.1.1
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/CHANGELOG.md +8 -0
- package/dist/mcp-server.js +70 -9
- package/dist/mcp-server.js.map +1 -1
- package/package.json +1 -1
- package/src/mcp-server.ts +78 -9
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [1.1.1](https://github.com/jianger666/cursor-feedback-extension/compare/v1.1.0...v1.1.1) (2026-06-02)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* update check-changelog script to support standard-version format ([b605ed5](https://github.com/jianger666/cursor-feedback-extension/commit/b605ed5b937364fac7bd98892dfce78885e16877))
|
|
11
|
+
* 修复 Cursor 关闭后 MCP server 进程残留及 CPU 占满 ([59dafc0](https://github.com/jianger666/cursor-feedback-extension/commit/59dafc08a5284ac3eb9111b2b1a3592b4412554a))
|
|
12
|
+
|
|
5
13
|
## 1.1.0 (2026-01-29)
|
|
6
14
|
|
|
7
15
|
|
package/dist/mcp-server.js
CHANGED
|
@@ -76,6 +76,11 @@ class McpFeedbackServer {
|
|
|
76
76
|
this.ownerWorkspace = null;
|
|
77
77
|
// Server 启动时间
|
|
78
78
|
this.startTime = Date.now();
|
|
79
|
+
// 最近一次活动时间(任意 HTTP 轮询 / MCP 调用都会刷新)
|
|
80
|
+
// 用于 watchdog 判定是否所有 Cursor 窗口都已关闭
|
|
81
|
+
this.lastActivityTime = Date.now();
|
|
82
|
+
// 看门狗定时器(兜底退出,防止进程残留 / CPU 占满)
|
|
83
|
+
this.watchdogTimer = null;
|
|
79
84
|
this.port = port;
|
|
80
85
|
this.server = new index_js_1.Server({
|
|
81
86
|
name: 'cursor-feedback-server',
|
|
@@ -149,6 +154,8 @@ class McpFeedbackServer {
|
|
|
149
154
|
});
|
|
150
155
|
// 处理工具调用
|
|
151
156
|
this.server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
|
|
157
|
+
// AI 发起调用,刷新活动时间,避免被 watchdog 误判为闲置
|
|
158
|
+
this.lastActivityTime = Date.now();
|
|
152
159
|
const { name, arguments: args } = request.params;
|
|
153
160
|
try {
|
|
154
161
|
switch (name) {
|
|
@@ -433,8 +440,8 @@ class McpFeedbackServer {
|
|
|
433
440
|
this.httpServer = http.createServer((req, res) => {
|
|
434
441
|
// 包裹整个请求处理逻辑,防止异常导致进程崩溃
|
|
435
442
|
try {
|
|
436
|
-
//
|
|
437
|
-
|
|
443
|
+
// 任何来自插件的 HTTP 请求都视为 Cursor 仍存活的心跳(供 watchdog 判定)
|
|
444
|
+
this.lastActivityTime = Date.now();
|
|
438
445
|
// 设置 CORS 头
|
|
439
446
|
res.setHeader('Access-Control-Allow-Origin', '*');
|
|
440
447
|
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
|
|
@@ -554,6 +561,8 @@ class McpFeedbackServer {
|
|
|
554
561
|
// 启动 MCP stdio 传输
|
|
555
562
|
const transport = new stdio_js_1.StdioServerTransport();
|
|
556
563
|
await this.server.connect(transport);
|
|
564
|
+
// 启动看门狗兜底退出(防止 Cursor 关闭后进程残留 / CPU 占满)
|
|
565
|
+
this.startWatchdog();
|
|
557
566
|
debugLog('MCP Server started successfully');
|
|
558
567
|
debugLog('Waiting for tool calls from AI agent...');
|
|
559
568
|
}
|
|
@@ -562,11 +571,50 @@ class McpFeedbackServer {
|
|
|
562
571
|
throw error;
|
|
563
572
|
}
|
|
564
573
|
}
|
|
574
|
+
/**
|
|
575
|
+
* 看门狗:兜底退出机制
|
|
576
|
+
*
|
|
577
|
+
* 背景:经 npx / npm exec 启动时,进程链为 Cursor → npm exec → node。
|
|
578
|
+
* Cursor 关闭后,stdin 的 EOF 在该中间层下不可靠,node 易变成孤儿进程残留;
|
|
579
|
+
* 叠加 HTTP server 是常驻 active handle,进程无法自然退出。
|
|
580
|
+
*
|
|
581
|
+
* 两道防线:
|
|
582
|
+
* 1) 父进程死亡(被 init/launchd 收养,ppid 变为 1)→ 立即退出;
|
|
583
|
+
* 2) 超过 IDLE_TIMEOUT 没有任何插件轮询 / MCP 调用 → 判定所有 Cursor 窗口已关闭 → 退出。
|
|
584
|
+
* (插件每秒轮询 HTTP,只要还有任意 Cursor 窗口存活就会持续刷新活动时间)
|
|
585
|
+
*/
|
|
586
|
+
startWatchdog() {
|
|
587
|
+
const IDLE_TIMEOUT = process.env.MCP_FEEDBACK_IDLE_TIMEOUT
|
|
588
|
+
? parseInt(process.env.MCP_FEEDBACK_IDLE_TIMEOUT, 10)
|
|
589
|
+
: 30000;
|
|
590
|
+
this.watchdogTimer = setInterval(() => {
|
|
591
|
+
// 防线 1:父进程已死,自己成了孤儿进程
|
|
592
|
+
if (process.ppid === 1) {
|
|
593
|
+
debugLog('Parent process gone (ppid=1), exiting...');
|
|
594
|
+
this.stop();
|
|
595
|
+
process.exit(0);
|
|
596
|
+
}
|
|
597
|
+
// 防线 2:长时间无任何活动 = Cursor 已全部关闭
|
|
598
|
+
const idle = Date.now() - this.lastActivityTime;
|
|
599
|
+
if (idle > IDLE_TIMEOUT) {
|
|
600
|
+
debugLog(`No activity for ${idle}ms (> ${IDLE_TIMEOUT}ms), assuming Cursor closed, exiting...`);
|
|
601
|
+
this.stop();
|
|
602
|
+
process.exit(0);
|
|
603
|
+
}
|
|
604
|
+
}, 5000);
|
|
605
|
+
// 不让 watchdog 自身阻止进程的自然退出
|
|
606
|
+
this.watchdogTimer.unref();
|
|
607
|
+
}
|
|
565
608
|
/**
|
|
566
609
|
* 停止服务器
|
|
567
610
|
*/
|
|
568
611
|
stop() {
|
|
569
612
|
debugLog('Stopping server...');
|
|
613
|
+
// 关闭看门狗定时器
|
|
614
|
+
if (this.watchdogTimer) {
|
|
615
|
+
clearInterval(this.watchdogTimer);
|
|
616
|
+
this.watchdogTimer = null;
|
|
617
|
+
}
|
|
570
618
|
// 关闭 HTTP 服务器
|
|
571
619
|
if (this.httpServer) {
|
|
572
620
|
this.httpServer.close();
|
|
@@ -610,15 +658,28 @@ async function main() {
|
|
|
610
658
|
server.stop();
|
|
611
659
|
setTimeout(() => process.exit(0), 100);
|
|
612
660
|
});
|
|
613
|
-
//
|
|
661
|
+
// stdin 出错(父进程经 npx 中间层异常断开时可能触发)同样退出,避免残留
|
|
662
|
+
process.stdin.on('error', (error) => {
|
|
663
|
+
debugLog(`stdin error, exiting: ${error}`);
|
|
664
|
+
server.stop();
|
|
665
|
+
setTimeout(() => process.exit(0), 100);
|
|
666
|
+
});
|
|
667
|
+
// 捕获未处理的异常:记录日志后退出。
|
|
668
|
+
// ⚠️ 绝不能“吞掉异常继续运行”——否则 stdin 在父进程断开后产生的反复错误会形成
|
|
669
|
+
// busy-loop,导致 CPU 占满且进程永不退出(本次修复的核心症状之一)。
|
|
614
670
|
process.on('uncaughtException', (error) => {
|
|
615
|
-
debugLog(`Uncaught exception
|
|
616
|
-
|
|
671
|
+
debugLog(`Uncaught exception, exiting: ${error?.stack || error}`);
|
|
672
|
+
try {
|
|
673
|
+
server.stop();
|
|
674
|
+
}
|
|
675
|
+
catch {
|
|
676
|
+
// ignore
|
|
677
|
+
}
|
|
678
|
+
process.exit(1);
|
|
617
679
|
});
|
|
618
|
-
// 捕获未处理的 Promise
|
|
619
|
-
process.on('unhandledRejection', (reason
|
|
620
|
-
debugLog(`Unhandled rejection
|
|
621
|
-
// 不退出进程,让 MCP 连接保持
|
|
680
|
+
// 捕获未处理的 Promise 拒绝(仅记录;Promise 拒绝本身不会造成 busy-loop)
|
|
681
|
+
process.on('unhandledRejection', (reason) => {
|
|
682
|
+
debugLog(`Unhandled rejection: ${reason}`);
|
|
622
683
|
});
|
|
623
684
|
await server.start();
|
|
624
685
|
}
|
package/dist/mcp-server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "cursor-feedback",
|
|
3
3
|
"displayName": "Cursor Feedback",
|
|
4
4
|
"description": "One Cursor conversation, unlimited AI interactions - Save your monthly request quota! Interactive feedback loop for AI chat via MCP",
|
|
5
|
-
"version": "1.1.
|
|
5
|
+
"version": "1.1.1",
|
|
6
6
|
"icon": "icon.png",
|
|
7
7
|
"author": "jianger666",
|
|
8
8
|
"license": "MIT",
|
package/src/mcp-server.ts
CHANGED
|
@@ -82,6 +82,13 @@ class McpFeedbackServer {
|
|
|
82
82
|
// Server 启动时间
|
|
83
83
|
private readonly startTime: number = Date.now();
|
|
84
84
|
|
|
85
|
+
// 最近一次活动时间(任意 HTTP 轮询 / MCP 调用都会刷新)
|
|
86
|
+
// 用于 watchdog 判定是否所有 Cursor 窗口都已关闭
|
|
87
|
+
private lastActivityTime: number = Date.now();
|
|
88
|
+
|
|
89
|
+
// 看门狗定时器(兜底退出,防止进程残留 / CPU 占满)
|
|
90
|
+
private watchdogTimer: NodeJS.Timeout | null = null;
|
|
91
|
+
|
|
85
92
|
constructor(port: number = 8766) {
|
|
86
93
|
this.port = port;
|
|
87
94
|
|
|
@@ -163,6 +170,8 @@ class McpFeedbackServer {
|
|
|
163
170
|
|
|
164
171
|
// 处理工具调用
|
|
165
172
|
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
173
|
+
// AI 发起调用,刷新活动时间,避免被 watchdog 误判为闲置
|
|
174
|
+
this.lastActivityTime = Date.now();
|
|
166
175
|
const { name, arguments: args } = request.params;
|
|
167
176
|
|
|
168
177
|
try {
|
|
@@ -480,8 +489,8 @@ class McpFeedbackServer {
|
|
|
480
489
|
this.httpServer = http.createServer((req, res) => {
|
|
481
490
|
// 包裹整个请求处理逻辑,防止异常导致进程崩溃
|
|
482
491
|
try {
|
|
483
|
-
//
|
|
484
|
-
|
|
492
|
+
// 任何来自插件的 HTTP 请求都视为 Cursor 仍存活的心跳(供 watchdog 判定)
|
|
493
|
+
this.lastActivityTime = Date.now();
|
|
485
494
|
|
|
486
495
|
// 设置 CORS 头
|
|
487
496
|
res.setHeader('Access-Control-Allow-Origin', '*');
|
|
@@ -612,6 +621,9 @@ class McpFeedbackServer {
|
|
|
612
621
|
// 启动 MCP stdio 传输
|
|
613
622
|
const transport = new StdioServerTransport();
|
|
614
623
|
await this.server.connect(transport);
|
|
624
|
+
|
|
625
|
+
// 启动看门狗兜底退出(防止 Cursor 关闭后进程残留 / CPU 占满)
|
|
626
|
+
this.startWatchdog();
|
|
615
627
|
|
|
616
628
|
debugLog('MCP Server started successfully');
|
|
617
629
|
debugLog('Waiting for tool calls from AI agent...');
|
|
@@ -621,12 +633,56 @@ class McpFeedbackServer {
|
|
|
621
633
|
}
|
|
622
634
|
}
|
|
623
635
|
|
|
636
|
+
/**
|
|
637
|
+
* 看门狗:兜底退出机制
|
|
638
|
+
*
|
|
639
|
+
* 背景:经 npx / npm exec 启动时,进程链为 Cursor → npm exec → node。
|
|
640
|
+
* Cursor 关闭后,stdin 的 EOF 在该中间层下不可靠,node 易变成孤儿进程残留;
|
|
641
|
+
* 叠加 HTTP server 是常驻 active handle,进程无法自然退出。
|
|
642
|
+
*
|
|
643
|
+
* 两道防线:
|
|
644
|
+
* 1) 父进程死亡(被 init/launchd 收养,ppid 变为 1)→ 立即退出;
|
|
645
|
+
* 2) 超过 IDLE_TIMEOUT 没有任何插件轮询 / MCP 调用 → 判定所有 Cursor 窗口已关闭 → 退出。
|
|
646
|
+
* (插件每秒轮询 HTTP,只要还有任意 Cursor 窗口存活就会持续刷新活动时间)
|
|
647
|
+
*/
|
|
648
|
+
private startWatchdog(): void {
|
|
649
|
+
const IDLE_TIMEOUT = process.env.MCP_FEEDBACK_IDLE_TIMEOUT
|
|
650
|
+
? parseInt(process.env.MCP_FEEDBACK_IDLE_TIMEOUT, 10)
|
|
651
|
+
: 30000;
|
|
652
|
+
|
|
653
|
+
this.watchdogTimer = setInterval(() => {
|
|
654
|
+
// 防线 1:父进程已死,自己成了孤儿进程
|
|
655
|
+
if (process.ppid === 1) {
|
|
656
|
+
debugLog('Parent process gone (ppid=1), exiting...');
|
|
657
|
+
this.stop();
|
|
658
|
+
process.exit(0);
|
|
659
|
+
}
|
|
660
|
+
|
|
661
|
+
// 防线 2:长时间无任何活动 = Cursor 已全部关闭
|
|
662
|
+
const idle = Date.now() - this.lastActivityTime;
|
|
663
|
+
if (idle > IDLE_TIMEOUT) {
|
|
664
|
+
debugLog(`No activity for ${idle}ms (> ${IDLE_TIMEOUT}ms), assuming Cursor closed, exiting...`);
|
|
665
|
+
this.stop();
|
|
666
|
+
process.exit(0);
|
|
667
|
+
}
|
|
668
|
+
}, 5000);
|
|
669
|
+
|
|
670
|
+
// 不让 watchdog 自身阻止进程的自然退出
|
|
671
|
+
this.watchdogTimer.unref();
|
|
672
|
+
}
|
|
673
|
+
|
|
624
674
|
/**
|
|
625
675
|
* 停止服务器
|
|
626
676
|
*/
|
|
627
677
|
stop(): void {
|
|
628
678
|
debugLog('Stopping server...');
|
|
629
679
|
|
|
680
|
+
// 关闭看门狗定时器
|
|
681
|
+
if (this.watchdogTimer) {
|
|
682
|
+
clearInterval(this.watchdogTimer);
|
|
683
|
+
this.watchdogTimer = null;
|
|
684
|
+
}
|
|
685
|
+
|
|
630
686
|
// 关闭 HTTP 服务器
|
|
631
687
|
if (this.httpServer) {
|
|
632
688
|
this.httpServer.close();
|
|
@@ -678,16 +734,29 @@ async function main() {
|
|
|
678
734
|
setTimeout(() => process.exit(0), 100);
|
|
679
735
|
});
|
|
680
736
|
|
|
681
|
-
//
|
|
737
|
+
// stdin 出错(父进程经 npx 中间层异常断开时可能触发)同样退出,避免残留
|
|
738
|
+
process.stdin.on('error', (error) => {
|
|
739
|
+
debugLog(`stdin error, exiting: ${error}`);
|
|
740
|
+
server.stop();
|
|
741
|
+
setTimeout(() => process.exit(0), 100);
|
|
742
|
+
});
|
|
743
|
+
|
|
744
|
+
// 捕获未处理的异常:记录日志后退出。
|
|
745
|
+
// ⚠️ 绝不能“吞掉异常继续运行”——否则 stdin 在父进程断开后产生的反复错误会形成
|
|
746
|
+
// busy-loop,导致 CPU 占满且进程永不退出(本次修复的核心症状之一)。
|
|
682
747
|
process.on('uncaughtException', (error) => {
|
|
683
|
-
debugLog(`Uncaught exception
|
|
684
|
-
|
|
748
|
+
debugLog(`Uncaught exception, exiting: ${error?.stack || error}`);
|
|
749
|
+
try {
|
|
750
|
+
server.stop();
|
|
751
|
+
} catch {
|
|
752
|
+
// ignore
|
|
753
|
+
}
|
|
754
|
+
process.exit(1);
|
|
685
755
|
});
|
|
686
756
|
|
|
687
|
-
// 捕获未处理的 Promise
|
|
688
|
-
process.on('unhandledRejection', (reason
|
|
689
|
-
debugLog(`Unhandled rejection
|
|
690
|
-
// 不退出进程,让 MCP 连接保持
|
|
757
|
+
// 捕获未处理的 Promise 拒绝(仅记录;Promise 拒绝本身不会造成 busy-loop)
|
|
758
|
+
process.on('unhandledRejection', (reason) => {
|
|
759
|
+
debugLog(`Unhandled rejection: ${reason}`);
|
|
691
760
|
});
|
|
692
761
|
|
|
693
762
|
await server.start();
|