🐛 Fix subida de archivos con acentos/apóstrofes ("Invalid key")
Supabase Storage rechazaba uploads cuyos nombres contenían acentos (è/é/í/ñ), apóstrofes tipográficas, espacios o paréntesis con error "Invalid key". sanitizeFilename ahora normaliza NFD, elimina marcas combinantes (diacríticos) y fuerza el set [A-Za-z0-9._-], preservando legibilidad.
Nuevo
- 🔤 Acentos eliminados (NFD + strip combining marks): Estratègies → Estrategies
- ✂️ Caracteres no permitidos → "_" (apóstrofes, paréntesis, espacios)
- 📏 Cap a 180 caracteres con extensión preservada
- 🧹 Colapso de "_" repetidos y trim de bordes
- 🔄 Misma función compartida en client (WelcomeScreen, ChatInput indirecto) y server (/api/files/upload, /api/projects/.../replace)
- 🗑️ Eliminado duplicado de sanitizeFilename en upload/route.ts
src/lib/file-utils.ts
- sanitizeFilename ahora separa stem/extension, normaliza NFD, strip /[\u0300-\u036f]/ (diacríticos).
- Sustituye /[^A-Za-z0-9._-]+/ → "_" en stem y extension por separado.
- Colapsa "_+" y recorta "._-" de bordes.
- Cap a 180 chars preservando la extensión en minúsculas.
src/app/api/files/upload/route.ts
- Eliminado sanitizeFilename local que solo escapaba <>:"/\|?* y control chars.
- Importa el shared util de @/lib/file-utils.
