diff --git a/apps/agent-worker/src/terminal.ts b/apps/agent-worker/src/terminal.ts index 397012f..1778e87 100644 --- a/apps/agent-worker/src/terminal.ts +++ b/apps/agent-worker/src/terminal.ts @@ -82,7 +82,13 @@ const bridge = async (ws: WebSocket, jobId: string) => { try { const container = await ensureTerminalContainer(jobId, workspace.workdir); exec = await container.exec({ - Cmd: ['/bin/bash', '-l'], + // Reattach a persistent tmux session across reconnects when tmux is + // available; otherwise fall back to a plain login shell. + Cmd: [ + '/bin/bash', + '-lc', + 'exec tmux new-session -A -s spoon 2>/dev/null || exec bash -l', + ], AttachStdin: true, AttachStdout: true, AttachStderr: true,