opencode icon indicating copy to clipboard operation
opencode copied to clipboard

Performance issue: session-child-cycle becomes extremely slow with many sessions

Open zenyr opened this issue 2 months ago • 6 comments

Description

session-child-cycle (ctrl+right) and session-child-cycle-reverse (ctrl+left) become extremely slow in workspaces with many sessions (e.g., after subagents create child sessions). Response time exceeds 10 seconds, causing input lag and ignored commands.

Root cause: `Session.children()` in `packages/opencode/src/session/index.ts` performs O(N) scan of all sessions via `Storage.list()` and `Storage.read()` per cycle.

OpenCode version

0.15.23 (sessions persist across versions)

Steps to reproduce

  1. Create workspace with 500+ sessions (e.g., run complex tasks with subagents).
  2. Press ctrl+right or ctrl+left to cycle sessions.
  3. Observe delay in switching.

Screenshot and/or share link

Image

... no wonder 😅

Operating System

macOS (Darwin)

Terminal

No response

zenyr avatar Oct 29 '25 08:10 zenyr

good to know thx

rekram1-node avatar Oct 29 '25 16:10 rekram1-node

Should more then resolve the problem but open to comments or concerns: https://github.com/ry2009/opencode/pull/4

ry2009 avatar Dec 09 '25 23:12 ry2009

Guys please add input about your recent experience with this issue, since I myself have not suffered this issue these days.

  • Before: took >20s every time
  • After: takes <2s (not an exact science)

For the record

now my storage looks like this after extensive use of OC:

Image Image
  • No gigantic /session folder anymore! 👍 Huge W
  • No, the switch is not INSTANT fast yet. But it works within reasonable time nonetheless.

So... of course, this could be even better with more optimizations. But I consider this mostly solved.

zenyr avatar Dec 11 '25 02:12 zenyr

@zenyr is this what you found naturally with the newest OpenCode version?

ry2009 avatar Dec 11 '25 02:12 ry2009

I did do a small optimization for subagent stuff in terms of perf that could be what fixed it

also we are improving the ux of subagent nav soon

rekram1-node avatar Dec 11 '25 03:12 rekram1-node

Should I close out my perf with extra caches fix then? @rekram1-node

ry2009 avatar Dec 11 '25 04:12 ry2009