summaryrefslogtreecommitdiff
path: root/makima/src/db/models.rs
diff options
context:
space:
mode:
Diffstat (limited to 'makima/src/db/models.rs')
-rw-r--r--makima/src/db/models.rs13
1 files changed, 13 insertions, 0 deletions
diff --git a/makima/src/db/models.rs b/makima/src/db/models.rs
index 8ab3a10..40d4109 100644
--- a/makima/src/db/models.rs
+++ b/makima/src/db/models.rs
@@ -1194,6 +1194,11 @@ pub struct Contract {
/// The long-running supervisor task that orchestrates this contract
#[serde(skip_serializing_if = "Option::is_none")]
pub supervisor_task_id: Option<Uuid>,
+ /// Whether tasks for this contract should run in autonomous loop mode.
+ /// When enabled, tasks will automatically restart with --continue if they exit
+ /// without a COMPLETION_GATE indicating ready: true.
+ #[serde(default)]
+ pub autonomous_loop: bool,
pub version: i32,
pub created_at: DateTime<Utc>,
pub updated_at: DateTime<Utc>,
@@ -1314,6 +1319,11 @@ pub struct CreateContractRequest {
/// - specification: defaults to "research"
#[serde(default)]
pub initial_phase: Option<String>,
+ /// Enable autonomous loop mode for tasks in this contract.
+ /// When enabled, tasks automatically restart with --continue if they exit
+ /// without a COMPLETION_GATE indicating ready: true.
+ #[serde(default)]
+ pub autonomous_loop: Option<bool>,
}
/// Request payload for updating a contract
@@ -1327,6 +1337,9 @@ pub struct UpdateContractRequest {
/// Supervisor task ID for contract orchestration
#[serde(skip_serializing_if = "Option::is_none")]
pub supervisor_task_id: Option<Uuid>,
+ /// Enable or disable autonomous loop mode for tasks in this contract.
+ #[serde(default)]
+ pub autonomous_loop: Option<bool>,
/// Version for optimistic locking
pub version: Option<i32>,
}