Files
byre/internal/store/migrations/072-add-review-workflows.sql
T

34 lines
1.4 KiB
SQL
Raw Normal View History

ALTER TABLE projects ADD COLUMN review_workflow TEXT NOT NULL DEFAULT '';
ALTER TABLE reviews ADD COLUMN stage TEXT NOT NULL DEFAULT '';
ALTER TABLE reviews ADD COLUMN definition TEXT NOT NULL DEFAULT '';
UPDATE reviews SET stage = 'Review' WHERE state != 'skipped' AND stage = '';
UPDATE events SET payload = json_set(payload, '$.stage', CASE json_extract(payload, '$.state') WHEN 'skipped' THEN '' ELSE 'Review' END)
WHERE kind IN ('review.started', 'review.finished', 'review.finding') AND json_extract(payload, '$.stage') IS NULL;
UPDATE events SET payload = json_set(payload, '$.input.reviewer', 'Review')
WHERE kind = 'agent.tool_call' AND json_extract(payload, '$.name') LIKE '%respond_to_finding'
AND json_extract(payload, '$.input.reviewer') IS NULL;
INSERT OR IGNORE INTO workflows (name, definition)
SELECT 'Review', json_object(
'description', 'One reviewer looks over all of the task''s work.',
'kind', 'review',
'steps', json_array(json_object(
'stage', 'Review',
'model', u.review_model,
'prompt', 'Look for bugs, security problems, missing or wrong tests, and anything that doesn''t do what the task asked.'
))
)
FROM projects p JOIN users u ON u.login = p.created_by
ORDER BY p.created_at
LIMIT 1;
UPDATE projects SET review_workflow = 'Review'
WHERE review_workflow = '' AND EXISTS (SELECT 1 FROM workflows WHERE name = 'Review');
ALTER TABLE users DROP COLUMN review_model;
ALTER TABLE users DROP COLUMN second_review_model;