diff options
Diffstat (limited to 'makima/src/server/state.rs')
| -rw-r--r-- | makima/src/server/state.rs | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/makima/src/server/state.rs b/makima/src/server/state.rs index 5c5e24f..83ac2e8 100644 --- a/makima/src/server/state.rs +++ b/makima/src/server/state.rs @@ -194,6 +194,16 @@ pub struct SupervisorQuestionResponse { pub responded_at: chrono::DateTime<chrono::Utc>, } +/// Worktree diff response from daemon +#[derive(Debug, Clone, serde::Serialize)] +#[serde(rename_all = "camelCase")] +pub struct WorktreeDiffResponse { + pub task_id: Uuid, + pub success: bool, + pub diff: String, + pub error: Option<String>, +} + /// Worktree info response from daemon #[derive(Debug, Clone, serde::Serialize)] #[serde(rename_all = "camelCase")] @@ -211,6 +221,26 @@ pub struct WorktreeInfoResponse { pub error: Option<String>, } +/// Task diff result from daemon +#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct TaskDiffResult { + pub task_id: Uuid, + pub success: bool, + pub diff: Option<String>, + pub error: Option<String>, +} + +/// Worktree commit response from daemon +#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct WorktreeCommitResponse { + pub task_id: Uuid, + pub success: bool, + pub commit_sha: Option<String>, + pub error: Option<String>, +} + /// Command sent from server to daemon. #[derive(Debug, Clone, serde::Serialize)] #[serde(tag = "type", rename_all = "camelCase")] @@ -491,6 +521,13 @@ pub enum DaemonCommand { task_id: Uuid, }, + /// Commit changes in a task worktree + CommitWorktree { + #[serde(rename = "taskId")] + task_id: Uuid, + message: Option<String>, + }, + /// Create a git checkpoint (stage changes, commit, record stats) CreateCheckpoint { #[serde(rename = "taskId")] @@ -636,6 +673,10 @@ pub struct AppState { pub jwt_verifier: Option<JwtVerifier>, /// Pending worktree info requests awaiting daemon response (keyed by task_id) 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 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) pub tts_engine: OnceCell<Box<dyn TtsEngine>>, /// Daemon reauth status storage (keyed by (daemon_id, request_id)) @@ -717,6 +758,8 @@ impl AppState { tool_keys: DashMap::new(), jwt_verifier, pending_worktree_info: DashMap::new(), + pending_task_diff: DashMap::new(), + pending_worktree_commit: DashMap::new(), tts_engine: OnceCell::new(), daemon_reauth_status: DashMap::new(), } |
