diff --git a/internal/api/terminal.go b/internal/api/terminal.go index 2d56ea6..90a5a12 100644 --- a/internal/api/terminal.go +++ b/internal/api/terminal.go @@ -105,6 +105,12 @@ func (s *Server) handleTerminalWS(w http.ResponseWriter, r *http.Request) { } } + // Ignore invalid shell paths (e.g., single characters from race condition) + if len(shell) <= 1 { + conn.WriteJSON(wsMessage{Type: "error", Data: "invalid shell config"}) + return + } + if _, err := os.Stat(shell); err != nil { conn.WriteJSON(wsMessage{Type: "error", Data: fmt.Sprintf("shell not found: %s", shell)}) return