From c2ae8c19aa05d28f117be4acaa32bcc0c470cbe6 Mon Sep 17 00:00:00 2001 From: SaladDay <1203511142@qq.com> Date: Thu, 5 Nov 2026 07:21:06 +0000 Subject: [PATCH] Backfill existing Turns in the turn settings migration --- .../core/migrations/000012_turn_settings.sql | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/services/core/migrations/000012_turn_settings.sql b/services/core/migrations/000012_turn_settings.sql index 9818714a2..5565c5fee 100644 --- a/services/core/migrations/000012_turn_settings.sql +++ b/services/core/migrations/000012_turn_settings.sql @@ -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;