Files
LWLT-AI/control-plane/migrations/003_terminal_lease_cleanup.sql
2026-07-13 19:57:46 +08:00

19 lines
838 B
SQL

UPDATE tasks
SET lease_owner = NULL,
lease_expires_at = NULL,
updated_at = now()
WHERE status IN ('awaiting_confirmation', 'completed', 'cancelled', 'parse_failed', 'reconciliation_pending')
AND (lease_owner IS NOT NULL OR lease_expires_at IS NOT NULL);
UPDATE task_attempts AS attempt
SET status = CASE WHEN task.status = 'cancelled' THEN 'cancelled' ELSE 'abandoned' END,
error_code = COALESCE(
attempt.error_code,
CASE WHEN task.status = 'cancelled' THEN 'task_cancelled' ELSE 'task_terminal_reconciliation' END
),
finished_at = COALESCE(attempt.finished_at, now())
FROM tasks AS task
WHERE attempt.task_id = task.id
AND attempt.status = 'running'
AND task.status IN ('awaiting_confirmation', 'completed', 'cancelled', 'parse_failed', 'reconciliation_pending');