summaryrefslogtreecommitdiff
path: root/makima/src/server/handlers/mesh_daemon.rs
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2026-02-01 00:52:02 +0000
committersoryu <soryu@soryu.co>2026-02-01 00:52:02 +0000
commitc076455ea651a6be3764af7392ff41175ec0bed1 (patch)
treeee30a9055ac2be46379ddf6dd245b069ea26521c /makima/src/server/handlers/mesh_daemon.rs
parent999ecf644f58af7de0b0a36b22a69897d8056a1c (diff)
downloadsoryu-makima/task-task-8958634f-8958634f.tar.gz
soryu-makima/task-task-8958634f-8958634f.zip
[WIP] Heartbeat checkpoint - 2026-02-01 00:52:02 UTCmakima/task-task-8958634f-8958634f
Diffstat (limited to 'makima/src/server/handlers/mesh_daemon.rs')
-rw-r--r--makima/src/server/handlers/mesh_daemon.rs51
1 files changed, 51 insertions, 0 deletions
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<String>,
+ /// Human-readable current activity.
+ #[serde(rename = "currentActivity")]
+ current_activity: Option<String>,
+ /// Progress percentage (0-100).
+ progress: Option<i32>,
+ /// Last LLM response for context restoration.
+ #[serde(rename = "lastLlmResponse")]
+ last_llm_response: Option<String>,
+ /// Task that was just spawned (if save_point is "task_spawn").
+ #[serde(rename = "spawnedTaskId")]
+ spawned_task_id: Option<Uuid>,
+ /// Question ID (if save_point is "question_asked").
+ #[serde(rename = "questionId")]
+ question_id: Option<Uuid>,
+ /// Error message (if state is "error").
+ #[serde(rename = "errorMessage")]
+ error_message: Option<String>,
+ /// Updated conversation history (sent on llm_response save points).
+ #[serde(rename = "conversationHistory")]
+ conversation_history: Option<serde_json::Value>,
+ },
+ /// 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<String>,
+ /// Current activity description (optional).
+ #[serde(rename = "currentActivity")]
+ current_activity: Option<String>,
+ /// Progress percentage (optional).
+ progress: Option<i32>,
+ },
}
/// Validated daemon authentication result.