summaryrefslogtreecommitdiff
path: root/makima/src/server
diff options
context:
space:
mode:
Diffstat (limited to 'makima/src/server')
-rw-r--r--makima/src/server/handlers/mesh_daemon.rs17
-rw-r--r--makima/src/server/state.rs3
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(),