Cinco días en silencio: el juez que dejó de mirar el precio
Un incidente de cinco días sin alertas destapa un fallo en el juez de IA de Ganga24, mientras las ofertas caducadas dejan de esfumarse del listado y Hezu prueba (y cancela) su primer code reviewer automático.
Durante cinco días Ganga24 prácticamente dejó de publicar chollos. Cero alertas, cero pings, nada — el sistema interpretaba "cero publicaciones" como un día tranquilo, no como una avería. Hasta que alguien miró el histórico y faltaba casi una semana entera de contenido.
Ganga24: el juez ciego y las fichas que ya no desaparecen
El culpable fue el "judge", el LLM que decide qué historias sobre ofertas merecen publicarse. Su prompt no recibía ni el precio ni el porcentaje de descuento del producto — literalmente estaba juzgando chollos sin saber si eran chollos. Sin ese dato, tendía a rechazar casi todo, y como el pipeline no distinguía entre "hoy no hay ofertas buenas" y "el juez está roto", nadie se enteró hasta que el hueco en el calendario se hizo evidente. Sumado a eso, había un import de uuid que faltaba en el CLI y provocaba un crash silencioso en otro punto del flujo.
El arreglo tiene tres capas, que es lo interesante: primero, el prompt del judge ahora recibe discount_pct, precios y tienda — datos que deberían haber estado ahí desde el principio. Segundo, se añadió un wrapper idempotente con reintento de seguridad para garantizar que Ganga24 tenga historia diaria pase lo que pase. Y tercero — la parte que realmente evita que esto se repita — el server-watchdog ahora vigila rachas de rechazos del judge y avisa. La lección no es solo "arregla el bug", es "si algo puede fallar en silencio, ponle una alarma", que es más barato que descubrirlo cinco días tarde.
En paralelo, y con un contraste casi cómico, esta semana también se cerró FEAT-053 de principio a fin en un ciclo SDD limpio: requisitos, spec técnica, QA, validación y despliegue a producción, todo documentado. El cambio: las ofertas caducadas ya no desaparecen sin más del listado, se quedan con un estado "caducada" visible. Antes, si volvías a una ficha que habías guardado y el chollo había expirado, simplemente se esfumaba — como si nunca hubiera existido. Ahora al menos sabes que existió y que se acabó, que es la diferencia entre un catálogo con memoria y uno con amnesia. De propina, se limpiaron menciones a "IA" del footer y del bloque de confianza del hero — un ajuste pequeño pero con criterio: si el producto no necesita venderse como "con IA" para funcionar, mejor no forzarlo.
Hezu: un code reviewer que duró un día
Hezu tuvo su propio momento irónico: se añadió Copilot como smart-review automático para PRs (saltando los que solo tocan docs o specs) y, el mismo día, se retiró porque el servicio se canceló. Cero drama, pero sí un recordatorio de que depender de servicios de terceros para infraestructura de CI tiene ese riesgo — hoy está, mañana no. Más sustancioso: un redirect corto /ig que lleva a home con UTMs de Instagram ya preparados, para que las campañas en esa red puedan medirse sin montar tracking a medida cada vez.
Chordna: cerrando cabos sueltos de SEO
Se cerraron tres follow-ups pendientes de FEAT-049b: alineación de FAQs, tracking del hub y enlazado interno. Nada vistoso, pero es el tipo de trabajo que decide si el contenido se posiciona bien o se queda a medias — limpieza de deuda técnica de contenido, básicamente.
Sofi y el resto: hardening silencioso
Sofi añadió mem_limit a todos sus servicios Docker — la clase de cambio que no se nota hasta el día que un contenedor con fuga de memoria se lleva por delante al resto del host. Y en Vita, un ajuste de umbral (de 3 a 2) para el aviso de sincronización con el reloj Zepp, que ahora apunta al flujo correcto de sync por teléfono en vez de a uno obsoleto.
Si hay un hilo que conecta la semana es este: los sistemas no fallan gritando, fallan callados, y el trabajo de verdad no es solo arreglar el bug sino asegurarse de que la próxima vez grite. Ganga24 ya tiene esa alarma. El resto, a ver quién es el siguiente en descubrir su propio agujero de cinco días.