TDA给 OpenCode 修了几个内存泄漏问题,顺便聊聊排查过程 中发帖

用 OpenCode + oh-my-opencode 日常开发,跑久了发现 RSS 内存无限增长,根本不回收。花了点时间排查,提了个PR。 
根因分析
跑了下压测定位到多个子系统都没做清理:

subagent session 不释放:tool/task.ts 里子任务跑完后 session 从来不 remove,messages、parts、status 全部堆积 — 这是 GB
级增长的主因
delta string 无上限:event-reducer.ts 里 part field 字符串无限拼接,没有 cap
TUI event listener 重复挂载:app.tsx 等组件的 sdk.event.on() 调用没在 onCleanup 里 unsubscribe,每次导航多挂一层
SSE buffer 无上限:stalled stream 时 buffer 无限增长
M...