diff --git a/src/agents/orchestrator/root.rs b/src/agents/orchestrator/root.rs index 9e8c518..8ddb0e2 100644 --- a/src/agents/orchestrator/root.rs +++ b/src/agents/orchestrator/root.rs @@ -741,11 +741,19 @@ impl Agent for RootAgent { } // Simple task: add remaining nodes - root_tree.add_child( + // Check if there's a model override - show it immediately on the node + let requested_model = task.analysis().requested_model.clone(); + let model_selector_node = if let Some(ref model) = requested_model { + AgentTreeNode::new("model-selector", "ModelSelector", "Model Selector", &format!("Using: {}", model)) + .with_budget(10, 0) + .with_status("running") + .with_model(model) + } else { AgentTreeNode::new("model-selector", "ModelSelector", "Model Selector", "Selecting optimal model") .with_budget(10, 0) .with_status("running") - ); + }; + root_tree.add_child(model_selector_node); ctx.emit_tree(root_tree.clone()); ctx.emit_phase("selecting_model", Some("Choosing optimal model..."), Some("RootAgent")); @@ -782,10 +790,11 @@ impl Agent for RootAgent { default_model }; - // Update model selector node + // Update model selector node with final selected model if let Some(node) = root_tree.children.iter_mut().find(|n| n.id == "model-selector") { node.status = "completed".to_string(); - node.selected_model = Some(selected_model); + node.selected_model = Some(selected_model.clone()); + node.description = format!("Using: {}", selected_model); node.budget_spent = 3; } diff --git a/src/api/control.rs b/src/api/control.rs index ef3b325..03f5813 100644 --- a/src/api/control.rs +++ b/src/api/control.rs @@ -394,7 +394,11 @@ pub async fn post_message( state .control .cmd_tx - .send(ControlCommand::UserMessage { id, content, model: req.model }) + .send(ControlCommand::UserMessage { + id, + content, + model: req.model, + }) .await .map_err(|_| { (