2e3456b21b
Build and Push Docker Images / Build Backend (FastAPI) (push) Successful in 18s
Build and Push Docker Images / Build Frontend (Next.js) (push) Successful in 55s
Build and Push Docker Images / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Build and Push Docker Images / Trigger Portainer Update (push) Successful in 1s
The useEffect that auto-selects the Primary/Secondary tab was calling setComparePhase() without updating selectedMetric. When a URL carries a primary metric (e.g. metric=rwm_expected_pct) but the shortlisted schools are secondary, the tab would switch to Secondary while the metric stayed at rwm_expected_pct — which is null for all secondary schools, causing every card to show "–" and requiring a manual tab toggle to fix. Fix: after determining the phase from school data, check whether the current metric belongs to that phase's category list. If not, reset to the phase default (attainment_8_score for secondary, rwm_expected_pct for primary). A metric that already fits the phase (e.g. the URL already carried attainment_8_score) is preserved unchanged. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>