-- Recording dropout recovery: a refresh/crash mid-recording leaves the meeting
-- resumable — the next session records a NEW part (audio_p1.raw, audio_p2.raw…
-- alongside audio.raw) because a fresh MediaRecorder can't append to the old
-- container. The worker joins parts at transcription time and reports each
-- part's duration; the viewer uses those to seek playback across parts.
-- part_durations = JSON array of seconds, one entry per part, set at ingest.
-- Live PG < 9.5: plain ADD COLUMN. Also folded into 2026_07_13_meetings_combined.sql.

ALTER TABLE meetings ADD COLUMN part_durations text;
