If your signature used SIGHASH_ALL then the signature covers all outputs so changing even 1 bit in the outputs would invalidate your signature and transaction would become invalid and won’t be accepted by the network. So no, nobody can cheat you in this case.
They can add their inputs, and add their own signatures, and for transaction to become valid they need to provide enough funding to balance the transaction amounts.
Adding each new input and signature will change the transaction’s TXID, so you won’t know the TXID until the final transaction is constructed and mined. This is only a problem if you want to have a pre-signed TX depend on this transaction. Changing the TXID would break the dependency. This is why malleability was a problem for e.g. Lightning Network application – because it requires chains of 2 pre-signed transactions, not just 1 pre-signed transaction. More details here: Second-Party Transaction Malleability in book “mastering bitcoin” third edition











