Compare commits
merge into: tudor/school_compare:fix/locality-collision-skip
tudor/school_compare:main
tudor/school_compare:fix/school-page-selective-flag
tudor/school_compare:feat/header-facts-and-flags
tudor/school_compare:fix/la-average-cached-failure
tudor/school_compare:fix/search-row-facts
tudor/school_compare:fix/header-nursery-and-gender
tudor/school_compare:feat/phase-order-child-path
tudor/school_compare:fix/desktop-clear-keeps-search
tudor/school_compare:fix/modal-close-tap-target
tudor/school_compare:feat/single-state-school-group
tudor/school_compare:feat/school-type-groups-faith
tudor/school_compare:fix/filter-options-not-from-results
tudor/school_compare:feat/mobile-filter-sheet
tudor/school_compare:fix/e2e-after-half-mile-default
tudor/school_compare:fix/map-popup-view-button
tudor/school_compare:fix/default-radius-half-mile
tudor/school_compare:fix/toolbar-one-line
tudor/school_compare:fix/phase-filter-exact-match
tudor/school_compare:fix/phase-filter-global
tudor/school_compare:fix/map-pane-header
tudor/school_compare:feat/map-list-rows
tudor/school_compare:fix/phone-toolbar-width
tudor/school_compare:feat/results-map-view
tudor/school_compare:feat/results-toolbar
tudor/school_compare:feat/compare-limit-per-phase
tudor/school_compare:copy/remove-em-dashes
tudor/school_compare:fix/jump-sheet-under-bottom-bar
tudor/school_compare:fix/nearby-journey-waits-for-smooth-scroll
tudor/school_compare:fix/nearby-scroll-journey-clicks-offscreen-card
tudor/school_compare:fix/nearby-schools-order-by-distance
tudor/school_compare:feat/similar-schools-nearby
tudor/school_compare:fix/release-check-diagnostics
tudor/school_compare:feat/release-identity-and-reliability-gate
tudor/school_compare:docs/current-truth-and-legacy-inventory
tudor/school_compare:fix/og-image-route-group
tudor/school_compare:feat/school-page-place-links
tudor/school_compare:feat/about-blog-flags
tudor/school_compare:fix/payload-import-map
tudor/school_compare:fix/payload-initial-migration
tudor/school_compare:feat/about-and-blog
tudor/school_compare:fix/destinations-national-grain
tudor/school_compare:fix/airflow-fixed-admin-password
tudor/school_compare:feat/ks4-destinations
tudor/school_compare:fix/dark-mode-map-popup-contrast
tudor/school_compare:fix/distance-flag-off-absence-copy
tudor/school_compare:fix/navigation-source-soft-nav
tudor/school_compare:feat/place-school-attributes
tudor/school_compare:feat/place-analytics
tudor/school_compare:fix/mobile-hero-search
tudor/school_compare:fix/suggest-reopens-over-results
tudor/school_compare:fix/dark-map-fade
tudor/school_compare:fix/hero-dropdown-clipping
tudor/school_compare:feat/school-autosuggest
tudor/school_compare:fix/flags-runbook
tudor/school_compare:feat/feature-flags
tudor/school_compare:fix/place-phase-links
tudor/school_compare:feat/place-alphabetical-sort
tudor/school_compare:fix/e2e-canonical-and-robots
tudor/school_compare:feat/place-multiple-authorities
tudor/school_compare:fix/place-table-alignment
tudor/school_compare:fix/place-presentation-to-main
tudor/school_compare:fix/place-title-brand-doubling
tudor/school_compare:fix/place-page-presentation
tudor/school_compare:fix/place-phase-variants
tudor/school_compare:fix/locality-collision-skip
tudor/school_compare:feat/w2-location-layer
tudor/school_compare:feat/seo-metadata-c1
tudor/school_compare:fix/sitemap-any-year-data
tudor/school_compare:fix/staging-noindex
tudor/school_compare:feat/seo-crawl-hygiene-main
tudor/school_compare:feat/hero-artwork
tudor/school_compare:fix/homepage-truth-and-rhythm-main
tudor/school_compare:feat/brand-logo-artwork
tudor/school_compare:fix/homepage-truth-and-rhythm
tudor/school_compare:feat/schoolcompare-brand
tudor/school_compare:feat/detail-gias-fields-remove-unwired
tudor/school_compare:fix/special-schools-not-failing
tudor/school_compare:fix/detail-allthrough-admissions-phase
tudor/school_compare:fix/expert-signoff-shouldfixes
tudor/school_compare:fix/gias-blank-name-codes
tudor/school_compare:feat/compare-api-enrichment
tudor/school_compare:feat/gias-code-dictionaries
tudor/school_compare:feat/compare-chart-mobile-readability
tudor/school_compare:feat/pr-comment-agent
..
pull from: tudor/school_compare:feat/w2-location-layer
tudor/school_compare:main
tudor/school_compare:fix/school-page-selective-flag
tudor/school_compare:feat/header-facts-and-flags
tudor/school_compare:fix/la-average-cached-failure
tudor/school_compare:fix/search-row-facts
tudor/school_compare:fix/header-nursery-and-gender
tudor/school_compare:feat/phase-order-child-path
tudor/school_compare:fix/desktop-clear-keeps-search
tudor/school_compare:fix/modal-close-tap-target
tudor/school_compare:feat/single-state-school-group
tudor/school_compare:feat/school-type-groups-faith
tudor/school_compare:fix/filter-options-not-from-results
tudor/school_compare:feat/mobile-filter-sheet
tudor/school_compare:fix/e2e-after-half-mile-default
tudor/school_compare:fix/map-popup-view-button
tudor/school_compare:fix/default-radius-half-mile
tudor/school_compare:fix/toolbar-one-line
tudor/school_compare:fix/phase-filter-exact-match
tudor/school_compare:fix/phase-filter-global
tudor/school_compare:fix/map-pane-header
tudor/school_compare:feat/map-list-rows
tudor/school_compare:fix/phone-toolbar-width
tudor/school_compare:feat/results-map-view
tudor/school_compare:feat/results-toolbar
tudor/school_compare:feat/compare-limit-per-phase
tudor/school_compare:copy/remove-em-dashes
tudor/school_compare:fix/jump-sheet-under-bottom-bar
tudor/school_compare:fix/nearby-journey-waits-for-smooth-scroll
tudor/school_compare:fix/nearby-scroll-journey-clicks-offscreen-card
tudor/school_compare:fix/nearby-schools-order-by-distance
tudor/school_compare:feat/similar-schools-nearby
tudor/school_compare:fix/release-check-diagnostics
tudor/school_compare:feat/release-identity-and-reliability-gate
tudor/school_compare:docs/current-truth-and-legacy-inventory
tudor/school_compare:fix/og-image-route-group
tudor/school_compare:feat/school-page-place-links
tudor/school_compare:feat/about-blog-flags
tudor/school_compare:fix/payload-import-map
tudor/school_compare:fix/payload-initial-migration
tudor/school_compare:feat/about-and-blog
tudor/school_compare:fix/destinations-national-grain
tudor/school_compare:fix/airflow-fixed-admin-password
tudor/school_compare:feat/ks4-destinations
tudor/school_compare:fix/dark-mode-map-popup-contrast
tudor/school_compare:fix/distance-flag-off-absence-copy
tudor/school_compare:fix/navigation-source-soft-nav
tudor/school_compare:feat/place-school-attributes
tudor/school_compare:feat/place-analytics
tudor/school_compare:fix/mobile-hero-search
tudor/school_compare:fix/suggest-reopens-over-results
tudor/school_compare:fix/dark-map-fade
tudor/school_compare:fix/hero-dropdown-clipping
tudor/school_compare:feat/school-autosuggest
tudor/school_compare:fix/flags-runbook
tudor/school_compare:feat/feature-flags
tudor/school_compare:fix/place-phase-links
tudor/school_compare:feat/place-alphabetical-sort
tudor/school_compare:fix/e2e-canonical-and-robots
tudor/school_compare:feat/place-multiple-authorities
tudor/school_compare:fix/place-table-alignment
tudor/school_compare:fix/place-presentation-to-main
tudor/school_compare:fix/place-title-brand-doubling
tudor/school_compare:fix/place-page-presentation
tudor/school_compare:fix/place-phase-variants
tudor/school_compare:fix/locality-collision-skip
tudor/school_compare:feat/w2-location-layer
tudor/school_compare:feat/seo-metadata-c1
tudor/school_compare:fix/sitemap-any-year-data
tudor/school_compare:fix/staging-noindex
tudor/school_compare:feat/seo-crawl-hygiene-main
tudor/school_compare:feat/hero-artwork
tudor/school_compare:fix/homepage-truth-and-rhythm-main
tudor/school_compare:feat/brand-logo-artwork
tudor/school_compare:fix/homepage-truth-and-rhythm
tudor/school_compare:feat/schoolcompare-brand
tudor/school_compare:feat/detail-gias-fields-remove-unwired
tudor/school_compare:fix/special-schools-not-failing
tudor/school_compare:fix/detail-allthrough-admissions-phase
tudor/school_compare:fix/expert-signoff-shouldfixes
tudor/school_compare:fix/gias-blank-name-codes
tudor/school_compare:feat/compare-api-enrichment
tudor/school_compare:feat/gias-code-dictionaries
tudor/school_compare:feat/compare-chart-mobile-readability
tudor/school_compare:feat/pr-comment-agent
1
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
c4b7868cbf |
fix(places): a locality collision must not break the sitemap
Sitemap regeneration failed on staging. 'richmond' in the curated locality list collides with the GIAS town Richmond in North Yorkshire (37 schools), the registry raised, and the admin endpoint 500d — taking down sitemap generation for all 25,000 school pages over one bad row of curated data. The guard now skips the colliding locality and logs an error. Skipping still achieves what the guard was for — a locality never silently shadows a town — without letting curated data break the site. That matters beyond this bug: GIAS town names change with no code change here, so a raise could fire spontaneously in production later. Also removes four localities that were London boroughs rather than districts. Hackney, Islington, Greenwich and Ealing are local authorities with 104, 72, 108 and 115 schools and already have authority pages; a locality defined by two or three outcodes would have been a partial near-duplicate of one — the thin-content failure the two-namespace design exists to avoid. A test now guards the whole borough list. Validated against the live corpus: 15 localities, no town collisions, no authority duplicates, all 15 clear the threshold. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015mWQnpye9F299NVRCCSRvj |