fix(P0): contiene los crashes de render y cura el nav - #93
Open
0xultravioleta wants to merge 4 commits into
Open
fix(P0): contiene los crashes de render y cura el nav#930xultravioleta wants to merge 4 commits into
0xultravioleta wants to merge 4 commits into
Conversation
…por ahora, decision Saul) Co-Authored-By: Claude <noreply@anthropic.com>
…ibilidad verificada) Co-Authored-By: Claude <noreply@anthropic.com>
Causa raiz: el commit c4e8a7c metio dos cosas a la vez que juntas tumbaron el sitio entero. 1. /agents crasheaba en CADA render. AgentDiscovery llamaba t('...').map() sobre 6 claves i18n que son arrays, sin { returnObjects: true }. En i18next v24 eso devuelve un string y .map() lanza TypeError. 2. El ErrorBoundary que agrego ese mismo commit nunca se reseteaba. Asi que ese unico crash dejaba "Algo salio mal" pegado en TODA la app hasta recargar. Por eso /events (que esta sana) y el resto de los links se veian rotos: era arrastre, no culpa de cada pagina. Fixes: - ErrorBoundary + App.js: reset por ruta (resetKey={pathname}). Un crash queda contenido a su pagina en vez de cascadear a todo el sitio. - AgentDiscovery: returnObjects + guardas Array.isArray. Mata el crash raiz. - useSnapshotData: proposals/leaderboard siempre arrays. Un 200 de Snapshot con campos null rompia /metrics. - Snapshot: guardas en author y en fechas invalidas. - StreamSummaryCard: streamer opcional. - Courses: guarda de thumbnail y courses siempre array. - ApplicationStatus: fallback ante estado desconocido de la API. - HamburgerMenu: Bounties condicionado como en desktop; antes era un link muerto a NotFound en movil. Nav curado: barra con 7 core (Historia, Token, Metricas, Snapshot, Productos y Servicios, Eventos, Watch to Earn); el resto bajo "More"; BLOG fuera del nav porque posts.js esta vacio. Verificado: build de produccion compila (exit 0) y el comportamiento de i18next confirmado empiricamente contra la version instalada (24.2.3). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
El flag REACT_APP_SHOW_SIGNUP_BUTTONS vivia en la consola de Amplify (.env esta gitignored), asi que no se podia apagar desde un commit. Se remueve el boton en codigo, que es determinista y reversible con un revert. El flag queda muerto en src/. El modal de ApplicationForm se deja montado (nunca se abre desde el hero); /aplicar sigue sirviendo el formulario. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
P0 en produccion
/events(y practicamente todos los links) mostraban "Algo salio mal".Causa raiz
El commit
c4e8a7cmetio dos cosas a la vez que juntas tumbaron el sitio:/agentscrasheaba en CADA render.AgentDiscoveryllamabat('...').map()sobre 6 claves i18n que son arrays, sin{ returnObjects: true }. En i18next v24 eso devuelve un string, y.map()lanzaTypeError. Confirmado empiricamente contra la version instalada (24.2.3).ErrorBoundaryque agrego ese mismo commit nunca se reseteaba. Ese unico crash dejaba el error pegado en toda la app hasta recargar. Por eso/events(que esta sana) y el resto de links se veian rotos: era arrastre, no culpa de cada pagina.Fixes
ErrorBoundary+App.js: reset por ruta (resetKey={pathname}). Un crash queda contenido a su pagina en vez de cascadear. (Blindaje estructural: esto solo ya evita que un crash futuro tumbe el sitio.)AgentDiscovery:returnObjects+ guardasArray.isArray. Mata el crash raiz.useSnapshotData:proposals/leaderboardsiempre arrays (un 200 de Snapshot con campos null rompia/metrics).Snapshot: guardas enauthory fechas invalidas.StreamSummaryCard:streameropcional.Courses: guarda de thumbnail ycoursessiempre array.ApplicationStatus: fallback ante estado desconocido de la API.HamburgerMenu: Bounties condicionado como en desktop (antes era link muerto a NotFound en movil).Las 5 guardas de datos no son teoricas: ya estaban disparando por los endpoints caidos.
Nav curado
posts.jsesta vacio)Verificacion
exit 0)🤖 Generated with Claude Code