In a large saucepan over medium heat, saute onions in butter and olive oil, stirring occasionally until onions are a deep golden brown, about 20 minutes.
Remove onions from pan and heat remaining 1 tablespoon olive oil over medium-high heat. Add beef and saute several minutes, stirring occasionally until beef is no longer pink. Add garlic and cook 1 minute until fragrant.
Pour wine over beef and use a wooden spoon to scrape up any browned bits on bottom of pan. Add caramelized onions, potatoes, bay leaf, beef broth, and thyme to pan and bring to a simmer over medium-high heat. Reduce heat to medium-low and let simmer covered 20-25 minutes until potatoes are tender, stirring occasionally. Remove bay leaf and season with salt and pepper to taste.
Lay french bread in a single layer on a baking sheet and top with shredded swiss cheese. Broil slices under high heat 2-3 minutes until toasted and cheese is melted.
Ladle soup into individual serving bowls and top each with a toasted bread slice. Serve immediately and enjoy!