Skip to content

Commit cdb6b8d

Browse files
committed
refactor: 移除轮询监控 monitor.mjs,全面切换到 Stop Hook 事件驱动检测
- 删除 monitor.mjs(已被 stop-hook.mjs 完全替代) - 更新 extension.js:移除进程管理/心跳检测,改为 Hook 模式状态 - 更新 README 和教程 HTML 文档 - stop-hook.mjs 从 config.mjs 读取阈值,支持 preset/settings 覆盖
1 parent a620d2f commit cdb6b8d

1,955 files changed

Lines changed: 1450 additions & 494 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.mcp.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@
3131
"node",
3232
"c:/Users/LaiYangLi/.claude/mcp-servers/mcp-doubao/dist/index.js"
3333
]
34+
},
35+
"mineru-open-mcp": {
36+
"command": "uvx",
37+
"args": ["mineru-open-mcp"]
3438
}
3539
}
3640
}

CLAUDE.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
- **思考过程(thinking)必须全程使用中文**:推理、分析、决策、内部对话一律中文。
66
- 代码注释使用英文。
77

8+
## 规则文件
9+
`rules/` 目录下的 .md 文件包含调试、MCP 开发等专项规则,会自动加载到对话上下文中。
10+
811
## 可用技能
912

1013
| 命令 | 说明 |

README.md

Lines changed: 31 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -345,15 +345,14 @@ Claude Code 通过两个配置文件加载 MCP 服务:
345345

346346
```
347347
~/.claude/mcp-servers/deadloop-monitor/
348-
├── monitor.mjs # 主监控进程(轮询检测)
349348
├── stop-hook.mjs # Stop Hook 检测(事件驱动,零延迟)
350-
├── detectors.mjs # 重复/反转/停滞检测器
351-
├── helpers.mjs # 文件读取、AutoIt 调用、停止确认
349+
├── detectors.mjs # 重复/反转/停滞检测器(供各类脚本引用)
350+
├── helpers.mjs # AutoIt 调用、文件读取等工具函数
352351
├── deadloop_control.au3 # AutoIt 源码
353352
├── deadloop_control.exe # 编译后的无窗口 exe
354353
├── config.mjs # 所有阈值参数
355354
├── logger.mjs # JSON 日志,自动轮转
356-
├── workspace-watcher/ # VS Code 扩展
355+
├── workspace-watcher/ # VS Code 扩展(负责状态栏 + 配置界面)
357356
│ ├── extension.js
358357
│ └── package.json
359358
└── install-extension.mjs # 扩展安装脚本
@@ -365,12 +364,15 @@ Claude Code 通过两个配置文件加载 MCP 服务:
365364

366365
```batch
367366
@echo off
368-
echo Installing deadloop monitor dependencies...
367+
echo [1/2] Installing VS Code extension...
369368
cd /d "%~dp0mcp-servers\deadloop-monitor"
370-
npm install
371-
echo Extension installation...
372369
node install-extension.mjs
373-
echo Done. Please reload VS Code window (Ctrl+Shift+P -> Reload Window).
370+
echo [2/2] 请手动将以下 hooks 配置添加到 settings.json 的 hooks 字段:
371+
echo.
372+
echo "Stop": [{"hooks":[{"type":"command","command":"node",
373+
echo "args":["c:/Users/你的用户名/.claude/mcp-servers/deadloop-monitor/stop-hook.mjs"]}]}]
374+
echo.
375+
echo Done! Please reload VS Code window (Ctrl+Shift+P -^> Reload Window).
374376
pause
375377
```
376378

@@ -388,6 +390,23 @@ cd ~/.claude/mcp-servers/deadloop-monitor
388390
node install-extension.mjs
389391
```
390392

393+
2. **注册 Stop Hook** — 在 `settings.json``hooks` 字段添加:
394+
395+
```json
396+
{
397+
"hooks": {
398+
"Stop": [{
399+
"hooks": [{
400+
"type": "command",
401+
"command": "node",
402+
"args": ["c:/Users/你的用户名/.claude/mcp-servers/deadloop-monitor/stop-hook.mjs"],
403+
"timeout": 15
404+
}]
405+
}]
406+
}
407+
}
408+
```
409+
391410
2. **安装成功后会提示:**
392411

