summaryrefslogtreecommitdiff
path: root/makima/src/daemon/ws/protocol.rs
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2026-01-30 03:28:40 +0000
committersoryu <soryu@soryu.co>2026-01-30 03:28:40 +0000
commit4c09aa13a50064a4145ef53021490d303e46bc5e (patch)
treed1fa901d97e54a7840e5ac153270bdab66bb8c99 /makima/src/daemon/ws/protocol.rs
parentdac1adb138f532245a36fa16524f1e4fb9990173 (diff)
downloadsoryu-makima/auto-merge-local.tar.gz
soryu-makima/auto-merge-local.zip
Add auto_merge_local option for local-only contractsmakima/auto-merge-local
When local_only=true on a contract, all completion actions are skipped. This adds a new option auto_merge_local that, when enabled along with local_only, will automatically merge completed task changes to the master/main branch locally (without pushing or creating PRs). Changes: - Add auto_merge_local column to contracts table (migration) - Add auto_merge_local field to Contract model and summary - Update CreateContractRequest and UpdateContractRequest structs - Update contract repository create/update functions - Add auto_merge_local to WebSocket protocol StartTask command - Pass auto_merge_local through spawn_task and run_task functions - Modify task manager completion logic: if local_only=true AND auto_merge_local=true, execute 'merge' completion action locally - Update all server handlers to retrieve and pass auto_merge_local - Add TypeScript types to frontend components Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Diffstat (limited to 'makima/src/daemon/ws/protocol.rs')
-rw-r--r--makima/src/daemon/ws/protocol.rs3
1 files changed, 3 insertions, 0 deletions
diff --git a/makima/src/daemon/ws/protocol.rs b/makima/src/daemon/ws/protocol.rs
index c396961..bfe6326 100644
--- a/makima/src/daemon/ws/protocol.rs
+++ b/makima/src/daemon/ws/protocol.rs
@@ -494,6 +494,9 @@ pub enum DaemonCommand {
/// Whether the contract is in local-only mode (skips automatic completion actions).
#[serde(rename = "localOnly", default)]
local_only: bool,
+ /// Whether to auto-merge to target branch locally when local_only mode is enabled.
+ #[serde(rename = "autoMergeLocal", default)]
+ auto_merge_local: bool,
/// Task ID to share worktree with (supervisor's task ID). If Some, use that task's worktree instead of creating a new one.
#[serde(rename = "supervisorWorktreeTaskId", default, skip_serializing_if = "Option::is_none")]
supervisor_worktree_task_id: Option<Uuid>,