Skip to content

Commit 8f1261c

Browse files
committed
docs: 更新备忘录 - 记录EBUSY和自动重连修复
1 parent 53b4c3c commit 8f1261c

1 file changed

Lines changed: 29 additions & 1 deletion

File tree

开发备忘录.md

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,38 @@
11
# TestPilot AI 开发备忘录
22

3-
> 最后更新:2026-04-01(✅ v1.5.5 修复三大Bug:重复注入/停止命令/Playwright浏览器
3+
> 最后更新:2026-04-02(修复并发下载EBUSY + 断开引擎后自动重连
44
> 项目结构详见 README.md,此处不重复。
55
66
---
77

8+
## ✅ v1.5.5 补丁修复(2026-04-02)
9+
10+
### 问题4:首次安装 spawn EBUSY
11+
12+
**现象**:引擎下载完成后启动报 `spawn EBUSY`。日志出现两次"开始下载"。
13+
14+
**根因**:插件激活时自动调用 `ensureRunning()` + 用户点按钮也调用,两个并发下载写同一个文件,
15+
下载完 Windows Defender 扫描锁住文件导致 spawn 失败。
16+
17+
**修复**`engineManager.ts`):
18+
-`_ensureRunningPromise` 互斥锁,第二次调用复用第一次 Promise
19+
- rename 前先 unlink 旧文件
20+
- spawn 遇 EBUSY 时等 3 秒重试最多 3 次
21+
22+
### 问题5:断开引擎后又自动连接
23+
24+
**现象**:点"断开引擎"后,状态立刻变回"已连接"。
25+
26+
**根因**`dispose()` 只杀 `this._engineProc`(跨 reload 后引用丢失变 null),
27+
sidebar 每 5 秒轮询 health 发现引擎还活着就显示已连接。
28+
29+
**修复**
30+
- `engineManager.ts`:dispose 增加 `_killExistingEngine()` 通过端口杀外部进程
31+
- `sidebarProvider.ts`:加 `_userStopped` 标记,stopEngine 时设置,轮询时跳过检测
32+
- `extension.ts`:stopEngine 设 `setUserStopped(true)`,launchEngine 时清除
33+
34+
---
35+
836
## ✅ v1.5.5 修复三大用户体验Bug(2026-04-01)
937

1038
### 问题1:规则每次打开都重复注入

0 commit comments

Comments
 (0)