2.0 KiB
2.0 KiB
F-054 — Implementer Report
Feature
Backend muere sin rastro y auth/login devuelve 502/500
Changes Made
1. API URL ya usa NEXT_PUBLIC_API_URL ✅
Files:
project/frontend/src/app/api/auth/login/route.tsproject/apps/admin/src/app/api/auth/login/route.ts
Ambos archivos ya usaban:
const API = process.env.NEXT_PUBLIC_API_URL ?? 'http://127.0.0.1:3000';
Fallback a 127.0.0.1:3000 es razonable como default de desarrollo. No se requiere cambio.
2. Heartbeat en backend para diagnóstico
File: project/src/infrastructure/http/server.ts
Agregado heartbeat cada 60s que loguea uptime y memoria:
const startTime = Date.now();
setInterval(() => {
const uptimeSec = Math.floor((Date.now() - startTime) / 1000);
logger.info({ uptimeSec, memMB: Math.round(process.memoryUsage().heapUsed / 1024 / 1024) }, 'heartbeat');
}, 60_000).unref();
Esto deja trazas antes de cualquier crash.
3. Watchdog como servicio macOS LaunchAgent
New files:
platforms/macos/com.mercadodevida.monolith-watchdog.plist— plist de LaunchAgentscripts/install-watchdog.sh— script de instalación
Instalación:
./scripts/install-watchdog.sh
El servicio ejecuta monolith.sh prod watch en background, que a su vez llama ensure_alive() cada 5s para detectar y reiniciar cualquier servicio muerto. El servicio se inicia automáticamente con el sistema (RunAtLoad=true).
Logs del watchdog:
- stdout/stderr →
~/.mdv-watchdog.logy~/.mdv-watchdog.err
Build Required
Después de mergear, ejecutar:
cd project && npm run build
Verification
# Verificar servicios
./project/scripts/monolith.sh prod status
# Verificar que el watchdog corre
launchctl list | grep monolith
# Ver logs del watchdog
tail -f ~/.mdv-watchdog.log
Files Changed
project/src/infrastructure/http/server.ts— heartbeat agregadoplatforms/macos/com.mercadodevida.monolith-watchdog.plist— nuevoscripts/install-watchdog.sh— nuevo