From c076455ea651a6be3764af7392ff41175ec0bed1 Mon Sep 17 00:00:00 2001 From: soryu Date: Sun, 1 Feb 2026 00:52:02 +0000 Subject: [WIP] Heartbeat checkpoint - 2026-02-01 00:52:02 UTC --- makima/src/server/handlers/mesh_daemon.rs | 51 +++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) (limited to 'makima/src/server/handlers/mesh_daemon.rs') diff --git a/makima/src/server/handlers/mesh_daemon.rs b/makima/src/server/handlers/mesh_daemon.rs index 4c6a045..b7398a8 100644 --- a/makima/src/server/handlers/mesh_daemon.rs +++ b/makima/src/server/handlers/mesh_daemon.rs @@ -536,6 +536,57 @@ pub enum DaemonMessage { #[serde(rename = "baseSha")] base_sha: String, }, + /// Supervisor state update for crash recovery. + /// Sent periodically or at key save points to persist state. + SupervisorStateUpdate { + /// Task ID of the supervisor. + #[serde(rename = "taskId")] + task_id: Uuid, + /// Contract ID. + #[serde(rename = "contractId")] + contract_id: Uuid, + /// Save point type that triggered this update. + #[serde(rename = "savePoint")] + save_point: String, + /// Current supervisor activity state. + state: Option, + /// Human-readable current activity. + #[serde(rename = "currentActivity")] + current_activity: Option, + /// Progress percentage (0-100). + progress: Option, + /// Last LLM response for context restoration. + #[serde(rename = "lastLlmResponse")] + last_llm_response: Option, + /// Task that was just spawned (if save_point is "task_spawn"). + #[serde(rename = "spawnedTaskId")] + spawned_task_id: Option, + /// Question ID (if save_point is "question_asked"). + #[serde(rename = "questionId")] + question_id: Option, + /// Error message (if state is "error"). + #[serde(rename = "errorMessage")] + error_message: Option, + /// Updated conversation history (sent on llm_response save points). + #[serde(rename = "conversationHistory")] + conversation_history: Option, + }, + /// Supervisor heartbeat for lightweight state updates. + SupervisorHeartbeat { + /// Task ID of the supervisor. + #[serde(rename = "taskId")] + task_id: Uuid, + /// Contract ID. + #[serde(rename = "contractId")] + contract_id: Uuid, + /// Current state (optional). + state: Option, + /// Current activity description (optional). + #[serde(rename = "currentActivity")] + current_activity: Option, + /// Progress percentage (optional). + progress: Option, + }, } /// Validated daemon authentication result. -- cgit v1.2.3