summaryrefslogtreecommitdiff
path: root/makima/src
diff options
context:
space:
mode:
Diffstat (limited to 'makima/src')
-rw-r--r--makima/src/db/models.rs4
-rw-r--r--makima/src/db/repository.rs17
-rw-r--r--makima/src/orchestration/directive.rs14
3 files changed, 4 insertions, 31 deletions
diff --git a/makima/src/db/models.rs b/makima/src/db/models.rs
index bfb8bf3..b874df8 100644
--- a/makima/src/db/models.rs
+++ b/makima/src/db/models.rs
@@ -1999,10 +1999,6 @@ pub struct CreateDirectiveStepRequest {
/// Optional order ID to auto-link this step to an order.
#[serde(default)]
pub order_id: Option<Uuid>,
- /// Optional: create a contract for this step instead of a standalone task.
- /// Valid values: "simple", "specification", "execute"
- #[serde(default)]
- pub contract_type: Option<String>,
/// Optional: attach this step to a specific directive document. When
/// omitted, the repository falls back to the directive's most-recently
/// updated active document (if any).
diff --git a/makima/src/db/repository.rs b/makima/src/db/repository.rs
index d453f99..b97943f 100644
--- a/makima/src/db/repository.rs
+++ b/makima/src/db/repository.rs
@@ -2642,9 +2642,7 @@ pub async fn get_task_conversation(
// Anonymous Task Cleanup Functions
// =============================================================================
-/// Delete stale anonymous tasks (tasks with contract_id = NULL) that:
-/// - Are in a terminal state (done, failed, merged)
-/// - Are older than the specified number of days
+/// Delete stale terminal tasks not linked to a directive step.
///
/// Returns the number of deleted tasks.
pub async fn cleanup_stale_anonymous_tasks(
@@ -2654,7 +2652,7 @@ pub async fn cleanup_stale_anonymous_tasks(
let result = sqlx::query(
r#"
DELETE FROM tasks
- WHERE contract_id IS NULL
+ WHERE directive_step_id IS NULL
AND status IN ('done', 'failed', 'merged')
AND created_at < NOW() - INTERVAL '1 day' * $1
"#,
@@ -3324,7 +3322,6 @@ pub async fn create_directive_step(
) -> Result<DirectiveStep, sqlx::Error> {
let generation = req.generation.unwrap_or(1);
let order_id = req.order_id;
- let contract_type = req.contract_type.clone();
// Resolve the document this step belongs to. If the caller supplied one,
// honour it; otherwise pick the directive's most recently-updated
@@ -3342,9 +3339,9 @@ pub async fn create_directive_step(
r#"
INSERT INTO directive_steps (
directive_id, name, description, task_plan, depends_on,
- order_index, generation, contract_type, directive_document_id
+ order_index, generation, directive_document_id
)
- VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)
+ VALUES ($1, $2, $3, $4, $5, $6, $7, $8)
RETURNING *
"#,
)
@@ -3355,7 +3352,6 @@ pub async fn create_directive_step(
.bind(&req.depends_on)
.bind(req.order_index)
.bind(generation)
- .bind(&contract_type)
.bind(&directive_document_id)
.fetch_one(pool)
.await?;
@@ -4568,8 +4564,6 @@ pub struct StepForDispatch {
pub order_index: i32,
pub generation: i32,
pub depends_on: Vec<Uuid>,
- /// Optional contract type — when set, orchestrator creates a contract instead of a task.
- pub contract_type: Option<String>,
// Directive fields
pub owner_id: Uuid,
pub directive_title: String,
@@ -4596,7 +4590,6 @@ pub async fn get_ready_steps_for_dispatch(
ds.order_index,
ds.generation,
ds.depends_on,
- ds.contract_type,
d.owner_id,
d.title AS directive_title,
d.repository_url,
@@ -4607,7 +4600,6 @@ pub async fn get_ready_steps_for_dispatch(
JOIN directives d ON d.id = ds.directive_id
WHERE ds.status = 'ready'
AND ds.task_id IS NULL
- AND ds.contract_id IS NULL
AND d.status = 'active'
ORDER BY ds.order_index
"#,
@@ -4679,7 +4671,6 @@ pub async fn get_running_steps_with_tasks(
JOIN tasks t ON t.id = ds.task_id
WHERE ds.status = 'running'
AND ds.task_id IS NOT NULL
- AND ds.contract_id IS NULL
"#,
)
.fetch_all(pool)
diff --git a/makima/src/orchestration/directive.rs b/makima/src/orchestration/directive.rs
index 3d00a8f..ada6b4b 100644
--- a/makima/src/orchestration/directive.rs
+++ b/makima/src/orchestration/directive.rs
@@ -121,20 +121,6 @@ impl DirectiveOrchestrator {
let steps = repository::get_ready_steps_for_dispatch(&self.pool).await?;
for step in steps {
- // contract_type used to spawn a heavyweight contract+supervisor
- // for a step. The contracts subsystem has been removed (Phase 5);
- // we now treat any contract-backed step as a plain standalone
- // task. The column itself is left in place for one more release
- // so old data still reads cleanly, but it has no effect.
- if step.contract_type.is_some() {
- tracing::warn!(
- step_id = %step.step_id,
- directive_id = %step.directive_id,
- contract_type = ?step.contract_type,
- "Step has legacy contract_type; falling back to standalone task spawn"
- );
- }
-
tracing::info!(
step_id = %step.step_id,
directive_id = %step.directive_id,