Hardened Supabase transient handling

Public routes that read from Supabase now classify transient errors and retry with bounded backoff before degrading to snapshot fallback, removing the flapping seen during long ingest jobs.