summaryrefslogtreecommitdiff
path: root/makima/src/daemon/ws/protocol.rs
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2026-01-22 22:32:46 +0000
committersoryu <soryu@soryu.co>2026-01-23 01:03:04 +0000
commit1ed362424dafec690f919154f5116471951cda9c (patch)
tree19c7ca9231887394a791223fe32a8ad335a687a8 /makima/src/daemon/ws/protocol.rs
parent265f8cf14fec9d7116d09af49e4b48b357faceda (diff)
downloadsoryu-1ed362424dafec690f919154f5116471951cda9c.tar.gz
soryu-1ed362424dafec690f919154f5116471951cda9c.zip
Add patch checkpointing
Diffstat (limited to 'makima/src/daemon/ws/protocol.rs')
-rw-r--r--makima/src/daemon/ws/protocol.rs16
1 files changed, 16 insertions, 0 deletions
diff --git a/makima/src/daemon/ws/protocol.rs b/makima/src/daemon/ws/protocol.rs
index 3b02b53..ec9b09e 100644
--- a/makima/src/daemon/ws/protocol.rs
+++ b/makima/src/daemon/ws/protocol.rs
@@ -278,6 +278,15 @@ pub enum DaemonMessage {
error: Option<String>,
/// User-provided checkpoint message
message: String,
+ /// Base64-encoded gzip-compressed patch data for recovery
+ #[serde(rename = "patchData", skip_serializing_if = "Option::is_none")]
+ patch_data: Option<String>,
+ /// Commit SHA to apply patch on top of (for recovery)
+ #[serde(rename = "patchBaseSha", skip_serializing_if = "Option::is_none")]
+ patch_base_sha: Option<String>,
+ /// Number of files in the patch
+ #[serde(rename = "patchFilesCount", skip_serializing_if = "Option::is_none")]
+ patch_files_count: Option<i32>,
},
/// Response to CleanupWorktree command.
@@ -387,6 +396,13 @@ pub enum DaemonCommand {
/// Used to inject previous conversation context into the prompt.
#[serde(rename = "conversationHistory", default)]
conversation_history: Option<serde_json::Value>,
+ /// Base64-encoded gzip-compressed patch for worktree recovery.
+ /// Used when resume_session=true and the local worktree is missing.
+ #[serde(rename = "patchData", default, skip_serializing_if = "Option::is_none")]
+ patch_data: Option<String>,
+ /// Commit SHA to apply the patch on top of.
+ #[serde(rename = "patchBaseSha", default, skip_serializing_if = "Option::is_none")]
+ patch_base_sha: Option<String>,
},
/// Pause a running task.