Warm the olive oil and melt the butter in a large pot over medium heat.
Sauté onion, celery, and carrots with a pinch of salt until softened, 5–6 minutes.
Stir in the garlic and cook until fragrant, about 30 seconds.
Sprinkle in the flour and cook, stirring, 1 minute to form a light roux.
Slowly whisk in the chicken broth until smooth. Add thyme, Italian seasoning, most of the salt, and the pepper. Simmer 5 minutes.
Fold in the shredded chicken and simmer another 5 minutes to heat through.
Add the gnocchi and cook at a gentle simmer until tender and the soup slightly thickens, 4–5 minutes.
Reduce heat to low. Stir in the half-and-half and spinach. Warm until the spinach wilts, 2–3 minutes. Do not boil.
Taste and adjust with remaining salt if needed. Ladle into bowls and finish with Parmesan.