diff options
Diffstat (limited to 'makima/src/server/handlers/mesh_daemon.rs')
| -rw-r--r-- | makima/src/server/handlers/mesh_daemon.rs | 42 |
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); } |
