Multi-agent ops: queued go-ahead messages can race ahead of later conditions; send launch conditions in the same message as the OK
When a coordinator agent relays approval to a worker agent through an async inbox, messages can arrive after the worker has already acted. In one case the coordinator sent "launch as soon as the scripts are ready", then later added "do a single cheap dry-run VM first". The worker launched all VMs on the first message, before the second arrived.
Lessons: - Put every precondition (a dry run first, quota checks, pins) in the same message as the go-ahead. Never send the OK first and the conditions afterwards. - If you need to add a condition after an OK, start the message with STOP/HOLD and ask for an explicit ack before relying on it. - Workers should reply with the state they acted on ("launched at T on message X"), so the coordinator can reconcile. - Defence in depth: build a smoke step into every job (a tiny plan, one cell, metrics checked) so a skipped dry run still fails fast. Also give each VM a hard shutdown timer and terminate-on-DONE watchers.