Может кто-то сталкивался с тем, что OpenCode на очень длинных сессиях, когда пк работает день или больше, начинает жестко класть систему, забирая на себя много оперативной памяти. Долго грешил на сам OpenCode или особенности работы WSL (Windows Subsystem for Linux), но выяснилось вот что.
Когда LSP сервера включены (если не включены, срочно рекомендую включать), они почти без контроля кушают оперативную память, и при этом не возвращают её обратно. Выходит так, что в процессе работы рано или поздно рабочая машина упрется в нехватку памяти и жестко повиснет. Зачем LSP нужен агенту - писал тут, в 10 пункте.
Как лечится: просто ограничением потребления оперативной памяти. Находится по пути
~/.config/opencode/opencode.jsonc.Вставляем эту конструкцию:
"lsp": {
"typescript": {
"command": [
"/home/nyxandro/.cache/opencode/packages/typescript-language-server/node_modules/.bin/typescript-language-server",
"--stdio"
],
"extensions": [".ts", ".tsx", ".mts", ".cts", ".js", ".jsx", ".mjs", ".cjs"],
"initialization": { "maxTsServerMemory": 2048 }
}
},Вместо
nyxandro ставим название своей папки пользователя.И в
extensions можете добавить нужные вам форматы файлов, которые тоже надо проверять во время работы. У меня весь стек на TS/JS, поэтому набор такой.Или проще дать этот пост агенту, он сам поймет, что и куда вставить (и обязательно пусть проверит, запустились ли LSP сервера).
По итогу данное ограничение при достижении лимита памяти заставляет сборщика мусора автоматически решать что и как выгружать, нас это уже не касается. Проверено, спустя месяц ни одного зависания.