Compare commits
base: tudor/school_compare:feat/about-and-blog
tudor/school_compare:main
tudor/school_compare:fix/la-averages-site
tudor/school_compare:fix/ks4-2023-24-pipeline
tudor/school_compare:fix/ofsted-current-status-site
tudor/school_compare:fix/ofsted-current-status-pipeline
tudor/school_compare:fix/gias-encoding
tudor/school_compare:fix/scheduled-dbt-selectors
tudor/school_compare:fix/nearby-drop-lede
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
..
compare: tudor/school_compare:e2c63a9905f15a9889223fd4ca0797d983c4c78e
tudor/school_compare:main
tudor/school_compare:fix/la-averages-site
tudor/school_compare:fix/ks4-2023-24-pipeline
tudor/school_compare:fix/ofsted-current-status-site
tudor/school_compare:fix/ofsted-current-status-pipeline
tudor/school_compare:fix/gias-encoding
tudor/school_compare:fix/scheduled-dbt-selectors
tudor/school_compare:fix/nearby-drop-lede
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
4
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
e2c63a9905 |
fix(cms): ship the initial migration so a container finds its tables
PR Checks / Frontend Typecheck + Tests (pull_request) Successful in 1m14s
PR Checks / Backend Smoke (pull_request) Successful in 9s
PR Checks / Build Backend (no push) (pull_request) Successful in 11s
PR Checks / Build Frontend (no push) (pull_request) Successful in 1m14s
PR Checks / Build Pipeline (no push) (pull_request) Successful in 10s
PR Checks / AI Code Review (Claude) (pull_request) Successful in 1m33s
Staging failed on boot with 42P01, relation "payload.users" does not exist. The schema was empty because no migration existed, and the adapter cannot create tables itself: db-postgres/connect.js gates push on NODE_ENV !== 'production', so it is inert in a deployed container regardless of config. The generated migration is schema-qualified to "payload" throughout but does not create that schema — schemaName says where tables go, it does not create anything. It only worked against the throwaway database used to generate it because the schema was created there by hand, so every real environment would have failed on the first statement. CREATE SCHEMA IF NOT EXISTS is hand-added at the top of up(), which makes it exactly the kind of edit a regeneration discards silently; a test asserts it is present and ordered before the first CREATE TABLE. payload-types.ts is now committed rather than ignored. Ignoring it meant CI typechecked against looser types than a developer with a generated copy, which is how a Record<string, unknown> cast passed CI and then failed locally the moment the file appeared. The post page uses the generated Post and Media types instead, and narrows heroImage rather than asserting it, since the field is an id at shallow depth. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017YmbBhr8s7GusjDE12hrZM |
||
|
|
3f3c5953f6 |
style(copy): remove em dashes from the site's prose
The em dash is one of the clearest tells of machine-written text, which is the exact impression this work exists to remove. Rewritten rather than substituted: where a dash was carrying a real aside the sentence is split or recast, not patched with a comma. Covers the About page, the two Callout labels an editor sees in the admin panel, and PUBLISHING.md, which defines the house style and should follow it. The rule is now recorded in that house style and in the spec's voice rules, so it survives this branch. Code comments are left alone: they are not copy, and the surrounding codebase uses the same punctuation throughout. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017YmbBhr8s7GusjDE12hrZM |
||
|
|
124c6702a9 |
Merge pull request 'feat: a named author, an About page and a Payload blog' (#140) from feat/about-and-blog into main
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 45s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 1m32s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 2m8s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Failing after 2m36s
Reviewed-on: #140 |
||
|
|
b0c4ea8282 |
Merge pull request 'fix(destinations): the DAG died on a null in a primary key' (#139) from fix/destinations-national-grain 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) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 1m36s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 2m6s
Reviewed-on: #139 |