From 0b8671b7b01769c04f23ac757a96707f569c047b Mon Sep 17 00:00:00 2001 From: Sidney Marvin Fricke Date: Wed, 24 Jun 2026 12:31:30 +0200 Subject: [PATCH] default cwd to /workspace for all exec, pty, and job calls All subprocess and PTY spawns now start in WORKSPACE_DIR (default /workspace) instead of inheriting /app from the Python process. --- server/main.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/server/main.py b/server/main.py index fe01021..dd01bbd 100644 --- a/server/main.py +++ b/server/main.py @@ -18,6 +18,8 @@ from typing import Any logging.basicConfig(level=logging.INFO, format="%(asctime)s [%(levelname)s] %(message)s") log = logging.getLogger("mcp") +WORKSPACE = os.environ.get("WORKSPACE_DIR", "/workspace") + import pyte import ptyprocess import uvicorn @@ -49,6 +51,7 @@ class PtySession: ["/bin/bash", "--login"], dimensions=(rows, cols), env={**os.environ, "TERM": "xterm-256color", "COLUMNS": str(cols), "LINES": str(rows)}, + cwd=WORKSPACE, ) self._reader = threading.Thread(target=self._read_loop, daemon=True) self._reader.start() @@ -100,6 +103,7 @@ class BackgroundJob: stderr=subprocess.STDOUT, text=True, executable="/bin/bash", + cwd=WORKSPACE, ) self._reader = threading.Thread(target=self._read_loop, daemon=True) self._reader.start() @@ -256,6 +260,7 @@ async def _dispatch(name: str, args: dict) -> dict: r = subprocess.run( cmd, shell=True, capture_output=True, text=True, timeout=timeout, executable="/bin/bash", + cwd=WORKSPACE, ) return {"stdout": r.stdout, "stderr": r.stderr, "exit_code": r.returncode} except subprocess.TimeoutExpired: