huskies: merge 987
This commit is contained in:
@@ -87,27 +87,36 @@ pub(super) fn tool_get_merge_status(args: &Value, ctx: &AppContext) -> Result<St
|
||||
.map_err(|e| format!("Serialization error: {e}"))
|
||||
}
|
||||
crate::agents::merge::MergeJobStatus::Completed(report) => {
|
||||
let status_msg = if report.success && report.gates_passed && report.conflicts_resolved {
|
||||
"Merge complete: conflicts were auto-resolved and all quality gates passed. Story moved to done and worktree cleaned up."
|
||||
} else if report.success && report.gates_passed {
|
||||
"Merge complete: all quality gates passed. Story moved to done and worktree cleaned up."
|
||||
} else if report.had_conflicts && !report.conflicts_resolved {
|
||||
"Merge failed: conflicts detected that could not be auto-resolved. Merge was aborted — master is untouched. Call report_merge_failure with the conflict details so the human can resolve them. Do NOT manually move the story file or call accept_story."
|
||||
} else if report.success && !report.gates_passed {
|
||||
"Merge committed but quality gates failed. Review gate_output and fix issues before re-running."
|
||||
} else {
|
||||
"Merge failed. Review gate_output for details. Call report_merge_failure to record the failure. Do NOT manually move the story file or call accept_story."
|
||||
};
|
||||
use crate::agents::merge::MergeResult;
|
||||
let status_msg = crate::service::merge::format_merge_status_message(report);
|
||||
let (success, had_conflicts, conflicts_resolved, conflict_details, gates_passed, gate_output) =
|
||||
match &report.result {
|
||||
MergeResult::Success { conflicts_resolved, conflict_details, gate_output } => {
|
||||
(true, *conflicts_resolved, *conflicts_resolved, conflict_details.clone(), true, gate_output.clone())
|
||||
}
|
||||
MergeResult::Conflict { details, output } => {
|
||||
(false, true, false, details.clone(), false, output.clone())
|
||||
}
|
||||
MergeResult::GateFailure { output, .. } => {
|
||||
(false, false, false, None, false, output.clone())
|
||||
}
|
||||
MergeResult::NoCommits { output } => {
|
||||
(false, false, false, None, false, output.clone())
|
||||
}
|
||||
MergeResult::Other { output, conflict_details } => {
|
||||
(false, false, false, conflict_details.clone(), false, output.clone())
|
||||
}
|
||||
};
|
||||
|
||||
serde_json::to_string_pretty(&json!({
|
||||
"story_id": story_id,
|
||||
"status": "completed",
|
||||
"success": report.success,
|
||||
"had_conflicts": report.had_conflicts,
|
||||
"conflicts_resolved": report.conflicts_resolved,
|
||||
"conflict_details": report.conflict_details,
|
||||
"gates_passed": report.gates_passed,
|
||||
"gate_output": report.gate_output,
|
||||
"success": success,
|
||||
"had_conflicts": had_conflicts,
|
||||
"conflicts_resolved": conflicts_resolved,
|
||||
"conflict_details": conflict_details,
|
||||
"gates_passed": gates_passed,
|
||||
"gate_output": gate_output,
|
||||
"worktree_cleaned_up": report.worktree_cleaned_up,
|
||||
"story_archived": report.story_archived,
|
||||
"message": status_msg,
|
||||
|
||||
Reference in New Issue
Block a user