Heat the olive oil in a large dutch oven over high heat. Add the onion, carrots, and celery, and cook until the veggies are softened, about 5 minutes. Stir in the garlic and cook 1 minute longer.
Add the sausage, breaking it up into the veggies as it cooks. This will take about 7-8 minutes. Add the tomato paste, basil, oregano, thyme, and chili flakes and cook 5 minutes, then pour in the wine. Add the crushed tomatoes and broth. Season with salt and pepper to taste (I used 1/2 tsp of each at this stage). Cook 10-20 minutes until thickened slightly.
Stir in the milk or cream, and the pesto, and cook until warmed through, 10 minutes.
Add the cooked pasta to the pot with the two cheeses, and finally wilt the spinach in. Ladle the soup into bowls and serve topped with parmesan and fresh herbs. Enjoy!