2) Halve the squash lengthwise and remove the seeds. Brush the cut sides with the reserved garlic oil and season with salt and pepper. Place cut-side up in a baking dish and roast until tender, 1 hour. Reduce the oven to 140C/Gas 1. Holding the squash with a towel and using a fork, pull off the flesh in strands and place in the baking dish. Season with salt and pepper, cover with foil and keep warm in the oven.
3) Heat 1 tbsp of the olive oil in a large nonstick skillet over a medium-high heat. Add the mushrooms, season with salt and cook, stirring, until browned, 10 minutes. Transfer to a plate.
4) Add the remaining 1 tbsp of olive oil to the skillet, add the tomatoes and toss until they blister. Add 1 tbsp of the agrodolce sauce and a splash of water; cover and cook until the tomatoes burst, 5 minutes. Return the mushrooms to the pan and warm through.
5) Meanwhile, bring 2.5cm of water to a boil in a saucepan over medium-high heat. Season the fish with salt and pepper, then place in a bamboo or collapsible steamer over the water; cover and steam until almost cooked through, 5 to 6 minutes. Remove from the heat and keep covered to finish cooking, 2 to 4 minutes.
6) Place a fish fillet on each of 4 plates; add the squash, mushrooms and tomatoes. Drizzle with the agrodolce sauce. Serve with extra sauce and the caramelized garlic.