Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 15 additions & 2 deletions services/core/migrations/000012_turn_settings.sql
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
-- +goose Up
ALTER TABLE turns ADD COLUMN settings jsonb NOT NULL CHECK (jsonb_typeof(settings) = 'object');
ALTER TABLE environment_input_reservations ADD COLUMN settings jsonb NOT NULL CHECK (jsonb_typeof(settings) = 'object');
-- Existing Turns and reservations bind their Session's current settings, as sessions.TurnSettingsOf projects them.
CREATE TEMPORARY TABLE bound_settings AS
SELECT id AS session_id, jsonb_build_object(
'model', coalesce(configuration #>> '{agent,model}', ''),
'reasoning_effort', configuration #> '{agent,reasoning,effort}',
'service_tier', coalesce(configuration #>> '{agent,service_tier}', ''),
'review', coalesce(configuration ->> 'review', 'none')) AS settings
FROM sessions;
ALTER TABLE turns ADD COLUMN settings jsonb;
UPDATE turns SET settings = b.settings FROM bound_settings b WHERE b.session_id = turns.session_id;
ALTER TABLE turns ALTER COLUMN settings SET NOT NULL, ADD CONSTRAINT turns_settings_check CHECK (jsonb_typeof(settings) = 'object');
ALTER TABLE environment_input_reservations ADD COLUMN settings jsonb;
UPDATE environment_input_reservations SET settings = b.settings FROM bound_settings b WHERE b.session_id = environment_input_reservations.session_id;
ALTER TABLE environment_input_reservations ALTER COLUMN settings SET NOT NULL, ADD CONSTRAINT environment_input_reservations_settings_check CHECK (jsonb_typeof(settings) = 'object');
DROP TABLE bound_settings;
Loading