Melt butter with olive oil in a large pot over medium heat. Add onion, carrots, and celery. Cook for 6 to 8 minutes until the onion turns translucent and the carrots begin to soften.
Add garlic and stir for 1 minute until fragrant.
Sprinkle flour over the vegetables and stir constantly for 1 to 2 minutes until absorbed and faintly nutty in smell.
Pour in chicken broth slowly while stirring. Add milk, heavy cream, thyme, rosemary, salt, and pepper. Stir to combine.
Bring to a gentle simmer over medium-high heat, then reduce to medium-low. Simmer uncovered for 10 minutes until the broth thickens enough to coat the back of a spoon.
Add gnocchi. Cook 3 to 4 minutes (shelf-stable) or 2 to 3 minutes (fresh) at a gentle simmer until they float. Do not boil vigorously.
Add shredded chicken and spinach. Cook 2 to 3 minutes until spinach wilts and chicken is heated through.
Taste and adjust salt and pepper. Serve topped with grated parmesan.