diff --git a/database.sqlite-shm b/database.sqlite-shm index 6b32c0ee..62204491 100644 Binary files a/database.sqlite-shm and b/database.sqlite-shm differ diff --git a/database.sqlite-wal b/database.sqlite-wal index 23c9ec53..bf4cc808 100644 Binary files a/database.sqlite-wal and b/database.sqlite-wal differ diff --git a/services/terminal-service.js b/services/terminal-service.js index 2d141a3c..bd5f54e4 100644 --- a/services/terminal-service.js +++ b/services/terminal-service.js @@ -67,6 +67,8 @@ class TerminalService { env: process.env }); + console.log(`[TerminalService] PTY spawned with PID: ${pty.pid}, shell: ${shell}`); + // Store terminal info const terminal = { id: terminalId, @@ -140,17 +142,20 @@ class TerminalService { // Handle PTY output - send to client terminal.pty.onData((data) => { + console.log(`[TerminalService] PTY data from ${terminalId}: ${data.replace(/\n/g, '\\n').replace(/\r/g, '\\r')}`); if (ws.readyState === ws.OPEN) { ws.send(JSON.stringify({ type: 'data', data: data })); + } else { + console.log(`[TerminalService] Cannot send PTY data - WebSocket not open (state: ${ws.readyState})`); } }); // Handle PTY exit terminal.pty.onExit(({ exitCode, signal }) => { - console.log(`[TerminalService] Terminal ${terminalId} exited: ${exitCode || signal}`); + console.log(`[TerminalService] PTY EXIT for ${terminalId}: exitCode=${exitCode}, signal=${signal}`); this.logCommand(terminalId, null, `Terminal exited: ${exitCode || signal}`); if (ws.readyState === ws.OPEN) {