diff options
| author | soryu <soryu@soryu.co> | 2026-02-01 01:40:18 +0000 |
|---|---|---|
| committer | soryu <soryu@soryu.co> | 2026-02-01 01:40:18 +0000 |
| commit | 164791ce4715c556b090745c4fca84166f31e958 (patch) | |
| tree | 2928bde2c93eba607b816c7cc58f890a7839b40d | |
| parent | d0b9edbe470f6bee134b5bc52108c77b05f28f87 (diff) | |
| download | soryu-makima/contract-management-phase4.tar.gz soryu-makima/contract-management-phase4.zip | |
[WIP] Heartbeat checkpoint - 2026-02-01 01:40:18 UTCmakima/contract-management-phase4
| -rw-r--r-- | makima/src/daemon/api/contract.rs | 16 | ||||
| -rw-r--r-- | makima/src/daemon/cli/contract.rs | 6 |
2 files changed, 11 insertions, 11 deletions
diff --git a/makima/src/daemon/api/contract.rs b/makima/src/daemon/api/contract.rs index 119c0ba..6ba9e51 100644 --- a/makima/src/daemon/api/contract.rs +++ b/makima/src/daemon/api/contract.rs @@ -376,9 +376,9 @@ impl ApiClient { params.push("worktrees=true".to_string()); } let query = params.join("&"); - let result = self.get(&format!("/api/v1/contracts/cleanup?{}", query)).await?; + let result: JsonValue = self.get(&format!("/api/v1/contracts/cleanup?{}", query)).await?; serde_json::from_value(result.0) - .map_err(|e| ApiError::Other(format!("Failed to parse cleanup preview: {}", e))) + .map_err(|e| ApiError::Parse(format!("Failed to parse cleanup preview: {}", e))) } /// Archive completed/failed contracts older than the threshold. @@ -393,9 +393,9 @@ impl ApiClient { status_filter: Some(vec!["completed".to_string(), "failed".to_string()]), dry_run: Some(dry_run), }; - let result = self.post("/api/v1/contracts/batch", &req).await?; + let result: JsonValue = self.post("/api/v1/contracts/batch", &req).await?; serde_json::from_value(result.0) - .map_err(|e| ApiError::Other(format!("Failed to parse archive response: {}", e))) + .map_err(|e| ApiError::Parse(format!("Failed to parse archive response: {}", e))) } /// Delete archived contracts older than the threshold. @@ -410,9 +410,9 @@ impl ApiClient { status_filter: Some(vec!["archived".to_string()]), dry_run: Some(dry_run), }; - let result = self.post("/api/v1/contracts/batch", &req).await?; + let result: JsonValue = self.post("/api/v1/contracts/batch", &req).await?; serde_json::from_value(result.0) - .map_err(|e| ApiError::Other(format!("Failed to parse delete response: {}", e))) + .map_err(|e| ApiError::Parse(format!("Failed to parse delete response: {}", e))) } /// Clean up orphaned worktrees. @@ -423,9 +423,9 @@ impl ApiClient { status_filter: None, dry_run: Some(dry_run), }; - let result = self.post("/api/v1/contracts/batch", &req).await?; + let result: JsonValue = self.post("/api/v1/contracts/batch", &req).await?; serde_json::from_value(result.0) - .map_err(|e| ApiError::Other(format!("Failed to parse worktree cleanup response: {}", e))) + .map_err(|e| ApiError::Parse(format!("Failed to parse worktree cleanup response: {}", e))) } /// List contracts with filtering options. diff --git a/makima/src/daemon/cli/contract.rs b/makima/src/daemon/cli/contract.rs index 9d6784d..39d41e3 100644 --- a/makima/src/daemon/cli/contract.rs +++ b/makima/src/daemon/cli/contract.rs @@ -94,11 +94,11 @@ pub struct CreateFileArgs { #[derive(Args, Debug, Clone)] pub struct ContractsCommonArgs { /// API URL - #[arg(long, env = "MAKIMA_API_URL", default_value = "https://api.makima.jp", global = true)] + #[arg(long, env = "MAKIMA_API_URL", default_value = "https://api.makima.jp")] pub api_url: String, - /// API key for authentication - #[arg(long, env = "MAKIMA_API_KEY", global = true)] + /// API key for authentication (can also be set via MAKIMA_API_KEY or config file) + #[arg(long, env = "MAKIMA_API_KEY", default_value = "")] pub api_key: String, } |
