summaryrefslogtreecommitdiff
path: root/makima/src/server/handlers/mesh_daemon.rs
diff options
context:
space:
mode:
Diffstat (limited to 'makima/src/server/handlers/mesh_daemon.rs')
-rw-r--r--makima/src/server/handlers/mesh_daemon.rs42
1 files changed, 42 insertions, 0 deletions
diff --git a/makima/src/server/handlers/mesh_daemon.rs b/makima/src/server/handlers/mesh_daemon.rs
index 178e5e1..39b12da 100644
--- a/makima/src/server/handlers/mesh_daemon.rs
+++ b/makima/src/server/handlers/mesh_daemon.rs
@@ -369,6 +369,18 @@ pub enum DaemonMessage {
/// Error message if operation failed
error: Option<String>,
},
+ /// Notification that a branch was created
+ BranchCreated {
+ #[serde(rename = "taskId")]
+ task_id: Option<Uuid>,
+ /// Name of the branch that was created
+ #[serde(rename = "branchName")]
+ branch_name: String,
+ /// Whether the operation succeeded
+ success: bool,
+ /// Error message if operation failed
+ error: Option<String>,
+ },
}
/// Validated daemon authentication result.
@@ -1073,6 +1085,36 @@ async fn handle_daemon_connection(socket: WebSocket, state: SharedState, auth_re
);
}
}
+ Ok(DaemonMessage::BranchCreated { task_id, branch_name, success, error }) => {
+ tracing::info!(
+ task_id = ?task_id,
+ branch_name = %branch_name,
+ success = success,
+ error = ?error,
+ "Branch created notification received"
+ );
+
+ // Broadcast as task output if we have a task_id
+ if let Some(tid) = task_id {
+ let output_text = if success {
+ format!("✓ Branch '{}' created successfully", branch_name)
+ } else {
+ format!("✗ Failed to create branch '{}': {}", branch_name, error.unwrap_or_default())
+ };
+ state.broadcast_task_output(TaskOutputNotification {
+ task_id: tid,
+ owner_id: Some(owner_id),
+ message_type: "system".to_string(),
+ content: output_text,
+ tool_name: None,
+ tool_input: None,
+ is_error: Some(!success),
+ cost_usd: None,
+ duration_ms: None,
+ is_partial: false,
+ });
+ }
+ }
Err(e) => {
tracing::warn!("Failed to parse daemon message: {}", e);
}