TryGhost
OSS
Ghost
Added legacy validation fallback to the route settings read path - an audit of 41,346 Pro routes.yaml files found 97 that the stricter parser rejects but the legacy validator accepts — live sites that would fail to boot at rollout. The read path now falls back to the legacy validator for those files, logging ROUTE_SETTINGS_VALIDATION_FALLBACK with the reason so they get fixed - only validation failures fall back — IO and parse errors surface unchanged, since the legacy loader would fail on those too and only mask the real error. The fallback reads local disk, so it only functions while FileStore is the active store - fallback sites stay fully operational: download returns the raw file (it's the file the operator needs to fix), and uploading a corrected file is not blocked by the invalid current one — the upload proceeds without a rollback snapshot, relying on the store's own timestamped backup of the raw file. Uploads themselves stay strict-only, so the fallback population can only shrink - a failed frontend reload no longer rolls the store back: validation happens before persistence now, so a reload failure isn't caused by the routes and re-running a failing reload to restore them helps nobody. The isBlogRunning timeout path still rolls back, since a hang can be routes-induced - reloadFrontend takes its routeSettings and urlService dependencies as arguments now, removing the bridge ↔ route-settings circular require - settings-loader, validate.js and settings-path-manager return to active use until the fallback is retired
nx run ghost-monorepo:lint:boundaries
Sign in / Sign up
Open main menu
Succeeded
CI Pipeline Execution
nx run ghost-monorepo:lint:boundaries
Click to copy
Linux
4 CPU cores
read-write
access token used
cec39392
29305