huskies: merge 1015
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
//! [`merge_settings_into_toml`] (the pure TOML key-updating logic used by the
|
||||
//! write path in `mod.rs` + `io.rs`).
|
||||
|
||||
use crate::agents::AgentModel;
|
||||
use crate::config::ProjectConfig;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
@@ -17,8 +18,8 @@ use serde::{Deserialize, Serialize};
|
||||
pub struct ProjectSettings {
|
||||
/// Project-wide default QA mode: "server", "agent", or "human". Default: "server".
|
||||
pub default_qa: String,
|
||||
/// Default model for coder-stage agents (e.g. "sonnet").
|
||||
pub default_coder_model: Option<String>,
|
||||
/// Default model for coder-stage agents (e.g. `Sonnet`).
|
||||
pub default_coder_model: Option<AgentModel>,
|
||||
/// Maximum number of concurrent coder-stage agents.
|
||||
pub max_coders: Option<u32>,
|
||||
/// Maximum retries per story per pipeline stage before marking as blocked. Default: 2.
|
||||
@@ -89,7 +90,7 @@ pub fn merge_settings_into_toml(
|
||||
Some(v) => {
|
||||
table.insert(
|
||||
"default_coder_model".to_string(),
|
||||
toml::Value::String(v.clone()),
|
||||
toml::Value::String(v.as_str().to_string()),
|
||||
);
|
||||
}
|
||||
None => {
|
||||
@@ -180,7 +181,7 @@ mod tests {
|
||||
fn settings_from_config_copies_all_scalar_fields() {
|
||||
let cfg = ProjectConfig {
|
||||
default_qa: "human".to_string(),
|
||||
default_coder_model: Some("opus".to_string()),
|
||||
default_coder_model: Some(AgentModel::Opus),
|
||||
max_coders: Some(4),
|
||||
max_retries: 5,
|
||||
base_branch: Some("main".to_string()),
|
||||
@@ -196,7 +197,7 @@ mod tests {
|
||||
|
||||
let s = settings_from_config(&cfg);
|
||||
assert_eq!(s.default_qa, "human");
|
||||
assert_eq!(s.default_coder_model, Some("opus".to_string()));
|
||||
assert_eq!(s.default_coder_model, Some(AgentModel::Opus));
|
||||
assert_eq!(s.max_coders, Some(4));
|
||||
assert_eq!(s.max_retries, 5);
|
||||
assert_eq!(s.base_branch, Some("main".to_string()));
|
||||
@@ -247,7 +248,7 @@ mod tests {
|
||||
let mut val = empty_toml();
|
||||
let s = ProjectSettings {
|
||||
default_qa: "server".to_string(),
|
||||
default_coder_model: Some("sonnet".to_string()),
|
||||
default_coder_model: Some(AgentModel::Sonnet),
|
||||
max_coders: Some(2),
|
||||
max_retries: 2,
|
||||
base_branch: Some("main".to_string()),
|
||||
@@ -273,7 +274,7 @@ mod tests {
|
||||
// First set them
|
||||
let s_with = ProjectSettings {
|
||||
default_qa: "server".to_string(),
|
||||
default_coder_model: Some("sonnet".to_string()),
|
||||
default_coder_model: Some(AgentModel::Sonnet),
|
||||
max_coders: Some(3),
|
||||
max_retries: 2,
|
||||
base_branch: Some("master".to_string()),
|
||||
@@ -372,7 +373,7 @@ path = "."
|
||||
let mut val = empty_toml();
|
||||
let s = ProjectSettings {
|
||||
default_qa: "human".to_string(),
|
||||
default_coder_model: Some("opus".to_string()),
|
||||
default_coder_model: Some(AgentModel::Opus),
|
||||
max_coders: Some(2),
|
||||
max_retries: 4,
|
||||
base_branch: Some("develop".to_string()),
|
||||
|
||||
Reference in New Issue
Block a user