Windows: OMO helper node processes accumulate far beyond active conversation count
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 45/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- node.js, typescript
- Lĩnh vực
- cli, devtools, operating-systems
Hướng nghiên cứu
Bắt đầu bằng cách tái hiện việc tích tụ tiến trình Windows với Get-CimInstance Win32_Process, sau đó đọc components/codegraph/src/hook.ts, components/bootstrap/src/hook.ts và các đường dẫn spawning của components/lsp-daemon/. So sánh số lượng helper giữa các session liên tiếp và xác minh rằng teardown hoặc việc tái sử dụng giữ cho các số lượng này không tăng quá mức, trong khi CodeGraph, git-bash-mcp và lsp-daemon vẫn hoạt động trong các cuộc hội thoại đang hoạt động.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Summary
On Windows, OMO helper Node processes accumulate far beyond the number of active conversations when running Codex Desktop with the bundled OMO plugin. With only 3 active conversations, I observed 27 repeated helper bundles (codegraph, git-bash-mcp, lsp-daemon) still resident for hours, causing heavy memory usage and UI lag.
Environment
- LazyCodex / OMO plugin version:
sisyphuslabs/omo 4.19.0from the local Codex plugin cache - Codex version:
codex-cli 0.145.0 - OS: Windows
- Install method: Codex Desktop with marketplace/plugin cache under
C:\Users\Rusz\.codex\plugins\cache\sisyphuslabs\omo\4.19.0 - Relevant config: OMO enabled; only 3 active conversations during observation
Repository Decision
- Target repository:
code-yeongyu/lazycodex - Why this belongs there: the repeated helper trees originate from OMO plugin components, not only from generic Codex processes.
- LazyCodex evidence (runtime + local installed source):
- Repeated command lines all point into
C:\Users\Rusz\.codex\plugins\cache\sisyphuslabs\omo\4.19.0\... - Observed repeats:
27 x components/codegraph/dist/serve.js27 x components/git-bash-mcp/dist/cli.js mcp27 x components/lsp-daemon/dist/cli.js mcp27 x codegraph npm-shim27 x codegraph-win32-x64 ... serve --mcp
components/codegraph/src/hook.tsspawns a detached background worker on every eligibleSessionStart.components/bootstrap/src/hook.tsalso spawns a detached background worker.components/lsp-daemon/dist/ensure-daemon.js/dist/cli.jsspawn a detached daemon process.
- Repeated command lines all point into
- Upstream Codex evidence:
openai/codexalready has similar Windows MCP leak issues open, including #28361, #30408, #31499, #32797, #34614, #34704.- That suggests a nearby ownership boundary, but this specific helper bundle is OMO-owned because the repeated commands and paths are all under the OMO plugin cache.
Reproduction
- Run Codex Desktop on Windows with the bundled OMO plugin enabled.
- Open and use a few conversations over time. In my case there were only 3 active conversations.
- Inspect running processes in Task Manager or with
Get-CimInstance Win32_Process. - Group by command line and observe repeated OMO helper bundles remaining resident long after the conversations that likely spawned them.
Expected Behavior
Helper processes should be shared where possible and should be reaped when the owning conversation or session ends. Process count should stay roughly proportional to active work.
Actual Behavior
Helper bundles accumulate over time and remain resident well beyond the active conversation count. The machine becomes noticeably laggy, and dozens of node.exe processes remain alive.
Evidence
- Runtime grouping from
Get-CimInstance Win32_Process | Group-Object CommandLine:27 x codegraph/dist/serve.js27 x git-bash-mcp/dist/cli.js mcp27 x lsp-daemon/dist/cli.js mcp
- Old roots still resident:
opencode.exe pid=25024started2026-07-25 16:16:43opencode.exe pid=35736started2026-07-25 16:18:43
- Codex root also retained many historical children under
codex.exe pid=22096, with child start times spanning2026-07-24 23:55to2026-07-25 17:42 - Repeated helper chain shape:
node.exe codegraph/dist/serve.jsnpm-shim.js serve --mcpcodegraph-win32-x64 ... serve --mcpwatchdog node.exe -e "..."- sibling
git-bash-mcp - sibling
lsp-daemon
- Listener footprint was small, which suggests these are mostly lingering stdio/helper workers rather than legitimate long-lived listening services:
- only one obvious node listener was observed:
127.0.0.1:19825fromopencli daemon.js
- only one obvious node listener was observed:
Root Cause
The strongest current evidence is a lifecycle gap in OMO-managed helper processes on Windows:
components/codegraph/src/hook.tsusesspawn(..., { detached: true, stdio: "ignore" })pluschild.unref()for theSessionStartworker.components/bootstrap/src/hook.tsdoes the same for bootstrap work.lsp-daemonalso uses detached daemon spawning.
That pattern is valid for background work, but with only 3 active conversations it should not leave 27 repeated helper bundles alive for hours. The observed process trees suggest one of these is happening:
- helper trees are not being reaped after the owning session ends
- helper suites are started per historical session instead of being reused/shared
- Windows termination does not reach the full helper subtree consistently
Proposed Fix
- Audit helper lifecycle ownership for:
components/codegraph/src/hook.tscomponents/bootstrap/src/hook.tscomponents/lsp-daemon/*
- Add explicit ownership and teardown for Windows helper trees, instead of relying on detached background workers to disappear naturally.
- Consider a shared process model for
git-bash-mcp,lsp-daemon, and CodeGraph MCP helpers so they are reused across sessions instead of spawned per session. - Add regression coverage that opens multiple sessions sequentially and asserts helper count remains bounded after session close.
Verification Plan
- Reproduce on Windows with 3 active conversations and record helper counts by command line before the fix.
- Apply the lifecycle fix and repeat the same workflow.
- Confirm that historical helper bundles are reaped after session end or reused instead of duplicated.
- Confirm that CodeGraph,
git-bash-mcp, andlsp-daemonstill function normally in active conversations.
This issue or PR was generated by LazyCodex.
Tag: lazycodex-generated
- Ngôn ngữ chính
- TypeScript
- Star
- 3.8k
- Fork
- 246
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của code-yeongyu/lazycodex
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
code-yeongyu/lazycodex#170 ·
-
Fix Codex browser QA routing before standalone PlaywrightCó thể đã có người làm @berkshirehathaways đã nhận 84 ngày trước. Đang mở
Độ khó 2/5 1-2 ngày Mức phù hợp với người mới 72/100
code-yeongyu/lazycodex#148 ·
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
code-yeongyu/lazycodex#172 ·
-
[5.0.0-beta.78] High cost and rapid quota consumption: use role-appropriate agent model defaultsĐang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
code-yeongyu/lazycodex#166 ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
code-yeongyu/lazycodex#163 ·
Tất cả issue của code-yeongyu/lazycodex
Issue tương tự
-
VS Code extension: clickable file links in chat drop the :line suffix, never jump to the lineĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
MoonshotAI/kimi-code#4398 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Xiaomi Mimo语音识别服务异常Đang mởpending triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
Maintainer thường phản hồi trong vòng 1 ngày
-
package-lock.json : les binaires natifs macOS et Linux de unrs-resolver ont disparu depuis #1823Đang mởbug dependencies
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
AxaFrance/design-system#2064 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100