tudor
228eb214f5
Merge pull request 'fix(admissions): state distance in miles throughout, never mixed' ( #105 ) from fix/standardise-distance-units into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 13s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 51s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Failing after 1m28s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Reviewed-on: #105
2026-08-20 19:39:18 +00:00
tudor
ffe7e04951
Merge pull request 'feat(admissions): publish the latest cut-off only, holding history back' ( #104 ) from feat/latest-cutoff-only into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 19s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 50s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Failing after 1m29s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 13s
Reviewed-on: #104
2026-08-20 17:51:18 +00:00
tudor
50b599a09b
Merge pull request 'fix(admissions): move the cut-off detail into its own section' ( #103 ) from fix/admissions-section-height into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 13s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 52s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Failing after 1m29s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Reviewed-on: #103
2026-08-20 14:03:01 +00:00
tudor
8bf6145a73
Merge pull request 'feat(admissions): add the cut-off history, map and postcode check' ( #102 ) from feat/last-distance-offered-full into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 20s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 51s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 1m14s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Reviewed-on: #102
2026-08-17 07:51:14 +00:00
tudor
5a71f54d94
Merge pull request 'feat(admissions): show the last distance offered where councils publish it' ( #101 ) from feat/last-distance-offered into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 43s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 51s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 2m53s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 3m15s
Reviewed-on: #101
2026-08-16 12:21:24 +00:00
tudor
5156a85bd1
Merge pull request 'chore: drop the hero byline, and refresh a figure in the UX audit notes' ( #100 ) from chore/byline-removal-and-audit-figure into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 12s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 50s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 1m5s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Reviewed-on: #100
2026-08-15 09:25:59 +00:00
tudor
38acc76555
Merge pull request 'fix(charts): make the national-average marker visible on both templates' ( #99 ) from fix/chart-marker-contrast into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 13s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 49s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 16s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 1m3s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 13s
Reviewed-on: #99
2026-08-15 08:56:40 +00:00
tudor
c7e0c2eac7
Merge pull request 'feat(home): swap in the higher-fidelity hero artwork' ( #98 ) from feat/hero-artwork-v2 into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 13s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 51s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 59s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Reviewed-on: #98
2026-08-15 08:56:33 +00:00
tudor
d5f3fdf0f9
Merge pull request 'feat(home): add a first-person byline under the hero search' ( #97 ) from feat/hero-byline into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 13s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 51s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 1m1s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Reviewed-on: #97
2026-08-15 08:00:47 +00:00
tudor
153b26a32f
Merge pull request 'fix(home): stop implying we are official, and fix the mobile hero and search' ( #96 ) from fix/hero-mobile-and-wording into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 12s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 50s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 56s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Reviewed-on: #96
2026-08-14 22:28:33 +00:00
tudor
e373241d51
Merge pull request 'fix(e2e): assert the brand lockup and touch icon as they are actually built' ( #95 ) from fix/e2e-brand-assertions into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 12s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 51s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 1m2s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 11s
Reviewed-on: #95
2026-08-14 22:28:10 +00:00
tudor
7f4dfa2748
Merge pull request 'fix(home): art-direct the hero's fallback path, and declare sharp' ( #94 ) from fix/hero-fallback-and-sharp into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 13s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 50s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Failing after 1m12s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Reviewed-on: #94
2026-08-14 21:28:13 +00:00
tudor
0466986195
Merge pull request 'feat(home): use the supplied hero artwork instead of a drawn one' ( #93 ) from feat/hero-artwork into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 13s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 53s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Failing after 1m14s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Reviewed-on: #93
2026-08-14 20:41:46 +00:00
tudor
f1819e9c4d
Merge pull request 'fix(home): correct what the landing page claims, and give it one rhythm' ( #92 ) from fix/homepage-truth-and-rhythm-main into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 13s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 51s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 0s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Failing after 1m13s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Reviewed-on: #92
2026-08-14 18:18:53 +00:00
tudor
6b117dd26c
Merge pull request 'feat(brand): use the supplied logo artwork instead of a reconstruction' ( #90 ) from feat/brand-logo-artwork into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 42s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 53s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Failing after 1m42s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 2m0s
Reviewed-on: #90
2026-08-08 21:41:47 +00:00
tudor
eecb84fb35
Merge pull request 'feat(brand): adopt the schoolcompare identity across the site' ( #89 ) from feat/schoolcompare-brand into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 12s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 49s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Failing after 1m6s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 13s
Reviewed-on: #89
2026-08-07 17:58:55 +00:00
tudor
f31f6f8404
Merge pull request 'fix(design): correct the font assertion (serif$ matched sans-serif) and make the Leaflet overrides win' ( #88 ) from fix/leaflet-specificity-and-font-assertion into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 15s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 57s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 1m8s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 13s
Reviewed-on: #88
2026-08-06 14:47:05 +00:00
tudor
91b49f1a59
Merge pull request 'fix(design): resolve the font tokens — staging was rendering entirely in Times' ( #87 ) from fix/font-cascade-and-map-palette into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 13s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 53s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Failing after 58s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Reviewed-on: #87
2026-08-06 12:52:34 +00:00
tudor
f43a8ecb69
Merge pull request 'feat(design): adopt the Cohort identity — palette, type, mark and dark theme' ( #86 ) from design/cohort-identity into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 12s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 54s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Failing after 1m1s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Reviewed-on: #86
2026-08-06 11:36:02 +00:00
tudor
c298a29b61
Merge pull request 'fix(detail): restore the shell's mobile header/nav CSS' ( #85 ) from perf/server-client-split into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 46s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 55s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 2s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 1m12s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 2m13s
Reviewed-on: #85
2026-08-06 09:33:34 +00:00
tudor
5f961bf7f4
Merge pull request 'perf(detail): render school detail sections on the server' ( #84 ) from perf/server-client-split into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 13s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 57s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Failing after 1m23s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 2m6s
Reviewed-on: #84
2026-08-02 21:03:32 +00:00
tudor
cab7b4fe91
Merge pull request 'feat(detail): move religious character into header details + mobile reveal' ( #83 ) from feat/detail-header-details-reveal into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 14s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 52s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 47s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 14s
Reviewed-on: #83
2026-07-24 12:15:14 +00:00
tudor
8cf2ac47c1
Merge pull request 'feat(detail): surface GIAS identity/contact details, drop unwired sections' ( #82 ) from feat/detail-gias-fields-remove-unwired into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 23s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 1m37s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 2m33s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 14s
Reviewed-on: #82
2026-07-24 10:56:34 +00:00
tudor
59b5f3f163
Merge pull request 'feat(ui): viewport-aware InfoPopover replaces broken metric tooltips' ( #81 ) from feat/info-popover-tooltip into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 14s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 53s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 5m2s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 14s
Reviewed-on: #81
2026-07-22 14:48:13 +00:00
tudor
598ba9af4e
Merge pull request 'fix(compare): a no-results school no longer blanks the trend chart' ( #80 ) from fix/compare-null-year-blanks-chart into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 14s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 58s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 2m49s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 13s
Reviewed-on: #80
2026-07-22 14:23:25 +00:00
tudor
2f038285f6
Merge pull request 'feat(security): allow analytics subdomain to iframe the site' ( #79 ) from feat/allow-analytics-iframe-embed into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 15s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 53s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 1m15s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 14s
Reviewed-on: #79
2026-07-21 21:52:34 +00:00
tudor
d02a323cdc
Merge pull request 'fix(detail): give Results Over Time chart more height on desktop' ( #78 ) from fix/detail-trend-chart-taller into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 14s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 58s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 1m13s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 14s
Reviewed-on: #78
2026-07-21 21:08:34 +00:00
tudor
7e3096c881
Merge pull request 'feat(analytics): load Umami heatmap recorder' ( #77 ) from feat/umami-heatmap-recorder into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 15s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 54s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 47s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 13s
Reviewed-on: #77
2026-07-21 15:06:04 +00:00
tudor
3132f07af2
Merge pull request 'fix(detail): compare each SATs bar to its own national benchmark' ( #76 ) from fix/sats-per-level-national into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 20s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 51s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 44s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 14s
Reviewed-on: #76
2026-07-21 13:56:55 +00:00
tudor
388b496cc5
Merge pull request 'feat(admissions): surface easy-to-miss deadlines as callout boxes' ( #75 ) from fix/rankings-admissions-accuracy into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 13s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 51s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 44s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 13s
Reviewed-on: #75
2026-07-21 11:27:20 +00:00
tudor
5981916b82
Merge pull request 'fix(rankings,admissions): correct education-accuracy audit findings' ( #74 ) from fix/rankings-admissions-accuracy into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 14s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 50s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 44s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 14s
Reviewed-on: #74
2026-07-21 11:16:14 +00:00
tudor
af23fbf27e
Merge pull request 'fix(home): correct education/Ofsted claims on the landing page' ( #73 ) from fix/homepage-education-accuracy into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 14s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 51s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 43s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 14s
Reviewed-on: #73
2026-07-21 09:04:57 +00:00
tudor
ca4fc647a5
Merge pull request 'fix(detail): let the special-school note span the full container width' ( #72 ) from fix/special-note-full-width into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 13s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 55s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 43s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 14s
Reviewed-on: #72
2026-07-20 21:53:27 +00:00
tudor
e4c8b86fe7
Merge pull request 'fix(detail): align Ofsted Report Card grade chips' ( #71 ) from fix/report-card-chip-alignment into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 14s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 52s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 0s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 44s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 13s
Reviewed-on: #71
2026-07-20 21:32:45 +00:00
tudor
993822d769
Merge pull request 'fix: don’t portray special schools as failing the mainstream benchmark' ( #70 ) from fix/special-schools-not-failing into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 14s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 53s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 7s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Failing after 3m40s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 14s
Reviewed-on: #70
2026-07-20 21:14:57 +00:00
tudor
4e316b4e38
Merge pull request 'fix(detail): label the phase of all-through admissions figures (Batch F review fix)' ( #69 ) from fix/detail-allthrough-admissions-phase into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 14s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 52s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 0s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Failing after 56s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 14s
Reviewed-on: #69
2026-07-20 16:18:44 +00:00
tudor
5e370d09f1
Merge pull request 'fix(detail): render both phases for all-through schools (Batch E)' ( #68 ) from fix/detail-all-through into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 14s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 48s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Failing after 56s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 14s
Reviewed-on: #68
2026-07-20 12:02:08 +00:00
tudor
9c93c3d9c2
Merge pull request 'fix(detail): gap-honest year axis on the detail-page trend charts (Batch D)' ( #67 ) from fix/detail-chart-truthfulness into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 14s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 56s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 0s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 44s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 14s
Reviewed-on: #67
2026-07-20 11:42:48 +00:00
tudor
31ae13451a
Merge pull request 'fix(detail): banded admissions + plain-English Progress 8 (Batch C)' ( #66 ) from fix/detail-inclusion-admissions into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 15s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 49s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 42s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 14s
Reviewed-on: #66
2026-07-20 11:11:39 +00:00
tudor
452ec77449
Merge pull request 'fix(detail): 'England average' provenance labelling (Batch B)' ( #65 ) from fix/detail-provenance-anchoring into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 13s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 48s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 43s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 13s
Reviewed-on: #65
2026-07-20 07:52:55 +00:00
tudor
aa87fa917d
Merge pull request 'fix(detail): Ofsted sentinel codes, sixth form, carried-forward labels (Batch A)' ( #64 ) from fix/detail-ofsted-correctness into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 14s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 49s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 42s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 13s
Reviewed-on: #64
2026-07-20 06:21:06 +00:00
tudor
a2c63b3cda
Merge pull request 'fix(list/map): report-card schools badged as Report Card, not their old grade' ( #63 ) from fix/list-map-report-card-signal into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 21s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 54s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 41s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 13s
Reviewed-on: #63
2026-07-18 20:28:19 +00:00
tudor
74bdbebd57
Merge pull request 'fix(detail): render & correctly date Ofsted report cards' ( #62 ) from fix/detail-report-card-render-date into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 14s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 54s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 19s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 40s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 13s
Reviewed-on: #62
2026-07-18 18:13:25 +00:00
tudor
b05f3bebc7
Merge pull request 'fix(ci): promotion E2E-gate check uses Actions token, not REGISTRY_TOKEN (403)' ( #61 ) from fix/promote-status-token into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 14s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 54s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 44s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Reviewed-on: #61
2026-07-18 15:25:28 +00:00
tudor
2ac26acf91
Merge pull request 'style(compare): shorten Ofsted link text to 'Ofsted page'' ( #60 ) from fix/ofsted-link-text into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 13s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 52s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 0s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 41s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 13s
Reviewed-on: #60
2026-07-18 14:20:09 +00:00
tudor
e0d5a9969e
Merge pull request 'style(compare): enlarge per-school name label in mobile section cards' ( #59 ) from fix/mobile-cell-name-size into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 14s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 49s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 41s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 14s
Reviewed-on: #59
2026-07-18 14:09:02 +00:00
tudor
6d3a203699
Merge pull request 'fix(compare): anchor grade-5 & EBacc rows; restore secondary-button outline' ( #58 ) from fix/secondary-anchors-button-affordance into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 14s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 53s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 0s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 40s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 13s
Reviewed-on: #58
2026-07-18 07:29:51 +00:00
tudor
a1128bd801
Merge pull request 'fix(compare): keep add-school sheet above the mobile keyboard (VisualViewport)' ( #57 ) from fix/modal-keyboard-viewport into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 14s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 55s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 42s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Reviewed-on: #57
2026-07-18 07:09:03 +00:00
tudor
bdd9bef349
Merge pull request 'fix(compare): repair mobile add-school modal + re-apply stranded chart-height fix' ( #56 ) from fix/mobile-compare-polish into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 13s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 51s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 41s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 13s
Reviewed-on: #56
2026-07-17 22:11:45 +00:00
tudor
284215fbce
Merge pull request 'fix(compare): expert should-fixes S1-S4, S6 (S5/S7 closed by verification)' ( #55 ) from fix/expert-signoff-shouldfixes into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 13s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 53s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Failing after 45s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 14s
Reviewed-on: #55
2026-07-17 17:53:16 +00:00
tudor
1004f08daf
Merge pull request 'fix(pipeline): annual DAG never builds the official KS4 national mart' ( #54 ) from fix/annual-dag-ks4-national-selector into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 14s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 51s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Failing after 45s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 1m10s
Reviewed-on: #54
2026-07-17 13:28:08 +00:00
tudor
64b63b96c8
Merge pull request 'fix(compare): expert sign-off must-fixes M1-M3' ( #53 ) from fix/expert-signoff-mustfixes into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 19s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 53s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Failing after 43s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 13s
Reviewed-on: #53
2026-07-17 12:02:55 +00:00
tudor
163b501be6
Merge pull request 'fix(compare): stale-basket fetch blanking comparisons; rail caption' ( #52 ) from fix/compare-final-review-mustfix into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 13s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 48s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Failing after 43s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 13s
Reviewed-on: #52
2026-07-17 06:28:27 +00:00
tudor
e8f78a1598
Merge pull request 'fix(compare): align sticky school chips with their data columns on desktop' ( #51 ) from fix/compare-final-review-mustfix into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 14s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 53s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Failing after 40s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 13s
Reviewed-on: #51
2026-07-16 20:10:45 +00:00
tudor
20a27f3958
Merge pull request 'fix(compare): five must-fix findings from the final expert review' ( #50 ) from fix/compare-final-review-mustfix into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 20s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 50s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Failing after 51s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 1m33s
Reviewed-on: #50
2026-07-16 19:16:54 +00:00
tudor
d98e88f0b4
Merge pull request 'fix: preserve literal 'NULL' strings for primary key columns' ( #49 ) from feature/ingest-independent-schools into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 13s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 50s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 0s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Failing after 44s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 1m25s
Reviewed-on: #49
2026-07-16 07:54:41 +00:00
tudor
4bfcd9ba9a
Merge pull request 'fix: convert NaN/NULL to None and restore record properties structure in tap.py' ( #48 ) from feature/ingest-independent-schools into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 14s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 50s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Failing after 41s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 1m22s
Reviewed-on: #48
2026-07-16 07:40:28 +00:00
tudor
674470ceb6
Merge pull request 'feat: ingest independent schools in Ofsted tap and dbt staging' ( #47 ) from feature/ingest-independent-schools into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 14s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 51s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Failing after 44s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 1m25s
Reviewed-on: #47
2026-07-15 22:26:39 +00:00
tudor
6f62c25f47
Merge pull request 'Pass phase state to compare sub-components to prevent phase metrics override by multi-phase schools' ( #46 ) from fix/compare-expert-fixes into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 14s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 51s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Failing after 49s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 13s
Reviewed-on: #46
2026-07-15 16:38:49 +00:00
tudor
3fb3db1cc4
Merge pull request 'Fix Ofsted transitional inspections, phase tab exclusions, and FSM benchmark comparison' ( #45 ) from fix/compare-expert-fixes into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 22s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 54s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Failing after 42s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 14s
Reviewed-on: #45
2026-07-15 16:30:00 +00:00
tudor
e39aef2935
Merge pull request 'fix(compare): sticky school bar hidden behind the site header' ( #44 ) from fix/schoolbar-sticky-offset into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 14s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 51s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 39s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 13s
Reviewed-on: #44
2026-07-15 12:02:29 +00:00
tudor
cf458fe05c
Merge pull request 'School name cutoff fix' ( #43 ) from fix/compare-mockup-drift into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 13s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 50s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 44s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 13s
Reviewed-on: #43
2026-07-15 08:01:47 +00:00
tudor
19b41b6999
Merge pull request 'fix(compare): match mockups — remove trends table + mobile measure-first cards' ( #42 ) from fix/compare-mockup-drift into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 13s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 48s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 37s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Reviewed-on: #42
2026-07-15 07:17:08 +00:00
tudor
b89fa47ec5
Merge pull request 'fix(compare): trends chart was squashed to ~150px — give it a real height' ( #41 ) from fix/trends-chart-height into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 13s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 52s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 38s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 13s
Reviewed-on: #41
2026-07-14 22:51:04 +00:00
tudor
0c7ad0f309
Merge pull request 'test(e2e): fix flaky compare journey — select two same-phase schools' ( #40 ) from fix/e2e-compare-samephase into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 13s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 54s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 37s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Reviewed-on: #40
2026-07-14 22:30:18 +00:00
tudor
a9611e21c3
Merge pull request 'perf(api): batch supplementary queries — /api/compare stops scaling per school' ( #38 ) from perf/batch-supplementary into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 20s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 51s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Failing after 1m8s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 13s
Reviewed-on: #38
2026-07-14 21:57:27 +00:00
tudor
0696518995
Merge pull request 'ci: speed up Frontend Typecheck + Tests (cache node_modules; cancel superseded runs)' ( #39 ) from ci/frontend-checks-speedup into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 13s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 53s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Failing after 1m10s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 13s
Reviewed-on: #39
2026-07-14 21:57:08 +00:00
tudor
abc03a0dd3
Merge pull request 'fix(compare): blank page on refresh + remove dead per-page comparison fetch' ( #37 ) from fix/compare-refresh-and-fetch into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 13s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 53s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Failing after 1m9s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 13s
Reviewed-on: #37
2026-07-14 21:39:46 +00:00
tudor
8e4ee64140
Merge pull request 'perf(compare): import-time KS4 national averages mart; no refetch on metric change' ( #36 ) from perf/compare-loading into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 23s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 58s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Failing after 1m51s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 1m11s
Reviewed-on: #36
2026-07-14 20:04:45 +00:00
tudor
9990f540f7
Merge pull request 'feat(compare): parent-first compare screen — sections, England anchors, report cards, mobile-first' ( #35 ) from feat/compare-frontend-rebuild into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 43s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 1m1s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 46s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 1m57s
Reviewed-on: #35
2026-07-14 07:26:21 +00:00
tudor
4a8e798c64
Merge pull request 'feat(api): compare endpoint enrichment — supplementary blocks, national averages, benchmarks, report-card labels' ( #34 ) from feat/compare-api-enrichment into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 24s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 57s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Failing after 4m49s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 1m5s
Reviewed-on: #34
2026-07-13 21:58:51 +00:00
tudor
3754947fd6
Merge pull request 'feat(pipeline): compare-screen data foundation — raw→marts promotions, national averages, Ofsted report cards' ( #32 ) from feat/compare-data-foundation into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 12s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 1m16s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 41s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 48s
Reviewed-on: #32
2026-07-13 12:52:11 +00:00
tudor
9799ad9b43
Merge pull request 'ci: two-stage deploy — staging automatic, production behind a manual approval' ( #33 ) from chore/staged-prod-promotion into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 13s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 13s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 39s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 56s
Reviewed-on: #33
2026-07-13 12:30:19 +00:00
tudor
58e90fef61
Merge pull request 'fix(api): blank-name GIAS sentinel codes map to empty string, not Unknown(n)' ( #27 ) from fix/gias-blank-name-codes into main
...
Deploy (staging -> E2E gate -> production) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 1m5s
Deploy (staging -> E2E gate -> production) / Deploy to Staging (push) Successful in 1s
Deploy (staging -> E2E gate -> production) / Build Backend (FastAPI) (push) Successful in 20s
Deploy (staging -> E2E gate -> production) / Promote to Production (push) Successful in 9s
Deploy (staging -> E2E gate -> production) / Build Frontend (Next.js) (push) Successful in 54s
Deploy (staging -> E2E gate -> production) / E2E Journeys against Staging (push) Successful in 41s
Reviewed-on: #27
2026-07-09 21:21:08 +00:00
tudor
159207c6f5
Merge pull request 'fix(pipeline): add the missing backend cache-invalidation step to the data DAGs' ( #26 ) from fix/daily-dag-cache-invalidation into main
...
Deploy (staging -> E2E gate -> production) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 1m3s
Deploy (staging -> E2E gate -> production) / Deploy to Staging (push) Successful in 1s
Deploy (staging -> E2E gate -> production) / Promote to Production (push) Successful in 9s
Deploy (staging -> E2E gate -> production) / Build Backend (FastAPI) (push) Successful in 13s
Deploy (staging -> E2E gate -> production) / Build Frontend (Next.js) (push) Successful in 51s
Deploy (staging -> E2E gate -> production) / E2E Journeys against Staging (push) Successful in 43s
Reviewed-on: #26
2026-07-09 20:41:42 +00:00
tudor
d9223a6d6e
Merge pull request 'fix(api): legacy name-column fallback when marts predate the GIAS code migration' ( #25 ) from fix/gias-legacy-fallback into main
...
Deploy (staging -> E2E gate -> production) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Deploy (staging -> E2E gate -> production) / Deploy to Staging (push) Successful in 1s
Deploy (staging -> E2E gate -> production) / Build Backend (FastAPI) (push) Successful in 19s
Deploy (staging -> E2E gate -> production) / Promote to Production (push) Has been skipped
Deploy (staging -> E2E gate -> production) / Build Frontend (Next.js) (push) Successful in 54s
Deploy (staging -> E2E gate -> production) / E2E Journeys against Staging (push) Failing after 4m45s
Reviewed-on: #25
2026-07-09 19:13:55 +00:00
tudor
84dfc6c1bb
Merge pull request 'feat: GIAS classification fields stored as codes, translated in code' ( #24 ) from feat/gias-code-dictionaries into main
...
Deploy (staging -> E2E gate -> production) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 1m16s
Deploy (staging -> E2E gate -> production) / Deploy to Staging (push) Successful in 1s
Deploy (staging -> E2E gate -> production) / Build Backend (FastAPI) (push) Successful in 19s
Deploy (staging -> E2E gate -> production) / Promote to Production (push) Has been skipped
Deploy (staging -> E2E gate -> production) / Build Frontend (Next.js) (push) Successful in 52s
Deploy (staging -> E2E gate -> production) / E2E Journeys against Staging (push) Failing after 4m47s
Reviewed-on: #24
2026-07-09 13:32:43 +00:00
tudor
bc87e56545
Merge pull request 'fix(ui): shorten proposed-to-close notice copy' ( #23 ) from fix/proposed-to-close-copy into main
...
Deploy (staging -> E2E gate -> production) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Deploy (staging -> E2E gate -> production) / Deploy to Staging (push) Successful in 1s
Deploy (staging -> E2E gate -> production) / Build Backend (FastAPI) (push) Successful in 12s
Deploy (staging -> E2E gate -> production) / Promote to Production (push) Successful in 9s
Deploy (staging -> E2E gate -> production) / Build Frontend (Next.js) (push) Successful in 48s
Deploy (staging -> E2E gate -> production) / E2E Journeys against Staging (push) Successful in 38s
Reviewed-on: #23
2026-07-08 21:52:56 +00:00
tudor
7370712888
Merge pull request 'feat: include and mark 'Open, but proposed to close' schools' ( #22 ) from feat/proposed-to-close-schools into main
...
Deploy (staging -> E2E gate -> production) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 1m10s
Deploy (staging -> E2E gate -> production) / Deploy to Staging (push) Successful in 1s
Deploy (staging -> E2E gate -> production) / Build Backend (FastAPI) (push) Successful in 20s
Deploy (staging -> E2E gate -> production) / Promote to Production (push) Successful in 10s
Deploy (staging -> E2E gate -> production) / Build Frontend (Next.js) (push) Successful in 55s
Deploy (staging -> E2E gate -> production) / E2E Journeys against Staging (push) Successful in 41s
Reviewed-on: #22
2026-07-08 21:23:23 +00:00
tudor
45c68b60b4
Merge pull request 'feat: drive sixth-form separation from GIAS OfficialSixthForm flag' ( #21 ) from feat/gias-sixth-form-flag into main
...
Deploy (staging -> E2E gate -> production) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 1m23s
Deploy (staging -> E2E gate -> production) / Deploy to Staging (push) Successful in 0s
Deploy (staging -> E2E gate -> production) / Build Backend (FastAPI) (push) Successful in 20s
Deploy (staging -> E2E gate -> production) / Promote to Production (push) Successful in 9s
Deploy (staging -> E2E gate -> production) / Build Frontend (Next.js) (push) Successful in 50s
Deploy (staging -> E2E gate -> production) / E2E Journeys against Staging (push) Successful in 44s
Reviewed-on: #21
2026-07-07 13:48:12 +00:00
tudor
85484a80c4
Merge pull request 'fix(api): school detail 500s for schools with no performance rows' ( #20 ) from fix/school-detail-nan-500 into main
...
Deploy (staging -> E2E gate -> production) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Deploy (staging -> E2E gate -> production) / Deploy to Staging (push) Successful in 1s
Deploy (staging -> E2E gate -> production) / Build Backend (FastAPI) (push) Successful in 41s
Deploy (staging -> E2E gate -> production) / Promote to Production (push) Successful in 9s
Deploy (staging -> E2E gate -> production) / Build Frontend (Next.js) (push) Successful in 47s
Deploy (staging -> E2E gate -> production) / E2E Journeys against Staging (push) Successful in 39s
Reviewed-on: #20
2026-07-07 08:56:23 +00:00
tudor
929748d014
Merge pull request 'feat(home): move "use my location" beside the hero search box' ( #19 ) from feat/near-me-by-search into main
...
Deploy (staging -> E2E gate -> production) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Deploy (staging -> E2E gate -> production) / Deploy to Staging (push) Successful in 1s
Deploy (staging -> E2E gate -> production) / Build Backend (FastAPI) (push) Successful in 12s
Deploy (staging -> E2E gate -> production) / Promote to Production (push) Successful in 9s
Deploy (staging -> E2E gate -> production) / Build Frontend (Next.js) (push) Successful in 51s
Deploy (staging -> E2E gate -> production) / E2E Journeys against Staging (push) Successful in 38s
Reviewed-on: #19
2026-07-06 17:56:58 +00:00
tudor
1f8284adfc
Merge pull request 'fix(map): results map fullscreen falls back to an overlay on iOS' ( #18 ) from fix/results-map-ios-fullscreen into main
...
Deploy (staging -> E2E gate -> production) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Deploy (staging -> E2E gate -> production) / Deploy to Staging (push) Successful in 1s
Deploy (staging -> E2E gate -> production) / Promote to Production (push) Successful in 8s
Deploy (staging -> E2E gate -> production) / Build Backend (FastAPI) (push) Successful in 12s
Deploy (staging -> E2E gate -> production) / Build Frontend (Next.js) (push) Successful in 48s
Deploy (staging -> E2E gate -> production) / E2E Journeys against Staging (push) Successful in 38s
Reviewed-on: #18
2026-07-06 13:33:16 +00:00
tudor
1cdcd85e41
Merge pull request 'fix(search): stop the mobile sort dropdown overflowing the viewport' ( #17 ) from fix/mobile-sort-select-overflow into main
...
Deploy (staging -> E2E gate -> production) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 13s
Deploy (staging -> E2E gate -> production) / Deploy to Staging (push) Successful in 1s
Deploy (staging -> E2E gate -> production) / Promote to Production (push) Successful in 9s
Deploy (staging -> E2E gate -> production) / Build Backend (FastAPI) (push) Successful in 13s
Deploy (staging -> E2E gate -> production) / Build Frontend (Next.js) (push) Successful in 51s
Deploy (staging -> E2E gate -> production) / E2E Journeys against Staging (push) Successful in 36s
Reviewed-on: #17
2026-07-06 12:46:48 +00:00
tudor
64121592fd
Merge pull request 'feat(compare): lay mobile chart chips two per row' ( #16 ) from feat/compare-chips-two-per-row into main
...
Deploy (staging -> E2E gate -> production) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Deploy (staging -> E2E gate -> production) / Deploy to Staging (push) Successful in 1s
Deploy (staging -> E2E gate -> production) / Build Backend (FastAPI) (push) Successful in 12s
Deploy (staging -> E2E gate -> production) / Promote to Production (push) Successful in 9s
Deploy (staging -> E2E gate -> production) / Build Frontend (Next.js) (push) Successful in 50s
Deploy (staging -> E2E gate -> production) / E2E Journeys against Staging (push) Successful in 38s
Reviewed-on: #16
2026-07-06 12:16:26 +00:00
tudor
331ae8d89f
Merge pull request 'fix(e2e): compare-chips test must compare schools in one phase' ( #15 ) from fix/e2e-compare-chips-phase into main
...
Deploy (staging -> E2E gate -> production) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 13s
Deploy (staging -> E2E gate -> production) / Deploy to Staging (push) Successful in 1s
Deploy (staging -> E2E gate -> production) / Build Backend (FastAPI) (push) Successful in 12s
Deploy (staging -> E2E gate -> production) / Promote to Production (push) Successful in 9s
Deploy (staging -> E2E gate -> production) / Build Frontend (Next.js) (push) Successful in 53s
Deploy (staging -> E2E gate -> production) / E2E Journeys against Staging (push) Successful in 38s
Reviewed-on: #15
2026-07-06 11:01:22 +00:00
tudor
47335fcda0
Merge pull request 'fix(frontend): proxy /api and /sitemap.xml at runtime, not via baked rewrites' ( #14 ) from fix/runtime-api-proxy into main
...
Deploy (staging -> E2E gate -> production) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 13s
Deploy (staging -> E2E gate -> production) / Deploy to Staging (push) Successful in 1s
Deploy (staging -> E2E gate -> production) / Build Backend (FastAPI) (push) Successful in 13s
Deploy (staging -> E2E gate -> production) / Promote to Production (push) Has been skipped
Deploy (staging -> E2E gate -> production) / Build Frontend (Next.js) (push) Successful in 48s
Deploy (staging -> E2E gate -> production) / E2E Journeys against Staging (push) Failing after 52s
Reviewed-on: #14
2026-07-06 10:11:39 +00:00
tudor
5c39131b50
Merge pull request 'chore: remove the Ofsted Parent View feature end to end' ( #13 ) from chore/remove-parent-view into main
...
Deploy (staging -> E2E gate -> production) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 1m14s
Deploy (staging -> E2E gate -> production) / Deploy to Staging (push) Successful in 1s
Deploy (staging -> E2E gate -> production) / Build Backend (FastAPI) (push) Successful in 20s
Deploy (staging -> E2E gate -> production) / Promote to Production (push) Has been skipped
Deploy (staging -> E2E gate -> production) / Build Frontend (Next.js) (push) Successful in 47s
Deploy (staging -> E2E gate -> production) / E2E Journeys against Staging (push) Failing after 1m7s
Reviewed-on: #13
2026-07-06 08:31:00 +00:00
tudor
694b6013b3
Merge pull request 'fix(compare): keep chart data when a client refetch fails' ( #12 ) from fix/compare-chart-refetch-resilience into main
...
Deploy (staging -> E2E gate -> production) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Deploy (staging -> E2E gate -> production) / Deploy to Staging (push) Successful in 1s
Deploy (staging -> E2E gate -> production) / Build Backend (FastAPI) (push) Successful in 16s
Deploy (staging -> E2E gate -> production) / Promote to Production (push) Has been skipped
Deploy (staging -> E2E gate -> production) / Build Frontend (Next.js) (push) Successful in 47s
Deploy (staging -> E2E gate -> production) / E2E Journeys against Staging (push) Failing after 1m9s
Reviewed-on: #12
2026-07-06 07:27:03 +00:00
tudor
18cd805c6c
Merge pull request 'feat(compare): readable comparison chart on mobile' ( #11 ) from feat/compare-chart-mobile-readability into main
...
Deploy (staging -> E2E gate -> production) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Deploy (staging -> E2E gate -> production) / Deploy to Staging (push) Successful in 1s
Deploy (staging -> E2E gate -> production) / Promote to Production (push) Has been skipped
Deploy (staging -> E2E gate -> production) / Build Backend (FastAPI) (push) Successful in 13s
Deploy (staging -> E2E gate -> production) / Build Frontend (Next.js) (push) Successful in 49s
Deploy (staging -> E2E gate -> production) / E2E Journeys against Staging (push) Failing after 1m6s
Reviewed-on: #11
2026-07-05 21:26:01 +00:00
tudor
90f2a02e75
Merge pull request 'fix(school): make hero map fullscreen work on iOS Safari' ( #10 ) from fix/hero-map-ios-fullscreen into main
...
Deploy (staging -> E2E gate -> production) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Deploy (staging -> E2E gate -> production) / Deploy to Staging (push) Successful in 1s
Deploy (staging -> E2E gate -> production) / Build Backend (FastAPI) (push) Successful in 13s
Deploy (staging -> E2E gate -> production) / Promote to Production (push) Successful in 8s
Deploy (staging -> E2E gate -> production) / Build Frontend (Next.js) (push) Successful in 52s
Deploy (staging -> E2E gate -> production) / E2E Journeys against Staging (push) Successful in 34s
Reviewed-on: #10
2026-07-05 20:52:32 +00:00
tudor
ff606dad71
Merge pull request 'fix(e2e): pick the latest explicit year in the rankings year test' ( #8 ) from fix/e2e-rankings-year-pick into main
...
Deploy (staging -> E2E gate -> production) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Deploy (staging -> E2E gate -> production) / Deploy to Staging (push) Successful in 1s
Deploy (staging -> E2E gate -> production) / Build Backend (FastAPI) (push) Successful in 12s
Deploy (staging -> E2E gate -> production) / Promote to Production (push) Successful in 10s
Deploy (staging -> E2E gate -> production) / Build Frontend (Next.js) (push) Successful in 52s
Deploy (staging -> E2E gate -> production) / E2E Journeys against Staging (push) Successful in 34s
Reviewed-on: #8
2026-07-05 13:54:55 +00:00
tudor
0a370e3b63
Merge pull request 'fix(api): accept academic-year codes in rankings year filter' ( #7 ) from fix/rankings-year-validation into main
...
Deploy (staging -> E2E gate -> production) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Deploy (staging -> E2E gate -> production) / Deploy to Staging (push) Successful in 1s
Deploy (staging -> E2E gate -> production) / Promote to Production (push) Has been skipped
Deploy (staging -> E2E gate -> production) / Build Backend (FastAPI) (push) Successful in 21s
Deploy (staging -> E2E gate -> production) / Build Frontend (Next.js) (push) Successful in 46s
Deploy (staging -> E2E gate -> production) / E2E Journeys against Staging (push) Failing after 1m3s
Reviewed-on: #7
2026-07-05 10:46:04 +00:00
tudor
23b4e1c453
Merge pull request 'fix(e2e): scroll detail-page chart into view before asserting' ( #5 ) from fix/e2e-detail-chart-scroll into main
Deploy (staging -> E2E gate -> production) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Deploy (staging -> E2E gate -> production) / Deploy to Staging (push) Successful in 1s
Deploy (staging -> E2E gate -> production) / Build Backend (FastAPI) (push) Successful in 13s
Deploy (staging -> E2E gate -> production) / Promote to Production (push) Successful in 8s
Deploy (staging -> E2E gate -> production) / Build Frontend (Next.js) (push) Successful in 49s
Deploy (staging -> E2E gate -> production) / E2E Journeys against Staging (push) Successful in 33s
2026-07-03 13:56:00 +00:00
tudor
515494dbf0
Merge pull request 'fix(analytics): restrict Umami to production hostnames' ( #4 ) from fix/umami-prod-domains-only into main
Deploy (staging -> E2E gate -> production) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Deploy (staging -> E2E gate -> production) / Deploy to Staging (push) Successful in 0s
Deploy (staging -> E2E gate -> production) / Build Backend (FastAPI) (push) Successful in 13s
Deploy (staging -> E2E gate -> production) / Promote to Production (push) Has been skipped
Deploy (staging -> E2E gate -> production) / Build Frontend (Next.js) (push) Successful in 50s
Deploy (staging -> E2E gate -> production) / E2E Journeys against Staging (push) Failing after 1m7s
2026-07-03 13:17:53 +00:00
tudor
f5de745a8b
Merge pull request 'fix(ci): AI review via Claude Code CLI; reuse REGISTRY_TOKEN' ( #3 ) from fix/ai-review-claude-code into main
Deploy (staging -> E2E gate -> production) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Deploy (staging -> E2E gate -> production) / Deploy to Staging (push) Failing after 1s
Deploy (staging -> E2E gate -> production) / Build Backend (FastAPI) (push) Successful in 18s
Deploy (staging -> E2E gate -> production) / Promote to Production (push) Has been skipped
Deploy (staging -> E2E gate -> production) / Build Frontend (Next.js) (push) Successful in 46s
Deploy (staging -> E2E gate -> production) / E2E Journeys against Staging (push) Has been skipped
2026-07-03 08:50:26 +00:00
tudor
df0bf1c4d6
Merge pull request 'feat(sdlc): staging environment + automated staging→prod pipeline' ( #2 ) from feat/sdlc-staging-pipeline into main
Deploy (staging -> E2E gate -> production) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Deploy (staging -> E2E gate -> production) / Deploy to Staging (push) Successful in 1s
Deploy (staging -> E2E gate -> production) / Build Backend (FastAPI) (push) Successful in 19s
Deploy (staging -> E2E gate -> production) / Promote to Production (push) Has been skipped
Deploy (staging -> E2E gate -> production) / Build Frontend (Next.js) (push) Successful in 46s
Deploy (staging -> E2E gate -> production) / E2E Journeys against Staging (push) Failing after 1m10s
2026-07-03 06:17:40 +00:00
tudor
8ad11f1728
Merge pull request 'feat(admissions): surface multi-year admissions trend on school detail' ( #1 ) from feat/admissions-multi-year-trend into main
...
Build and Push Docker Images / Build Frontend (Next.js) (push) Successful in 51s
Build and Push Docker Images / Build Backend (FastAPI) (push) Successful in 13s
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
Reviewed-on: #1
2026-06-19 17:42:20 +00:00
tudor
f48faa1803
showing schools with no KS2 results
Build and Push Docker Images / Build Frontend (Next.js) (push) Successful in 1m9s
Build and Push Docker Images / Build Backend (FastAPI) (push) Successful in 44s
Build and Push Docker Images / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 32s
Build and Push Docker Images / Trigger Portainer Update (push) Successful in 1s
2026-03-30 18:14:43 +01:00
tudor and Claude Sonnet 4.6
6e5249aa1e
refactor(phase): merge KS2+KS4 into fact_performance, fix all phase inconsistencies
...
Build and Push Docker Images / Build Frontend (Next.js) (push) Successful in 1m12s
Build and Push Docker Images / Build Backend (FastAPI) (push) Successful in 50s
Build and Push Docker Images / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 1m24s
Build and Push Docker Images / Trigger Portainer Update (push) Successful in 0s
Root cause: the UNION ALL query in data_loader.py produced two rows per
all-through school per year (one KS2, one KS4), with drop_duplicates()
silently discarding the KS4 row. Fixes:
- New dbt mart `fact_performance`: FULL OUTER JOIN of fact_ks2_performance
and fact_ks4_performance on (urn, year). One row per school per year.
All-through schools have both KS2 and KS4 columns populated.
- data_loader.py: replace 175-line UNION ALL with a simple JOIN to
fact_performance. No more duplicate rows or drop_duplicates needed.
- sync_typesense.py: single LATERAL JOIN to fact_performance instead of
two separate KS2/KS4 joins.
- app.py: remove drop_duplicates (no longer needed); add PHASE_GROUPS
constant so all-through/middle schools appear in primary and secondary
filter results (were previously invisible to both); scope result_filters
gender/admissions_policies to secondary schools only.
- HomeView.tsx: isSecondaryView is now majority-based (not "any secondary")
and isMixedView shows both sort option sets for mixed result sets.
- school/[slug]/page.tsx: all-through schools route to SchoolDetailView
(renders both SATs + GCSE sections) instead of SecondarySchoolDetailView
(KS4-only). Dedicated SEO metadata for all-through schools.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-30 14:07:30 +01:00