Add the missing transactionality assertion to the existing reread coverage: a
batch that would change one companion and add another but also contains a
duplicate name is rejected as a whole. The process set and configs stay
untouched and no fork or kill happens, proving nothing is applied on validation
failure.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>