diff options
| author | soryu <soryu@soryu.co> | 2026-02-01 00:52:02 +0000 |
|---|---|---|
| committer | soryu <soryu@soryu.co> | 2026-02-01 00:52:02 +0000 |
| commit | c076455ea651a6be3764af7392ff41175ec0bed1 (patch) | |
| tree | ee30a9055ac2be46379ddf6dd245b069ea26521c /makima/src/server/handlers/mesh_daemon.rs | |
| parent | 999ecf644f58af7de0b0a36b22a69897d8056a1c (diff) | |
| download | soryu-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.rs | 51 |
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. |
