From ef1c41c00334968d675b2522b0d23795c3e57492 Mon Sep 17 00:00:00 2001 From: Mng <50384638+Mng-dev-ai@users.noreply.github.com> Date: Sun, 22 Feb 2026 03:36:17 +0200 Subject: [PATCH] Fix host provider terminal showing bare macOS bash in desktop app The host provider's PTY on desktop exposed the raw macOS bash-3.2 prompt and host username instead of a sandbox-like environment. Configure proper PS1, .bash_profile, USER, and HOSTNAME so the terminal shows "user@sandbox-id:~$" consistent with the containerized web experience. --- .../app/services/sandbox_providers/host_provider.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/backend/app/services/sandbox_providers/host_provider.py b/backend/app/services/sandbox_providers/host_provider.py index a45db31a..f4fe5ada 100644 --- a/backend/app/services/sandbox_providers/host_provider.py +++ b/backend/app/services/sandbox_providers/host_provider.py @@ -91,7 +91,11 @@ async def create_sandbox(self) -> str: sandbox_id = str(uuid.uuid4())[:12] sandbox_dir = (self._base_dir / sandbox_id).resolve() sandbox_dir.mkdir(parents=True, exist_ok=True) - (sandbox_dir / ".bashrc").touch(exist_ok=True) + bashrc_content = f'export PS1="user@{sandbox_id}:\\w$ "\n' + (sandbox_dir / ".bashrc").write_text(bashrc_content) + (sandbox_dir / ".bash_profile").write_text( + "[ -f ~/.bashrc ] && source ~/.bashrc\n" + ) self._sandboxes[sandbox_id] = sandbox_dir return sandbox_id @@ -138,7 +142,8 @@ async def execute_command( if envs: process_env.update(envs) process_env["HOME"] = str(sandbox_dir) - process_env["USER"] = process_env.get("USER", "user") + process_env["USER"] = "user" + process_env["HOSTNAME"] = sandbox_id process_env["TERM"] = process_env.get("TERM", TERMINAL_TYPE) if background: @@ -237,7 +242,8 @@ async def create_pty( env = os.environ.copy() env["HOME"] = str(sandbox_dir) - env["USER"] = env.get("USER", "user") + env["USER"] = "user" + env["HOSTNAME"] = sandbox_id env["TERM"] = TERMINAL_TYPE cmd = (