diff options
Diffstat (limited to 'makima/src/server')
| -rw-r--r-- | makima/src/server/handlers/mesh_daemon.rs | 17 | ||||
| -rw-r--r-- | makima/src/server/state.rs | 3 |
2 files changed, 20 insertions, 0 deletions
diff --git a/makima/src/server/handlers/mesh_daemon.rs b/makima/src/server/handlers/mesh_daemon.rs index 139db70..e5f0a81 100644 --- a/makima/src/server/handlers/mesh_daemon.rs +++ b/makima/src/server/handlers/mesh_daemon.rs @@ -2488,6 +2488,23 @@ async fn handle_daemon_connection(socket: WebSocket, state: SharedState, auth_re } } } + Ok(DaemonMessage::WorktreeDiffResult { task_id, success, diff, error }) => { + tracing::debug!( + task_id = %task_id, + success = success, + "Worktree diff result received" + ); + + // Fulfill pending worktree diff request if any + if let Some((_, tx)) = state.pending_worktree_diff.remove(&task_id) { + let _ = tx.send(crate::server::state::WorktreeDiffResponse { + task_id, + success, + diff: diff.unwrap_or_default(), + error, + }); + } + } Err(e) => { tracing::warn!("Failed to parse daemon message: {}", e); } diff --git a/makima/src/server/state.rs b/makima/src/server/state.rs index 83ac2e8..1f7b264 100644 --- a/makima/src/server/state.rs +++ b/makima/src/server/state.rs @@ -675,6 +675,8 @@ pub struct AppState { pub pending_worktree_info: DashMap<Uuid, oneshot::Sender<WorktreeInfoResponse>>, /// Pending task diff requests awaiting daemon response (keyed by task_id) pub pending_task_diff: DashMap<Uuid, oneshot::Sender<TaskDiffResult>>, + /// Pending worktree diff requests awaiting daemon response (keyed by task_id) + pub pending_worktree_diff: DashMap<Uuid, oneshot::Sender<WorktreeDiffResponse>>, /// Pending worktree commit requests awaiting daemon response (keyed by task_id) pub pending_worktree_commit: DashMap<Uuid, oneshot::Sender<WorktreeCommitResponse>>, /// Lazily-loaded TTS engine (initialized on first Speak connection) @@ -759,6 +761,7 @@ impl AppState { jwt_verifier, pending_worktree_info: DashMap::new(), pending_task_diff: DashMap::new(), + pending_worktree_diff: DashMap::new(), pending_worktree_commit: DashMap::new(), tts_engine: OnceCell::new(), daemon_reauth_status: DashMap::new(), |
