-- Records why an alert left the firing state: 'alertmanager' when a resolved -- webhook set it, 'expiry' when the sweeper inferred it from staleness. -- NULL for firing alerts and for rows that predate this migration. ALTER TABLE alerts ADD COLUMN resolution_source TEXT;