class RailsAiAdmin::Assistant::Coordinator

Persistent per-chat inbox (plan §6.8, SPIKE-03). Web requests and Surface confirmations only admit a turn by key; workers claim the lowest active turn under a lease with a fencing generation and run RubyLLM outside any transaction. The human message is persisted once per turn, so a retried worker continues the same conversation instead of repeating it. Provider calls can still repeat (and bill) after a crash; business writes never happen here, only through a human-confirmed Surface.