-- Migration 019: how a merged transcript came about (ADR-034). -- -- When two engines transcribed the same audio and a local model chose between their -- disagreements, this records the status, the exact counts, and a bounded list of the -- contested spots (changed or unsure, each with a position and both readings) so the -- page can say what was done and the user can check the uncertain spots against the -- audio. NULL means a single engine: no second opinion, and the page must not claim one. -- -- It lives on the already-FORCE'd, RLS-scoped uploaded_transcripts, so the exact-set -- isolation test is unaffected. The contested spots hold fragments of the private -- transcript, which is why they are here and nowhere else. ALTER TABLE uploaded_transcripts ADD COLUMN reconciliation JSONB;