Skip to content

v2.25.0

Choose a tag to compare

@juan294 juan294 released this 28 Aug 13:16
· 760 commits to develop since this release
a61f932

Fixed

Creator Studio was unreachable in a real browser (#1203)

fetchFlagFromDbCached caught its own rejection inside unstable_cache, so a 500ms timeout became indistinguishable from "no such row" and that null was cached for an hour. checkFlag then fell back to NEXT_PUBLIC_STUDIO_ENABLED, unset in production, resolving the flag to false while the studio_enabled row still read true.

The symptom was invisible to curl: /studio?demo=1 answered HTTP 200 while emitting <meta http-equiv="refresh" content="1;url=/">. curl ignores a meta refresh; every browser obeys it. Six of six measured loads bounced to the landing page.

A failed lookup now degrades for that request only and caches nothing, so the next call retries and picks up the real row. Verified in production: 5/5 real-browser loads stay on /studio?demo=1, with zero meta-refresh and zero NEXT_REDIRECT markers.

A locale-segmented page could receive the wrong dictionary (#1201)

app/[locale]/page.tsx hardcoded en as "the non-default locale" when choosing the client dictionary. Correct only while the default was 'es'; after the flip it would have handed the Spanish landing page the English dictionary. It now derives the dictionary from locale.

Changed

English is the default locale when a request carries no locale signal (#1201)

DEFAULT_LOCALE moves from 'es' to 'en'. A chapa-locale cookie or an Accept-Language header still wins ahead of it, so a Spanish visitor keeps Spanish. Only the signal-less case changes, and that case covers every un-qualified embedded badge, the statically-built shells, and the warm-cache cron's pre-warmed badge.

Verified in production: /u/:handle/badge.svg renders "Verified metrics", and ?lang=es still renders "Métricas verificadas".

Full changelog: v2.24.1...v2.25.0