Amplia el selector de icono de una credencial con ~70 logos reales de marcas conocidas
(Google, GitHub, Cloudflare, cPanel, MikroTik, WordPress, etc.), empaquetados localmente
desde el paquete simple-icons (dominio publico) y tree-shakeados por Vite. Se mantiene el
criterio de privacidad ya establecido: ninguna consulta externa de favicon por entrada.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
vite-plugin-pwa genera manifest.webmanifest + service worker en el build. Iconos nuevos
generados a partir del logo actual (192, 512, maskable para Android). El service worker
precachea solo assets estaticos (JS/CSS/iconos) -- /api nunca se cachea, siempre va a la red, asi
los datos no quedan desactualizados. Se actualiza solo (autoUpdate) sin pedirle nada al usuario.
Probado: build genera sw.js/manifest correctamente, el service worker registra y activa en un
browser real, y la app (login, listado de proyectos, llamadas a /api) sigue funcionando igual
que antes -- sin regresiones.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- seed-db.js: los datos de ejemplo (departamentos TI/Finanzas/RRHH/Comercial +
usuario admin con clave=usuario) solo se cargan si NODE_ENV != production.
En produccion el seed solo carga catalogos (roles, prioridades, estados,
tipos de proyecto) — la organizacion real la crea el admin desde la UI.
- Nuevo backend/src/scripts/create-admin.js: crea el usuario Administrador
inicial de produccion con una clave fuerte generada al azar (nunca
clave=usuario, esa convencion es solo para dev).
- frontend: agrega "serve" como dependencia de produccion (arquetipo B: el
frontend corre como proceso separado sirviendo el build con
`serve -s dist`).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>