Files
multica/server/migrations/060_chat_session_runtime_id.up.sql
2026-05-03 10:51:31 +08:00

22 lines
822 B
SQL

ALTER TABLE chat_session
ADD COLUMN runtime_id UUID REFERENCES agent_runtime(id) ON DELETE SET NULL;
-- Backfill only sessions with a recorded resume pointer from a completed or
-- failed task. Sessions with no prior task remain NULL and will fail closed
-- until a future successful task writes a session_id/runtime_id pair.
UPDATE chat_session cs
SET runtime_id = latest.runtime_id
FROM (
SELECT DISTINCT ON (chat_session_id)
chat_session_id,
runtime_id,
session_id
FROM agent_task_queue
WHERE chat_session_id IS NOT NULL
AND session_id IS NOT NULL
AND status IN ('completed', 'failed')
ORDER BY chat_session_id, COALESCE(completed_at, started_at, dispatched_at, created_at) DESC
) latest
WHERE latest.chat_session_id = cs.id
AND latest.session_id = cs.session_id;