huskies: merge 1015

This commit is contained in:
dave
2026-05-13 23:33:30 +00:00
parent 69b207872a
commit 5ed1438ab9
22 changed files with 227 additions and 73 deletions
+6 -5
View File
@@ -4,6 +4,7 @@
pub mod agent_name;
pub use agent_name::AgentName;
use crate::agents::AgentModel;
use crate::slog;
use serde::Deserialize;
use std::collections::HashSet;
@@ -22,12 +23,12 @@ pub struct ProjectConfig {
/// Per-story `qa` front matter overrides this. Default: "server".
#[serde(default = "default_qa")]
pub default_qa: String,
/// Default model for coder-stage agents (e.g. "sonnet").
/// Default model for coder-stage agents (e.g. `Sonnet`).
/// When set, `find_free_agent_for_stage` only considers coder agents whose
/// model matches this value, so opus agents are only used when explicitly
/// requested via story front matter `agent:` field.
#[serde(default)]
pub default_coder_model: Option<String>,
pub default_coder_model: Option<AgentModel>,
/// Maximum number of concurrent coder-stage agents.
/// When set, `auto_assign_available_work` will not start more than this many
/// coder agents at once. Stories wait in `2_current/` until a slot frees up.
@@ -240,7 +241,7 @@ pub struct AgentConfig {
#[serde(default = "default_agent_prompt")]
pub prompt: String,
#[serde(default)]
pub model: Option<String>,
pub model: Option<AgentModel>,
#[serde(default)]
pub allowed_tools: Option<Vec<String>>,
#[serde(default)]
@@ -312,7 +313,7 @@ struct LegacyProjectConfig {
#[serde(default = "default_qa")]
default_qa: String,
#[serde(default)]
default_coder_model: Option<String>,
default_coder_model: Option<AgentModel>,
#[serde(default)]
max_coders: Option<usize>,
#[serde(default = "default_max_retries")]
@@ -583,7 +584,7 @@ impl ProjectConfig {
// Append structured CLI flags
if let Some(ref model) = agent.model {
args.push("--model".to_string());
args.push(model.clone());
args.push(model.as_str().to_string());
}
if let Some(ref tools) = agent.allowed_tools
&& !tools.is_empty()