In a large pot or Dutch oven, heat the butter and olive oil over medium heat until melted.
Add the diced onion, carrots, and celery. Cook for 5–6 minutes, stirring occasionally, until softened.
Stir in the minced garlic and cook for 30 seconds until fragrant.
Sprinkle the flour evenly over the vegetables and stir constantly for 1–2 minutes to cook out the raw flour taste (this creates the creamy base).
Slowly pour in the chicken broth while stirring to prevent lumps. Bring to a gentle simmer.
Add the shredded chicken and let the soup simmer for 5 minutes to develop flavor.
Stir in the half & half and reduce heat to low. Do not boil.
Add the gnocchi and cook for 3–4 minutes, or until they are tender and begin to float.
Stir in the spinach and cook for 1–2 minutes until wilted.
Season with salt, pepper, and thyme. Taste and adjust seasoning as needed.
Serve warm with grated Parmesan cheese if desired.