From 1ed362424dafec690f919154f5116471951cda9c Mon Sep 17 00:00:00 2001 From: soryu Date: Thu, 22 Jan 2026 22:32:46 +0000 Subject: Add patch checkpointing --- makima/src/daemon/ws/protocol.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'makima/src/daemon/ws/protocol.rs') 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, /// 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, + /// Commit SHA to apply patch on top of (for recovery) + #[serde(rename = "patchBaseSha", skip_serializing_if = "Option::is_none")] + patch_base_sha: Option, + /// Number of files in the patch + #[serde(rename = "patchFilesCount", skip_serializing_if = "Option::is_none")] + patch_files_count: Option, }, /// 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, + /// 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, + /// Commit SHA to apply the patch on top of. + #[serde(rename = "patchBaseSha", default, skip_serializing_if = "Option::is_none")] + patch_base_sha: Option, }, /// Pause a running task. -- cgit v1.2.3