From 165a7729a1bf92c3b6f8842ca6010b181341a310 Mon Sep 17 00:00:00 2001 From: Nikolas Syring Date: Fri, 19 Dec 2025 13:30:58 +0100 Subject: [PATCH] feat: Add auto-connect and auto-start toggles for sessions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add global settings system (autoConnect, autoStart) with localStorage persistence - Auto-connect: Automatically establish WebSocket connections on page load - Auto-start: Automatically start Claude sessions after connecting (requires auto-connect) - Add two new toggles in Sidebar under Working Directory section - Auto-start toggle is disabled/grayed out when auto-connect is off - Disabling auto-connect also disables auto-start automatically 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- frontend/src/components/Sidebar.jsx | 63 +++++++++++++- frontend/src/contexts/SessionContext.jsx | 106 +++++++++++++++++++++-- 2 files changed, 163 insertions(+), 6 deletions(-) diff --git a/frontend/src/components/Sidebar.jsx b/frontend/src/components/Sidebar.jsx index fe404d1..358f161 100644 --- a/frontend/src/components/Sidebar.jsx +++ b/frontend/src/components/Sidebar.jsx @@ -44,6 +44,8 @@ export function Sidebar({ open, onToggle }) { stopClaudeSession, clearMessages, updateSessionConfig, + settings, + updateSettings, } = useSessionManager(); const { user, authEnabled, logout, isAdmin } = useAuth(); @@ -102,6 +104,22 @@ export function Sidebar({ open, onToggle }) { updateSessionConfig(focusedSessionId, { resumeOnStart: !resumeSession }); }, [focusedSessionId, resumeSession, updateSessionConfig]); + // Handle autoConnect toggle + const handleToggleAutoConnect = useCallback(() => { + const newAutoConnect = !settings?.autoConnect; + // If disabling autoConnect, also disable autoStart + if (!newAutoConnect) { + updateSettings({ autoConnect: false, autoStart: false }); + } else { + updateSettings({ autoConnect: true }); + } + }, [settings?.autoConnect, updateSettings]); + + // Handle autoStart toggle + const handleToggleAutoStart = useCallback(() => { + updateSettings({ autoStart: !settings?.autoStart }); + }, [settings?.autoStart, updateSettings]); + // Browse directories on host const browsePath = useCallback(async (path) => { if (!currentHost) return; @@ -320,7 +338,7 @@ export function Sidebar({ open, onToggle }) { )} {/* Resume toggle */} -
+