From 54c6d409e1d5667f4ab7f63a43e1459e68575c94 Mon Sep 17 00:00:00 2001 From: soryu Date: Tue, 20 Jan 2026 17:19:18 +0000 Subject: Clean contract lifecycle: Add supervisor complete command (#13) * feat: Add contract lifecycle management commands (complete and resume-contract) Add supervisor commands for properly managing contract lifecycle: - `makima supervisor complete` - Mark a contract as complete and stop the supervisor - `makima supervisor resume-contract` - Resume a completed contract (reactivate it) Also adds `api_key` field to TaskConfig for authenticated API calls. This consolidates the lifecycle management features from the contract-lifecycle-cleanup branch. Co-Authored-By: Claude Opus 4.5 * Fix: prevent supervisor auto-start for completed contracts When viewing a completed contract, the supervisor was auto-starting on component mount. This would resurrect completed contracts and cause them to continue running. Changes: - Add contract.status !== 'completed' check to the auto-start condition - Add contract.status to the useEffect dependency array Co-Authored-By: Claude Opus 4.5 * Task completion checkpoint --------- Co-authored-by: Claude Opus 4.5 --- makima/src/daemon/task/manager.rs | 3 +++ 1 file changed, 3 insertions(+) (limited to 'makima/src/daemon/task') diff --git a/makima/src/daemon/task/manager.rs b/makima/src/daemon/task/manager.rs index 80b7039..555cd2a 100644 --- a/makima/src/daemon/task/manager.rs +++ b/makima/src/daemon/task/manager.rs @@ -980,6 +980,8 @@ pub struct TaskConfig { pub bubblewrap: Option, /// API URL for spawned tasks (HTTP endpoint for makima CLI). pub api_url: String, + /// API key for making authenticated API calls. + pub api_key: String, /// Interval in seconds between heartbeat commits (WIP checkpoints). /// Set to 0 to disable. Default: 300 (5 minutes). pub heartbeat_commit_interval_secs: u64, @@ -998,6 +1000,7 @@ impl Default for TaskConfig { disable_verbose: false, bubblewrap: None, api_url: "https://api.makima.jp".to_string(), + api_key: String::new(), heartbeat_commit_interval_secs: 300, // 5 minutes } } -- cgit v1.2.3