Cook the noodles: Bring a pot of salted water to a boil. Cook noodles until just shy of al dente (1–2 minutes less than package).
Drain and set aside.
Sauté the aromatics: In a skillet, heat olive oil over medium. Add onion, carrot, and celery. Cook 5–7 minutes until softened.
Stir in garlic and cook 30 seconds.
Brown the meat: Add ground beef. Season with salt and pepper. Cook, breaking it up, until browned and no longer pink.
Drain excess fat if needed.
Build the sauce: Stir in tomato paste; cook 1 minute. Add crushed tomatoes, milk, broth, oregano, thyme, and red pepper flakes if using. Simmer 8–10 minutes, stirring, until slightly thickened.
Taste and adjust salt and pepper.
Prep the air fryer: Preheat to 360°F (180°C) for 3–5 minutes. Lightly grease an air fryer-safe baking dish that fits your basket or tray.
Combine in the dish: In a large bowl, mix noodles with the Bolognese. Fold in half the cherry tomatoes.
If the mixture looks dry, add a splash of broth or milk. Transfer to the greased dish.
Top with cheese and tomatoes: Sprinkle mozzarella and Parmesan evenly over the top. Scatter the remaining cherry tomatoes, cut side up, for a juicy, blistered finish.
Air fry: Cook at 360°F (180°C) for 10–14 minutes, until the cheese is melted and lightly browned and the sauce is bubbling at the edges.
If your air fryer runs hot, check at 8 minutes.
Rest and garnish: Let the bake sit 5 minutes to set. Finish with chopped basil or parsley. Serve warm.