From ba8fe261eec1062db499174c54f616538940c666 Mon Sep 17 00:00:00 2001 From: Mohamed Boudra Date: Sat, 20 Jun 2026 15:21:40 +0800 Subject: [PATCH] fix(server): set opencode serve cwd to home dir to stop full-filesystem scan (#1626) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When the Paseo daemon is launched as a macOS GUI app (via launchd), its working directory is `/`. The `opencode serve` process inherited that cwd, causing opencode's fff_search to scan and watch the entire filesystem, leading to 300%+ CPU and 1GB+ RAM usage. Fix: pass `cwd: os.homedir()` when spawning `opencode serve` so it never inherits `/`. The per-session working directory is unaffected — it is passed separately via the OpenCode SDK's `session.create({ directory })`. Fixes #1617 --- .../src/server/agent/providers/opencode/server-manager.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/server/src/server/agent/providers/opencode/server-manager.ts b/packages/server/src/server/agent/providers/opencode/server-manager.ts index 78502b303..e57dd459a 100644 --- a/packages/server/src/server/agent/providers/opencode/server-manager.ts +++ b/packages/server/src/server/agent/providers/opencode/server-manager.ts @@ -1,5 +1,6 @@ import type { ChildProcess } from "node:child_process"; import net from "node:net"; +import os from "node:os"; import type { Logger } from "pino"; import { findExecutable } from "../../../../executable-resolution/executable-resolution.js"; @@ -201,6 +202,7 @@ export class OpenCodeServerManager implements OpenCodeServerManagerLike { launchPrefix.command, [...launchPrefix.args, "serve", "--port", String(port)], { + cwd: os.homedir(), detached: process.platform !== "win32", stdio: ["ignore", "pipe", "pipe"], ...createProviderEnvSpec({