huskies: merge 1176 bug base_branch fallback hardcodes master instead of auto-detecting

This commit is contained in:
Huskies Agent
2026-07-16 16:22:46 +00:00
parent a4e2d4bc25
commit efd0097f76
11 changed files with 301 additions and 50 deletions
+6 -3
View File
@@ -593,6 +593,7 @@ impl ProjectConfig {
/// If `agent_name` is None, uses the first (default) agent.
pub fn render_agent_args(
&self,
project_root: &Path,
worktree_path: &str,
story_id: &str,
agent_name: Option<&str>,
@@ -607,9 +608,11 @@ impl ProjectConfig {
.ok_or_else(|| "No agents configured".to_string())?,
};
let bb = base_branch
.or(self.base_branch.as_deref())
.unwrap_or("master");
let bb_owned = crate::worktree::resolve_base_branch(
project_root,
base_branch.or(self.base_branch.as_deref()),
);
let bb = bb_owned.as_str();
let aname = agent.name.as_str();
let render = |s: &str| {
s.replace("{{worktree_path}}", worktree_path)
+49 -7
View File
@@ -129,7 +129,13 @@ max_turns = 0
fn render_agent_args_default() {
let config = ProjectConfig::default();
let (cmd, args, prompt) = config
.render_agent_args("/tmp/wt", "42_foo", None, None)
.render_agent_args(
std::path::Path::new("/tmp/wt"),
"/tmp/wt",
"42_foo",
None,
None,
)
.unwrap();
assert_eq!(cmd, "claude");
assert!(args.is_empty());
@@ -155,7 +161,13 @@ max_turns = 30
let config = ProjectConfig::parse(toml_str).unwrap();
let (cmd, args, prompt) = config
.render_agent_args("/tmp/wt", "42_foo", Some("supervisor"), Some("master"))
.render_agent_args(
std::path::Path::new("/tmp/wt"),
"/tmp/wt",
"42_foo",
Some("supervisor"),
Some("master"),
)
.unwrap();
assert_eq!(cmd, "claude");
assert!(args.contains(&"--model".to_string()));
@@ -173,7 +185,13 @@ max_turns = 30
// Render for coder
let (_, coder_args, _) = config
.render_agent_args("/tmp/wt", "42_foo", Some("coder"), Some("master"))
.render_agent_args(
std::path::Path::new("/tmp/wt"),
"/tmp/wt",
"42_foo",
Some("coder"),
Some("master"),
)
.unwrap();
assert!(coder_args.contains(&"sonnet".to_string()));
assert!(coder_args.contains(&"30".to_string()));
@@ -184,7 +202,13 @@ max_turns = 30
#[test]
fn render_agent_args_not_found() {
let config = ProjectConfig::default();
let result = config.render_agent_args("/tmp/wt", "42_foo", Some("nonexistent"), None);
let result = config.render_agent_args(
std::path::Path::new("/tmp/wt"),
"/tmp/wt",
"42_foo",
Some("nonexistent"),
None,
);
assert!(result.is_err());
assert!(result.unwrap_err().contains("No agent named 'nonexistent'"));
}
@@ -576,7 +600,13 @@ prompt = "git difftool {{base_branch}}...HEAD"
"#;
let config = ProjectConfig::parse(toml_str).unwrap();
let (_, _, prompt) = config
.render_agent_args("/tmp/wt", "42_foo", None, None)
.render_agent_args(
std::path::Path::new("/tmp/wt"),
"/tmp/wt",
"42_foo",
None,
None,
)
.unwrap();
assert!(
prompt.contains("develop"),
@@ -595,7 +625,13 @@ prompt = "git difftool {{base_branch}}...HEAD"
"#;
let config = ProjectConfig::parse(toml_str).unwrap();
let (_, _, prompt) = config
.render_agent_args("/tmp/wt", "42_foo", None, Some("feature-x"))
.render_agent_args(
std::path::Path::new("/tmp/wt"),
"/tmp/wt",
"42_foo",
None,
Some("feature-x"),
)
.unwrap();
assert!(
prompt.contains("feature-x"),
@@ -674,7 +710,13 @@ disallowed_tools = ["ScheduleWakeup", "SomeTool"]
let config = ProjectConfig::parse(toml_str).unwrap();
let (_, args, _) = config
.render_agent_args("/tmp/wt", "42_foo", None, None)
.render_agent_args(
std::path::Path::new("/tmp/wt"),
"/tmp/wt",
"42_foo",
None,
None,
)
.unwrap();
assert!(
args.contains(&"--disallowedTools".to_string()),