This looks promising
This creates 2 different transactions and it's not a CoinJoin, right?
It is not a coinjoin and there are four transactions: (1) the buyer deposits into Swap Address A and (2) the seller deposits into Swap Address B. Then some off-chain communication happens to enable each party to sweep the other's money. Then (3) the seller sweeps the money from Swap Address A and (4) the buyer sweeps the money from Swap Address B.
How does the buyer know that the seller is actually selling fresh sats from a coinbase tx and not just selling an old UTXO with a history?
When #2 happens the buyer can check whether Swap Address B contains the output of a coinbase transaction. If it doesn't, he can just abort and sweep back his money from Swap Address A after a timelock expires. Note that my software does not currently check if the utxo being sold is the output of a coinbase transaction, that is currently up to the buyer to check. (Fixing that is on my to do list.)
Can anyone use this tool just to swap a doxxic change UTXO for a different one? or does it have to be a miner/pool?
Right now the software does not check if the seller is a miner so you can use it to sell your doxxic change. But even when it does check if the seller is a miner, you still might be able to use your doxxic change to buy a coinbase utxo from a miner. It's up to the miner how small of an output they'll create. So if you have a doxxic change output of, say, 15310 sats, a miner might go ahead and do a swap with you.
Excellent work!
Keep it up and let me know when its' ready to test. I've got some small UTXOs that I'd be interested in experimenting with.