pub async fn generate_challenger_with_picker(
storage: &Storage,
registry: &AdapterRegistry,
llm: &dyn LlmClient,
picker: &MutatorPicker,
project: &Project,
rng: &mut ChaCha8Rng,
) -> Result<(ConfigId, ExperimentId)>Expand description
Generate a challenger from the current champion using one mutator, persist it as an AgentConfig row with role=Challenger, start a new Experiment with traffic_share=1.0 (v0.2.0 deploys the challenger full-time and compares against the historical champion’s session population), and apply the challenger config to disk via the adapter.
If llm is a NoOpLlmClient (or any client that returns
NoLlmAvailable), pass a picker built via [picker_for_environment(false)]
so we don’t pick the LLM-rewrite mutator and silently fail.