NUTRISYNCBuilders Hub
🏠 🛠

🔔 Sesión r15 — La 0.21 nace con voz (push) y el correo aprende a repartir

7 de agosto de 2026 · web po166–po167 · builds nativos 0.21.0 (iOS b7 + Android vc5) · Edge nueva: notify-dispatch · SQL: notify-dispatch · multi-dieta · incidencias-v2 · texto_es ×57 · OTA NS-0009

1 · La 0.21: push de punta a punta, en un día

2 · El triaje que se convirtió en software

TicketCriticidadQué pasó hoy
NS-0009 «Sin predicción + períodos fantasma»FB1Raíz doble arreglada y OTA HOY: fuera la retro-proyección (pasado limpio) + predicción pintada en la rejilla (aro discontinuo + 🔮) — antes solo vivía en Tendencias.
NS-0004 «Solo una dieta»FB2Multi-dieta completa: users.diet_types[], motor exige TODAS (verificado en vivo: glutenfree+dairyfree → 77 alimentos correctos), selector multi con «No diet» exclusiva, onboarding siembra. En 0.21.
NS-0005 «Más opciones / Other»FB3Fila «Other» en NutriLog (texto libre que cuenta) + la vía IA queda para Epic N.
NS-0007 «Siempre las mismas comidas»FB3Rotación diaria determinista (semilla día local + categoría) ANTES del corte top-6 que causaba la monotonía. Pura + unitarios.
NS-0008 «Pantallas solapadas»FB2Transición fade: el solape era el slide del stack con fondos transparentes sobre el melocotón compartido.
NS-0003 · NS-0006 · NS-0010FB1Ya arregladas (r12-b4 / r14): respondidas con «fix enviado».

Las 6 respuestas salieron a las testers por la app; 194 unitarios (13 nuevos hoy).

3 · Incidencias v2 (los 5 puntos de Juanjo)

Definiciones FB (FB = Feature Bug): FB1 crítico — rompe la promesa o bloquea → ≤48 h / próxima OTA · FB2 importante — degradado con rodeo → siguiente versión · FB3 menor/mejora → backlog priorizado.

4 · La saga del correo: cuatro capas, un diseño mejor

  1. to: como string con comas → denomailer exige array («No valid emails») — y la escalación llevaba 2 días muda por lo mismo.
  2. Multi-destinatario → IONOS lo veta desde IPs de Supabase (554 policy).
  3. 11 envíos secuenciales → WORKER_RESOURCE_LIMIT (546): la CPU del Edge no da para tanta ceremonia TLS.
  4. La ráfaga de pruebas → «450 Mail send limit exceeded»: cuota del remitente agotada (capturada LITERAL con un envío de control desde el Mac — auth 235 ✓, sender-match ✓).

El diseño final es la moraleja: UN envío diario al alias founders@ y el fan-out lo hace IONOS desde su propia casa (7 buzones del dominio, creados hoy con credenciales en secrets/). Verificado en vivo: el digest llegó con el formato nuevo — [FB1] NS-0009 «…» + RESPUESTAS ENVIADAS. El error SMTP literal ahora viaja en la respuesta JSON (filosofía nsFail, v9).

5 · También hoy

6 · Camino (actualiza roadmap)