01 - Combine warm milk, sugar, and yeast in a large bowl. Let stand for 5 minutes until foamy. Add flour, salt, melted butter, and egg. Knead by hand or mixer for 8–10 minutes until smooth and elastic. Place in a greased bowl, cover, and let rise in a warm place for 1 hour until doubled in size.
02 - Heat butter and olive oil in a large skillet over medium-low heat. Add onions, salt, and pepper. Cook, stirring often, for 25–30 minutes until golden and deeply caramelized. Stir in thyme and balsamic vinegar, cook for 2 more minutes. Remove from heat and let cool.
03 - Combine caramelized onions, Gruyere, and Parmesan in a bowl until evenly distributed.
04 - Punch down the risen dough. On a lightly floured surface, roll out into a 12x18-inch rectangle. Evenly spread the onion-cheese filling over the dough, leaving a 1-inch border.
05 - Starting from the long side, tightly roll up the dough into a log. Pinch the seam to seal. Transfer to a parchment-lined baking sheet and form into a ring, pinching the ends together.
06 - Using kitchen scissors or a sharp knife, cut slits two-thirds of the way through the dough at 2-inch intervals around the ring. Gently turn each section slightly outward to expose the filling.
07 - Cover loosely with plastic wrap and let rise for 30–40 minutes until puffy.
08 - Preheat oven to 350°F. Brush the wreath with beaten egg. Sprinkle with poppy or sesame seeds if desired.
09 - Bake for 30–35 minutes until golden brown and cooked through. Cool slightly. Garnish with fresh thyme if using.
10 - Serve warm or at room temperature.