Heat the olive oil in a heavy-bottomed 4-quart pot over medium heat. Add the onion and garlic; cook until softened.
Add the broth, chicken breasts, carrot, celery, Italian seasoning, and bay leaf. Bring to a boil, reduce to a controlled simmer, and cook for 20 minutes, until the chicken reaches 165°F.
Remove and shred or chop the chicken. Return the broth to a simmer, add the gnocchi, and simmer for 10 minutes, until tender.
Stir in the half-and-half, shredded chicken, and spinach. Simmer for 3–4 minutes, until the spinach wilts and the chicken is heated through.
Whisk the cornstarch with the cold water. Add the slurry gradually until the soup is creamy and spoonable; the entire amount may not be needed. Discard the bay leaf, season with salt and pepper, and serve.