Skip to content

fix: stabilize shutdown and idle resource usage - #2

Merged
PuppetWen merged 1 commit into
mainfrom
agent/fix-exit-startup-v0.0.3
Jul 31, 2026
Merged

fix: stabilize shutdown and idle resource usage#2
PuppetWen merged 1 commit into
mainfrom
agent/fix-exit-startup-v0.0.3

Conversation

@PuppetWen

Copy link
Copy Markdown
Owner

变更内容

  • 修复托盘退出时索引管道关闭竞态导致的 write EPIPE 未捕获异常,并实现有界、可等待的原生索引器退出流程。
  • 优化首次启动:先呈现首帧、延后索引加载、按需加载非首页模块、合并磁盘查询并降低后台视觉刷新。
  • 修复 Windows 文件删除监听误触发全量索引扫描的问题;变更事件按路径合并,目录删除使用前缀墓碑。
  • 关闭到托盘后销毁 Chromium 渲染窗口并回收仅属于 CDriveShiftAI 的可回收工作集;索引、监听、托盘和全局快捷键保持可用。
  • 增加中文 README、更新记录,以及启动、托盘资源、干净退出和安装更新回归测试。

根因

  • Electron 在索引器标准输入管道关闭后仍可能收到并发写请求,且 stdin 缺少 error 监听,导致 EPIPE 升级为主进程未捕获异常。
  • 普通 Windows 删除事件被当成目录树删除,触发对约 577 万条索引的重复全表扫描。
  • 隐藏窗口仍保留 renderer/GPU 页面,动态背景和同步启动任务持续占用资源。

验证

  • TypeScript lint、26 项 Vitest、3 项索引器测试、4 项更新器测试通过。
  • 577 万条真实缓存:UI 451 ms,缓存就绪 5.2 s,前台静置 CPU 0;托盘静默物理工作集约 23.1 MB、任务管理器口径 CPU 0.01%、renderer 0,二次启动可重建窗口。
  • 托盘退出无 EPIPE、无残留进程。
  • 便携版原路径更新、断点续传、SHA-512 拒绝、失败回滚通过。
  • 安装版 0.0.1 → 0.0.3 覆盖更新保留安装路径与数据,未发现 .NET InstallUtil.exe

@PuppetWen
PuppetWen merged commit 566848f into main Jul 31, 2026
1 check passed
@PuppetWen
PuppetWen deleted the agent/fix-exit-startup-v0.0.3 branch July 31, 2026 10:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant