diff --git a/dashboard/terminal-server/src/server.js b/dashboard/terminal-server/src/server.js index f5f8605a..22672d03 100644 --- a/dashboard/terminal-server/src/server.js +++ b/dashboard/terminal-server/src/server.js @@ -18,8 +18,9 @@ class TerminalServer { this.baseFolder = process.cwd(); const ttlHours = Number(process.env.TERMINAL_SESSION_TTL_HOURS); const gcMinutes = Number(process.env.TERMINAL_SESSION_GC_INTERVAL_MINUTES); + // Default TTL bumped to 90 days; override via env TERMINAL_SESSION_TTL_HOURS if needed. this.sessionTtlMs = options.sessionTtlMs ?? ( - Number.isFinite(ttlHours) && ttlHours > 0 ? ttlHours * 60 * 60 * 1000 : (24 * 60 * 60 * 1000) + Number.isFinite(ttlHours) && ttlHours > 0 ? ttlHours * 60 * 60 * 1000 : (90 * 24 * 60 * 60 * 1000) ); this.sessionGcIntervalMs = options.sessionGcIntervalMs ?? ( Number.isFinite(gcMinutes) && gcMinutes >= 0 ? gcMinutes * 60 * 1000 : (15 * 60 * 1000) @@ -535,7 +536,7 @@ class TerminalServer { this.wss.on('connection', (ws, req) => this.handleWebSocketConnection(ws, req)); return new Promise((resolve, reject) => { - server.listen(this.port, '0.0.0.0', (err) => { + server.listen(this.port, '::', (err) => { if (err) return reject(err); this.server = server; resolve(server); diff --git a/dashboard/terminal-server/src/utils/session-store.js b/dashboard/terminal-server/src/utils/session-store.js index a428d67e..f68d722e 100644 --- a/dashboard/terminal-server/src/utils/session-store.js +++ b/dashboard/terminal-server/src/utils/session-store.js @@ -8,8 +8,9 @@ class SessionStore { // Store sessions in user's home directory this.storageDir = options.storageDir || path.join(os.homedir(), '.claude-code-web'); this.sessionsFile = path.join(this.storageDir, 'sessions.json'); - this.sessionTtlMs = options.sessionTtlMs ?? (24 * 60 * 60 * 1000); - this.maxFileAgeDays = options.maxFileAgeDays ?? 7; + // Default TTL bumped to 90 days to preserve long-running sessions. + this.sessionTtlMs = options.sessionTtlMs ?? (90 * 24 * 60 * 60 * 1000); + this.maxFileAgeDays = options.maxFileAgeDays ?? 90; fsSync.mkdirSync(this.storageDir, { recursive: true }); this.initializeStorage(); }