diff --git a/apps/api/src/services/terminal_session.py b/apps/api/src/services/terminal_session.py index dc50a68..adbbd79 100644 --- a/apps/api/src/services/terminal_session.py +++ b/apps/api/src/services/terminal_session.py @@ -17,16 +17,17 @@ class TerminalSession: async def start(self) -> None: """Start the docker exec process with a shell.""" + # Use docker exec -it to allocate a proper TTY + # This gives bash a real terminal and avoids ioctl/job control errors self.process = await asyncio.create_subprocess_exec( "docker", "exec", - "-i", + "-it", "-e", "TERM=xterm", self.container_id, - "/bin/bash", - "-i", - "-l", + "bash", + "-il", stdin=asyncio.subprocess.PIPE, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.STDOUT,