🎫 Sesión r13b — Incidencias, SLA y doble sentido
5 de agosto de 2026 · web po108–po112 · SQL: joined-fix · pilot-row-update · feedback-tickets · ticket-sla · Edge Function nueva: ticket-escalation
El feedback dejó de ser una lista que se lee y pasa a ser un circuito que se cierra:
cada mensaje de una tester genera un ticket, el ticket se trabaja, y la respuesta
vuelve a la app de la tester. Nada de un solo sentido.
1 · Incidencias (pestaña nueva del hub)
- Cada feedback genera su ticket automáticamente (NS-0001, NS-0002…), incluido lo recibido antes de existir el sistema.
- Por ticket: estado (nuevo → en curso → esperando a la usuaria → resuelto → cerrado), asignación a cualquier founder o dirección nutrisync, acción interna (qué vamos a hacer — no lo ve la usuaria) y rastro completo: quién hizo qué y cuándo.
- Responder: dos botones distintos a propósito — «Guardar respuesta» (borrador interno) y «Guardar y enviar a la usuaria», con confirmación. Al enviar, la tester ve la respuesta dentro de su app, en su centro de notificaciones, con su número de ticket.
- Cerrar incidencia: un clic, con confirmación, y el motivo queda en el rastro.
- Export CSV de lo que ves con los filtros puestos (se abre directo en Excel).
2 · SLA: el tiempo se ve y escala solo
- Cada ticket abierto enseña su edad: gris hasta 8 h, ámbar de 8 a 24, rojo ⚠ pasadas 24.
- Los resueltos enseñan cuánto se tardó (apertura → cierre), y arriba hay dos números nuevos: Abiertas +24 h y Media de resolución.
- Escalado automático: un proceso revisa cada hora; toda incidencia con más de 24 h sin resolver dispara un correo digest a las founders — número, horas abierta, asignación y mensaje original. Cada ticket se escala una sola vez y queda marcado 📣 en el hub.
3 · Edición de registros (CRUD) en el piloto
- En la pestaña Piloto, cada tester tiene un ✏️ que abre su registro entero: nombre cercano, cohorte, estado, correo de tienda y plataforma, con Guardar/Cancelar explícitos — nada se guarda hasta pulsar Guardar.
- El correo de tienda ahora se puede corregir desde el hub (antes solo la tester por su enlace). Resuelve los casos «no sé qué cuenta tengo» y los correos ocultos de Apple.
- El nombre cercano en línea confirma con palabras: guardando… → ✓ guardado, y Enter también guarda.
- Arreglado además el «siguen invited con cuenta creada»: la comparación de correos ignoraba mayúsculas solo a medias. Normalizado y con guardia permanente.
4 · Automatismos (pestaña Daily Ops)
| Cron | Cuándo | Qué hace |
nutrisync-store-stats | 06:30 UTC | Instantánea diaria de TestFlight (quién instaló) + sincroniza cohortes |
nutrisync-pilot-reminders | 07:00 UTC | Recordatorios a testers: correo de tienda · instalar. Máx. 2 por persona, paran al avanzar |
nutrisync-ticket-escalation | cada hora | Incidencias +24 h sin resolver → correo a founders (una vez por ticket) |
La pestaña Daily Ops del hub enseña la salud de los tres con su última ejecución.
Mirarla cada mañana es un vistazo de 30 segundos: verde = todo corrió; rojo = el propio panel dice qué falló y qué hacer.
5 · Además, hoy
- iOSBuild 0.20.0 (nº 6) subido a App Store Connect — en Beta App Review. What to Test publicado.
- AndroidVerificación de identidad de Google completada; primer build de Android en marcha. Regla nueva: todo build nativo sale para las dos plataformas a la vez.
- OTALas respuestas a tickets llegan a las apps ya instaladas sin pasar por las tiendas.
- ConsentimientoPuerta bloqueante en el enlace personal de cada tester (aviso «no en producción», casilla sin premarcar, registro auditable con versión de texto + huella), pie legal en TODOS los correos, banner fijo de fase de desarrollo en la web, y aviso automático de aceptación (1 vez por persona + botón 📜).
- Pitch + ModeloDeck agosto 2026 (Canva + historia) en la página de inversores; modelo financiero: Excel publicado, baseline realista en el MIS (2.634 de pago EoY1 · €74.772 Y1), y pestaña 📈 Modelos en StartUp Admin con deck y Excel descargables.
- Android LIVERelease «4 (0.20.0)» publicada en internal testing (22:07) e instalada y verificada en dispositivo real. Lista de testers CSV preparada. La promoción a closed espera el checklist de configuración (ficha de Lucía).
- OTA auto-applyLas actualizaciones OTA se aplican SOLAS al abrir la app (política pura + 10 unitarios, anti-bucle doble) — muere el ritual «cierra dos veces». Y comando Spotlight «OTA NutriSync App» (jest → 3 runtimes → app.json restaurado).
- PlataformaTesters con dos dispositivos: opción «Los dos» (📱🤖) en su enlace, tabla y editor.
- Guardarraíles
verify-anchors (avisa si un pack de Design mueve un gancho nuestro antes de integrar), pre-deploy (siete comprobaciones, una puerta) y pwa-tests (la PWA no se despliega vieja ni rota).