diff options
| author | soryu <soryu@soryu.co> | 2026-01-30 03:28:40 +0000 |
|---|---|---|
| committer | soryu <soryu@soryu.co> | 2026-01-30 03:28:40 +0000 |
| commit | 4c09aa13a50064a4145ef53021490d303e46bc5e (patch) | |
| tree | d1fa901d97e54a7840e5ac153270bdab66bb8c99 /makima/src/daemon/ws/protocol.rs | |
| parent | dac1adb138f532245a36fa16524f1e4fb9990173 (diff) | |
| download | soryu-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.rs | 3 |
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>, |
