So from my understanding how it works is wasabi clients post UTXO's they want to coinjoin to the coordinator through tor. Then once the coordinator has a large enough set of UTXO's it will then request output addresses and amounts from each client. After that the cooridnator puts together the transaction and requests each client to sign their corresponding transaction.
This is 95% correct. The only difference is that the output registration isn't triggered immediately once a enough UTXOs join, it's triggered at the end of a fixed time period. If there's not enough UTXOs at the end of this time period, then the timer restarts.
Im sure Im missing something but my concern is with tor. Does tor use the same exit node when sending the input UTXO's and output addresses to the coordinator? If so wouldn't that mean the coordinator can deduce that the input UTXO's and output address coming from a specific exit node belong to the same wallet?
Very perceptive question. You are correct that if the same Tor IP address were used to register multiple Bitcoin addresses in the coinjoin transaction then the coordinator could easily link them together. This is why Wasabi uses a separate Tor IP for each input registered and each output registered. So a single client with 10 inputs and 10 outputs in a coinjoin transaction would post these to the coordinator using 20 different IP addresses.