Fix pos1 longitude key mismatch (lng vs lon) that caused empty weather results for all QSOs. Bump search radius to 300km for sounding coverage. Soundings now show as expandable cards with full elevation profile data.
- Radio context with QSO schema and CSV import script (58K contacts) - Solar index schema, GFZ client, and daily Oban cron worker - LiveView dashboard with QSO table and weather correlation views - Parallelize weather import script using Task.async_stream (10 concurrent workers) - Replace sequential rate_limit sleeps with concurrency-based backpressure - Atomic progress counter for interleave-safe reporting