PR Checks / Frontend Typecheck + Tests (pull_request) Successful in 9m41s
PR Checks / Backend Smoke (pull_request) Successful in 7s
PR Checks / Build Backend (no push) (pull_request) Successful in 16s
PR Checks / Build Frontend (no push) (pull_request) Successful in 45s
PR Checks / Build Pipeline (no push) (pull_request) Successful in 10s
PR Checks / AI Code Review (Claude) (pull_request) Successful in 47s
The compare page's phase tabs put all-through schools (which carry KS4 data) on the secondary tab, so comparing an all-through school with a pure primary splits them across tabs and only the active tab renders its link. The test picked the first two 'primary' search hits without guaranteeing same phase, so it flaked whenever a search returned an all-through school first (e.g. URN 137306). Now selects two pure-Primary URNs via the API — deterministic and data-invariant. Verified against staging: was a 15.6s timeout, now passes in ~1.8s. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0146VHeLAWjDVE2B5uU67jCB