Repository navigation
Description
Summary
Updating from 2.0.19 to 2.0.24 eliminates the version-flip service-restart cycle, but the renderer-side freeze mechanism is not fixed. After adding a project, the renderer process still spins at a significant fraction of a CPU core and emits a continuous stream of ResizeObserver loop completed with undelivered notifications errors. The watcher subscription set has also grown: the service now watches both drive roots (C:\ and D:\) instead of only the data drive root.
Environment
- opencode version: 2.0.24 (desktop app, bundled CLI, and update feed all agree on
2.0.24) - OS: Windows_NT 10.0.19045 (win32 x64)
- Terminal: OpenCode desktop app (Electron), not the TUI
- Shell: C:\WINDOWS\system32\cmd.exe
- Install/channel: packaged desktop release (
%LOCALAPPDATA%\Programs\@opencodedesktop), channellatest,allowDowngrade: true - Active plugins: none — no
opencode.json/opencode.jsoncin any global or project config location - Registered projects at time of report: 6
Reproduction
- Install the OpenCode desktop app at version 2.0.24 and add a few project folders (3 or more).
- Launch the desktop app. Let it reach the project list.
- Click "+ Add project" and select a folder in the directory picker.
- Observe the renderer process consuming CPU continuously and the
ResizeObserver looperror flooding the renderer log. - Confirm the background service stays healthy throughout — the local API responds normally.
Expected Behavior
The new project appears in the project list and the app remains responsive. Adding a project should not cause sustained renderer CPU usage or layout-loop errors.
Actual Behavior
1. Version-flip cycle is resolved
The installed executable is now consistently 2.0.24 and the updater reports up-to-date on every launch. No further version-mismatch / missing service restarts are observed. This part of the original report is fixed.
2. Watcher subscription now covers both drive roots (new in 2.0.24)
When a project directory is opened, the service subscribes a watcher to every ancestor directory up to and including both drive roots, plus the user profile directory:
[info] watcher subscribe path="C:\\" type=entries
[info] watcher subscribe path="C:\\Users" type=entries
[info] watcher subscribe path="<user profile>" type=entries
[info] watcher subscribe path="D:\\" type=entries
[info] watcher subscribe path="D:\\<parent>" type=entries
[info] watcher subscribe path="D:\\<parent>\\<child>" type=entries
[info] watcher subscribe path="<project>\\AGENTS.md" type=file
In 2.0.19 only D:\ was watched. In 2.0.24 C:\ is added, so both drive roots are now monitored. Each added project extends this chain. Watching a drive root is expensive on Windows and increases the event volume the renderer must absorb.
3. Renderer still spins on pure computation
Live CPU sampling over a 15-second window while the app is idle after project addition:
| process | CPU seconds consumed in 15s | approx. core utilization |
|---|---|---|
OpenCode --type=renderer |
2.69 | ~18% |
OpenCode --type=gpu-process |
4.66 | ~31% |
The renderer does not reach the 80–100% seen in 2.0.19, but it still consumes a non-trivial share of a core indefinitely while idle. The reduction is consistent with the version-flip restart loop being gone, not with the underlying reactive-loop defect being fixed.
4. ResizeObserver layout-loop errors continue
The renderer log shows a continuous stream of:
[error] ResizeObserver loop completed with undelivered notifications.
Error counts per app-launch log directory, comparing 2.0.19 and 2.0.24 sessions:
| log dir (launch) | version | ResizeObserver errors |
|---|---|---|
20261007T192133 |
2.0.19 | 92 |
20261007T194644 |
2.0.24 | 13 |
20261007T194847 |
2.0.24 | 52 |
The 2.0.24 sessions still produce dozens of layout-loop errors per launch. The errors arrive in bursts (up to 16 consecutive lines within a single second), indicating a repeating layout feedback loop rather than a one-off measurement glitch.
5. Worktree discovery still fails for every non-git project
Unchanged from 2.0.19:
[warn] worktree discovery failed directory="<project>" strategy=git error=Worktree.DirectoryUnavailableError
Reported once per project per location boot, including twice within ~80ms on some boots.
Additional Context
- Frequency: reproduced on every 2.0.24 launch with 3+ registered projects. Not intermittent.
- Recovery: killing the desktop
OpenCode.exeprocesses clears the freeze. Data is not lost. - Workarounds that avoid the issue:
- Launch via the CLI in the target directory instead of using "+ Add project".
- Keep the registered project count low (2–3).
- Not the cause: the local service API stays responsive throughout (
/api/info,/api/project,/api/sessionall return normally), so this is isolated to the desktop renderer. - Renderer asset hashes and window IDs have been redacted from log samples above.
- Change from 2.0.19 report: the version-flip service-restart cycle is resolved in 2.0.24. The remaining issues are the renderer reactive loop, the expanded watcher set covering both drive roots, and the persistent ResizeObserver layout-loop errors.
Activity
opencode-agent commentedon Oct 8, 2026
Thanks for the detailed follow-up and for checking 2.0.24. I think this is a duplicate of #52236. That report has the same trigger: on Windows desktop, with several projects registered, choosing a folder through Add project freezes the renderer while the service stays healthy, and keeping fewer projects avoids it. Your report confirms it still happens on 2.0.24, which is useful to add there.
Possible duplicates and closely related issues, ordered by likelihood:
C:\watcher subscriptions you saw)If your problem is different from #52236, please reply here and explain how. Otherwise the bot will close this issue as a duplicate in 1 day. Adding your 2.0.24 confirmation as a comment on #52236 would also help.
opencode-agent commentedon Oct 9, 2026
Closing this as a duplicate of #52236, as mentioned yesterday. There hasn't been a reply saying how this problem is different. Both reports describe the Windows desktop renderer freezing or spinning after you choose a folder with Add project when several projects are registered, and keeping fewer projects avoids it.
Your finding that this still happens on 2.0.24 is useful, so please add it as a comment on #52236 so it's tracked there. The ResizeObserver storms are also tracked in #52706 and #38296, and the drive-root/home-folder behaviour in #49428.
If this turns out to be a different problem, reply here and explain how, and the issue can be reopened. Thanks for the detailed report.