20 lines
839 B
SQL
20 lines
839 B
SQL
ALTER TABLE tasks ADD COLUMN state TEXT NOT NULL DEFAULT '';
|
|
ALTER TABLE tasks ADD COLUMN review_requests INTEGER NOT NULL DEFAULT 0;
|
|
UPDATE tasks SET state = CASE
|
|
WHEN tasks.status != 'active' THEN tasks.status
|
|
WHEN tasks.discard_state != '' THEN 'discarding'
|
|
WHEN tasks.merging_by != '' OR tasks.finalizing != '' THEN 'merging'
|
|
ELSE coalesce((
|
|
SELECT CASE
|
|
WHEN s.state != 'idle' THEN s.state
|
|
WHEN s.subagents > 0 THEN 'running'
|
|
WHEN EXISTS (SELECT 1 FROM reviews r WHERE r.task_id = tasks.id AND r.state = 'running') THEN 'reviewing'
|
|
WHEN tasks.review_requests > 0 THEN 'review_pending'
|
|
ELSE 'idle'
|
|
END
|
|
FROM agent_sessions s
|
|
WHERE s.task_id = tasks.id AND s.role != 'reviewer' AND s.state != 'completed'
|
|
ORDER BY s.state = 'running' DESC, s.subagents > 0 DESC, s.created_at DESC LIMIT 1
|
|
), 'no_agent')
|
|
END;
|