393412
```
@@ -410,10 +429,10 @@ node install-extension.mjs
410429

411430
**使用说明:**
412431

413-
- 监控由两层组成:**Stop Hook(事件驱动)** + **轮询监控(周期扫描)**,双保险工作
414-
- Stop Hook 在 Claude 每轮输出完成后**立即触发**,检测最近两轮文本相似度,> 0.85 判定为循环
415-
- 轮询监控持续扫描 `.jsonl`,可检测**正在输出中**的循环,触发 AutoIt ESC 中断
416-
- 检测到死循环时,自动执行:AutoIt ESC 长按 5 秒 → 确认是否停止 → 注入摘要指令 → 冷却
432+
- 检测由 **Stop Hook** 事件驱动,在 Claude 每轮输出完成后**立即触发**
433+
- 检测最近两轮文本相似度,超过阈值(默认 Jaccard 相似度 > 0.85判定为循环
434+
- 阈值可在 `config.mjs` 中调整(`jaccardThreshold`)或切换 preset(`default` / `conservative` / `sensitive`
435+
- 检测到死循环时,自动执行:AutoIt 注入求助消息到输入框并提交
417436
- 状态栏显示当前状态:🟢 监控中 / 🟡 已暂停 / 🔴 检测到死循环 / ⚪ 已停止
418437
- 可在 `config.mjs` 中调整阈值(重复次数、反转词密度、信息增量率)
419438

docs/Claude-Config-tutorial.html

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -523,25 +523,27 @@ <h2><span class="icon" style="background:rgba(245,158,11,0.2);">🔄</span> 死
523523

524524
<h3>扩展包文件架构</h3>
525525
<pre><code>~/.claude/mcp-servers/deadloop-monitor/
526-
├── monitor.mjs # 主监控进程
526+
├── stop-hook.mjs # Stop Hook 检测(事件驱动,零延迟)
527527
├── detectors.mjs # 重复/反转/停滞检测器
528-
├── helpers.mjs # 文件读取、AutoIt 调用、停止确认
528+
├── helpers.mjs # AutoIt 调用、文件读取
529529
├── deadloop_control.au3 # AutoIt 源码
530530
├── deadloop_control.exe # 编译后的无窗口 exe
531531
├── config.mjs # 所有阈值参数
532532
├── logger.mjs # JSON 日志,自动轮转
533-
├── workspace-watcher/ # VS Code 扩展
533+
├── workspace-watcher/ # VS Code 扩展(状态栏 + 配置界面)
534534
│ ├── extension.js
535535
│ └── package.json
536536
└── install-extension.mjs # 扩展安装脚本</code></pre>
537537

538538
<h3>一键安装(批处理)</h3>
539539
<p>运行 <code>install-deadloop.bat</code></p>
540540
<pre><code>@echo off
541-
echo [1/1] Installing deadloop VS Code extension...
541+
echo [1/2] Installing VS Code extension...
542542
cd /d "%~dp0mcp-servers\deadloop-monitor"
543543
node install-extension.mjs
544-
echo Done. Please reload VS Code window (Ctrl+Shift+P -> Reload Window).
544+
echo [2/2] 添加 Stop hook 配置到 settings.json
545+
echo See README.md for details.
546+
echo Done! Please reload VS Code window (Ctrl+Shift+P -^> Reload Window).
545547
pause</code></pre>
546548
<div class="highlight">
547549
💡 也可以直接对我说 <strong>"帮我安装死循环监控"</strong>,AI 会自动完成以上安装步骤。
@@ -555,6 +557,10 @@ <h3>安装扩展</h3>
555557
<pre><code>cd ~/.claude/mcp-servers/deadloop-monitor
556558
node install-extension.mjs</code></pre>
557559
</div>
560+
<div class="step-card">
561+
<h3>注册 Stop Hook</h3>
562+
<p><code>settings.json</code><code>hooks</code> 字段添加 Stop 事件配置,详见 README.md。</p>
563+
</div>
558564
<div class="step-card">
559565
<h3>安装成功提示</h3>
560566
<pre><code>[deadloop] extension installed to C:\Users\&lt;用户名&gt;\.vscode\extensions\laiyangli.deadloop-workspace-watcher-1.0.0

0 commit comments

Comments
 (0)