- buildRelayPayload now uses config.domain for local users instead of empty string, so the relay receiver can resolve the user - Fixed canonical_pair_id backfill: SQLite NULL || ':' || x = NULL, so use COALESCE(home_user_id, id) instead of concatenation